{"version":3,"sources":["assets/img/brand/favicon.ico","components/Breadcrumb/styles.module.scss","assets/img/brand/white.png","redux/_constants/index.js","redux/_reducers/authentication.reducer.js","redux/_reducers/endpointfilters.reducer.js","redux/_reducers/index.js","redux/_reducers/alert.reducer.js","redux/_actions/alert.actions.js","config.js","services/WebAPI.js","redux/_services/index.js","redux/_actions/user.actions.js","components/Navbars/AdminNavbar.js","utils/getGlobalStyles.js","utils/getMenuBar.js","screens/dashboard/visualization/table/view.js","screens/dashboard/visualization/table/index.js","screens/dashboard/visualization/index.js","screens/dashboard/index.js","screens/partner/service.js","screens/partner/list.js","components/Inputs/TButton.js","components/Alert.js","screens/partner/form.js","screens/partner/add.js","screens/partner/edit.js","utils/getDummyTableData.js","screens/partner/customers.js","screens/customer/table.js","screens/customer/list.js","screens/customer/list_partner.js","screens/customer/form.js","screens/customer/add.js","screens/customer/edit.js","screens/login/index.js","screens/login/forgot_password.js","screens/login/reset.js","screens/partner/changePartner.js","screens/customer/view.js","utils/getSerialKey.js","screens/customer/license/add.js","screens/preferences/index.js","screens/preferences/logo_upload.js","screens/preferences/acronis/generate.js","screens/preferences/WebHooks/edit.js","screens/preferences/WebHooks/index.js","screens/reports/visualization/activeLicenseChart.js","screens/reports/offlineReport/table/index.js","screens/reports/offlineReport/index.js","screens/reports/endpointSetting/notActivated/table.js","screens/reports/endpointSetting/notActivated/index.js","screens/reports/endpointSetting/serviceStatus/table.js","screens/reports/endpointSetting/serviceStatus/index.js","screens/reports/endpointSetting/index.js","screens/reports/index.js","screens/integration/index.js","screens/customer/notification.js","screens/reports/reports/offlineReport.js","screens/reports/reports/licenseReport.js","screens/reports/reports/endpointSetting.js","components/Configuration/ListSelector.js","components/Configuration/CopyToEndpoints.js","components/Configuration/index.js","screens/endpoints/EndpointTable/popover.js","screens/endpoints/EndpointTable/helper.js","screens/endpoints/EndpointTable/index.js","screens/endpoints/list.js","screens/attacks/view.js","screens/attacks/index.js","screens/endpoints/list_by_customer.js","screens/endpoints/list_by_license.js","screens/endpoints/list_by_partner.js","screens/endpoints/Details/logs.js","screens/endpoints/Details/index.js","screens/billing/form/index.js","screens/billing/history/tier/index.js","screens/billing/history/index.js","screens/billing/invoice/form.js","screens/billing/invoice/index.js","screens/users/list.js","screens/users/view.js","screens/users/form.js","screens/users/add.js","screens/users/edit.js","screens/upgrades/Upload.js","screens/upgrades/channel.js","screens/upgrades/changeChannel.js","screens/preferences/processRestriction/edit.js","screens/preferences/processRestriction/index.js","routes.js","screens/customer/settings.js","screens/others/global_settings.js","screens/endpoints/Settings/index.js","screens/preferences/change_password.js","screens/preferences/two_factor.js","screens/reports/reports/index.js","screens/upgrades/Versions.js","screens/Landing.js","screens/preferences/acronis/index.js","components/Sidebar/Sidebar.js","components/Breadcrumb/index.js","layouts/Admin.js","assets/img/brand/dark.png","layouts/Auth.js","helpers/requireauth.js","screens/test.js","helpers/Require2FA.js","app.js","index.js"],"names":["module","exports","userConstants","LOGIN_SUCCESS","LOGIN_FAILURE","LOGIN_2FA","LOGIN_2FA_PROGRESS","LOGOUT","LOGIN_PROGRESS","SET_MSG","CLEAR_MSG","alertConstants","endpointFiltersConstants","initialState","loggedIn","firstLoad","filters","rootReducer","combineReducers","authentication","state","action","type","loginProgess","isWorking","TwoFA","isEqual","user","alert","message","endpointFilters","alertActions","success","error","clear","config","apiHost","apiUrl","host","Client","Axios","create","baseURL","AppConfig","withCredentials","userService","login","async","username","password","rememberUser","data","post","logout","get","localStorage","removeItem","getUser","submit2FA","code","rememberMachine","twoFA","getAndSetUser","dispatch","then","store","each","value","key","startsWith","remove","userActions","result","status","twoFAactive","twoFASubmit","AdminNavbar","props","partnerLogo","setPLogo","useState","bgColor","setBgColor","partnerFavicon","setPfavicon","useDispatch","useSelector","useEffect","prepareLogo","prepareFavicon","fetchPartnerLogo","fetch","require","default","res","url","catch","err","console","log","resp","WebAPI","LogoLargeUrl","LogoMiniUrl","Color","Navbar","className","style","backgroundColor","expand","id","Container","fluid","Helmet","rel","href","to","b","alt","width","height","src","Nav","navbar","UncontrolledDropdown","nav","DropdownToggle","Media","DropdownMenu","right","DropdownItem","header","tag","name","role","Link","onClick","getSideBarClass","theme","getGlobalStyles","menuBarItems","path","icon","xmlns","viewBox","stroke","fill","d","layout","fillRule","clipRule","strokeOpacity","strokeWidth","strokeLinecap","strokeLinejoin","version","xlink","FormRow","title","children","display","fontSize","fontWeight","marginLeft","marginRight","flex","AttackView","attack","onClose","Modal","isOpen","toggle","paddingTop","moment","_","length","format","EndpointTable","rowData","setRowData","selected","setSelected","endpoints","rowEvents","e","row","rowIndex","paginationOptions","withFirstAndLast","totalSize","sizePerPage","hideSizePerPage","loading","Row","keyField","columns","dataField","text","sort","searchable","headerStyle","padding","classes","search","remote","pagination","paginationFactory","paginationProps","paginationTableProps","hover","bordered","noDataIndication","Spinner","color","headerWrapperClasses","bodyClasses","baseProps","rowStyle","Col","COLORS","COLORS02","Healthy","Unhealthy","COLORS04","Latest","Previous","Old","COLORS05","RADIAN","Math","PI","renderCustomizedLabel","cx","cy","midAngle","innerRadius","outerRadius","percent","index","radius","x","cos","y","sin","textAnchor","dominantBaseline","toFixed","Visualization","recentAlerts","versionHealth","workstationDetails","serverHealth","serverDetails","workstationHealth","data02","map","i","Device","Hostname","process","Attack","ProcessName","healthyCount","unHealthyCount","data03","offlineServerData","failedServerCount","firewallStatus","data04","filter","HealthColor","DeviceList","Set","Version","join","CustomTooltip","payload","label","active","CustomTooltipIssues","data05","data06","offlineWorkstationData","failedEndpointsCount","firewallOffCount","serverMap","event","window","open","split","workstationMap","marginTop","overflow","borderStyle","borderColor","ResponsiveContainer","paddingBottom","textAlign","PieChart","Legend","verticalAlign","align","Pie","labelLine","dataKey","entry","Cell","Tooltip","content","Dashboard","setRecentAlerts","setVersionHealth","setWorkstationDetails","setServerDetails","worstationHealth","setWorkstationHealth","setServerHealth","setLoading","fetchVersionHealth","fetchMostRecentAlert","fetchWSDetails","fetchServerDetails","fetchWorkstationHealth","fetchServerHealthDetails","getPartner","response","API","SearchBar","Search","PartnerList","selectedRow","setSelectedRow","history","useHistory","s","loadTable","getList","finally","handlePartnerDelete","formatter","cell","opacity","Button","outline","maxWidth","push","PartnerId","class","UncontrolledTooltip","target","autohide","custom","marginBottom","xs","alignItems","searchProps","TButton","isLoading","AlertMessage","alertMesssage","Alert","PopConfirm","onOk","modal","SetModal","ModalHeader","ModalBody","ModalFooter","size","PartnerForm","formState","setFormState","EntityName","FirstName","LastName","Email","useParams","partner","invalidFormState","setInvalidFormState","handleFormValueChange","Form","onSubmit","flag","preventDefault","Object","entries","forEach","a","validator","isEmpty","shareFormData","FormGroup","Label","for","Input","invalid","onChange","FormFeedback","justifyContent","editMode","deletePartner","openPartnerCustomers","PartnerAdd","Card","CardBody","r","addPartner","partnerData","PartnerEdit","setPartner","go","editPartner","replace","tableData","products","endpoint_data","users","PartnerCustomers","selectRow","mode","clickToSelect","onSelect","isSelect","newSelection","onSelectAll","rows","ids","handlePartnerChange","viewDevices","ButtonGroup","variant","CustomerTable","customers","Contact","handleOnSelectAll","Id","handleInvactivate","onDelete","OnRowClick","setActiveState","md","CustomerList","setActive","loadCustomers","CustomerForm","partners","setPartners","CompanyName","UserEmail","Address","AccountType","customer","parseInt","o","CustomerAdd","customerData","CustomerId","CustomerEdit","setCustomer","Partner","IsActive","LoginAlerts","Login","setUsername","setPassword","setCode","setRememberUser","setRememberMachine","cssInput","borderRadius","boxShadow","marginBotton","inline","check","checked","pathname","fromLogin","ForgotPass","mail","setMail","submitted","setSubmit","Reset","pass1","setPass1","pass2","setPass2","location","useLocation","req","Code","Password","WebApi","ChangePartner","partnername","sm","offset","DetailsLine","setMove","CustomerDetails","licenseData","setLicenseData","devices","setDevices","customerList","setCustomerList","manageDevice","setManageDevice","move","company","setCompany","moveToCustomer","setMoveToCustomer","selectedEndpoint","setSelectedEndpoint","totals","setTotals","servers","desktops","consolePassword","setConsolePassword","download","setDownload","setUrl","setVersion","versionSearch","setVersionSearch","isVersion","setIsVersion","downloadKey","setDownloadKey","availableVersions","setAvailableVersions","fetchCustomerDetails","fetchCustomerDevices","fetchBuilds","deviceColumns","sortFunc","order","semver","compare","ENDPOINT_KEY","handleOnSelect","endpoint","handleSelectAll","newEP","includes","fetchLicenseList","versions","reduce","prev","cur","Server","Desktop","isSwitching","setSwitching","cellContent","Date","toLocaleDateString","Key","switchState","SelectSearch","options","toLowerCase","placeholder","getOptions","val","axios","prepareDownload","minWidth","float","disabled","overflowY","overflowX","maxHeight","DeviceIdList","setTimeout","generateProductKey","min","max","keyString","segment","j","floor","random","segments","LicenseAdd","genreateProductKey","ExpiryDate","Type","OrderId","formState2","SettingsBlock","styled","div","Settings","button","iconSvg","subtitle","background","margin","position","ModeSwitch","changeTheme","Theme","reload","FormData","AcronisApiGen","setKey","setIsLoading","fetchKey","handleSave","navigator","clipboard","writeText","EditHook","update","_targets","setAvailable","setTarget","setType","setHeader","setValue","headerOpen","setHeaderOpen","requestType","setRequestType","saving","setSaving","loadPartners","Url","RequestType","Headers","head","JSON","parse","emtity_name","undefined","headers","stringify","onCancel","displayTarget","isTypeDropdwn","t","InputGroup","borderTopRightRadius","borderBottomRightRadius","caret","displayRequestType","paddingLeft","borderTopLeftRadius","borderBottomLeftRadius","Collapse","flexWrap","k","v","cloneDeep","handleRemoveHeader","set","ListItem","setOpen","ListGroupItem","WebHooks","hooks","setHooks","hookLoading","setHookLoading","loadWebHooks","isNew","ListGroup","h","ActiveLicense","setdata","data01","DesktopLicenses","ServerLicense","BarChart","CartesianGrid","strokeDasharray","horizontal","XAxis","YAxis","Bar","ReportingTable","filterPopover","toggleFilterPopover","Filters","setFilters","activation","deviceType","license","ExportCSVButton","CSVExport","whiteSpace","toLocaleString","hidden","csvExport","values","every","exportCSV","fileName","csvProps","Reporting","desktop","setDesktop","server","setServer","fetchdata","resp2","dy","setEndpoints","DeviceType","COLORS1","trayIconData","TrayIcon","serviceUpdateData","UpdateService","EndpointSettingReport","reportId","setReportId","CustomerNotificationSettings","EmailNotificationActive","NotificationEmails","intial_state","serverReportId","desktopReportId","reportActive","serverCycle","desktopCycle","serverWeeklyDay","desktopWeeklyDay","serverMonthlydate","desktopMonthlydate","reportTime","CustomerReportSettings","dates","setDates","Dates","fetchData","_data","ReportType","newData","ReportId","ToggleEmailReport","NotificationEmailList","Interval","DefaultTime","getDay","getDate","getHours","getMinutes","date","prepareTime","time","setDate","setHours","getFullYear","getMonth","serverReq","toISOString","desktopReq","serverResp","desktopResp","LicenseReport","dropdownOpen","setDropdownOpen","Dropdown","prevState","direction","SimpleAddModal","addValue","setAddValue","setError","borderBottom","onUpdate","ExclusionInfo","placement","ListSelector","modalShown","setModalShown","textFilter","list","paginationSize","tableRef","headerColumnStyle","handleDelete","selectionContext","newList","difference","CardHeader","isGlobal","ref","n","filterFactory","listToAdd","Array","isArray","union","CopyToEndpoints","filteredEndpoint","setFilteredEndpoints","scope","setScope","Configurations","FolderExclustions","Whitelist","updating","setUpdating","afterFilter","f","xor","Configuration","init","FolderExclusion","FolderProtection","WhiteList","UserAutoProtect","AdvancedProtection","ExtMonitor","NativeProtection","AutoProtectShares","DefaultSettingMode","LearningMode","SubFolderAutoProtect","endpointSettings","globalSettings","setConfig","visible","setVisible","currentConfig","setCurrentConfig","unsavedChanges","setUnsavedChanges","channels","setChannels","loadSettings","loadChannels","settings","_state","orderBy","checkAndShowUnsavedChangeWarning","applyToExisiting","setApplyToExisiting","copyModal","setCopyModal","updateConfig","configKey","newValue","newConfig","zIndex","PackageChannelType","Channel","SupressPopUp","SupressEmail","applyToEndpoints","backdrop","EndpointFilter","applyFilter","clearFilter","versionList","setVersionList","activationList","setActivationList","deviceTypeList","setDeviceTypeList","statusList","setStatusList","licenseList","setLicenseList","channelList","setChannelList","keys","countBy","rD","ActivationStatus","OnlineStatus","UpdateChannel","LicenseType","handleChange","newFilters","PopoverHeader","PopoverBody","channel","fetchFilteredEndpoints","el","EndpointsTable","endPointWholeList","setEndPointList","isUninstall","setIsUninstall","uninstall","setUninstall","partnerFilter","setPFilter","customerFilter","setCFilter","isModalOpen","setIsModalOpen","str","setStr","intialFilter","_filters","email","newRowData","DeviceId","dashFilter","failedUpdates","handleBulkActions","popover","Popover","show","_filter","document","body","click","filter_applied","PartnerName","exportAll","onlyExportSelection","OverlayTrigger","trigger","rootClose","overlay","onExport","handleActions","UnistallDeviceIdList","IsUnistall","EndpointList","device","URLSearchParams","firewall","health","checkFilter","setCheckFilter","loadEndpoints","FirewallStatus","HealthStatus","UpdateServiceStatus","isWhitelist","setWhitelist","isExclude","setIsExclude","handleExclude","requestData","textOverflow","splitVal","pop","prepareFolderPath","bsSize","AttackList","attackWholeList","setAttackList","setSize","total","setTotal","page","setPage","setDevice","endpointFilter","setEFilter","setCustomers","loadDevices","PageSize","PageNumber","TotalAttackList","filteredAttackList","loadAttacks","onTableChange","HostName","EndpointListByCustomer","EndpointListByLicensse","EndpointListByPartner","Logs","isOnline","Log","isLog","setLog","isUpdate","setUpdate","logLoading","setLogloading","logData","setlogData","loadLogData","interval","fetchLogdata","files","LastModified","setInterval","clearInterval","FileName","Name","rowA","rowB","ms","Promise","resolve","DetailsRow","FolderProtectionList","setList","inProgress","PopUpdate","SetUpdate","Billing","commitment","billingDate","billingCycle","stripe","xero","amount","MinimumCommitment","BillingDate","SignUpDate","BillingCycle","StripeID","XeroContactID","Price","signupDate","editField","XeroContactId","StripeId","parseFloat","Tier","tierData","setTierData","tier","price","productId","addTier","setAddTier","fetchTier","handleData","delete","deleteTier","ProductID","invoiceDate","dueDate","quantity","setTier","units","setUnit","generateLoading","setGLoading","fetchEndpoints","left","transform","ProductId","Quantity","DueDate","flexDirection","fetchPartner","UserList","Customer","TwoFactorEnabled","LockoutEnabled","UserDetails","setUser","getUserType","locking","setLocking","deleting","setDeleting","mfaSwitching","setMFASwitching","AccessFailedCount","UserForm","allowed","setAllowed","roles","passwordScore","setPasswordScore","isVissible","setIsVissible","Role","isEmail","Company","UserAdd","UserEdit","Upload","formData","setFormData","setProcess","setChannel","formChanged","isSemVer","file","append","OnClose","setRow","setName","prio","setPrio","isAdd","setAdd","Table","Priority","PackageChannelId","deleteChannel","ChangeChannel","sortBy","setPath","ProcessRestiction","routes","component","ForegetPass","parent","CustomerListByPartner","markPaid","setMarkPaid","showTier","setShowTier","referenceId","setReferenceId","invoiceID","setInvoiceID","fnLoading","setFnLoading","fetchHistory","partnerA","PaymentStatus","XeroInvoiceId","handleAmmend","StripeIntentId","InvoiceId","Reference","minHeight","Invoice","Notification","EndpointListC","EndpointListL","details","setDetails","folderProtectionModal","setFolderProtectionModel","loadingDetails","setLoadingDetails","getDetails","refreshing","setRefreshing","isRetireProgress","setRetireProgress","isUpdateProgress","setUpdateProgress","CustomerName","LicenseKey","services","LastUpdate","DriverDetectionMode","cursor","UnmountOnClose","EndpointListP","OldPassword","NewPassword","ConfirmPassword","setloading","loadExceptions","patterns","updateException","splice","enabled","setEnabled","verificationCode","setVerificationCode","QRCodeURL","setQRCode","loadTwoFactorStatus","twoFactorStatus","qrCode","QRCode","toDataURL","submitModel","Enabled","VerificationCode","logoData","setLogoData","preview","setPreview","LogoChanged","logo","slice","span","formDataMiniLogo","formDataLargeLogo","respData","respLL","respML","URL","createObjectURL","report","setReport","reportTitle","setReportTitle","reportData","setReportData","visitedBtn","setVisited","loadReport","reportProps","reportsList","getReportProps","method","offlineReport","setOfflinereport","setEndpointSettings","licenseReport","setLicenseReport","setVersions","isChange","setChange","loadVersions","uploadOpen","setUploadOpen","channelOpen","setChannelOpen","currentItem","setCurrentItem","charAt","toUpperCase","isDummyField","rowId","Sidebar","collapseOpen","setCollapseOpen","getItem","activeItem","setTitle","getCurrentActive","createLinks","prop","NavItem","NavLink","NavLinkRRD","activeClassName","all_matches","best_match","maxBy","navbarBrandProps","innerLink","outterLink","expanded","NavbarBrand","imgAlt","imgSrc","setItem","LinksForMenu","defaultProps","BreadCrumbNavigation","_path","special","to_render","match","Breadcrumb","listTag","listClassName","styles","breadcrumb_wrapper","BreadcrumbItem","textTransform","Admin","mainContent","React","useRef","documentElement","scrollTop","scrollingElement","current","twoFactorActive","bodyAttributes","brandText","indexOf","getBrandText","exact","from","LoginContainer","Auth","setPIcon","authStore","isAuthenticated","next_url","Logo","_routes","getRoutes","RequireAuth","nextUrl","encodeURIComponent","TestPage","Require2FA","INTERCOM_APP_ID","IntercomMask","boot","shutdown","useIntercom","bootOrClose","appId","IntercomWrapper","createBrowserHistory","App","listen","render","loggerMiddleware","createLogger","createStore","applyMiddleware","thunkMiddleware","ReactDOM","getElementById"],"mappings":"wHAAA,OAAe,cAA0B,mC,++BCCzCA,EAAOC,QAAU,CAAC,mBAAqB,mC,mCCDvC,OAAe,cAA0B,iC,gPCAlC,MAAMC,EAAgB,CACzBC,cAAe,sBACfC,cAAe,sBACfC,UAAW,kBACXC,mBAAoB,2BACpBC,OAAQ,eACRC,eAAiB,uBACjBC,QAAS,qBACTC,UAAW,wBAGFC,EACA,gBADAA,EAEF,cAFEA,EAGF,cAGEC,EACD,yB,qBCdZ,MAAMC,EAAe,CAAEC,UAAU,EAAOC,WAAY,GCHpD,MAAMF,EAAe,CAAEG,QAAS,CAAC,GCKjC,MAAMC,EAAcC,YAAgB,CAChCC,eFDG,WAAuD,IAA/BC,EAA8B,uDAAtBP,EAAcQ,EAAQ,uCACzD,OAAQA,EAAOC,MACX,KAAKpB,EAAcM,eACf,MAAO,CACHe,cAAc,EACdC,WAAW,GAEnB,KAAKtB,EAAcG,UACf,MAAO,CACHkB,cAAc,EACdE,OAAO,EACPD,WAAW,GAEnB,KAAKtB,EAAcI,mBACf,MAAO,CACHiB,cAAc,EACdE,OAAO,EACPD,WAAW,GAEnB,KAAKtB,EAAcC,cACf,OAAKuB,kBAAQN,EAAMO,KAAMN,EAAOM,MAMzBP,EALI,CACHN,UAAU,EACVa,KAAMN,EAAOM,MAIzB,KAAKzB,EAAcK,OACf,OAAIa,EAAMG,aACCH,EACJ,CAAC,EACZ,KAAKlB,EAAcE,cACf,OAAIgB,EAAMG,cACFH,EAAMK,MACCL,EAER,CAAC,EACZ,QACI,OAAOA,EAElB,EEtCGQ,MCNG,WAAoC,IAArBR,EAAoB,uDAAZ,CAAC,EAAGC,EAAQ,uCACtC,OAAQA,EAAOC,MACX,KAAKX,EACD,MAAO,CACHW,KAAM,UACNO,QAASR,EAAOQ,SAExB,KAAKlB,EACD,MAAO,CACHW,KAAM,SACNO,QAASR,EAAOQ,SAExB,KAAKlB,EACD,MAAO,CAAC,EACZ,QACI,OAAOS,EAElB,EDVGU,gBDNG,WAAwD,IAA/BV,EAA8B,uDAAtBP,EAAcQ,EAAQ,uCAC1D,OAAQA,EAAOC,OACNV,EACM,CACHU,KAAM,gBACNN,QAASK,EAAOL,SAGbI,CAElB,ICDcH,Q,kHEER,MAAMc,EAAe,CACxBC,QAbJ,SAAiBH,GACb,MAAO,CAAEP,KAAMX,EAAwBkB,UAC1C,EAYGI,MAVJ,SAAeJ,GACX,MAAO,CAAEP,KAAMX,EAAsBkB,UACxC,EASGK,MAPJ,WACI,MAAO,CAAEZ,KAAMX,EAClB,G,qBCFcwB,MALA,CACXC,QAL+C,IAM/CC,OAASC,Y,kBCEEC,MANAC,IAAMC,OAAO,CAC1BC,QAASC,EAAUN,OACnBO,iBAAkB,ICqBb,MAAMC,EAAc,CACvBC,MAzBJC,eAAqBC,EAAUC,GAAiC,IAAvBC,EAAsB,wDAC3D,MAAM,KAAEC,SAAeZ,EAAOa,KAAK,cAAe,CAAEJ,WAAUC,WAAUC,iBACxE,OAAOC,CACV,EAuBGE,OAhBJN,uBACUR,EAAOe,IAAI,gBACjBC,aAAaC,WAAW,OAC3B,EAcGC,QAZJV,iBACI,IACI,MAAM,KAAEI,SAAeZ,EAAOe,IAAI,iBAClC,OAAOH,EAAKxB,IACf,CACD,MAAQ,CACR,OAAO,CACV,EAMG+B,UAvBJX,eAAyBY,GAAsD,IAAhDT,EAA+C,wDAAzBU,EAAyB,wDAC1E,MAAM,KAAET,SAAeZ,EAAOa,KAAK,mBAAoB,CAAEO,OAAMT,eAAcU,oBAC7E,OAAOT,CACV,GCDD,SAASU,IAAU,MAAO,CAAEvC,KAAMpB,EAAcG,UAAa,CAyC7D,SAASyD,EAAcC,EAAUjD,GAC7B+B,EAAYY,UAAUO,MAAKrC,IACnBA,EACFoC,EA9CV,SAAiBpC,GAAQ,MAAO,CAAEL,KAAMpB,EAAcC,cAAewB,OAAQ,CA8C1DK,CAAQL,KAEfsC,IAAMC,MAAK,CAACC,EAAOC,KACXA,EAAIC,WAAW,yBACfJ,IAAMK,OAAOF,EAChB,IAEPL,EAAS,CAAEzC,KAAMpB,EAAcK,SAChC,GAER,CAOM,MAAMgE,EAAc,CACvBzB,MA5DJ,SAAeE,EAAUC,EAAUC,GAC/B,OAAOa,IACHA,EARoB,CAAEzC,KAAMpB,EAAcM,iBAS1CuD,EAAShC,EAAaG,SACtBW,EAAYC,MAAME,EAAUC,EAAUC,GAAcc,MAAKQ,IACjDA,EAAOC,OACHD,EAAOE,YACPX,EAASF,MAETE,EAAShC,EAAaC,QAAQ,mBAC9B8B,EAAcC,KAGlBA,EAAS,CAAEzC,KAAMX,EAAsBkB,QAAS,kBAChDkC,EAAS,CAAEzC,KAAMpB,EAAcE,gBAClC,GAXL,CAgBP,EAyCGiD,OAPJ,WAEI,OADAR,EAAYQ,SACL,CAAE/B,KAAMpB,EAAcK,OAChC,EAKGoE,YAxCJ,SAAqBhB,EAAMT,EAAcU,GACrC,OAAOG,IACHA,EA7BuB,CAAEzC,KAAMpB,EAAcI,qBA8B7CyD,EAAShC,EAAaG,SACtBW,EAAYa,UAAUC,EAAMT,EAAcU,GAAiBI,MAAKQ,IACxDA,EAAOC,QACPV,EAAShC,EAAaC,QAAQ,mBAC9B8B,EAAcC,KAEdA,EAAS,CAAEzC,KAAMX,EAAsBkB,QAAS,kBAChDkC,EAASF,KACZ,GAPL,CAWP,EA0BGC,iB,WCoCWc,MA3FMC,IACnB,MAAOC,EAAaC,GAAWC,mBAAS,KACjCC,EAASC,GAAcF,mBAAS,KAChCG,EAAgBC,GAAcJ,mBAAS,IACxCjB,EAAWsB,cACX1D,EAAO2D,aAAYrB,GAASA,EAAM9C,eAAeQ,OACvD4D,qBAAU,KACRC,IACAC,IACAC,GAAkB,GAClB,IAEF,MAAMF,EAAazC,gBACX4C,MACJC,EAAQ,KAAoCC,SAC5C7B,MAAM8B,IACNf,EAASe,EAAIC,IAAb,IAEDC,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,IALjC,EAQIR,EAAgB1C,gBACd4C,MACJC,EAAQ,KAAsCC,SAC9C7B,MAAM8B,IACNV,EAAYU,EAAIC,IAAhB,IAEDC,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,IALjC,EAQIP,EAAiB3C,UACrB,MAAMqD,QAAWC,EAAO/C,IAAI,kCACzB8C,EAAKjD,KAAKsB,QAAS2B,EAAKjD,KAAKA,MAAQiD,EAAKjD,KAAKA,KAAKmD,cAAgBF,EAAKjD,KAAKA,KAAKoD,cAEpFnB,EAAYgB,EAAKjD,KAAKA,KAAKoD,aAC3BxB,EAASqB,EAAKjD,KAAKA,KAAKmD,cACxBpB,EAAWkB,EAAKjD,KAAKA,KAAKqD,OAC3B,EAGH,OACE,mCACE,cAACC,EAAA,EAAD,CAAQC,UAAU,yBAAyBC,MAAO,CAAEC,gBAAiB3B,GAAW,WAAa4B,OAAO,KAAKC,GAAG,cAA5G,SACE,eAACC,EAAA,EAAD,CAAWC,OAAK,EAAhB,UAEG7B,GAAiB,cAAC8B,EAAA,EAAD,UAClB,sBAAMC,IAAI,gBAAgBC,KAAMhC,MAEhC,cAAC,IAAD,CACEuB,UAAU,6DACVU,GAAG,IAFL,SAIE,qBACEC,GAAC,EAACC,IAAI,MACNZ,UAAU,mBACVC,MAAO,CAACY,MAAM,IAAKC,OAAO,IAC1BC,IAAK3C,MAGT,cAAC4C,EAAA,EAAD,CAAKhB,UAAU,sCAAsCiB,QAAM,EAA3D,SACE,eAACC,EAAA,EAAD,CAAsBC,KAAG,EAAzB,UACE,cAACC,EAAA,EAAD,CAAgBpB,UAAU,OAAOmB,KAAG,EAApC,SACE,cAACE,EAAA,EAAD,CAAOrB,UAAU,qBAAjB,SACE,sBAAMA,UAAU,kCAAhB,SACE,mBAAGA,UAAU,oCAInB,eAACsB,EAAA,EAAD,CAActB,UAAU,sBAAsBuB,OAAK,EAAnD,UACE,eAACC,EAAA,EAAD,CAAcxB,UAAU,aAAayB,QAAM,EAACC,IAAI,MAAhD,UACE,oBAAI1B,UAAU,oBAAd,sBACA,oBAAIA,UAAU,qBAAd,SAAoC/E,EAAK0G,OACzC,qBAAI3B,UAAU,qBAAd,oBAA2C/E,EAAK2G,WAElD,eAACJ,EAAA,EAAD,CAAcd,GAAG,eAAegB,IAAKG,IAArC,UACE,mBAAG7B,UAAU,2BACb,kDAEF,eAACwB,EAAA,EAAD,CAAcM,QAAS,IAAMzE,EAASQ,EAAYlB,UAAlD,UACE,mBAAGqD,UAAU,mBACb,2DAxChB,E,8BCzDK,MAAM+B,EAAmBC,GACX,SAAVA,EAAmB,sBAAwB,wBAQvCC,ICwMAC,EAlNI,CACjB,MAAS,CACP,CACEC,KAAM,aACNR,KAAM,YACNS,KAAM,sBAAKC,MAAM,6BAA8BxB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAY,eAAa,IAAIC,OAAO,eAAeC,KAAK,OAAhI,UACN,sBAAMC,EAAE,kBACR,sBAAMA,EAAE,eAAeF,OAAO,YAC9B,sBAAME,EAAE,gBAAgBF,OAAO,YAC/B,sBAAME,EAAE,iBAAiBF,OAAO,YAChC,sBAAME,EAAE,iBAAiBF,OAAO,YAChC,sBAAME,EAAE,gBAAgBF,OAAO,YANzB,OAONG,OAAQ,UAEV,CACEP,KAAM,YACNR,KAAM,WACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,+jBAA+jBD,KAAK,YAC5kB,sBAAMC,EAAE,+lDAA+lDD,KAAK,YAC5mD,sBAAMC,EAAE,k3CAAk3CD,KAAK,eAE/3CE,OAAQ,UAEV,CACEP,KAAM,aACNR,KAAM,YACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,uNAAuND,KAAK,YACpO,sBAAMC,EAAE,4NAA4ND,KAAK,YACzO,sBAAMC,EAAE,8NAA8ND,KAAK,YAC3O,sBAAMC,EAAE,gmCAAgmCD,KAAK,eAE7mCE,OAAQ,UAEV,CACEP,KAAM,aACNR,KAAM,YACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACN,sBAAMM,SAAS,UAAUC,SAAS,UAAUH,EAAE,geAAgeD,KAAK,UAAUD,OAAO,UAAUM,cAAc,MAAMC,YAAY,WAE9kBJ,OAAQ,UAEV,CACEP,KAAM,UACNR,KAAM,SACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACN,sBAAMG,KAAK,UAAUD,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOL,EAAE,ylBAE/EC,OAAQ,UAEV,CACEP,KAAM,WACNR,KAAM,UACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,ofAAofD,KAAK,YACjgB,sBAAMC,EAAE,usBAAusBF,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOC,cAAc,QAAQC,eAAe,UAC5yB,sBAAMP,EAAE,8GAA8GD,KAAK,YAC3H,sBAAMC,EAAE,iUAAiUF,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOC,cAAc,QAAQC,eAAe,aAEtaN,OAAQ,UAUV,CACEP,KAAM,SACNR,KAAM,QACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,8MAA8MD,KAAK,YAC3N,sBAAMC,EAAE,iXAAiXD,KAAK,YAC9X,sBAAMC,EAAE,uNAAuND,KAAK,YACpO,sBAAMC,EAAE,wNAAwND,KAAK,YACrO,sBAAMC,EAAE,yZAAyZD,KAAK,YACta,sBAAMC,EAAE,wZAAwZD,KAAK,eAEraE,OAAQ,UAEV,CACEP,KAAM,mBACNR,KAAK,kBACLS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,siCAAsiCD,KAAK,UAAUD,OAAO,UAAU,eAAa,SAC3lC,sBAAME,EAAE,6ZAA6ZD,KAAK,UAAUD,OAAO,UAAU,eAAa,SACld,sBAAME,EAAE,m+BAAm+BD,KAAK,eAEh/BE,OAAQ,UAEV,CACEP,KAAM,yBACNR,KAAK,WACLS,KAAM,qBAAKhC,GAAG,MAAM6C,QAAQ,MAAMZ,MAAM,6BAA6Ba,MAAM,+BAA+BrC,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,gBAAnI,SAAmJ,mBAAGlC,GAAG,OAAN,SACzJ,sBAAMA,GAAG,QAAQqC,EAAE,+8HAA+8HF,OAAO,OAAOC,KAAK,UAAU,YAAU,gBACzgIE,OAAQ,WAGZ,QAAW,CAaT,CACEP,KAAM,aACNR,KAAM,YACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,uNAAuND,KAAK,YACpO,sBAAMC,EAAE,4NAA4ND,KAAK,YACzO,sBAAMC,EAAE,8NAA8ND,KAAK,YAC3O,sBAAMC,EAAE,gmCAAgmCD,KAAK,eAE7mCE,OAAQ,UAEV,CACEP,KAAM,aACNR,KAAM,YACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACN,sBAAMM,SAAS,UAAUC,SAAS,UAAUH,EAAE,geAAgeD,KAAK,UAAWD,OAAO,UAAUM,cAAc,MAAMC,YAAY,WAE/kBJ,OAAQ,UAEV,CACEP,KAAM,UACNR,KAAM,SACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAQH,MAAM,6BAAnE,SAAgG,sBAAMG,KAAK,UAAUD,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOL,EAAE,ylBACrLC,OAAQ,UAEV,CACEP,KAAM,WACNR,KAAM,UACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,ofAAofD,KAAK,YACjgB,sBAAMC,EAAE,usBAAusBF,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOC,cAAc,QAAQC,eAAe,UAC5yB,sBAAMP,EAAE,8GAA8GD,KAAK,YAC3H,sBAAMC,EAAE,iUAAiUF,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOC,cAAc,QAAQC,eAAe,aAEtaN,OAAQ,UAUV,CACEP,KAAM,SACNR,KAAM,QACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,8MAA8MD,KAAK,YAC3N,sBAAMC,EAAE,iXAAiXD,KAAK,YAC9X,sBAAMC,EAAE,uNAAuND,KAAK,YACpO,sBAAMC,EAAE,wNAAwND,KAAK,YACrO,sBAAMC,EAAE,yZAAyZD,KAAK,YACta,sBAAMC,EAAE,wZAAwZD,KAAK,eAEraE,OAAQ,UAEV,CACEP,KAAM,gBACNR,KAAK,cACLS,KAAM,qBAAKC,MAAM,6BAA6BvB,OAAO,KAAKD,MAAM,KAAKyB,QAAQ,cAAvE,SACJ,sBAAMG,EAAE,idAAidD,KAAK,cACheE,OAAQ,WAGZ,SAAY,CACV,CACEP,KAAM,aACNR,KAAM,YACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACN,sBAAMM,SAAS,UAAUC,SAAS,UAAUH,EAAE,geAAgeD,KAAK,UAAWD,OAAO,UAAUM,cAAc,MAAMC,YAAY,WAE/kBJ,OAAQ,UAEV,CACEP,KAAM,UACNR,KAAM,SACNS,KAAM,qBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAQH,MAAM,6BAAnE,SAAgG,sBAAMG,KAAK,UAAUD,OAAO,UAAUM,cAAc,MAAMC,YAAY,OAAOL,EAAE,ylBACrLC,OAAQ,UAEV,CACEP,KAAM,SACNR,KAAM,QACNS,KAAM,sBAAKvB,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACN,sBAAMI,EAAE,8MAA8MD,KAAK,YAC3N,sBAAMC,EAAE,iXAAiXD,KAAK,YAC9X,sBAAMC,EAAE,uNAAuND,KAAK,YACpO,sBAAMC,EAAE,wNAAwND,KAAK,YACrO,sBAAMC,EAAE,yZAAyZD,KAAK,YACta,sBAAMC,EAAE,wZAAwZD,KAAK,eAEraE,OAAQ,Y,oLCzMd,MAAMS,GAAU,QAAC,MAAEC,EAAF,SAASC,GAAV,SACd,sBAAKpD,MAAO,CAAEqD,QAAS,OAAQzC,MAAO,OAAQ0C,SAAU,IAAxD,UACE,mBAAGtD,MAAO,CAAEuD,WAAY,OAAQ3C,MAAO,IAAK0C,SAAU,IAAtD,SAA6DH,IAC7D,mBAAGnD,MAAO,CAAEwD,WAAY,EAAGC,YAAa,GAAIH,SAAU,IAAtD,eACA,mBAAGtD,MAAO,CAAE0D,KAAM,EAAGJ,SAAU,IAA/B,SAAsCF,MAJ1B,EAqDDO,OA7Cf,YAA0C,IAAtB,OAAEC,EAAF,QAAUC,GAAW,EACvC,OACE,eAACC,GAAA,EAAD,CAAOC,OAAQH,EAAQI,OAAQ,IAAMH,IAArC,UACE,sBAAK9D,UAAU,eAAeC,MAAO,CAAEuD,WAAY,QAAnD,0BAEE,wBACE,aAAW,QACXxD,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,KACPgC,GAAS,EANb,SASE,sBAAM,eAAa,EAAnB,uBAGJ,sBAAK9D,UAAU,aAAaC,MAAO,CAAEiE,WAAY,GAAjD,UACE,cAACf,GAAD,CAASC,MAAM,OAAf,SACGS,EACGM,KAAOC,IAAExH,IAAIiH,EAAQ,gBAAsF,MAAtEO,IAAExH,IAAIiH,EAAQ,eAAeO,IAAExH,IAAIiH,EAAQ,eAAeQ,OAAO,GAAS,GAAG,MAAMC,OACtH,yBAEF,KAEN,cAACnB,GAAD,CAASC,MAAM,UAAf,SAA0BgB,IAAExH,IAAIiH,EAAQ,wBACxC,cAACV,GAAD,CAASC,MAAM,aAAf,SACGgB,IAAExH,IAAIiH,EAAQ,sBAEjB,cAACV,GAAD,CAASC,MAAM,iBAAf,SACGgB,IAAExH,IAAIiH,EAAQ,yBAEjB,cAACV,GAAD,CAASC,MAAM,SAAf,SAAyBgB,IAAExH,IAAIiH,EAAQ,qBACvC,cAACV,GAAD,CAASC,MAAM,aAAf,SACGgB,IAAExH,IAAIiH,EAAQ,sBAEjB,cAACV,GAAD,CAASC,MAAM,OAAf,SAAuBgB,IAAExH,IAAIiH,EAAQ,iBACrC,cAACV,GAAD,CAASC,MAAM,WAAf,SACGgB,IAAExH,IAAIiH,EAAQ,+BAKxB,EC7Cc,SAASU,GAAcpG,GACpC,MAAOqG,EAASC,GAAcnG,mBAAS,KAChCoG,EAAUC,GAAerG,mBAAS,MAEzCO,qBAAU,KACR,MAAM,UAAE+F,GAAczG,EACtBsG,EAAWG,EAAX,GACC,CAACzG,IAEJ,MAAM0G,EAAY,CAChB/C,QAAS,CAACgD,EAAGC,EAAKC,KAChBL,EAAYI,EAAZ,GAsBEE,EAAoB,CAExBC,kBAAkB,EAClBC,UAAS,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAASH,OACpBe,YAAa,EACbC,iBAAiB,IAGb,QAAEC,GAAYnH,EAEpB,OACE,eAACoH,EAAA,EAAD,WACE,cAAC,KAAD,CACEC,SAAS,KACT/I,KAAM+H,GAAW,GACjBiB,QAjCU,CACd,CACEC,UAAW,kBACXC,KAAM,WACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,qBACXC,KAAM,UACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,cAoBtBE,QAAM,EACNC,QAAM,EALR,SAOI/H,GACA,cAAC,sBAAD,CAAoBgI,WAAYC,KAAkBnB,GAAlD,SACG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,cAAC,KAAD,CACEC,OAAK,EACLC,UAAU,EACV3B,UAAWA,EACX4B,iBACEnB,EACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SACE,KAKJ,cAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,SACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,UAzBtC,MAiCP,cAAC,GAAD,CAAYxC,OAAQa,EAAUZ,QAAS,IAAMa,EAAY,UAG9D,CCxFD,MAAMsC,GAAS,CAAC,UAAW,UAAW,UAAW,WAC3CC,GAAW,CACfC,QAAS,UACTC,UAAW,WAEPC,GAAW,CACfC,OAAQ,UACRC,SAAU,UACVC,IAAK,UACL,WAAY,WAERC,GAAW,CACfN,QAAS,UACTC,UAAW,WAGPM,GAASC,KAAKC,GAAK,IACnBC,GAAwB,IAQvB,IARwB,GAC7BC,EAD6B,GAE7BC,EAF6B,SAG7BC,EAH6B,YAI7BC,EAJ6B,YAK7BC,EAL6B,QAM7BC,EAN6B,MAO7BC,GACI,EACJ,MAAMC,EAASJ,EAA4C,IAA7BC,EAAcD,GACtCK,EAAIR,EAAKO,EAASV,KAAKY,KAAKP,EAAWN,IACvCc,EAAIT,EAAKM,EAASV,KAAKc,KAAKT,EAAWN,IAE7C,OACE,sBACEY,EAAGA,EACHE,EAAGA,EACHhG,KAAK,QACLkG,WAAYJ,EAAIR,EAAK,QAAU,MAC/Ba,iBAAiB,UALnB,oBAOiB,IAAVR,GAAeS,QAAQ,GAP9B,MADF,EAgdaC,OAncQ1K,IAAW,IAAD,wBAC/B,MAAM,QACJmH,GAAU,EADN,aAEJwD,EAAe,GAFX,cAGJC,EAAgB,GAHZ,mBAIJC,EAAqB,GAJjB,aAKJC,EAAe,GALX,cAMJC,EAAgB,GANZ,kBAOJC,EAAoB,IAClBhL,EAQEiL,GALJN,EAAaO,KAAKC,IAAD,CACf1E,UAAW0E,EAAEC,OAAOC,SACpBC,QAASH,EAAEI,OAAOC,gBAGP,CACb,CACEhI,KAAM,UACNlE,MAAK,OAAEwL,QAAF,IAAEA,OAAF,EAAEA,EAAcW,cAEvB,CACEjI,KAAM,YACNlE,MAAK,OAAEwL,QAAF,IAAEA,OAAF,EAAEA,EAAcY,kBAInBC,EAAS,CACb,CAAEnI,KAAM,UAAWlE,OAAoB,OAAbyL,QAAa,IAAbA,OAAA,EAAAA,EAAea,oBAAqB,GAC9D,CAAEpI,KAAM,iBAAkBlE,OAAoB,OAAbyL,QAAa,IAAbA,OAAA,EAAAA,EAAec,oBAAqB,GACrE,CAAErI,KAAM,kBAAmBlE,OAAoB,OAAbyL,QAAa,IAAbA,OAAA,EAAAA,EAAee,iBAAkB,IAG/DC,EAAS,CACb,CACEvI,KAAM,SACNlE,OACE,UAAAsL,EAAcoB,QAAQb,GAAwB,UAAlBA,EAAEc,cAAyB,UAAvD,mBAA2DC,kBAA3D,eACIhG,SAAU,EAChBpB,QAAS,IACJ,IAAIqH,IAAJ,UACDvB,EACGoB,QAAQb,GAAwB,UAAlBA,EAAEc,cAAyB,UAF3C,aACD,EAEIC,WAAWhB,KAAKC,GAAMA,EAAEiB,YAE9BC,KAAK,OAET,CACE7I,KAAM,WACNlE,OACE,UAAAsL,EAAcoB,QAAQb,GAAwB,WAAlBA,EAAEc,cAA0B,UAAxD,mBAA4DC,kBAA5D,eACIhG,SAAU,EAChBpB,QAAS,IACJ,IAAIqH,IAAJ,UACDvB,EACGoB,QAAQb,GAAwB,UAAlBA,EAAEc,cAAyB,UAF3C,aACD,EAEIC,WAAWhB,KAAKC,GAAMA,EAAEiB,YAE9BC,KAAK,OAET,CACE7I,KAAM,MACNlE,OACE,UAAAsL,EAAcoB,QAAQb,GAAwB,UAAlBA,EAAEc,cAAyB,UAAvD,mBAA2DC,kBAA3D,eACIhG,SAAU,EAChBpB,QAAS,IACJ,IAAIqH,IAAJ,UACDvB,EACGoB,QAAQb,GAAwB,WAAlBA,EAAEc,cAA0B,UAF5C,aACD,EAEIC,WAAWhB,KAAKC,GAAMA,EAAEiB,YAE9BC,KAAK,OAET,CACE7I,KAAM,WACNlE,OACE,UAAAsL,EAAcoB,QAAQb,GAAwB,QAAlBA,EAAEc,cAAuB,UAArD,mBAAyDC,kBAAzD,eACIhG,SAAU,EAChBpB,QAAS,IACJ,IAAIqH,IAAJ,UACDvB,EACGoB,QAAQb,GAAwB,QAAlBA,EAAEc,cAAuB,UAFzC,aACD,EAEIC,WAAWhB,KAAKC,GAAMA,EAAEiB,YAE9BC,KAAK,QAIX,SAASC,EAAT,GAAoD,IAA7B,QAAEC,EAAF,MAAWC,EAAX,OAAkBC,GAAU,EACpC,IAAD,MAAZ,OAAIA,EAEA,sBAAK3K,MAAO,CAAEC,gBAAiB,sBAAsByG,MAAO,QAASZ,QAAS,IAA9E,UACE,uDAAgB2E,EAAQ,UAAxB,aAAgB,EAAYjN,SAC5B,sDAAeiN,EAAQ,UAAvB,iBAAe,EAAYA,eAA3B,aAAe,EAAqBzH,cAKnC,IACR,CAED,SAAS4H,EAAT,GAA0D,IAA7B,QAAEH,EAAF,MAAWC,EAAX,OAAkBC,GAAU,EAC1C,IAAD,EAAZ,OAAIA,EAEA,qBAAK3K,MAAO,CAAEC,gBAAiB,sBAAuByG,MAAO,QAASZ,QAAS,IAA/E,SACE,wCAAM2E,EAAQ,UAAd,aAAM,EAAY/I,SAKjB,IACR,CAED,MAAMmJ,EAAS,CACb,CACEnJ,KAAM,UACNlE,MAAK,OAAE0L,QAAF,IAAEA,OAAF,EAAEA,EAAmBS,cAE5B,CACEjI,KAAM,YACNlE,MAAK,OAAE0L,QAAF,IAAEA,OAAF,EAAEA,EAAmBU,iBAIxBkB,EAAS,CACb,CAAEpJ,KAAM,UAAWlE,OAAyB,OAAlBuL,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBgC,yBAA0B,GACxE,CACErJ,KAAM,iBACNlE,OAAyB,OAAlBuL,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBiC,uBAAwB,GAErD,CACEtJ,KAAM,kBACNlE,OAAyB,OAAlBuL,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBkC,mBAAoB,IAI7CC,EAAY,CAACC,EAAOnI,KACxB,OAAQmI,GACN,IAAK,UACHC,OAAOC,KAAK,6CACZ,MAEF,IAAK,kBACHD,OAAOC,KAAK,6CACZ,MAEF,IAAK,UACHD,OAAOC,KAAP,+BAAoCrI,EAAQsI,MAAM,MAAMf,SACxD,MAEF,IAAK,UACHa,OAAOC,KAAK,0CACZ,MAEF,IAAK,YACHD,OAAOC,KAAK,2CACZ,MAEF,IAAK,iBACHD,OAAOC,KAAK,iDAtBhB,EA8BIE,EAAkBJ,IACtB,OAAQA,GACN,IAAK,UACHC,OAAOC,KAAK,8CACZ,MAEF,IAAK,kBACHD,OAAOC,KAAK,8CACZ,MAEF,IAAK,UACHD,OAAOC,KAAK,2CACZ,MAEF,IAAK,YACHD,OAAOC,KAAK,4CACZ,MAEF,IAAK,iBACHD,OAAOC,KAAK,kDAlBhB,EA0BF,OACE,mCACE,cAACjL,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,SACI,cAACiF,EAAA,EAAD,UACE,gCACE,sBACEtF,MAAO,CACLqD,QAAS,OACTxC,OAAQ,IACRD,MAAO,OACP4K,UAAW,GACXC,SAAU,UANd,UASE,qBACEzL,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbjI,YAAa,GACbkI,YAAa,4BALjB,SAQE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAC8F,QAAQ,IAApB,gCACA,cAAC8F,GAAA,EAAD,CAAqB5L,MAAO,CAAC8F,QAAQ,gBAArC,SACE,cAAC,GAAD,CAAgBT,QAASA,EAASV,UAAWkE,WAInD,qBACE7I,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbG,cAAe,GACfpI,YAAa,GACbkI,YAAa,4BANjB,SASE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAE8F,QAAS,IAAtB,2BACuB,IAAtBkD,EAAa5E,QAAc,sBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,cAAmC,cAACrF,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAA9D,OAC5B,eAACkF,GAAA,EAAD,CAAqB5L,MAAO,CAAC6L,cAAc,IAA3C,UAC4C,IAAzC1C,EAAOe,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,QAAe,qBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,qBAChD,eAACC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAA+C,IAAzC2M,EAAOe,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK+E,EACxDiD,WAAW,EACX1B,MAAO9C,GAEPrF,KAAK,UACL8J,QAAQ,QACRxK,QAAUgD,IAAD,eAAKqG,EAAS,OAACrG,QAAD,IAACA,GAAD,UAACA,EAAG4F,eAAJ,iBAAC,EAAYA,eAAb,aAAC,EAAqB/I,KAApC,EAPX,UAS6C,IAAzCyH,EAAOe,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK+E,GAAQC,KAAI,CAACkD,EAAOnE,IACtE,cAACoE,GAAA,EAAD,CAEEhK,KAAM0E,GAASqF,EAAM5K,OAFvB,eACeyG,QAKnB,cAACqE,GAAA,EAAD,eAKR,qBACExM,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbG,cAAe,GACfF,YAAa,4BALjB,SAQE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAE8F,QAAS,IAAtB,2BACwB,IAAvBmD,EAAc7E,QAAc,sBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,cAAmC,cAACrF,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAA9D,OAC7B,eAACkF,GAAA,EAAD,CAAqB5L,MAAO,CAAC6L,cAAc,IAA3C,UAC0C,IAAzChC,EAAOK,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,QAAe,qBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,uBAC9C,eAACC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAA+C,IAAzCqN,EAAOK,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAKyF,EACxDuC,WAAW,EACX1B,MAAO9C,GAEPrF,KAAK,UACL8J,QAAQ,QACRxK,QAAUgD,IAAD,eAAKqG,EAAS,OAACrG,QAAD,IAACA,GAAD,UAACA,EAAG4F,eAAJ,iBAAC,EAAYA,eAAb,aAAC,EAAqB/I,KAApC,EAPX,UAS6C,IAAzCmI,EAAOK,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAKyF,GAAQT,KAAI,CAACkD,EAAOnE,IACtE,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,CAASC,QAAS,cAAC7B,EAAD,oBAO5B,sBACE5K,MAAO,CACLqD,QAAS,OACTxC,OAAQ,IACRD,MAAO,OACP4K,UAAW,GACXC,SAAU,UANd,UASE,qBACEzL,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbG,cAAe,GACfpI,YAAa,GACbkI,YAAa,4BANjB,SASE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAC8F,QAAQ,IAApB,4BACwB,IAAvBgD,EAAc1E,QAAc,sBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,cAAmC,cAACrF,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAA9D,OAC7B,eAACkF,GAAA,EAAD,CAAqB5L,MAAO,CAAC6L,cAAc,IAA3C,UAC0C,IAAzC5B,EAAOC,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,QAAe,qBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,qBAC9C,eAACC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAA+C,IAAzCyN,EAAOC,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK6F,EACxDmC,WAAW,EACX1B,MAAO9C,GAEPrF,KAAK,UACL8J,QAAQ,QACRxK,QAAUgD,IAAD,eAAKqG,EAAU,UAAD,OAAWrG,QAAX,IAAWA,GAAX,UAAWA,EAAG4F,eAAd,iBAAW,EAAYA,eAAvB,aAAW,EAAqBzH,QAA9C,EAPX,UAS6C,IAAzCiH,EAAOC,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK6F,GAAQb,KAAI,CAACkD,EAAOnE,IACtE,cAACoE,GAAA,EAAD,CAEEhK,KAAM6E,GAASkF,EAAM5K,OAFvB,eACeyG,QAKnB,cAACqE,GAAA,EAAD,CAASC,QAAS,cAACjC,EAAD,iBAK1B,qBACExK,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbG,cAAe,GACfpI,YAAa,GACbkI,YAAa,4BANjB,SASE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAE8F,QAAS,IAAtB,gCAC4B,IAA3BoD,EAAkB9E,QAAc,sBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,cAAmC,cAACrF,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAA9D,OACjC,eAACkF,GAAA,EAAD,CAAqB5L,MAAO,CAAC6L,cAAc,IAA3C,UAC0C,IAAzChB,EAAOX,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,QAAe,qBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,qBAC9C,eAACC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAA+C,IAAzCqO,EAAOX,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAKyG,EACxDuB,WAAW,EACX1B,MAAO9C,GAEPrF,KAAK,UACL8J,QAAQ,QACRxK,QAAUgD,IAAD,eAAK0G,EAAc,OAAC1G,QAAD,IAACA,GAAD,UAACA,EAAG4F,eAAJ,iBAAC,EAAYA,eAAb,aAAC,EAAqB/I,KAAzC,EAPX,UAS6C,IAAzCmJ,EAAOX,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAKyG,GAAQzB,KAAI,CAACkD,EAAOnE,IACtE,cAACoE,GAAA,EAAD,CAEEhK,KAAMiF,GAAS8E,EAAM5K,OAFvB,eACeyG,QAKnB,cAACqE,GAAA,EAAD,eAKR,qBACExM,MAAO,CACL0D,KAAM,EACNgI,YAAa,QACbG,cAAe,GACfF,YAAa,4BALjB,SAQE,sBAAK3L,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oBAAIb,MAAO,CAAE8F,QAAS,IAAtB,gCAC6B,IAA5BiD,EAAmB3E,QAAc,sBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,cAAmC,cAACrF,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAA9D,OAClC,eAACkF,GAAA,EAAD,CAAqB5L,MAAO,CAAC6L,cAAc,IAA3C,UAC0C,IAAzCf,EAAOZ,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,QAAe,qBAAKpE,MAAO,CAAC8L,UAAU,UAAvB,uBAC9C,eAACC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAA+C,IAAzCsO,EAAOZ,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK0G,EACxDsB,WAAW,EACX1B,MAAO9C,GAEPrF,KAAK,UACL8J,QAAQ,QACRxK,QAAUgD,IAAD,eAAK0G,EAAc,OAAC1G,QAAD,IAACA,GAAD,UAACA,EAAG4F,eAAJ,iBAAC,EAAYA,eAAb,aAAC,EAAqB/I,KAAzC,EAPX,UAS6C,IAAzCoJ,EAAOZ,QAAQb,GAAc,IAAVA,EAAE7L,QAAW4G,OAAa,GAAK0G,GAAQ1B,KAAI,CAACkD,EAAOnE,IACtE,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,CAASC,QAAS,cAAC7B,EAAD,4BAnPxC,ECpJa8B,OA9FG,KAChB,MAAO7D,EAAc8D,GAAmBtO,mBAAS,KAC1CyK,EAAe8D,GAAoBvO,mBAAS,KAC5C0K,EAAoB8D,GAAyBxO,mBAAS,KACtD4K,EAAe6D,GAAoBzO,mBAAS,KAC5C0O,EAAkBC,GAAwB3O,mBAAS,KACnD2K,EAAciE,GAAmB5O,mBAAS,KAC1CgH,EAAS6H,GAAc7O,oBAAS,GAEvCO,qBAAU,KACRuO,IACAC,IACAC,IACAC,IACAC,IACAC,GAA0B,GACzB,IAEH,MAAML,EAAqB/Q,UACzB,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,8BAC1B8C,EAAKjD,KAAKsB,QAAQ8O,EAAiBnN,EAAKjD,KAAKA,KAClD,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GAGG8R,EAAuBhR,UAC3B,IACE8Q,GAAW,GACX,MAAMzN,QAAaC,EAAO/C,IAAI,gCAC1B8C,EAAKjD,KAAKsB,QAAQ6O,EAAgBlN,EAAKjD,KAAKA,KACjD,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACD4R,GAAW,EAAX,EAGII,EAAqBlR,UACzB,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,uCAC1B8C,EAAKjD,KAAKsB,QAAQgP,EAAiBrN,EAAKjD,KAAKA,KAClD,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,uBAAwBlE,EACrC,GAGG+R,EAAiBjR,UACrB,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,4CAC1B8C,EAAKjD,KAAKsB,QAAQ+O,EAAsBpN,EAAKjD,KAAKA,KACvD,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,WAAYlE,EACzB,GAGGiS,EAAyBnR,UAC7B,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,yCAC1B8C,EAAKjD,KAAKsB,QAAQkP,EAAqBvN,EAAKjD,KAAKA,KAAK,GAC3D,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,WAAYlE,EACzB,GAGGkS,EAA2BpR,UAC/B,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,oCAC1B8C,EAAKjD,KAAKsB,QAAQmP,EAAgBxN,EAAKjD,KAAKA,KAAK,GACtD,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GAGH,OACE,eAAC8E,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,uBACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,GAAD,CACEsF,QAASA,EACTyD,cAAeA,EACfD,aAAcA,EACdI,cAAeA,EACfF,mBAAoBA,EACpBC,aAAcA,EACdE,kBAAmB6D,UAZ7B,E,qBCpEK3Q,eAAeqR,GAAWtN,GAC/B,IACE,MAAMuN,QAAiBC,EAAIhR,IAAJ,sBAAuBwD,KACxC,KAAE3D,EAAF,OAAQsB,GAAW4P,EAASlR,KAClC,GAAIsB,EACF,OAAOtB,CAEV,CACD,MAEC,CACD,OAAO,CACR,CCbD,MAAM,UAAEoR,IAAcC,UAqPPC,OAnPK,KAClB,MAAOC,EAAaC,GAAkB3P,mBAAS,KACxCkG,EAASC,GAAcnG,mBAAS,KAChCgH,EAAQ6H,GAAe7O,oBAAS,GAEvC,IAAI4P,EAAUC,cACGxP,cAAjB,MACM1D,EAAO2D,aAAawP,GAAMA,EAAE3T,eAAeQ,OAEjD4D,qBAAU,KACRwP,GAAW,GACV,IAEH,MAAMA,EAAY,KAChBlB,GAAW,GD3BR9Q,iBACL,IACE,MAAMsR,QAAiBC,EAAIhR,IAAI,iBACzB,KAAEH,EAAF,OAAQsB,GAAW4P,EAASlR,KAClC,GAAIsB,EACF,OAAOtB,CACV,CACD,MAAS,CACT,MAAO,EACR,CCmBG6R,GAAkBhR,KAAKmH,GAAY8J,SAAQ,IAAIpB,GAAW,IAA1D,EAcIqB,EAAsB,KAC1BhP,QAAQC,IAAI,iBAAkBuO,EAA9B,EAiBIvI,EAAU,CAAC,CACfC,UAAW,YACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,QACrB,CACD6E,UAAW,aACXC,KAAM,eACNC,MAAM,EACNI,QAAS,4BACTF,YAAa,CAAEjF,MAAO,OACtBgF,YAAY,GACX,CACDH,UAAW,YACXC,KAAM,aACNC,MAAM,EACNI,QAAS,4BACTF,YAAa,CAAEjF,MAAO,OACtBgF,YAAY,GACX,CACDH,UAAW,WACXC,KAAM,YACNC,MAAM,EACNI,QAAS,4BACTF,YAAa,CAAEjF,MAAO,OACtBgF,YAAY,GACX,CACDH,UAAW,QACXE,MAAM,EACND,KAAM,gBACNK,QAAS,4BACTF,YAAa,CAAEjF,MAAO,OACtBgF,YAAY,GAEd,CACED,MAAM,EACND,KAAM,UACNK,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEjF,MAAO,OACtB4N,UAAW,SAAUC,EAAM3J,GACzB,OACE,sBAAK9E,MAAO,CAAEqD,QAAS,OAAQzC,MAAO,OAAQ8N,QAAS,OAAvD,UACE,eAACC,GAAA,EAAD,CACEC,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLqF,MAAO,CAAE6O,SAAU,OACnB1O,GAAG,cACH0B,QAAS,IACPoM,EAAQa,KAAR,iCAAuChK,EAAIiK,YAR/C,UAWE,mBAAGC,MAAM,gBACT,cAACC,GAAA,EAAD,CAAqBC,OAAO,cAAcC,UAAU,EAApD,6BAKF,eAACR,GAAA,EAAD,CACEC,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLwF,GAAG,eACHH,MAAO,CAAE6O,SAAU,OACnBhN,QAAS,IACPoM,EAAQa,KAAK,4BAA8BhK,EAAIiK,WARnD,UAWE,mBAAGC,MAAM,cAAc,cAAY,SACnC,cAACC,GAAA,EAAD,CAAqBC,OAAO,eAAeC,UAAU,EAArD,8BAIa,UAAdnU,EAAK2G,MACJ,eAACgN,GAAA,EAAD,CACEC,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLqF,MAAO,CAAE6O,SAAU,OACnB1O,GAAG,cACH0B,QAAS,IACPoM,EAAQa,KAAR,qCAA2ChK,EAAIiK,YARnD,UAWE,mBAAGC,MAAM,eAAe,cAAY,SACpC,cAACC,GAAA,EAAD,CAAqBC,OAAO,cAAcC,UAAU,EAApD,iCAOT,IAGGnK,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAWX,EAAQH,QAGrB,OACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,sBACA,cAACO,EAAA,EAAD,UACA,gCACG,eAGH,cAACgF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACI,cAAC,KAAD,CACEwF,SAAS,YACT/I,KAAM+H,EACNiB,QAASA,EACTQ,QAAM,EAJR,SAMG9H,GACC,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAII,QAAC,gBACCoB,EADD,qBAECC,GAFF,SAIE,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,GAA5B,UACE,eAACtI,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,aAAaC,MAAO,CAACqD,QAAQ,OAAQkM,WAAW,UAAtE,+BAEE,cAAC,iCAAD,CACExP,UAAU,oCACNqG,IAEL2H,EAAY3J,OAAS,GACpB,cAACuK,GAAA,EAAD,CACE5O,UAAU,oBACV8B,QAAS0M,EACTK,SAAO,EAHT,SAKE,mBAAG7O,UAAU,0BAInB,eAACgH,GAAA,EAAD,CAAKhH,UAAU,6BAAf,UACE,cAAC6N,GAAD,CACE7N,UAAU,wBACN7B,EAAMsR,cAEZ,cAACb,GAAA,EAAD,CACEjI,MAAM,UACN3G,UAAU,kBACV8B,QAAS,IAAMoM,EAAQa,KAAK,yBAH9B,mCASJ,cAAC,KAAD,CACExI,OAAK,EACLC,UAAU,EAEVC,iBAAkBnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UACtEC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,IAEN,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAACwL,UAAU,IAAvB,UACE,cAACzE,GAAA,EAAD,UACE,cAAC,6BAAD,IACMX,MAGR,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IACMX,WAtDd,YArBlB,E,oGCtKa,SAASqJ,GAAT,GAAmD,IAAlC,UAAEC,GAAY,KAAUxR,GAAS,EAE/D,OACE,eAACyQ,GAAA,EAAD,IAAYzQ,EAAZ,UACGwR,GAAa,sBAAM3P,UAAU,mCAAmCC,MAAO,CAAEyD,YAAa,KADzF,IACmGvF,EAAMkF,WAG5G,C,kCCPc,SAASuM,KACtB,MAAMC,EAAgBjR,aAAYlE,GAASA,EAAMQ,QACjD,OAAI2U,EAAcjV,KACR,cAACkV,GAAA,EAAD,CAAOnJ,MAAOkJ,EAAcjV,KAA5B,SAAmCiV,EAAc1U,UAEpD,IACR,CCUD,MAAM4U,GAAa,IAAe,IAAd,KAAEC,GAAW,EAC/B,MAAOC,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAAC,GAAD,CAAQwD,QAAS,IAAIoO,GAAUD,GAAQtJ,MAAM,SAA7C,SACE,mBAAG3G,UAAU,uBAEf,eAAC+D,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAIiM,GAAS,GAA3C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAIiM,GAAS,GAFvB,kDAMA,cAACE,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,mPAGA,eAACqQ,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC,GAAD,CAAQ2G,MAAM,SAAS2J,KAAK,KAAKxO,QArBnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EAmBM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAAC,GAAD,CAAQ4M,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAIoO,GAAS,GAAhD,4BApBR,EAuMaK,OA1KMpS,IACnB,MAAOqS,EAAWC,GAAgBnS,mBAAS,CACzCoS,WAAY,GACZC,UAAW,GACXC,SAAU,GACVC,MAAO,KAET,IAAI3C,EAASC,cACb,MAAM,GAAC/N,GAAM0Q,cAEbjS,qBAAU,KACJV,EAAM4S,SACRN,EAAatS,EAAM4S,QAAnB,GACD,CAAC5S,EAAM4S,UAEV,MAAOC,EAAkBC,GAAuB3S,mBAAS,CACvDoS,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,OAAO,IAGH5V,EAAO2D,aAAawP,GAAMA,EAAE3T,eAAeQ,OAgB3CiW,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC3DuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EASF,OACE,eAACG,GAAA,EAAD,CAAMvP,KAAK,OAAO3B,MAAO,CAAE6O,SAAU,QAAUsC,SA5B7BtM,IAClB,IAAIuM,EAAO,EACXvM,EAAEwM,iBACFC,OAAOC,QAAQhB,GAAWiB,SAAQ,IAAa,IAAXC,EAAG/Q,GAAO,EACnC,cAAL+Q,GAAoBC,KAAUC,QAAQjR,KACxC0Q,EAAO,EACPL,EAAiBU,IAAK,EACtBT,EAAoB,IAAKD,IAC1B,IAGU,IAATK,GAAYlT,EAAM0T,cAAcrB,EAApB,EAiBhB,UACE,cAACsB,GAAA,EAAD,UACE,cAAC,GAAD,MAEF,eAACA,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,aACH3C,MAAO+S,EAAUE,WACjBwB,QAASlB,EAAiBN,WAC1ByB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,6CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,gCACA,cAACC,GAAA,EAAD,CACE7R,GAAG,YACH3C,MAAO+S,EAAUG,UACjBuB,QAASlB,EAAiBL,UAC1BwB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,mDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,WAAX,+BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,WACH3C,MAAO+S,EAAUI,SACjBsB,QAASlB,EAAiBJ,SAC1BuB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,kDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,QAAX,2BACA,cAACC,GAAA,EAAD,CACErX,KAAK,QACLwF,GAAG,QACH3C,MAAO+S,EAAUK,MACjBqB,QAASlB,EAAiBH,MAC1BsB,SAAUjB,IAEZ,cAACkB,GAAA,EAAD,4CAEF,sBAAKnS,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAAC,GAAD,CACEuL,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,IAAMoM,EAAQa,KAAR,2BAAiC3O,IALlD,4BASA,eAAC,GAAD,CACEA,GAAG,kBACHyO,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,IAAMoM,EAAQa,KAAR,mCAAyC3O,IAN1D,UAQE,mBAAG6O,MAAM,2BARX,uBAYF,sBACEhP,MAAO,CACLwL,UAAW,GACXnI,QAAS,OACT+O,eAAgB,iBAJpB,UAOGlU,EAAMmU,UACL,sBAAKrS,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAACyM,GAAD,CAAYC,KAtFD,KAChB7R,EAAMoU,eACPpU,EAAMoU,eACP,IAoFO,eAAC,GAAD,CACE1D,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLwF,GAAG,eACH0B,QAAS3D,EAAMqU,qBANjB,UAQE,mBAAGvD,MAAM,cAAc,cAAY,SACnC,cAACC,GAAA,EAAD,CAAqBC,OAAO,eAAeC,UAAU,EAArD,8BAIa,UAAdnU,EAAK2G,MACJ,eAAC,GAAD,CACEiN,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLwF,GAAG,eACH0B,QAAS,IAAMoM,EAAQa,KAAR,qCAA2C3O,IAN5D,UAQE,mBAAG6O,MAAM,eAAe,cAAY,SACpC,cAACC,GAAA,EAAD,CAAqBC,OAAO,eAAeC,UAAU,EAArD,kCAOR,cAAC,GAAD,CAAQpP,UAAU,aAAapF,KAAK,SAApC,SACGuD,EAAMmU,SAAW,OAAS,gBAhHnC,ECtDaG,OAtCI,KACjB,IAAIvE,EAAUC,cACd,MAAM9Q,EAAWsB,cASjB,OACE,mCACE,eAAC0B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQa,KAAK,aAH9B,SAKE,mBAAG/O,UAAU,0BANjB,iBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CAAad,cAxBPxV,UAClB,MAAMuW,QLgCHvW,eAA0B0U,EAAS1T,GACxC,IACE,MAAMsQ,QAAiBC,EAAIlR,KAAJ,cAAwBqU,IACzC,KAAEtU,EAAF,OAAQsB,EAAR,QAAgB5C,GAAYwS,EAASlR,KAC3C,GAAIsB,EACF,OAAOtB,EAEPY,EAAShC,EAAaE,MAAMJ,GAC/B,CACD,MACEkC,EAAShC,EAAaE,MAAM,4BAC7B,CAED,OAAO,CACR,CK9CmBsX,CAAWC,EAAazV,GACpCuV,GACF1E,EAAQa,KAAK,YACd,gBAGH,EC0DagE,OAjEK,KAClB,IAAI7E,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,eAERC,EAASiC,GAAc1U,mBAAS,MAEvCO,qBAAU,KACRxB,EAAShC,EAAaG,SACtBkS,GAAWtN,GAAI9C,MAAKQ,IACdA,EACFkV,EAAWlV,GAGXT,EAAShC,EAAaE,MAAM,qBAC7B,GANH,GAQC,IAEH,MAAM8B,EAAWsB,cAcjB,OACE,mCACE,eAAC0B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,kBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CACE5B,QAASA,EACTuB,UAAU,EACVT,cAhCKiB,KNVhBzW,eAA2B+D,EAAI2Q,EAAS1T,GAC7C,IACE,MAAMsQ,QAAiBC,EAAIlR,KAAJ,uBAAyB0D,GAAM2Q,IAChD,KAAEtU,EAAF,OAAQsB,EAAR,QAAgB5C,GAAYwS,EAASlR,KAK3C,OADEY,EAHGU,EAGM1C,EAAaC,QAAQ,WAFrBD,EAAaE,MAAMJ,IAGvB4C,CACR,CACD,MAAQV,EAAShC,EAAaE,MAAM,yBAA2B,CAEhE,CMDG2X,CAAY9S,EAAI0S,EAAazV,EAA7B,EAgCckV,cA7BK,MNAhBlW,eAA6B+D,GAClC,IACE,MAAMuN,QAAiBC,EAAIlR,KAAJ,gCAAkC0D,KACnD,OAAErC,GAAW4P,EAASlR,KAC5B,GAAIsB,EAAQ,OAAO,CACpB,CAAC,MAAQ,CACV,OAAO,CACR,EMNGwU,CAAcnS,GAAI9C,MAAMS,IACnBA,GACDmQ,EAAQiF,QAAR,WACD,GAHH,EA6BcX,qBAAsB,IAAMtE,EAAQa,KAAK,4BAA4B3O,iBAtBrF,E,UC1BagT,OAzBG,CACdC,SAAU,CACN,CAAE,UAAa,EAAG,WAAc,kBAAmB,UAAa,QAAS,SAAY,UAAW,MAAS,+BACzG,CAAE,UAAa,EAAG,WAAc,WAAY,UAAa,GAAI,SAAY,IAAK,MAAS,yBACvF,CAAE,UAAa,EAAG,WAAc,aAAc,UAAa,OAAQ,SAAY,UAAW,MAAS,+BACnG,CAAE,UAAa,EAAG,WAAc,YAAkB,UAAa,MAAO,SAAY,UAAW,MAAS,oBACtG,CAAE,UAAa,GAAI,WAAc,cAAe,UAAa,MAAO,SAAY,OAAQ,MAAS,8BACjG,CAAE,UAAa,EAAG,WAAc,WAAY,UAAa,GAAI,SAAY,KAAM,MAAS,0BACxF,CAAE,UAAa,EAAG,WAAc,UAAW,UAAa,GAAI,SAAY,IAAK,MAAS,sBACtF,CAAE,UAAa,EAAG,WAAc,SAAU,UAAa,GAAI,SAAY,IAAK,MAAS,uBACrF,CAAE,UAAa,GAAI,WAAc,aAAc,UAAa,OAAQ,SAAY,QAAS,MAAS,sBAClG,CAAE,UAAa,GAAI,WAAc,aAAc,UAAa,OAAQ,SAAY,QAAS,MAAS,sBAClG,CAAE,UAAa,EAAG,WAAc,cAAe,UAAa,WAAY,SAAY,KAAM,MAAS,0BACnG,CAAE,UAAa,GAAI,WAAc,gBAAiB,UAAa,SAAU,SAAY,IAAK,MAAS,mBACnG,CAAE,UAAa,GAAI,WAAc,aAAc,UAAa,MAAO,SAAY,OAAQ,MAAS,mCAChG,CAAE,UAAa,GAAI,WAAc,mBAAoB,UAAa,OAAQ,SAAY,UAAW,MAAS,yBAE9GC,cAAe,CACX,CAAE,SAAY,GAAI,aAAgB,GAAI,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,IAAK,aAAgB,GAAI,WAAc,EAAG,SAAY,UAAW,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,QAAS,aAAgB,cAAe,YAAe,MAAO,YAAe,cAAe,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,GAAI,aAAgB,GAAI,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,GAAI,aAAgB,GAAI,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,GAAI,aAAgB,GAAI,WAAc,GAAI,SAAY,WAAY,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,QAAS,aAAgB,gBAAiB,YAAe,SAAU,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,IAAK,aAAgB,kCAAmC,WAAc,EAAG,SAAY,iBAAkB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,GAAI,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,GAAI,WAAc,EAAG,SAAY,cAAe,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,QAAS,aAAgB,cAAe,YAAe,MAAO,YAAe,cAAe,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,IAAK,aAAgB,GAAI,WAAc,EAAG,SAAY,UAAW,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,QAAS,aAAgB,cAAe,YAAe,MAAO,YAAe,cAAe,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,IAAK,aAAgB,GAAI,WAAc,EAAG,SAAY,UAAW,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,QAAS,aAAgB,cAAe,YAAe,MAAO,YAAe,cAAe,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,GAAI,aAAgB,GAAI,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,gBAAiB,WAAc,GAAI,QAAW,GAAI,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,EAAG,iBAAoB,iBAAmB,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,GAAI,aAAgB,yBAA0B,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,GAAI,aAAgB,yBAA0B,WAAc,EAAG,SAAY,YAAa,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,GAAI,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,WAAY,YAAe,MAAO,YAAe,MAAO,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,kBAAmB,aAAgB,UAAW,iBAAoB,UAAW,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,UAAW,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,SAAU,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,YAAa,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,aAAc,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,aAAc,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,eAAgB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,YAAa,aAAgB,UAAW,iBAAoB,YAAa,WAAc,SAAU,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,eAAgB,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,gBAAiB,YAAe,kBAAmB,YAAe,kBAAmB,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,4BAA8B,CAAE,SAAY,IAAK,aAAgB,yBAA0B,WAAc,EAAG,SAAY,UAAW,aAAgB,UAAW,iBAAoB,YAAa,WAAc,UAAW,QAAW,QAAS,YAAe,OAAQ,aAAgB,aAAc,YAAe,MAAO,YAAe,WAAY,WAAc,sBAAuB,SAAY,GAAI,iBAAoB,6BAEzyUC,MAAO,CACH,CAAC,SAAW,KAAK,QAAU,KAAK,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,mCAAmC,mBAAqB,KAAK,MAAQ,mCAAmC,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAK,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,GAAG,CAAC,SAAW,KAAK,QAAU,CAAC,UAAY,GAAG,WAAa,iBAAiB,UAAY,OAAO,SAAW,aAAa,MAAQ,iBAAiB,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,gBAAgB,mBAAqB,KAAK,MAAQ,gBAAgB,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAM,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,GAAG,CAAC,SAAW,KAAK,QAAU,CAAC,UAAY,EAAE,WAAa,WAAW,UAAY,QAAQ,SAAW,IAAI,MAAQ,yBAAyB,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,aAAa,mBAAqB,KAAK,MAAQ,aAAa,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAM,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,GAAG,CAAC,SAAW,CAAC,WAAa,EAAE,UAAY,WAAW,SAAW,IAAI,UAAY,wBAAwB,QAAU,MAAM,YAAc,UAAU,UAAY,EAAE,QAAU,CAAC,UAAY,EAAE,WAAa,WAAW,UAAY,QAAQ,SAAW,IAAI,MAAQ,yBAAyB,UAAW,EAAK,YAAc,OAAO,QAAU,KAAK,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,qBAAqB,mBAAqB,KAAK,MAAQ,qBAAqB,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAM,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,GAAG,CAAC,SAAW,KAAK,QAAU,CAAC,UAAY,GAAG,WAAa,mBAAmB,UAAY,OAAO,SAAW,UAAU,MAAQ,wBAAwB,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,qBAAqB,mBAAqB,KAAK,MAAQ,qBAAqB,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAM,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,GAAG,CAAC,SAAW,CAAC,WAAa,GAAG,UAAY,WAAW,SAAW,KAAK,UAAY,wBAAwB,QAAU,yDAAyD,YAAc,UAAU,UAAY,EAAE,QAAU,CAAC,UAAY,EAAE,WAAa,WAAW,UAAY,QAAQ,SAAW,IAAI,MAAQ,yBAAyB,UAAW,EAAM,YAAc,UAAU,QAAU,KAAK,UAAY,KAAK,WAAa,KAAK,GAAK,uCAAuC,SAAW,0BAA0B,mBAAqB,KAAK,MAAQ,0BAA0B,gBAAkB,KAAK,gBAAiB,EAAM,aAAe,KAAK,cAAgB,uCAAuC,iBAAmB,uCAAuC,YAAc,KAAK,sBAAuB,EAAM,kBAAmB,EAAM,WAAa,KAAK,gBAAiB,EAAM,kBAAoB,KCVr+H,MAAQ1F,UAAF,IAAgBC,UAoMP0F,OAlMU,KACvB,MAAOxF,EAAaC,GAAkB3P,mBAAS,KACxCkG,EAASC,GAAcnG,mBAAS,IAEvC,IAAI4P,EAAUC,cAEdtP,qBAAU,KAER4F,EADoB2O,GAAUC,SAC9B,IAGF,MAWM7E,EAAsB,KAC1BhP,QAAQC,IAAI,iBAAkBuO,EAA9B,EAuCIyF,EAAY,CAChBC,KAAM,WACNC,eAAe,EACfjP,SAAUsJ,EACV4F,SAvDqB,CAAC7O,EAAK8O,KAC3B,MAAMC,EAAeD,EACnB,IAAI7F,EAAajJ,EAAIiK,WAAahB,EAAY7D,QAAO7B,GAAKA,IAAMvD,EAAIiK,YACtEf,EAAe6F,EAAf,EAqDAC,YAlDwB,CAACF,EAAUG,KACnC,MAAMC,EAAMD,EAAK3K,KAAIuJ,GAAKA,EAAE5D,YACjBf,EAAX4F,EAA0BI,EAAsB,GAAhD,GAmDIxO,EAAU,CAAC,CACfC,UAAW,YACXC,KAAM,KACNE,YAAY,EACZC,YAAa,CAAEjF,MAAO,SAExB,CACE6E,UAAW,QACXC,KAAM,iBACNE,YAAY,GAEd,CACEH,UAAW,aACXC,KAAM,eACNE,YAAY,GACX,CACDH,UAAW,YACXC,KAAM,aACNE,YAAY,GACX,CACDH,UAAW,WACXC,KAAM,YACNE,YAAY,GAEd,CACEF,KAAM,UACNE,YAAY,EACZC,YAAa,CAAEjF,MAAO,SACtB4N,UAzDoB,CAACC,EAAM3J,EAAKC,IACxB,gCACN,cAAC4J,GAAA,EAAD,CACEC,SAAO,EACPyB,KAAK,KACL3J,MAAM,UACN7E,QAAS,IAdciD,KAC3BmJ,EAAQa,KAAR,iCAAuChK,EAAIiK,WAA3C,EAaiBkF,CAAoBnP,GAJnC,4BAOU,IACV,cAAC6J,GAAA,EAAD,CACEC,SAAO,EACPyB,KAAK,KACL3J,MAAM,UACN7E,QAAS,IAlBMiD,KACnBvF,QAAQC,IAAIsF,EAAI2L,WAAhB,EAiBiByD,CAAYpP,GAJ3B,+BAkDEE,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAmB,EACnBC,UAAWX,EAAQH,QAGrB,OACE,mCACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,+BACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,KAAD,CACEwF,SAAS,YACT/I,KAAM+H,EACNiB,QAASA,EACTQ,QAAM,EAJR,SAMG9H,GACC,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAII,QAAC,gBACCoB,EADD,qBAECC,GAFF,SAIE,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAE6L,cAAe,QAA7B,UACE,eAAC9E,GAAA,EAAD,CAAKhH,UAAU,aAAf,UACE,eAACoU,GAAA,EAAD,CAAapU,UAAU,OAAOsQ,KAAK,KAAK,aAAW,eAAnD,UACE,cAAC1B,GAAA,EAAD,qBACA,cAACA,GAAA,EAAD,CAAQyF,QAAQ,YAAhB,yBAHJ,qBAME,cAAC,iCAAD,CACErU,UAAU,+BACNqG,IAEL2H,EAAY3J,OAAS,GACpB,cAACuK,GAAA,EAAD,CACE5O,UAAU,oBACV8B,QAAS0M,EACTK,SAAO,EAHT,SAKE,mBAAG7O,UAAU,0BAInB,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,OAAtB,SACE,cAAC,GAAD,CACEA,UAAU,wBACN7B,EAAMsR,mBAIhB,cAAC,KAAD,CACElJ,OAAK,EACLC,UAAU,EACViN,UAAWA,EAEXhN,iBAAiB,qBACjBG,qBAAqB,wBACjBzI,EAAM2I,aACNR,EACJS,SAAU,KAIZ,eAACxB,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,UACE,cAAC,6BAAD,IACMX,MAGR,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IACMX,WAtDd,cAjBlB,EC7GF,MAAQwH,UAAF,IAAgBC,UAiNPwG,OA/MQnW,IACrB,MAAO6P,EAAaC,GAAkB3P,mBAAS,KACxCkG,EAASC,GAAcnG,mBAAS,IAEvC,IAAI4P,EAAUC,cAQdtP,qBAAU,KACR4F,EAA+BtG,EAAMoW,UANpBlL,KAAIvE,IACZ,IAAKA,EAAG0P,QAAQ,GAAD,OAAK1P,EAAE6L,UAAP,YAAoB7L,EAAE8L,eAKK,IACnD6D,GAAkB,EAAO,GAAzB,GACC,CAACtW,EAAMoW,YAEV,MAMME,EAAoB,CAACZ,EAAUG,KACnC,MAAMC,EAAMD,EAAK3K,KAAIuJ,GAAKA,EAAE8B,KACjBzG,EAAX4F,EAA0BI,EAAsB,GAAhD,EAGIU,EAAoB,KACpBxW,EAAMyW,UACRzW,EAAMyW,SAAS5G,EAAf,EAGEnJ,EAAY,CAChB/C,QAAS,CAACgD,EAAGC,EAAKC,KACZ7G,EAAM0W,YACR1W,EAAM0W,WAAW9P,EAClB,GAIC+P,EAAkBpa,IAClByD,EAAM2W,gBACR3W,EAAM2W,eAAepa,EAArB,EAGE+Y,EAAY,CAChBC,KAAM,WACNC,eAAe,EACfjP,SAAUsJ,EACV4F,SAjCqB,CAAC7O,EAAK8O,KAC3B,MAAMC,EAAeD,EACnB,IAAI7F,EAAajJ,EAAI2P,IAAM1G,EAAY7D,QAAO7B,GAAKA,IAAMvD,EAAI2P,KAC/DzG,EAAe6F,EAAf,EA+BAC,YAAaU,GAiDTxP,EAAoB,CACxBoK,QAAQ,EACRlK,UAAWX,EAAQH,SAGf,OAAEuG,EAAF,QAAUtF,GAAYnH,EAEtBlD,EAAO2D,aAAYwP,GAAKA,EAAE3T,eAAeQ,OAE/C,OAEE,cAAC,KAAD,CACEuK,SAAS,KACT/I,KAAM+H,EACNiB,QA5DY,CACd,CACEC,UAAW,KACXC,KAAM,KACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEjF,MAAO,SAExB,CACE6E,UAAW,cACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,GAEd,CACEH,UAAW,UACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,GAEd,CACEH,UAAW,eACXC,KAAM,QACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,GAEd,CACEH,UAAW,cACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,GAEd,CACEH,UAAW,cACXC,KAAM,eACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,IAmBZI,QAAM,EAJR,SAMG9H,GACC,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAII,QAAC,gBACCoB,EADD,qBAECC,GAFF,SAIE,gCACE,eAACf,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,CAAK+N,GAAG,IAAI/U,UAAU,aAAaC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAAzE,UACE,eAAC4E,GAAA,EAAD,CAAapU,UAAU,OAAvB,UACE,cAAC4O,GAAA,EAAD,CAAQ0B,KAAK,KAAK3J,MAAM,UAAUkI,SAAUjE,EAAQ9I,QAAS,IAAMgT,GAAe,GAAlF,oBACA,cAAClG,GAAA,EAAD,CAAQ0B,KAAK,KAAK3J,MAAM,UAAUkI,QAASjE,EAAQ9I,QAAS,IAAMgT,GAAe,GAAjF,yBAHJ,qBAME,cAAC,iCAAD,CACE9U,UAAU,oCACNqG,IAEL2H,EAAY3J,OAAS,GACpB,cAACuK,GAAA,EAAD,CACE5O,UAAU,oBACV8B,QAAS6S,EACT9F,SAAO,EAHT,SAKE,mBAAGI,MAAK,wBAAmBrE,EAAS,MAAQ,aAIlD,cAAC5D,GAAA,EAAD,UACE,cAACzB,EAAA,EAAD,UACE,eAACyB,GAAA,EAAD,CAAKhH,UAAU,6BAAf,UACE,cAAC,GAAD,CACEA,UAAU,6BACN7B,EAAMsR,cAEZ,cAACb,GAAA,EAAD,CACE5O,UAAU,kBACV8B,QAAS,IAAMoM,EAAQa,KAAK,2BAF9B,8BAMe,UAAd9T,EAAK2G,MACJ,cAACgN,GAAA,EAAD,CACE5O,UAAU,aACV8B,QAAS,IAAMoM,EAAQa,KAAK,oCAF9B,uCAWV,cAAC,KAAD,CACExI,OAAK,EACLC,UAAU,EACViN,UAAWA,EACX5O,UAAWA,EACX4B,iBAAkBnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UACtEC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SAAU,KAIZ,eAACxB,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,UACE,cAACzE,GAAA,EAAD,UACE,cAAC,6BAAD,IACMX,MAGR,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IACMX,WAzEd,KAbV,ECpEa2O,OA7CM,KACnB,MAAOxQ,EAASC,GAAcnG,mBAAS,KAChCsM,EAAQqK,GAAa3W,oBAAS,IAC9BgH,EAAS6H,GAAc7O,oBAAS,GAEvC,IAAI4P,EAAUC,cAEdtP,qBAAU,KACRqW,GAAe,GACd,CAACtK,IAEJ,MAAMsK,EAAgB,KACpB/H,GAAW,GACX1I,EAAW,IACX9E,EACG/C,IADH,iCACiCgO,EAAS,OAAS,UAChDtN,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN0G,EAAWrF,EAAI3C,KAAf,IAEH8R,SAAQ,IAAMpB,GAAW,IAN5B,EAmBF,OACE,eAAC9M,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,uBACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,GAAD,CAAeuU,UAAW/P,EAASoG,OAAQA,EAAQkK,eAAgBG,EAAWJ,WAflE9P,IAClBmJ,EAAQa,KAAK,+BAAiChK,EAAI2P,GAAlD,EAc4GE,SAX5FX,IAChBzU,QAAQC,IAAIwU,EAAZ,EAUgI3O,QAASA,UAL3I,ECaa0P,OA9CM,KACnB,MAAOxQ,EAASC,GAAcnG,mBAAS,KAChCsM,EAAQqK,GAAa3W,oBAAS,IAC9BgH,EAAS6H,GAAc7O,oBAAS,GAEvC,IAAI4P,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,cAEfjS,qBAAU,KACRqW,GAAe,GACd,CAACtK,IAEJ,MAAMsK,EAAgB,KACpB/H,GAAW,GACX1I,EAAW,IACX9E,EACG/C,IADH,mCACmCwD,EADnC,mBACgDwK,EAAS,OAAS,UAC/DtN,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN0G,EAAWrF,EAAI3C,KAAf,IAEH8R,SAAQ,IAAMpB,GAAW,IAN5B,EAmBF,OACE,eAAC9M,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,kCACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,GAAD,CAAeuU,UAAW/P,EAASoG,OAAQA,EAAQkK,eAAgBG,EAAWJ,WAflE9P,IAClBmJ,EAAQa,KAAK,+BAAiChK,EAAI2P,GAAlD,EAc4GE,SAX5FX,IAChBzU,QAAQC,IAAIwU,EAAZ,EAUgI3O,QAASA,UAL3I,ECiJa6P,OA3KOhX,IAEpB,MAAMlD,EAAO2D,aAAYrB,GAASA,EAAM9C,eAAeQ,QAEhDma,EAAUC,GAAe/W,mBAAS,IACzCO,qBAAU,KACRc,EAAO/C,IAAI,gBACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACvBiW,EAAYjW,EAAI3C,KAAhB,GAFJ,GAIC,IAGH,MAAO+T,EAAWC,GAAgBnS,mBAAS,CACzCqS,UAAW,GACXC,SAAU,GACV0E,YAAa,GACbC,UAAW,GACXC,QAAS,GACTC,YAAa,UACbzG,UAAW,KAGNgC,EAAkBC,GAAuB3S,mBAAS,CACvDqS,WAAW,EACXC,UAAU,EACV0E,aAAa,EACbC,WAAW,EACXC,SAAS,EACTC,aAAa,EACbzG,WAAW,IAGbnQ,qBAAU,KACLV,EAAMmU,UACP7B,EAAatS,EAAMuX,SAAnB,GACD,CAACvX,EAAMuX,WAEV,MAqBMxE,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAChD,cAAP2C,IACF3C,EAAQkY,SAASlY,EAAO,KAC1BuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAGF,OACE,eAACG,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SA/BAtM,IAClB,IAAIuM,EAAO,EACXvM,EAAEwM,iBACFC,OAAOC,QAAQhB,GAAWiB,SAAQ,IAAa,IAAXC,EAAG/Q,GAAO,EAClC,cAAN+Q,EACE/Q,EAAI,IACN0Q,EAAO,EACPL,EAAiBU,IAAK,EACtBT,EAAoB,IAAKD,KAGvBW,KAAUC,QAAQjR,KACpB0Q,EAAO,EACPL,EAAiBU,IAAK,EACtBT,EAAoB,IAAKD,IAE5B,IAEU,IAATK,GAAYlT,EAAM0T,cAAcrB,EAApB,EAahB,UACE,cAACsB,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,wBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,YACH3C,MAAO+S,EAAUG,UACjBuB,QAASlB,EAAiBL,UAC1BwB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,2CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,WAAX,uBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,WACH3C,MAAO+S,EAAUI,SACjBsB,QAASlB,EAAiBJ,SAC1BuB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,0CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAU8E,YACjBpD,QAASlB,EAAiBsE,YAC1BnD,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,6CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,2BACA,cAACC,GAAA,EAAD,CACErX,KAAK,QACLwF,GAAG,YACH3C,MAAO+S,EAAU+E,UACjBrD,QAASlB,EAAiBuE,UAC1BpD,SAAUjB,IAEZ,cAACkB,GAAA,EAAD,gDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,UAAX,6BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,UACH3C,MAAO+S,EAAUgF,QACjBtD,QAASlB,EAAiBwE,QAC1BrD,SAAUjB,EACVtW,KAAK,aAEP,cAACwX,GAAA,EAAD,gDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAUiF,YACjBvD,QAASlB,EAAiByE,YAC1BtD,SAAUjB,EACVtW,KAAK,SALP,UAOE,6CACA,iDAEF,cAACwX,GAAA,EAAD,8CAEa,UAAdnX,EAAK2G,MACJ,eAACkQ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,qBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,YACH3C,MAAO+S,EAAUxB,UACjBkD,QAASlB,EAAiBhC,UAC1BmD,SAAUjB,EACVtW,KAAK,SALP,UAOE,wBAAQ6C,MAAO,EAAf,oBACC2X,EAAS/L,KAAIuM,GAAM,wBAA0BnY,MAAOmY,EAAE5G,UAAnC,SAA+C4G,EAAElF,YAApCkF,EAAE5G,gBAErC,cAACoD,GAAA,EAAD,0CAGJ,cAAC7M,EAAA,EAAD,UACE,cAAC,GAAD,CACEvF,UAAU,uBACVpF,KAAK,SACL+U,UAAWxR,EAAMmH,QAHnB,SAKGnH,EAAMmU,SAAW,OAAS,eAhGnC,EClBauD,OAlDK,KAClB,IAAI3H,EAAUC,cACd,MAAM9Q,EAAWsB,eAEV2G,EAAS6H,GAAc7O,oBAAS,GAmBvC,OACE,mCACE,eAAC+B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,GAAG,MAH5B,SAKE,mBAAGjT,UAAU,0BANjB,kBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CAAcd,cAlCNiE,IAChBxQ,IAEJ6H,GAAW,GACXxN,EACGjD,KAAK,qBAAsBoZ,GAC3BxY,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQa,KAAK,+BAAiC3P,EAAI3C,KAAKsZ,YAEvD1Y,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAEFmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,uBACxCgT,SAAQ,IAAMpB,GAAW,KAV5B,EA8BuD7H,QAASA,gBAjBlE,ECgDa0Q,OAxEM,KACnB,IAAI9H,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,eAER4E,EAAUO,GAAe3X,mBAAS,CAAC,IACnCgH,EAAS6H,GAAc7O,oBAAS,GAEjCjB,EAAWsB,cAEjBE,qBAAU,KACHuB,IAEL/C,EAAShC,EAAaG,SACtBmE,EACG/C,IAAI,sBAAwBwD,GAC5B9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACvB,GAAIA,EAAIrB,OAAQ,CACd,MAAM,QAAEmY,EAAF,WAAWH,EAAX,SAAsBI,KAAa1T,GAAMrD,EAAI3C,KACnDwZ,EAAYxT,EACb,MAECwT,EAAY,CAAC,GACb5Y,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAVL,GAYC,CAACiF,IAoBJ,OACE,mCACE,eAACC,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,mBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CAAcd,cAlCJpV,IAClB6I,IAEJ6H,GAAW,GACXxN,EACGjD,KAAK,qBAAuB0D,EAAI3D,GAChCa,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQa,KAAK,+BAAiC3O,GAE9C/C,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAEFmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,uBACxCgT,SAAQ,IAAMpB,GAAW,KAV5B,EA8ByD7H,QAASA,EAASoQ,SAAUA,EAAUpD,UAAQ,gBAjBzG,EClDF,SAAS8D,KACP,MAAMvG,EAAgBjR,aAAYlE,GAASA,EAAMQ,QACjD,OAAI2U,EAAcjV,KACR,cAACkV,GAAA,EAAD,CAAOnJ,MAAOkJ,EAAcjV,KAA5B,SAAmCiV,EAAc1U,UAEpD,IACR,CA+Gckb,OA7Gf,WACE,MAAMlZ,EAAQyB,aAAYlE,GAASA,EAAMD,eAAeM,QAClD4U,EAAY/Q,aAAYlE,GAASA,EAAMD,eAAeK,YACtDuC,EAAWsB,eAEVrC,EAAUga,GAAehY,mBAAS,KAClC/B,EAAUga,GAAejY,mBAAS,KAClCrB,EAAMuZ,GAAWlY,mBAAS,KAC1B9B,EAAcia,GAAmBnY,oBAAS,IAC1CpB,EAAiBwZ,GAAsBpY,oBAAS,GAIjDqY,EAAW,CACfC,aAAc,EACdC,UAAW,OACXjL,YAAa,UACbkL,aAAc,SAahB,OAAI3Z,EAEA,gCACE,cAACiZ,GAAD,IACA,iCACE,eAACtE,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,iCACA,cAACxR,EAAA,EAAD,UACE,+DAIF,cAAC0R,GAAA,EAAD,CACErX,KAAK,OACL6C,MAAOR,EACPgD,MAAO0W,EACPxE,SAAUrN,GAAK0R,EAAQ1R,EAAEqK,OAAO1R,YAGpC,cAACqU,GAAA,EAAD,CAAWiF,QAAM,EAACC,OAAK,EAAC/W,MAAO,CAAEqP,aAAc,QAA/C,SACE,eAACyC,GAAA,EAAD,CAAOiF,OAAK,EAAZ,UACE,cAAC/E,GAAA,EAAD,CAAOrX,KAAK,WAAWuX,SAAUrN,GAAK4R,EAAmB5R,EAAEqK,OAAO8H,WADpE,8BAIF,cAACnF,GAAA,EAAD,UACE,cAAC,GAAD,CAAQnC,UAAWA,EAAW7N,QA9BxC,SAAmBgD,GACjBA,EAAEwM,iBACFjU,EAASQ,EAAYI,YAAYhB,EAAMT,EAAcU,GACtD,EA2B2DtC,KAAK,SAAS+L,MAAM,UAAtE,wBArBM,eA4BZ,gCACE,cAACyP,GAAD,IACA,iCACE,eAACtE,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,oBACA,cAACxR,EAAA,EAAD,UACE,sDAIF,cAAC0R,GAAA,EAAD,CACErX,KAAK,OACLqF,MAAO0W,EACPlZ,MAAOnB,EACP6V,SAAUrN,GAAKwR,EAAYxR,EAAEqK,OAAO1R,YAGxC,eAACqU,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,wBACA,cAACE,GAAA,EAAD,CACErX,KAAK,WACLqF,MAAO0W,EACPlZ,MAAOlB,EACP4V,SAAUrN,GAAKyR,EAAYzR,EAAEqK,OAAO1R,YAIxC,eAACqU,GAAA,EAAD,CAAWkF,OAAK,EAAC/W,MAAO,CAAEqP,aAAc,OAAQhM,QAAQ,OAAQ+O,eAAe,iBAA/E,UACE,eAACN,GAAA,EAAD,CAAOiF,OAAK,EAAZ,UACE,cAAC/E,GAAA,EAAD,CAAOrX,KAAK,WAAWuX,SAAUrN,GAAK2R,EAAgB3R,EAAEqK,OAAO8H,WADjE,kBAGA,cAAC,IAAD,CAAMvW,GAAI,CACRwW,SAAU,oBACVxc,MAAO,CAAEyc,WAAW,IACnBhE,SAAO,EAHV,kCAMF,cAACrB,GAAA,EAAD,UACE,cAAC,GAAD,CAAQnC,UAAWA,EAAW7N,QAhFxC,SAAqBgD,GACnBA,EAAEwM,iBACFjU,EAASQ,EAAYzB,MAAME,EAAUC,EAAUC,GAChD,EA6E6D5B,KAAK,SAAS+L,MAAM,UAAxE,uBApCM,eA2CjB,EC7CcyQ,OAvEf,SAAoBjZ,GAClB,MAAOkZ,EAAMC,GAAWhZ,mBAAS,KAC1BgH,EAAS6H,GAAc7O,oBAAS,IAChCiZ,EAAWC,GAAalZ,oBAAS,GAIxC,OAFiBK,IAEZyF,IAAExH,IAAIuB,EAAO,6BAelBqB,QAAQC,IAAI,QAAStB,GAEjBoZ,EAEA,qCACE,mBAAGtX,MAAO,CAAEsD,SAAU,GAAI+L,aAAc,IAAxC,wDAGA,cAAC,IAAD,CAAM5O,GAAG,cAAcyS,SAAO,EAAClT,MAAO,CAAEsD,SAAU,IAAlD,sBAOJ,qCACE,eAACuO,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,oBACA,cAACE,GAAA,EAAD,CACErX,KAAK,OACL6C,MAAO4Z,EACPlF,SAAWrN,GAAMwS,EAAQxS,EAAEqK,OAAO1R,YAGtC,eAACqU,GAAA,EAAD,CACE7R,MAAO,CACLqD,QAAS,OACT+O,eAAgB,gBAChB7C,WAAY,SACZF,aAAc,EACd7D,UAAW,IANf,UASE,cAAC,IAAD,CAAM/K,GAAG,cAAcyS,SAAO,EAAClT,MAAO,CAAEsD,SAAU,IAAlD,2BAGA,cAAC,GAAD,CACEoM,UAAWrK,EACXxD,QAlDa,KACduV,IACLlK,GAAW,GACXxN,EAAOjD,KAAP,iDAAsD2a,GAAO,CAACxG,MAAMwG,IACjE/Z,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNyZ,GAAU,EACX,IAEFjJ,SAAQ,IAAMpB,GAAW,KAN5B,EAgDMvS,KAAK,SACL+L,MAAM,UAJR,2BAlDG,cAAC,IAAD,CAAUjG,GAAG,eA6DvB,ECac+W,OAnFf,WACE,MAAOJ,EAAMC,GAAWhZ,mBAAS,KAC1BoZ,EAAOC,GAAYrZ,mBAAS,KAC5BsZ,EAAOC,GAAYvZ,mBAAS,KAC5BrB,EAAMuZ,GAAWlY,sBACjBqR,EAAWxC,GAAc7O,oBAAS,IAClCiZ,EAAWC,GAAalZ,oBAAS,GAElCwZ,EAAWC,cAuBjB,OArBAlZ,qBAAU,KACR,MAAMuB,EAAK0X,EAAS7R,OAAOkN,QAAQ,SAAU,IAC7CqD,EAAQpW,EAAR,GACC,IAkBCmX,EAEA,mCACE,oBAAGtX,MAAO,CAAEsD,SAAU,GAAI+L,aAAc,IAAxC,iDACuC,IACrC,cAAC,IAAD,CAAM5O,GAAG,cAAcyS,SAAO,EAAClT,MAAO,CAAEsD,SAAU,IAAlD,sCAQN,qCACE,eAACuO,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,oBACA,cAACE,GAAA,EAAD,CACErX,KAAK,OACL6C,MAAO4Z,EACPlF,SAAWrN,GAAMwS,EAAQxS,EAAEqK,OAAO1R,YAGtC,eAACqU,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,uBACA,cAACE,GAAA,EAAD,CACErX,KAAK,WACL6C,MAAOia,EACPvF,SAAWrN,GAAM6S,EAAS7S,EAAEqK,OAAO1R,YAGvC,eAACqU,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,+BACA,cAACE,GAAA,EAAD,CACErX,KAAK,WACL6C,MAAOma,EACPzF,SAAWrN,GAAM+S,EAAS/S,EAAEqK,OAAO1R,YAGvC,cAACqU,GAAA,EAAD,UACE,cAAC,GAAD,CACEnC,UAAWA,EACX7N,QAzDa,KACnB,IAAKuV,IAASK,IAAUE,GAASF,IAAUE,EAAO,OAClDzK,GAAW,GACX,MAAM6K,EAAM,CACVC,KAAMhb,EACN4T,MAAOwG,EACPa,SAAUR,GAEZS,EAAOzb,KAAP,8CAAmDO,EAAnD,kBAAiEoa,EAAjE,qBAAkFK,GAASM,GACxF1a,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACpBA,EAAIrB,QACPyZ,GAAU,EAAV,IAEDjJ,SAAQ,IAAMpB,GAAW,IAL5B,EAkDMvS,KAAK,SACL+L,MAAM,UAJR,uBAWP,ECTcyR,OAjEO,KACpB,MAAOC,GAAiB/Z,mBAAS,iBACjC,IAAI4P,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,cAEfjS,qBAAU,KACRW,QAAQC,IAAI,KAAKW,EAAjB,IAWF,OACE,mCACE,eAACC,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAIoM,EAAQa,KAAK,wBAH5B,SAKE,mBAAG/O,UAAU,0BANjB,oBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAzBX0B,IACnBtT,QAAQC,IAAIqT,EAAZ,EAwBY,SACE,eAAChB,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO4a,EACPlG,SA3BSrN,IAC3BtF,QAAQC,IAAI,SAASqF,EAArB,EA2BkBlK,KAAK,SAEP,cAACwX,GAAA,EAAD,+CAGJ,cAAC7M,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKsR,GAAI,CAAEC,OAAQ,IAAnB,SACE,cAAC3J,GAAA,EAAD,CACE5O,UAAW,kBACXpF,KAAK,SAFP,mCA/BlB,E,mCCFF,SAAS4d,GAAT,GAAwC,IAAnB,MAAEpV,EAAF,MAAS3F,GAAS,EACrC,OACE,eAAC8H,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,SAA8BoD,MAEhC,cAAC4D,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAA+BvC,QAItC,CAED,MAAMsS,GAAa,IAAwB,IAAvB,KAAEC,EAAF,QAAQyI,GAAc,EACxC,MAAOxI,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAAC,GAAD,CAAQwD,QAAS,IAAMoO,GAAUD,GAAQtJ,MAAM,SAA/C,SACE,mBAAG3G,UAAU,uBAEf,eAAC+D,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAMiM,GAAS,GAFzB,mDAMA,cAACE,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,gRAMA,eAACqQ,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,cAAC,GAAD,CACE6O,SAAO,EACP7O,UAAU,sBACV2G,MAAO,UACP/L,KAAK,SACL0V,KAAK,KACLxO,QAAS,KACP2W,GAAQ,GACRvI,GAAS,EAAT,EARJ,kBAaA,eAAC,GAAD,CAAQvJ,MAAM,SAAS2J,KAAK,KAAKxO,QArCnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EAmCM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAAC,GAAD,CAAQ4M,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BApCR,EAk2BawI,OArzBS,KAAO,IAAD,IAC5B,MAAOC,EAAaC,GAAkBta,mBAAS,KACxCoX,EAAUO,GAAe3X,mBAAS,CAAC,IACnCua,EAASC,GAAcxa,mBAAS,KAChCya,EAAcC,GAAmB1a,mBAAS,KAC1C2a,EAAcC,GAAmB5a,oBAAS,IAC1C6a,EAAMV,GAAWna,oBAAS,IAC1B8a,EAASC,GAAc/a,mBAAS,OAChCgb,EAAgBC,GAAqBjb,mBAAS,OAC9Ckb,EAAkBC,GAAuBnb,mBAAS,KAClDob,EAAQC,GAAarb,mBAAS,CAAEsb,QAAS,EAAGC,SAAU,KACtDC,EAAiBC,GAAsBzb,mBAAS,OAChD0b,EAAUC,GAAe3b,oBAAS,IAClCe,EAAK6a,GAAU5b,mBAAS,KACxB2E,EAASkX,GAAc7b,mBAAS,KAChC8b,EAAeC,GAAoB/b,mBAAS,KAC5Cgc,EAAWC,GAAgBjc,oBAAS,IACpCkc,EAAaC,GAAkBnc,mBAAS,KACxCoc,EAAmBC,GAAwBrc,mBAAS,IAE3D,IAAI4P,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,cAETzT,EAAWsB,cAEjBE,qBAAU,KACR+b,KACAC,IACA3F,IACA4F,IAAa,GACZ,CAAC1a,IAEJ,MAAM8U,EAAgB,KACpB/H,IAAW,GACX6L,EAAgB,IAChBrZ,EAAO/C,IAAP,+BACGU,MAAK,IAAoB,IAAD,MAAhBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNib,EAAe,UAAC5Z,EAAI3C,YAAL,aAAC,EAAU0N,QAAQb,GAAMA,EAAEoL,KAAOiB,SAASvV,KAA1D,IAEHmO,SAAQ,IAAMpB,IAAW,IAL5B,EAQI4N,EAAgB,CACpB,CACErV,UAAW,WACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,OAAQkF,QAAS,aAEzC,CACEL,UAAW,WACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,eACXC,KAAM,SACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZ4I,UAAW,SAAUC,EAAM3J,GACzB,OACE,sBACE9E,MAAO,CACL0G,MAAgB,YAAT+H,EAAqB,UAAY,UACxClL,WAAsB,UAAVxB,GAAoB,SAAW,QAH/C,SAMG0M,GAGN,EACD5I,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,aACXC,KAAM,OACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,WAAYlF,MAAO,KAE7C,CACE6E,UAAW,mBACXC,KAAM,aACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZ4I,UAAW,SAAUC,EAAM3J,GACzB,OACE,sBACE9E,MAAO,CACL0G,MAAgB,kBAAT+H,EAA2B,UAAY,UAC9ClL,WAAsB,UAAVxB,GAAoB,SAAW,QAH/C,SAMG0M,GAGN,EACD5I,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,UACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNoV,SAAU,CAACtJ,EAAG/Q,EAAGsa,KACfvJ,EAAU,KAANA,EAAW,QAAUA,EACzB/Q,EAAU,KAANA,EAAW,QAAUA,EACX,QAAVsa,EAC8B,IAAzBC,KAAOC,QAAQzJ,EAAG/Q,GAAW,GAAK,EAET,IAAzBua,KAAOC,QAAQzJ,EAAG/Q,IAAY,EAAI,GAI7CkF,YAAY,EACZC,YAAa,CAAEC,QAAS,WAAYlF,MAAO,MAE7C,CACE6E,UAAW,cACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEC,QAAS,WAAYlF,MAAO,OAIzCga,EAAuBxe,UAC3B8Q,IAAW,GACXxN,EAAO/C,IAAI,+BAAiCwD,GACzC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN+a,EAAW1Z,EAAI3C,KAChB,IAEF8R,SAAQ,IAAMpB,IAAW,IAN5B,EASIiO,EAAe,WAEfC,GAAiB,CAACtW,EAAK8O,KAC3B,MAAMyH,EAAWvW,EAAIqW,GAEnB3B,EADE5F,EACkB,IAAI2F,EAAkB8B,GAGxC9B,EAAiBrP,QAAQ7B,GAAMA,IAAMvD,EAAIqW,KAE5C,EAGGG,GAAkB,CAAC1H,EAAUG,KACjC,MAAMwH,EAAQ3C,EACX1O,QAAQb,IAAOkQ,EAAiBiC,SAASnS,EAAE8R,MAC3C/R,KAAKf,GAAMA,EAAE8S,KAEd3B,EADE5F,EACkB,IAAI2F,KAAqBgC,GAEzB,GACrB,EAGGZ,GAAuB,KAC3Bvd,EAAShC,EAAaG,SACtBmE,EAAO/C,IAAP,6BAAiCwD,IAC9B9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNkY,EAAY7W,EAAI3C,MAChBsd,EAAmB3a,EAAI0a,mBAEvBzc,EACEhC,EAAaE,MACK,gBAAhB6D,EAAIjE,QAA4B,qBAAuBiE,EAAIjE,UAG/D8a,EAAY,CAAC,GACb8D,EAAmB,MACpB,IAEFzc,MAAK,KACJoe,IAAkB,GAhBtB,GAoBKpW,GAAS6H,IAAc7O,oBAAS,GAEjCwc,GAAcze,UAClB,IAAK,IAAD,EACF,MAAMqD,QAAaC,EAAO/C,IAAI,qCACL,IAAD,IAAxB,UAAI8C,QAAJ,IAAIA,GAAJ,UAAIA,EAAMjD,YAAV,OAAI,EAAYsB,OACd4c,EAAoB,UAACjb,EAAKjD,YAAN,iBAAC,EAAWqB,cAAZ,aAAC,EAAmB6d,SAE3C,CAAC,MAAOpc,GACPC,QAAQC,IAAI,MAAOF,EACpB,GAGGmc,GAAmB,KACvBvO,IAAW,GACXxN,EAAO/C,IAAP,mCAAuCwD,IACpC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,SACN6a,EAAexZ,EAAI3C,MACnBid,EAAOE,QAAUxa,EAAI3C,KAAKmf,QAAO,CAACC,EAAMC,IAAQD,EAAOC,EAAIC,QAAQ,GACnErC,EAAOG,SAAWza,EAAI3C,KAAKmf,QACzB,CAACC,EAAMC,IAAQD,EAAOC,EAAIE,SAC1B,GAEH,IAEFzN,SAAQ,IAAMpB,IAAW,IAX5B,GAyCK8O,GAAaC,IAAgB5d,oBAAS,GA6C7C,MAkBM,KAAEsD,GAAO,UAAT,MAAoBI,GAAQ,SAChCpD,aAAawP,GAAMA,EAAE3T,eAAeQ,QAAS,CAAC,EAsC1CwK,GAAU,CACd,CACEC,UAAW,MACXC,KAAM,MACNG,YAAa,CAAEjF,MAAO,UAExB,CACE6E,UAAW,SACXC,KAAM,kBAER,CACED,UAAW,UACXC,KAAM,mBAER,CACED,UAAW,aACXC,KAAM,kBACN8I,UAAY0N,GAAgB,IAAIC,KAAKD,GAAaE,sBAEpD,CACE3W,UAAW,OACXC,KAAM,QAER,CACEA,KAAM,UACN8I,UA7DkB,CAACC,EAAM3J,EAAKC,IAE9B,sBAAK/E,MAAO,CAAEqD,QAAS,QAAvB,UACE,eAAC,GAAD,CACEuL,SAAO,EACPyB,KAAK,KACLtQ,UAAU,sBACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCF,QAAS,IACPoM,EAAQa,KAAR,6CAAmDhK,EAAIuX,MAN3D,UASE,mBAAGrN,MAAM,kBAAkBhP,MAAO,CAAEyD,YAAa,KATnD,cAYW,UAAT9B,IAA6B,YAATA,KACpB,mCACE,eAAC,GAAD,CACEiN,SAAO,EACPyB,KAAK,KACLtQ,UAAU,sBACV2G,MAAM,UACN7E,QAAS,KACP2Y,EAAe1V,EAAIuX,KACnB/B,GAAa,EAAb,EAPJ,UAUE,mBAAGva,UAAU,iBAAiBC,MAAO,CAAEyD,YAAa,KAVtD,mBA6CNoC,YAAa,CAAEjF,MAAO,WAI1B,OACE,eAACR,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BAEd0V,EAAS/E,UARZ,IAQwB+E,EAAS9E,YAEjC,cAAChB,GAAD,IACA,eAACrK,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,qBAAKvP,UAAU,aAAf,gCAEF,eAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAEqD,QAAS,OAAQ+O,eAAgB,YAAtD,UACE,cAAC,GAAD,CACErC,KAlHV,WACErQ,EAAOjD,KAAP,oCAAyC0D,IAAM9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACjEA,EAAIrB,QACNmQ,EAAQiF,QAAQ,aACjB,GAEJ,EA6GSsF,QAAS,IAAMS,GAAgB,KAEjC,cAAC,GAAD,CACEvS,MAAM,UACN3G,UAAU,sBACV8B,QAAS,IAAMoM,EAAQa,KAAK,4BAA8B3O,GAH5D,gCASJ,cAACmF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK/G,MAAO,CAAEwL,UAAW,QAAzB,SACE,eAACiH,GAAA,EAAD,WACE,cAACnN,EAAA,EAAD,UACE,sBACEtF,MAAO,CACLqD,QAAS,OACT+O,eAAgB,WAChBxR,MAAO,OACPkF,QAAS,qBALb,UAQE,cAAC,GAAD,CACE8I,SAAO,EACP7O,UAAU,sBACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCpH,KAAK,SACL0V,KAAK,KACLxO,QAAS,IAAMoM,EAAQa,KAAR,4BAAkC3O,IANnD,4BAUA,cAAC,GAAD,CACEA,GAAG,kBACHyO,SAAO,EACP7O,UAAU,sBACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCpH,KAAK,SACL0V,KAAK,KACLxO,QAAS,IACPoM,EAAQa,KAAR,oCAA0C3O,IAR9C,4BAaA,cAAC,GAAD,CACEyO,SAAO,EACP7O,UAAU,sBACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCpH,KAAK,SACL0V,KAAK,KACLxO,QAAS,IACPoM,EAAQa,KAAR,oCAA0C3O,IAP9C,qBAYA,cAAC,GAAD,CACEyO,SAAO,EACP7O,UAAU,sBACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCpH,KAAK,SACL0V,KAAK,KACLxO,QAAS,IACPoM,EAAQa,KAAK,oCAAsC3O,GAPvD,mCAaA,cAAC,GAAD,CACEyO,SAAO,EACP7O,UAAU,2BACV2G,MAAiB,UAAV3E,GAAoB,UAAY,YACvCpH,KAAK,SACL0V,KAAK,KACLxO,QAAS,IACPoM,EAAQa,KAAK,gCAAkC3O,GAPnD,oCAYA,cAAC,GAAD,CACEJ,UAAU,OACV6O,SAAU6G,EAASS,SACnBxP,MAAO+O,EAASS,SAAW,SAAW,UACtCvb,KAAK,SACL0V,KAAK,KACLxO,QAAS,KAAMya,OAhPV7hB,GAgPuBgb,EAASS,cA/O/C8F,KACJC,IAAa,GACbvc,EAAOjD,KAAP,kCAC6B0D,EAD7B,qBAC4C1F,EAAQ,OAAS,UAE1D4C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN6c,IACD,IAEFrM,SAAQ,IAAM2N,IAAa,OAXXxhB,KA0OP,EAOEiV,UAAWsM,GAPb,SASGvG,EAASS,SAAW,aAAe,kBAI1C,cAAC5Q,EAAA,EAAD,CAAKtF,MAAO,CAAE8F,QAAS,IAAvB,SACE,eAACiB,GAAA,EAAD,CAAKuI,GAAG,KAAR,UACE,cAACiJ,GAAD,CACEpV,MAAM,OACN3F,MAAK,UAAKiY,EAAS/E,UAAd,YAA2B+E,EAAS9E,YAE3C,cAAC4H,GAAD,CACEpV,MAAM,eACN3F,MAAK,UAAEiY,EAASQ,eAAX,aAAE,EAAkBxF,aAE3B,cAAC8H,GAAD,CAAapV,MAAM,QAAQ3F,MAAOiY,EAASH,YAC3C,cAACiD,GAAD,CACEpV,MAAM,kBACN3F,MAAK,UAAEiY,EAASQ,eAAX,aAAE,EAAkBrF,QAE3B,cAAC2H,GAAD,CAAapV,MAAM,UAAU3F,MAAOiY,EAASJ,cAC7C,cAACkD,GAAD,CAAapV,MAAM,oBAAoB3F,MAAOic,EAAOE,UACrD,cAACpB,GAAD,CACEpV,MAAM,oBACN3F,MAAOic,EAAOG,YAEf,cA8CX,eAACtU,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,QAAzB,UACE,cAACzE,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,qBAAKvP,UAAU,aAAf,iCAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAAC,GAAD,CACE5I,MAAM,UACN3G,UAAU,WACV8B,QAAS,IAAMoM,EAAQa,KAAR,iCAAuC3O,IAHxD,8BASJ,cAACmF,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,OAAQ6D,aAAc,IAA/C,SACE,cAACtI,GAAA,EAAD,CAAKuI,GAAG,KAAR,SACE,cAAC,KAAD,CACE/J,SAAS,YACT/I,KAAMkc,EACNlT,QAASA,GAHX,SAKItH,GACA,8BACE,cAAC,KAAD,CACEoI,OAAK,EACLC,UAAU,EACVC,iBACEnB,GACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,wBACjBzI,EAAM2I,UACVC,SACE,aAUd,eAAChD,GAAA,EAAD,CACEC,OAAQsW,EACRrW,OAAQ,KACNkW,EAAW,IACXI,GAAa,GACbE,EAAe,GAAf,EALJ,UAQE,cAACtK,GAAA,EAAD,iCACA,eAACC,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACGzG,IAAW,cAACoB,GAAA,EAAD,KACVpB,IACA,8BACE,eAACC,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAEwL,UAAW,GAAhC,4BAGA,eAACzE,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAEqD,QAAS,QAA9B,UACE,cAACkZ,GAAA,EAAD,CACEC,QAAS,IACJ/B,EACAvQ,QACEb,GACE8Q,GACC9Q,EACGoT,cACAjB,SAASrB,EAAcsC,iBAC1BtC,GAAiB9Q,IAEtBD,KAAKuJ,IACG,CAAEjR,KAAMiR,EAAGnV,MAAOmV,OAG/BnV,MAAOwF,EACPtB,KAAK,UACLgb,YAAY,iBACZ1W,QAAM,EACN2W,WAAaC,GAAQxC,EAAiBwC,GACtC1K,SAAWrN,GAAMqV,EAAWrV,KAE9B,eAAC,GAAD,CACE+J,SAAO,EACPyB,KAAK,KACLtQ,UAAU,sBACV2G,MAAM,UACN1G,MAAO,CAAEwD,WAAY,GAAIgI,UAAW,GACpC3J,QAAS,IA1WHzF,WACtB,IACE4d,GAAY,GACZ9M,IAAW,GACX,MAAMzN,QAAaod,IAAMlgB,IAAN,sDAC8BwD,EAD9B,gBACwCoa,EADxC,oBAC+DvX,IAE9EvD,EAAKjD,KAAKsB,QACZmc,EAAO,gCAAD,OAAiCxa,EAAKjD,KAAK4C,KACpD,CAAC,MAAOE,GACPC,QAAQC,IAAI,MAAOF,EACpB,CACD4N,IAAW,GACXgN,EAAW,IACXI,GAAa,GACbE,EAAe,GAAf,EA2V+BsC,GANjB,UAQE,mBAAG/c,UAAU,iBAAiBC,MAAO,CAAEyD,YAAa,KARtD,4BAkBZ,eAACK,GAAA,EAAD,CACEC,OAAQgW,EACR/V,OAAQ,KACNiW,EAAO,IACPD,GAAY,EAAZ,EAJJ,UAOE,cAAC9J,GAAA,EAAD,iCACA,eAACC,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACGzG,IAAW,cAACoB,GAAA,EAAD,KACVpB,IAAWjG,GACX,mBAAGoB,KAAMpB,EAAK8P,OAAO,SAAS3O,IAAI,aAAlC,sCAIA8E,KAAYjG,GAAO,8EAIzB,eAAC0E,GAAA,EAAD,CACEC,OAAQiV,EACRhV,OAAQ,KACNiV,GAAgB,GAChBO,EAAoB,IACpBF,EAAkB,KAAlB,EAEFtZ,MAAO,CAAE+c,SAAU,OAPrB,UASE,cAAC7M,GAAA,EAAD,6BACA,eAACC,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACGzG,IAAW,cAACoB,GAAA,EAAD,KACVpB,IACA,sBAAKtF,UAAU,MAAf,UACE,cAAC,KAAD,CACEwF,SAAS,WACT/I,KAAMoc,EACNpT,QAASsV,EAHX,SAKI5c,GACA,8BACE,cAAC,KAAD,CACEoI,OAAK,EACLC,UAAU,EACViN,UAAW,CACTC,KAAM,WACNC,eAAe,EACfjP,SAAU8U,EACV5F,SAAUyH,GACVtH,YAAawH,IAEf9U,iBACEnB,GACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,wBACjBzI,EAAM2I,UACVC,SACE,SAQV,cAAC,GAAD,CACEjF,QAAS,IAAM2W,GAAQ,GACvB9R,MAAM,UACN1G,MAAO,CAAEgd,MAAO,QAASxR,UAAW,QACpCyR,SAAuC,KAAb,OAAhB1D,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBnV,QAJ9B,2BAaR,eAACN,GAAA,EAAD,CACEC,OAAQmV,EACRlV,OAAQ,KACNwU,GAAQ,GACRY,EAAW,MACXE,EAAkB,KAAlB,EALJ,UAQE,cAACpJ,GAAA,EAAD,iCACA,eAACC,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACGzG,IAAW,cAACoB,GAAA,EAAD,KACVpB,IACA,eAACwM,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,gBAAX,4BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,gBACHuB,KAAK,SACLlE,MAAO2b,EACPxe,KAAK,SACLqF,MAAO,CACLY,MAAO,IACPsc,UAAW,OACXC,UAAW,SACXJ,SAAU,OACVK,UAAW,QAEblL,SAAWrN,GAAMuU,EAAWvU,EAAEqK,OAAO1R,OAZvC,UAcE,wBAAQA,MAAO,EAAf,oBACC,IAAI,IAAI6M,IAAIyO,EAAa1P,KAAKC,GAAMA,EAAEgM,gBAAejM,KACnDC,GACC,wBAAQ7L,MAAO6L,EAAf,SAAmBA,SAIzB,cAACyI,GAAA,EAAD,CAAOC,IAAI,gBAAX,6BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,gBACHuB,KAAK,SACLlE,MAAO6b,EACP4D,UAAW9D,EACXxe,KAAK,SACLqF,MAAO,CACLY,MAAO,IACPsc,UAAW,OACXC,UAAW,SACXJ,SAAU,OACVK,UAAW,QAEblL,SAAWrN,GAAMyU,EAAkB5D,SAAS7Q,EAAEqK,OAAO1R,QAbvD,UAeE,wBAAQA,MAAO,EAAf,oBACCsb,EACE5O,QAAQb,GAAMA,EAAEgM,cAAgB8D,IAChC/P,KAAKC,GACJ,wBAAQ7L,MAAO6L,EAAEoL,GAAjB,SAAsBpL,EAAEoH,kBAG9B,cAAC,GAAD,CACE/J,MAAM,UACN1G,MAAO,CAAEwL,UAAW,OAAQwR,MAAO,SACnCnb,QA5kBKzF,UACjB,MAAM2b,EAAM,CACVjC,WAAYJ,SAAS2D,GACrBgE,aAAc9D,GAEhB7Z,EAAOjD,KAAK,mCAAoCsb,GAC7C1a,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,SACNV,EAAShC,EAAaC,QAAQ,sBAC9Bmd,GAAQ,GACRS,GAAgB,GAChBO,EAAoB,IACpBJ,EAAW,MACXE,EAAkB,MAClBsB,IACAD,KACAc,KACA6B,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MACJ,IAEF8D,OAAOC,IACNC,QAAQC,IAAI,MAAOF,EAAnB,GAlBJ,EAokBU,6BA1aZ,EChcaie,OAzBf,WAME,IALA,IALoBC,EAAKC,EAQvBC,EAAY,GAELrU,EAAI,EAAGA,EAHH,EAGiBA,IAAK,CAGjC,IAFA,IAAIsU,EAAU,GAELC,EAAI,EAAGA,EAPR,EAOmBA,IAAK,CAE9BD,GAVS,wCALOH,EAcK,EAdAC,EAcG,GAbrB/V,KAAKmW,MAAMnW,KAAKoW,UAAYL,EAAMD,EAAM,IAAMA,GAelD,CAEDE,GAAaC,EAETtU,EAAK0U,IACPL,GAAa,IAEhB,CAED,OAAOA,CAER,EC0KcM,I,GAAAA,GA/KI,KACjB,IAAI/P,EAAUC,cAEd,MAAM9Q,EAAWsB,eAEX,GAAEyB,GAAO0Q,eAET,KAAElP,EAAO,WAAchD,aAAYwP,GAAKA,EAAE3T,eAAeQ,QAAS,CAAC,GAElEuV,EAAWC,GAAgBnS,mBAAS,CACzCge,IAAK4B,KACLnC,OAAQ,MACRC,QAAS,MACTmC,WAAY,aACZC,KAAM,OACNC,SAAU,KAELrN,EAAkBC,GAAuB3S,mBAAS,CACvDyd,QAAQ,EACRC,SAAS,EACTmC,YAAY,EACZE,SAAS,EACTD,MAAM,KAGD9Y,EAAS6H,GAAc7O,oBAAS,GAEjC4S,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC3DuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EA2BF,OACE,mCACE,eAAC3Q,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,iBAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAzCZtM,IAElB,GADAA,EAAEwM,iBACEd,EAAUwL,UAAYxL,EAAUuL,QAAgC,IAAtBvL,EAAUwL,QAEtD,YADA3e,EAAShC,EAAaE,MAAM,sDAG9B,GAAI+J,EACF,OACF6H,GAAW,GAEX,MAAM,OAAE4O,EAAF,QAAUC,KAAYsC,GAAe9N,EAE3C7Q,EACGjD,KAAK,mBAAoB,IAAK4hB,EAAYvI,WAAYJ,SAASvV,GAAK2b,OAAQpG,SAASoG,GAASC,QAASrG,SAASqG,KAChH1e,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQa,KAAK,+BAAiC3O,GAE9C/C,EAAShC,EAAaE,MAAM6D,EAAIjE,SAAhC,IAEHmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,wBACxCgT,SAAQ,IAAMpB,GAAW,IAT5B,EA6BY,UACE,cAAC2E,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,MAAX,iBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,MACH3C,MAAO+S,EAAU8L,IACjB1hB,KAAK,OACLsiB,UAAQ,OAGF,UAATtb,GACC,qCACE,eAACkQ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,SAAX,oBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,SACH3C,MAAO+S,EAAUuL,OACjB7J,QAASlB,EAAiB+K,OAC1B5J,SAAUjB,EACVtW,KAAK,SACL6iB,IAAK,IAEP,cAACrL,GAAA,EAAD,iDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,UAAX,qBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,UACH3C,MAAO+S,EAAUwL,QACjB9J,QAASlB,EAAiBgL,QAC1B7J,SAAUjB,EACVuM,IAAK,EACL7iB,KAAK,WAEP,cAACwX,GAAA,EAAD,kDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,6BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,aACH3C,MAAO+S,EAAU2N,WACjBjM,QAASlB,EAAiBmN,WAC1BhM,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,kDAGF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,kBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,OACH3C,MAAO+S,EAAU4N,KACjBlM,QAASlB,EAAiBoN,KAC1BjM,SAAUjB,EACVtW,KAAK,SALP,UAOE,wBAAQ6C,MAAM,OAAd,kBACA,wBAAQA,MAAM,QAAd,mBACA,wBAAQA,MAAM,UAAd,wBAEF,cAAC2U,GAAA,EAAD,sCAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,UAAX,sBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,UACH3C,MAAO+S,EAAU6N,QACjBnM,QAASlB,EAAiBqN,QAC1BlM,SAAUjB,EACVtW,KAAK,WAEP,cAACwX,GAAA,EAAD,4CAKN,cAAC7M,EAAA,EAAD,UACE,cAAC,GAAD,CACEvF,UAAW,gCACXpF,KAAK,SACL+L,MAAM,UACNgJ,UAAWrK,EAJb,qCAlGlB,E,oBCxEF,MAAMiZ,GAAgBC,KAAOC,IAAV,+JAGAtgB,GAAyB,SAAhBA,EAAM6D,MAAmB,UAAY,YAC7C7D,GAAyB,SAAhBA,EAAM6D,MAAmB,UAAY,YAK5D0c,GAAW,IAA2C,IAA1C,OAAEC,EAAF,QAAUC,EAAV,MAAmBxb,EAAnB,SAA0Byb,GAAe,EACzD,MAAM,MAAE7c,EAAQ,SAAYpD,aAAYrB,GAASA,EAAM9C,eAAeQ,OACtE,OACE,eAACsjB,GAAD,CAAevc,MAAOA,EAAtB,UACE,qBAAK/B,MAAO,CAAEY,MAAO,GAAIC,OAAQ,GAAI8V,aAAc,EAAGkI,WAAsB,SAAV9c,EAAmB,0BAA4B,UAAW+c,OAAQ,GAAIhZ,QAAS,GAAIzC,QAAS,gBAA9J,SACGsb,IAEH,qBAAK3e,MAAO,CAAEqD,QAAS,gBAAvB,SACE,sBAAKrD,MAAO,CAAE+e,SAAU,YAAxB,UACE,sBAAM/e,MAAO,CAAE0G,MAAiB,SAAV3E,EAAmB,UAAY,UAAWwB,WAAY,OAAQD,SAAU,QAASD,QAAS,QAASmI,WAAY,IAArI,SAA4IrI,IAC5I,sBAAMnD,MAAO,CAAE0G,MAAiB,SAAV3E,EAAmB,UAAY,UAAWwB,WAAY,SAAUD,SAAU,QAASD,QAAS,SAAlH,SAA8Hub,SAGlI,qBAAK5e,MAAO,CAAEqD,QAAS,eAAgB2Z,MAAO,QAAS8B,OAAQ,IAA/D,SACGJ,MAZP,EAkBIM,GAAa,KAGjB,MAAM,MAAEjd,EAAQ,SAAYpD,aAAYrB,GAASA,EAAM9C,eAAeQ,OAEhEikB,EAAeld,IACnBrC,EACGjD,KAAK,oBAAqB,CAAEyiB,MAAOnd,IACnC1E,MAAK,IAAM+N,OAAOyM,SAASsH,WAC3B9f,OAAM,IAAME,QAAQC,IAAI,UAH3B,EAMF,OACE,eAAC2U,GAAA,EAAD,WACE,cAACxF,GAAA,EAAD,CAAQjI,MAAM,UAAUkI,QAAmB,SAAV7M,EAAkBF,QAAS,IAAMod,EAAY,QAA9E,uBACA,cAACtQ,GAAA,EAAD,CAAQjI,MAAM,UAAUkI,QAAmB,UAAV7M,EAAmBF,QAAS,IAAMod,EAAY,SAA/E,2BAHJ,EC/BF,MAAMG,GAAWngB,EAAQ,KCPV,SAASogB,KACtB,MAAMjiB,EAAWsB,eAEVjB,EAAK6hB,GAAUjhB,mBAAS,KAExBqR,EAAW6P,GAAgBlhB,oBAAS,GAE3CO,qBAAU,KACR4gB,GAAU,GACT,IAEH,MAAMA,EAAWpjB,UACfmjB,GAAa,GACb,IACE,MAAM9f,QAAaC,EAAO/C,IAAI,uBAC9B4C,QAAQC,IAAI,UAAWC,GACnBA,EAAKjD,KAAKsB,OAAQwhB,EAAO7f,EAAKjD,KAAKqB,SAErCT,EAAShC,EAAaE,MAAM,wBAC5BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MAEN,CAAC,MAAOD,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACDikB,GAAa,EAAb,EAuBF,OACE,eAACnf,EAAA,EAAD,CACEL,UAAU,iCACVC,MAAO,CAAEwD,WAAY,GAFvB,UAIE,cAAClD,EAAA,EAAD,UACE,gCAAQ,kBAEV,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK/G,MAAO,CAAEwL,UAAW,IAAzB,SACE,cAACiH,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAAC/C,GAAD,IACA,8CACA,eAACuB,GAAA,EAAD,CACEvP,KAAK,OACLwP,SAAU,IApCL/U,WACjBmjB,GAAa,GACb,IACE,MAAM9f,QAAaC,EAAO/C,IAAI,4BAC9B4C,QAAQC,IAAI,eAAgBC,GACxBA,EAAKjD,KAAKsB,QACZV,EAAShC,EAAaC,QAAQ,8BAC9BikB,EAAO7f,EAAKjD,KAAKqB,SAEjBT,EAAShC,EAAaE,MAAM,wBAE9BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KACJ,CAAC,MAAO+D,GACPC,QAAQC,IAAI,MAAOF,EACpB,CACDigB,GAAa,EAAb,EAmB4BE,GAChBzf,MAAO,CAAEwL,UAAW,QAHtB,UAKE,eAACqG,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CACEC,IAAI,MACJlQ,QAAS,KACP6d,UAAUC,UAAUC,UAAUniB,GAC9BL,EAAShC,EAAaC,QAAQ,WAA9B,EAJJ,sBASA,sBAAK2E,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAAC2O,GAAA,EAAD,CACE7R,GAAG,MACH3C,MAAOC,EACP9C,KAAK,OACLsiB,UAAQ,EACRjd,MAAO,CAAEY,MAAO,SAElB,cAAC,GAAD,CACE8F,MAAM,OACN7E,QAAS,KACP6d,UAAUC,UAAUC,UAAUniB,GAC9BL,EAAShC,EAAaC,QAAQ,WAA9B,EAEFuT,SAAO,EACP5O,MAAO,CAAE0O,QAAS,MAAOlL,WAAY,QAPvC,wBAaJ,cAACqO,GAAA,EAAD,CAAW7R,MAAO,CAAEwL,UAAW,QAA/B,SACE,cAAC,GAAD,CAAQ7Q,KAAK,SAAS+L,MAAM,UAAUgJ,UAAWA,EAAjD,SACGjS,EAAM,aAAe,6BAUzC,C,gFCvGD,MAAMqS,GAAa,IAAe,IAAd,KAAEC,GAAW,EAC/B,MAAOC,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAACsQ,GAAA,EAAD,CACEjI,MAAM,SACNkI,SAAO,EACP5O,MAAO,CAAEwD,WAAY,GACrB3B,QAAS,IAAMoO,GAAUD,GACzBK,KAAK,KALP,oBASA,eAACvM,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACVC,MAAO,CAAE6L,cAAe,GAF1B,kDAMA,eAACuE,GAAA,EAAD,CAAarQ,UAAU,uBAAuBC,MAAO,CAAEiE,WAAY,GAAnE,UACE,eAAC0K,GAAA,EAAD,CAAQjI,MAAM,SAAS2J,KAAK,KAAKxO,QAxBnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EAsBM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAACkL,GAAA,EAAD,CAAQ0B,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BAvBR,EAiWa4P,OAjUf,YAAoD,IAAlC,KAAErjB,EAAF,KAAQ6O,EAAR,QAAcxH,EAAd,OAAuBic,GAAU,EACjD,MAAOC,EAAUC,GAAgB3hB,mBAAS,KAEnC6Q,EAAQ+Q,GAAa5hB,mBAAS,KAC9Be,EAAK6a,GAAU5b,mBAAS,KACxB1D,EAAMulB,GAAW7hB,mBAAS,OAC1BmD,EAAQ2e,GAAa9hB,mBAAS,CAAC,IAC/BZ,EAAK6hB,GAAUjhB,mBAAS,KACxBb,EAAO4iB,GAAY/hB,mBAAS,KAC5BgiB,EAAYC,GAAiBjiB,oBAAS,IACtCkiB,EAAaC,GAAkBniB,mBAAS,KACxCoiB,EAAQC,GAAariB,oBAAS,IAE/B,KAAEsD,GAAShD,aAAarB,GAAUA,EAAM9C,eAAeQ,OAE7D4D,qBAAU,KACK,UAAT+C,EACFgf,IAEA1L,GACD,GACA,IAEHrW,qBAAU,KACR,GAAIpC,IACFyjB,EAAmB,UAATte,EAAmBnF,EAAKuS,UAAYvS,EAAKsZ,YACnDmE,EAAOzd,EAAKokB,KACZV,EAAQ1jB,EAAK2hB,MACbqC,GAAmB,OAAJhkB,QAAI,IAAJA,OAAA,EAAAA,EAAMqkB,cAAe,IAChCrkB,EAAKskB,SAAS,CAChB,IAAIC,EAAO,CAAC,EACZ,IACEA,EAAOC,KAAKC,MAAMD,KAAKC,MAAMzkB,EAAKskB,SACnC,CAAC,MAAS,CACXX,EAAUY,EACX,CACF,GACA,CAAC1V,IAEJ,MAAMsV,EAAevkB,UACnB,IACE,MAAMsR,QAAiBC,EAAIhR,IAAI,iBACvBH,KAAMgG,EAAR,OAAW1E,GAAW4P,EAASlR,KACjCsB,GACFkiB,EACExd,EAAE4G,KAAKvE,IAAD,CAAU1E,GAAI0E,EAAEkK,UAAWmS,YAAarc,EAAE4L,eAErD,CAAC,MAAS,GAGPwE,EAAgB7Y,UACpBuR,EAAIhR,IAAJ,+BAAuCU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACzDA,EAAIrB,QACNkiB,EACE7gB,EAAI3C,KAAK4M,KAAKvE,IAAD,CAAU1E,GAAI0E,EAAE4P,GAAIyM,YAAarc,EAAEwQ,gBADlD,GAFJ,EAuBIoK,EAAarjB,UACjB,GAAKgD,GAAQ8P,QAAmBiS,IAATxmB,GAA+B,OAATA,GAAkB4lB,EAA/D,CACA,IACEG,GAAU,UACQ/S,EAAIlR,KAAK,mCAAoC,CAC7DgY,GAAIjY,EAAOA,EAAKiY,QAAK0M,EACrB,CAAU,UAATxf,EAAmB,YAAc,cAA0B,QAAXuN,EAAmB,EAAIA,EACxE9P,MACAzE,OACAymB,QAASJ,KAAKK,UAAU7f,GACxB+e,iBAEM/jB,KAAKsB,SACXgiB,IACAwB,IAEH,CAAC,MAAOhmB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACDolB,GAAU,EAlBwE,CAkBlF,EAYIa,EAAiBC,IAAmB,IAAD,EACvC,OAAIA,EACU,MAAR7mB,EACK,cAEFA,EAAO,SAAW,UAEtBuU,GAGE,UAAA6Q,EAAS7V,QAAQuX,GAAMA,EAAEthB,KAAO+O,IAAQ,UAAxC,eAA4CgS,cAAehS,EAFhD,UAATvN,EAAmB,UAAY,UAExC,EAWI2f,EAAW,KACfrB,EAAU,IACVhG,EAAO,IACPiG,EAAQ,MACRC,EAAU,CAAC,GACXb,EAAO,IACPc,EAAS,IACTI,EAAe,IACfF,GAAc,GACVzc,GAASA,GAAS,EAGxB,OACE,gCACE,eAAC6d,GAAA,EAAD,CAAY1hB,MAAO,CAAEwL,UAAW,EAAG6D,aAAc,IAAjD,UACE,eAACpO,EAAA,EAAD,CACEgc,SAAUzgB,EACVwD,MAAO,CACL2hB,qBAAsB,EACtBC,wBAAyB,EACzBhhB,MAAO,OACP6C,YAAa,IANjB,UASE,cAACtC,EAAA,EAAD,CAAgBnB,MAAO,CAAEuD,WAAY,KAAOse,OAAK,EAAjD,SACGN,MAEH,eAAClgB,EAAA,EAAD,CAAcrB,MAAO,CAAEyL,SAAU,OAAQ2R,UAAW,QAApD,UACE,cAAC7b,EAAA,EAAD,CAAcM,QAAS,IAAMoe,EAAU,OAAvC,iBADF,KAEGF,EAAS3W,KAAI,QAAC,GAAEjJ,EAAF,YAAM+gB,GAAP,SACZ,cAAC3f,EAAA,EAAD,CAAcM,QAAS,IAAMoe,EAAU9f,GAAvC,SACG+gB,GAFS,UAOlB,eAACjgB,EAAA,EAAD,CACEjB,MAAO,CACLY,MAAO,QAFX,UAKE,cAACO,EAAA,EAAD,CACEnB,MAAO,CAAE2hB,qBAAsB,EAAGC,wBAAyB,GAC3DC,OAAK,EAFP,SAjDmB,MACzB,IAAIrlB,EAAO,eAGX,MAFoB,SAAhB+jB,IAAwB/jB,EAAO,WACf,UAAhB+jB,IAAyB/jB,EAAO,YAC7BA,CAAP,EAiDSslB,KAEH,eAACzgB,EAAA,EAAD,WACE,cAACE,EAAA,EAAD,CAAcM,QAAS,IAAM2e,EAAe,QAA5C,qBAGA,cAACjf,EAAA,EAAD,CAAcM,QAAS,IAAM2e,EAAe,SAA5C,4BAKJ,cAACxO,GAAA,EAAD,CACE0K,YAAY,cACZlf,MAAO4B,EACP8S,SAAWrN,GAAMoV,EAAOpV,EAAEqK,OAAO1R,OACjCwC,MAAO,CAAE2W,aAAc,EAAGoL,YAAa,MAEzC,cAACpT,GAAA,EAAD,CACExO,GAAE,gCAA8B,OAAJ3D,QAAI,IAAJA,OAAA,EAAAA,EAAMiY,KAAM,OACxC7F,SAAO,EACP5O,MAAO,CAAEgiB,oBAAqB,EAAGC,uBAAwB,GACzDpgB,QAAS,IAAMye,GAAeD,IAAgBA,IAJhD,SAMGA,EAAa,mBAAGrR,MAAM,iBAAoB,mBAAGA,MAAM,iBAEtD,cAACC,GAAA,EAAD,CACEC,OAAM,gCAA8B,OAAJ1S,QAAI,IAAJA,OAAA,EAAAA,EAAMiY,KAAM,OAD9C,SAGG4L,EAAa,oBAAsB,8BAEtC,eAACpf,EAAA,EAAD,CACEgc,SAAUzgB,EACVwD,MAAO,CACL2hB,qBAAsB,EACtBC,wBAAyB,EACzBhhB,MAAO,OACP4C,WAAY,IANhB,UASE,cAACrC,EAAA,EAAD,CAAgBnB,MAAO,CAAEuD,WAAY,KAAOse,OAAK,EAAjD,SACGN,GAAc,KAEjB,eAAClgB,EAAA,EAAD,CAAcrB,MAAO,CAAEyL,SAAU,OAAQ2R,UAAW,QAApD,UACE,cAAC7b,EAAA,EAAD,CAAcM,QAAS,IAAMqe,EAAQ,GAArC,qBACA,cAAC3e,EAAA,EAAD,CAAcM,QAAS,IAAMqe,EAAQ,GAArC,2BAGF1jB,GACA,eAACmS,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwD,WAAY,IACrB3B,QAAS4d,EAHX,UAKGgB,GACC,sBACEzgB,MAAO,CAAEyD,YAAa,IACtB1D,UAAU,qCARhB,YAeJ,eAACmiB,GAAA,EAAD,CAAUne,OAAQsc,EAAYrgB,MAAO,CAAEqP,aAAc,GAArD,4BAEE,sBAAKrP,MAAO,CAAEwL,UAAW,EAAGnI,QAAS,OAAQ8e,SAAU,QAAvD,UACG7Q,OAAOC,QAAQ/P,GAAQ4H,KAAI,QAAEgZ,EAAGC,GAAL,SAC1B,eAACX,GAAA,EAAD,CAAY1hB,MAAO,CAAEY,MAAO,IAAKke,OAAQ,GAAzC,UACE,cAAC9M,GAAA,EAAD,CAAO0K,YAAY,MAAMlf,MAAO4kB,EAAGnF,UAAQ,IAC3C,cAACjL,GAAA,EAAD,CAAO0K,YAAY,QAAQlf,MAAO6kB,EAAGpF,UAAQ,IAC7C,cAACtO,GAAA,EAAD,CACEC,SAAO,EACPlI,MAAM,SACN7E,QAAS,IAhLKpE,KAC1B,MAAM4K,EAAIlE,IAAEme,UAAU9gB,UACf6G,EAAE5K,GACT0iB,EAAU9X,EAAV,EA6K2Bka,CAAmBH,GAClCpiB,MAAO,CACLgiB,oBAAqB,EACrBC,uBAAwB,GAN5B,SASE,mBAAGjT,MAAM,yBAba,IAkB5B,qBAAKhP,MAAO,CAAEY,MAAO,IAAKke,OAAQ,GAAlC,SACE,eAAC4C,GAAA,EAAD,WACE,cAAC1P,GAAA,EAAD,CACE0K,YAAY,MACZlf,MAAOC,EACPyU,SAAWrN,GAAMya,EAAOza,EAAEqK,OAAO1R,SAEnC,cAACwU,GAAA,EAAD,CACE0K,YAAY,QACZlf,MAAOA,EACP0U,SAAWrN,GAAMub,EAASvb,EAAEqK,OAAO1R,SAErC,cAACmR,GAAA,EAAD,CACEC,SAAO,EACP/M,QAlNU,KACtB,IAAKpE,IAAQD,EAAO,OACpB,MAAM6K,EAAIlE,IAAEme,UAAU9gB,GACtB2C,IAAEqe,IAAIna,EAAG5K,EAAKD,GACd2iB,EAAU9X,GACViX,EAAO,IACPc,EAAS,GAAT,EA6MYpgB,MAAO,CACLgiB,oBAAqB,EACrBC,uBAAwB,GAL5B,SAQE,mBAAGjT,MAAM,6BAMlBxS,GACC,sBACEwD,MAAO,CACLqD,QAAS,OACT+O,eAAgB,gBAChB5G,UAAW,IAJf,UAOE,cAAC,GAAD,CAAYuE,KAjMC3T,iBAAyB,IAAlB+D,EAAiB,uDAAZ3D,EAAKiY,GACpC,UACoB9G,EAAIlR,KAAJ,0CAA4C0D,GAC/D,CAAC,MAAO7E,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACDwkB,GACD,IA2LO,sBAAK9f,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAACsL,GAAA,EAAD,CACEjI,MAAM,YACNkI,SAAO,EACP5O,MAAO,CAAEwD,WAAY,GACrB3B,QAASyf,EACTjR,KAAK,KALP,oBASA,eAAC1B,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwD,WAAY,GACrB3B,QAAS4d,EACTpP,KAAK,KAJP,UAMGoQ,GACC,sBACEzgB,MAAO,CAAEyD,YAAa,IACtB1D,UAAU,qCAThB,oBAmBX,EC3WD,MAAM0iB,GAAW,IAAuB,IAAtB,KAAEjmB,EAAF,OAAQsjB,GAAa,EACrC,MAAOzU,EAAMqX,GAAWrkB,oBAAS,GACjC,OAAO,eAACskB,GAAA,EAAD,WAEL,cAACT,GAAA,EAAD,CAAUne,OAAQsH,EAAlB,SACE,cAAC,GAAD,CAAU7O,KAAMA,EAAM6O,KAAMA,EAAMxH,QAAS,IAAM6e,GAAQ,GAAQ5C,OAAQA,OAEzEzU,GAAQ,sBACRrL,MAAO,CACLqD,QAAS,OACT+O,eAAgB,gBAChB7C,WAAY,UAJN,UAOP/S,EAAKokB,IACN,cAACjS,GAAA,EAAD,CAAQ9M,QAAS,IAAM6gB,GAASrX,GAAOgF,KAAK,KAAKzB,SAAO,EAAClI,MAAM,YAA/D,SACE,mBAAGsI,MAAM,sBAdf,EA0Ea4T,OAtDE,KACf,MAAM3U,EAAUC,eAET2U,EAAOC,GAAYzkB,mBAAS,KAC5B0kB,EAAaC,GAAkB3kB,oBAAS,GAE/CO,qBAAU,KACRqkB,GAAc,GACb,IAEH,MAAMA,EAAe7mB,UACnB4mB,GAAe,GACf,IACE,MAAM7jB,QAAYwO,EAAIhR,IAAI,+BACvBwC,EAAI3C,KAAKsB,QACVglB,EAAS3jB,EAAI3C,KAAKqB,OAErB,CAAC,MAAOvC,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACD0nB,GAAe,EAAf,EAGF,OACE,mCACE,eAAC5iB,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,GAAG,MAH5B,SAKE,mBAAGjT,UAAU,0BANjB,eAUA,cAAC0S,GAAA,EAAD,CAAMzS,MAAO,CAAE8F,QAAS,IAAxB,SACE,cAAC,GAAD,CAAUod,OAAK,EAACpD,OAAQmD,MAE1B,eAACxQ,GAAA,EAAD,CAAMzS,MAAO,CAAEwL,UAAW,GAAI1F,QAAS,IAAvC,6BAEE,cAACqd,GAAA,EAAD,CAAWnjB,MAAO,CAAEwL,UAAW,GAA/B,SACGuX,GACC,cAACJ,GAAA,EAAD,UACE,cAAClc,GAAA,EAAD,CAASC,MAAM,UAAU2J,KAAK,UAE7BwS,EAAMzZ,KAAKga,GAAO,cAACX,GAAD,CAAUjmB,KAAM4mB,EAAGtD,OAAQmD,eAvB5D,E,4DCzCF,MAAMjc,GAAS,CAAC,UAAW,UAAW,UAAW,WAE3CS,GAASC,KAAKC,GAAK,IACnBC,GAAwB,IAQvB,IARwB,GAC7BC,EAD6B,GAE7BC,EAF6B,SAG7BC,EAH6B,YAI7BC,EAJ6B,YAK7BC,EAL6B,QAM7BC,EAN6B,MAO7BC,GACI,EACJ,MAAMC,EAASJ,EAA4C,IAA7BC,EAAcD,GACtCK,EAAIR,EAAKO,EAASV,KAAKY,KAAKP,EAAWN,IACvCc,EAAIT,EAAKM,EAASV,KAAKc,KAAKT,EAAWN,IAE7C,OACE,sBACEY,EAAGA,EACHE,EAAGA,EACHhG,KAAK,QACLkG,WAAYJ,EAAIR,EAAK,QAAU,MAC/Ba,iBAAiB,UALnB,oBAOiB,IAAVR,GAAeS,QAAQ,GAP9B,MADF,EAoIa0a,OAvHQnlB,IACrB,MAAO1B,EAAM8mB,GAAWjlB,mBAAS,KAC1BgH,EAAS6H,GAAc7O,oBAAS,GAEvCO,qBAAU,KACR0kB,EAAQplB,EAAM1B,KAAd,GACC,CAAC0B,IAEJ,MAAMqlB,EAAS,CACb,CACE7hB,KAAM,UACNlE,MACEhB,EAAK4M,KAAKC,GAAD,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAGma,kBAAiB7H,QAAO,CAAClK,EAAG/Q,IAAM+Q,EAAI/Q,GAAG,IAAM,GAEtE,CACEgB,KAAM,SACNlE,MAAOhB,EAAK4M,KAAKC,GAAD,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAGoa,gBAAe9H,QAAO,CAAClK,EAAG/Q,IAAM+Q,EAAI/Q,GAAG,IAAM,IAsBrEmJ,EAAS,IAAI,IAAIQ,IAAI7N,EAAK4M,KAAKC,GAAD,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAGrG,YAAWoG,KAAKC,IAC9C,CACZ3H,KAAM2H,EACN0S,QACEvf,EACG0N,QAAQpF,IAAW,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAK9B,WAAYqG,IACjCD,KAAKtE,GAAD,OAASA,QAAT,IAASA,OAAT,EAASA,EAAK0e,kBAClB7H,QAAO,CAAClK,EAAG/Q,IAAM+Q,EAAI/Q,GAAG,IAAM,EACnCob,OACEtf,EACG0N,QAAQpF,IAAW,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAK9B,WAAYqG,IACjCD,KAAKtE,GAAD,OAASA,QAAT,IAASA,OAAT,EAASA,EAAK2e,gBAClB9H,QAAO,CAAClK,EAAG/Q,IAAM+Q,EAAI/Q,GAAG,IAAM,MAMvC,OACE,mCACE,cAACN,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,SACE,cAACiF,EAAA,EAAD,CAAKtF,MAAO,CAAE8e,OAAQ,IAAtB,SACE,qBAAK/e,UAAU,MAAf,SACE,sBAAKC,MAAO,CAAEqD,QAAS,OAAQxC,OAAQ,IAAKD,MAAO,OAAQyO,aAAa,IAAxE,UACE,qBAAKrP,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,mEACA,cAAC+K,GAAA,EAAD,UACE,eAACG,GAAA,EAAD,WACG,IACD,cAACC,GAAA,EAAD,CACEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAAM+mB,GAAU,GAChBnX,WAAW,EACX1B,MAAO9C,GACPK,YAAa,IACb1F,KAAK,UACL8J,QAAQ,QANV,SAQGkX,EAAOna,KAAI,CAACkD,EAAOnE,IAClB,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,cAKR,qBAAKxM,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEa,OAAQ,OAAQD,MAAO,OAArC,UACE,0DACA,cAACgL,GAAA,EAAD,UACE,eAAC8X,GAAA,EAAD,CAAUlnB,KAAMqN,EAAhB,UACE,cAAC8Z,GAAA,EAAD,CAAeC,gBAAgB,MAAMC,YAAY,IACjD,cAACC,GAAA,EAAD,CACEzX,QAAQ,SAEV,cAAC0X,GAAA,EAAD,IACA,cAACvX,GAAA,EAAD,IACA,cAACR,GAAA,EAAD,IACA,cAACgY,GAAA,EAAD,CAAK3X,QAAQ,UAAU9J,KAAK,YAC5B,cAACyhB,GAAA,EAAD,CAAK3X,QAAQ,SAAS9J,KAAK,gCAlD/C,EC/EiBtD,EAAQ,KAA3B,MAEQ2O,UAAF,IAAgBC,UAEP,SAASoW,GAAe/lB,GACrC,MAAOgmB,EAAeC,GAAuB9lB,oBAAS,IAC/C+lB,EAASC,GAAchmB,mBAAS,CACrC2E,QAAS,GACTshB,WAAY,GACZC,WAAY,GACZzmB,OAAQ,GACR0mB,QAAS,MAGJjgB,EAASC,GAAcnG,mBAAS,KACjC,gBAAEomB,GAAoBC,aAE5B9lB,qBAAU,KACR,MAAM,UAAE+F,GAAczG,EACtBsG,EAAWG,EAAX,GACC,CAACzG,IAEJ,MAAM,MAAE6D,GAAUpD,aAAalE,GAAUA,EAAMD,eAAeQ,QAAS,CACrE+G,MAAO,SAIHyD,GAFO7G,aAAawP,GAAMA,EAAE3T,eAAeQ,OAEjC,CACd,CACEyK,UAAW,WACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,OAAQkF,QAAS,aAEzC,CACEL,UAAW,cACXC,KAAM,UACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,WACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,OACXC,KAAM,OACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,UACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNoV,SAAU,CAACtJ,EAAG/Q,EAAGsa,KACfvJ,EAAU,KAANA,EAAW,QAAUA,EACzB/Q,EAAU,KAANA,EAAW,QAAUA,EACX,QAAVsa,EAC8B,IAAzBC,KAAOC,QAAQzJ,EAAG/Q,GAAW,GAAK,EAET,IAAzBua,KAAOC,QAAQzJ,EAAG/Q,IAAY,EAAI,GAI7CkF,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,YACXC,KAAM,eACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,EACZ5F,MAAO,CAAE2kB,WAAY,UACrBnW,UAAW,SAAUC,EAAM3J,GACzB,OAAO,IAAIqX,KAAK1N,GAAMmW,gBACvB,EACD/e,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,cACXof,QAAQ,EACRC,WAAU,KAIR9f,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAS,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAASH,SAGhB,QAAEiB,GAAYnH,EAEIiG,IAAE4gB,OAAOX,GAASY,MAAM7gB,IAAEwN,SAElD,OACE,cAAC,KAAD,CACEpM,SAAS,WACT/I,KAAM+H,GAAW,GACjBiB,QAASA,EACTQ,QAAM,EACNC,QAAM,EACNgf,UAAW,CACTC,SAAU,sBAPd,SAUIhnB,GACA,cAAC,sBAAD,CAAoBgI,WAAYC,KAAkBnB,GAAlD,SACG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,GAAI7D,UAAW,IAA3C,UACE,eAACzE,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAHxC,+BAME,cAAC,iCAAD,CACExP,UAAU,oCACNqG,OAGR,cAACW,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,6BAAtB,SACE,eAACuF,EAAA,EAAD,WACE,cAAC,GAAD,CACEvF,UAAU,wBACN7B,EAAMsR,cAEZ,cAACiV,EAAD,IAAqBvmB,EAAMinB,SAA3B,mCAMN,cAAC,KAAD,CACE7e,OAAK,EACLC,UAAU,EACVC,iBACEnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UAEtDC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SACE,KAKJ,eAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WA/CrC,KAwDV,CClLD,MAAMY,GAAS,CAAC,UAAW,UAAW,UAAW,WAE3CS,GAASC,KAAKC,GAAK,IACnBC,GAAwB,IAQvB,IARwB,GAC7BC,EAD6B,GAE7BC,EAF6B,SAG7BC,EAH6B,YAI7BC,EAJ6B,YAK7BC,EAL6B,QAM7BC,EAN6B,MAO7BC,GACI,EACJ,MAAMC,EAASJ,EAA4C,IAA7BC,EAAcD,GACtCK,EAAIR,EAAKO,EAASV,KAAKY,KAAKP,EAAWN,IACvCc,EAAIT,EAAKM,EAASV,KAAKc,KAAKT,EAAWN,IAE7C,OACE,sBACEY,EAAGA,EACHE,EAAGA,EACHhG,KAAK,QACLkG,WAAYJ,EAAIR,EAAK,QAAU,MAC/Ba,iBAAiB,UALnB,oBAOiB,IAAVR,GAAeS,QAAQ,GAP9B,MADF,EA2Kayc,OA9JG,KAChB,MAAOC,EAASC,GAAcjnB,mBAAS,KAChCknB,EAAQC,GAAannB,mBAAS,KAC9BgH,EAAS6H,GAAc7O,oBAAS,GAEvCO,qBAAU,KACR6mB,GAAW,GACV,IACH,MAAMA,EAAYrpB,UAChB8Q,GAAW,GACX,IACE,MAAMzN,QAAaC,EAAO/C,IACxB,8CAEI+oB,QAAchmB,EAAO/C,IACzB,6CAEF,GAAI8C,EAAKjD,KAAKsB,OAAQ,CAAC,IAAD,EACpB,MAAMtB,EAAO,GACb,UAAAiD,EAAKjD,YAAL,SAAWqB,OAAO2T,SAASnI,IACzB7M,EAAKsS,KAAK,IAAKzF,EAAG1O,KAAM,WAAxB,IAEF2qB,EAAW9oB,EACZ,CAED,GAAIkpB,EAAMlpB,KAAKsB,OAAQ,CAAC,IAAD,EACrB,MAAMtB,EAAO,GACb,UAAAkpB,EAAMlpB,YAAN,SAAYqB,OAAO2T,SAASnI,IAC1B7M,EAAKsS,KAAK,IAAKzF,EAAG1O,KAAM,UAAxB,IAEF6qB,EAAUhpB,EACX,CACF,CAAC,MAAOlB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACD4R,GAAW,EAAX,EAGIqW,EAAS,CACb,CAAE7hB,KAAM,UAAWlE,MAAO6nB,EAAQjhB,QAAU,GAC5C,CAAE1C,KAAM,SAAUlE,MAAO+nB,EAAOnhB,QAAU,IAetCyF,EAAS,IAAI,IAAIQ,IAAI,IAAIgb,KAAYE,GAAQnc,KAAKC,GAAMA,EAAErG,YAC7D2C,MAAK,CAAC8L,EAAG/Q,IAC8C,IAA/Cua,KAAOC,QAAQzJ,GAAK,QAAS/Q,GAAK,SAAiB,GAAK,IAEhE0I,KAAKC,IACS,CACX3H,KAAM2H,EACNkc,OAAQA,EAAOrb,QAAQpF,GAAQA,EAAI9B,UAAYqG,IAAGjF,OAClDihB,QAASA,EAAQnb,QAAQpF,GAAQA,EAAI9B,UAAYqG,IAAGjF,WAM1D,OACE,mCACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,mCACEsF,GACA,cAACC,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,sBACEC,MAAO,CACLqD,QAAS,OACTxC,OAAQ,IACRD,MAAO,OACP4K,UAAW,IALf,UAQE,qBAAKxL,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,oEACA,cAAC+K,GAAA,EAAD,UACE,eAACG,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAAM+mB,GAAU,GAChBnX,WAAW,EACX1B,MAAO9C,GACPK,YAAa,IACb1F,KAAK,UACL8J,QAAQ,QANV,SAQGkX,EAAOna,KAAI,CAACkD,EAAOnE,IAClB,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,cAKR,qBAAKxM,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEa,OAAQ,OAAQD,MAAO,QAArC,UACE,oBAAIZ,MAAO,CAAEwD,WAAY,IAAzB,4CAGA,cAACoI,GAAA,EAAD,UACE,eAAC8X,GAAA,EAAD,CAAUlnB,KAAMqN,EAAhB,UACE,cAAC8Z,GAAA,EAAD,CACEC,gBAAgB,MAChBC,YAAY,IAEd,cAACC,GAAA,EAAD,CACEzX,QAAQ,OACR3B,MAAO,CAAElN,MAAO,WAAYmoB,GAAI,MAElC,cAAC5B,GAAA,EAAD,IACA,cAACvX,GAAA,EAAD,IACA,cAACR,GAAA,EAAD,CACEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAAC8X,GAAA,EAAD,CAAK3X,QAAQ,SAAS9J,KAAK,YAC3B,cAACyhB,GAAA,EAAD,CAAK3X,QAAQ,UAAU9J,KAAK,6BAS5C,cAAC+C,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,MAAzB,SACE,cAACyY,GAAD,CACEtf,UAAW,IAAI0gB,KAAYE,KAAW,EACtClgB,QAASA,UAjFnB,ECvGF,MAAQuI,UAAF,IAAgBC,UAEP,SAASoW,GAAe/lB,GAErC,MAAOqG,EAASC,GAAcnG,mBAAS,KACjC,gBAAEomB,GAAoBC,aAE5B9lB,qBAAU,KACR,MAAM,UAAE+F,GAAczG,EACtBsG,EAAWG,EAAX,GACC,CAACzG,IAGJ,MAAMsH,EAAU,CACd,CACEC,UAAW,WACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,OAAQkF,QAAS,aAEzC,CACEL,UAAW,WACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,6BACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,+BACXC,KAAM,eACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,aACXC,KAAM,cACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,UACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNoV,SAAU,CAACtJ,EAAG/Q,EAAGsa,KACfvJ,EAAU,KAANA,EAAW,QAAUA,EACzB/Q,EAAU,KAANA,EAAW,QAAUA,EACX,QAAVsa,EAC8B,IAAzBC,KAAOC,QAAQzJ,EAAG/Q,GAAW,GAAK,EAET,IAAzBua,KAAOC,QAAQzJ,EAAG/Q,IAAY,EAAI,GAI7CkF,YAAY,EACZC,YAAa,CAAEC,QAAS,cAItBd,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAS,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAASH,SAGhB,QAAEiB,GAAYnH,EAGpB,OACE,cAAC,KAAD,CACEqH,SAAS,WACT/I,KAAM+H,GAAW,GACjBiB,QAASA,EACTQ,QAAM,EACNC,QAAM,EACNgf,UAAW,CACTC,SAAU,0BAPd,SAUIhnB,GACA,cAAC,sBAAD,CAAoBgI,WAAYC,KAAkBnB,GAAlD,SACG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,IAA5B,UACE,eAACtI,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAHxC,+BAME,cAAC,iCAAD,CACExP,UAAU,oCACNqG,OAGR,cAACW,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,6BAAtB,SACE,eAACuF,EAAA,EAAD,WACE,cAAC,GAAD,CACEvF,UAAU,wBACN7B,EAAMsR,cAEZ,cAACiV,EAAD,IAAqBvmB,EAAMinB,SAA3B,mCAMN,cAAC,KAAD,CACE7e,OAAK,EACLC,UAAU,EACVC,iBACEnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UAEtDC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SACE,KAKJ,eAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WA/CrC,KAwDV,CCrJD,MAAMY,GAAS,CAAC,UAAW,UAAW,UAAW,WAE3CS,GAASC,KAAKC,GAAK,IACnBC,GAAwB,IAQvB,IARwB,GAC7BC,EAD6B,GAE7BC,EAF6B,SAG7BC,EAH6B,YAI7BC,EAJ6B,YAK7BC,EAL6B,QAM7BC,EAN6B,MAO7BC,GACI,EACJ,MAAMC,EAASJ,EAA4C,IAA7BC,EAAcD,GACtCK,EAAIR,EAAKO,EAASV,KAAKY,KAAKP,EAAWN,IACvCc,EAAIT,EAAKM,EAASV,KAAKc,KAAKT,EAAWN,IAE7C,OACE,sBACEY,EAAGA,EACHE,EAAGA,EACHhG,KAAK,QACLkG,WAAYJ,EAAIR,EAAK,QAAU,MAC/Ba,iBAAiB,UALnB,oBAOiB,IAAVR,GAAeS,QAAQ,GAP9B,MADF,EA2Iayc,OA9HG,KAChB,MAAO/f,EAAS6H,GAAc7O,oBAAS,IAChCsG,EAAWihB,GAAgBvnB,mBAAS,IAE3CO,qBAAU,KACR6mB,GAAW,GACV,IAEH,MAAMA,EAAYrpB,UAChB8Q,GAAW,GACX,IACE,MAAMzN,QAAYC,EAAO/C,IAAI,4CAC1B8C,EAAKjD,KAAKsB,QACX8nB,EAAanmB,EAAKjD,KAAKqB,OAC1B,CAAC,MAAOvC,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACD4R,GAAW,EAAX,EAGIqW,EAAS,CACb,CAAE7hB,KAAM,UAAWlE,MAAOmH,EAAUuF,QAAOb,GAAkB,YAAfA,EAAEwc,aAAwBzhB,QAAU,GAClF,CAAE1C,KAAM,SAAUlE,MAAOmH,EAAUuF,QAAOb,GAAkB,WAAfA,EAAEwc,aAAuBzhB,QAAU,IAG5EyF,EAAS,IAAI,IAAIQ,IAAI1F,EAAUyE,KAAKC,GAAMA,EAAEiB,YAC/C3E,MAAK,CAAC8L,EAAG/Q,IAC8C,IAA/Cua,KAAOC,QAAQzJ,GAAK,QAAS/Q,GAAK,SAAiB,GAAK,IAEhE0I,KAAKC,IACS,CACX3H,KAAM2H,EACN1E,UAAWA,EAAUuF,QAAQpF,GAAQA,EAAIwF,UAAYjB,IAAGjF,WAM9D,OACE,mCACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,WACEgF,GAAY,qBAAKtF,UAAU,iBAAiBC,MAAO,CAACwL,UAAU,IAAlD,4CACVnG,GACA,cAACC,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,sBACEC,MAAO,CACLqD,QAAS,OACTxC,OAAQ,IACRD,MAAO,OACP4K,UAAW,IALf,UAQE,qBAAKxL,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEY,MAAO,OAAQC,OAAQ,QAArC,UACE,0EACA,cAAC+K,GAAA,EAAD,UACE,eAACG,GAAA,EAAD,WACA,cAACC,GAAA,EAAD,CAEIvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAAM+mB,GAAU,GAChBnX,WAAW,EACX1B,MAAO9C,GACPK,YAAa,IACb1F,KAAK,UACL8J,QAAQ,QANV,SAQGkX,EAAOna,KAAI,CAACkD,EAAOnE,IAClB,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,cAKR,qBAAKxM,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEa,OAAQ,OAAQD,MAAO,QAArC,UACE,oBAAIZ,MAAO,CAAEwD,WAAY,IAAzB,oCAGA,cAACoI,GAAA,EAAD,UACE,eAAC8X,GAAA,EAAD,CAAUlnB,KAAMqN,EAAhB,UACE,cAAC8Z,GAAA,EAAD,CACEC,gBAAgB,MAChBC,YAAY,IAEd,cAACC,GAAA,EAAD,CACEzX,QAAQ,OACR3B,MAAO,CAAElN,MAAO,WAAYmoB,GAAI,MAElC,cAAC5B,GAAA,EAAD,IACA,cAACvX,GAAA,EAAD,IACA,cAACR,GAAA,EAAD,CACEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAAC8X,GAAA,EAAD,CAAK3X,QAAQ,YAAY9J,KAAK,6BAS9C,cAAC+C,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,MAAzB,SACE,cAAC,GAAD,CACE7G,UAAWA,GAAa,GACxBU,QAASA,UAhFnB,ECrEF,MAAQuI,UAAF,IAAgBC,UAEP,SAASoW,GAAe/lB,GAErC,MAAOqG,EAASC,GAAcnG,mBAAS,KACjC,gBAAEomB,GAAoBC,aAE5B9lB,qBAAU,KACR,MAAM,UAAE+F,GAAczG,EACtBsG,EAAWG,EAAX,GACC,CAACzG,IAGJ,MAkCM8G,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAS,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAASH,SAGhB,QAAEiB,GAAYnH,EAEpB,OACE,cAAC,KAAD,CACEqH,SAAS,WACT/I,KAAM+H,GAAW,GACjBiB,QA9CY,CACd,CACEC,UAAW,WACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,OAAQkF,QAAS,aAEzC,CACEL,UAAW,aACXC,KAAM,eACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,WACXC,KAAM,YACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,gBACXC,KAAM,iBACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,cAiBxBE,QAAM,EACNC,QAAM,EACNgf,UAAW,CACTC,SAAU,sBAPd,SAUIhnB,GACA,cAAC,sBAAD,CAAoBgI,WAAYC,KAAkBnB,GAAlD,SACG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,IAA5B,UACE,eAACtI,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAHxC,+BAME,cAAC,iCAAD,CACExP,UAAU,oCACNqG,OAGR,cAACW,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,6BAAtB,SACE,eAACuF,EAAA,EAAD,WACE,cAAC,GAAD,CACEvF,UAAU,wBACN7B,EAAMsR,cAEZ,cAACiV,EAAD,IAAqBvmB,EAAMinB,SAA3B,mCAMN,cAAC,KAAD,CACE7e,OAAK,EACLC,UAAU,EACVC,iBACEnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UAEtDC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SACE,KAKJ,eAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WA/CrC,KAwDV,CChID,MAAMY,GAAS,CAAC,UAAW,UAAW,UAAW,WAC3C8e,GAAU,CAAC,UAAW,UAAW,UAAW,WAE5Cre,GAASC,KAAKC,GAAK,IACnBC,GAAwB,IAQvB,IARwB,GAC7BC,EAD6B,GAE7BC,EAF6B,SAG7BC,EAH6B,YAI7BC,EAJ6B,YAK7BC,EAL6B,QAM7BC,EAN6B,MAO7BC,GACI,EACJ,MAAMC,EAASJ,EAA4C,IAA7BC,EAAcD,GACtCK,EAAIR,EAAKO,EAASV,KAAKY,KAAKP,EAAWN,IACvCc,EAAIT,EAAKM,EAASV,KAAKc,KAAKT,EAAWN,IAE7C,OACE,sBACEY,EAAGA,EACHE,EAAGA,EACHhG,KAAK,QACLkG,WAAYJ,EAAIR,EAAK,QAAU,MAC/Ba,iBAAiB,UALnB,oBAOiB,IAAVR,GAAeS,QAAQ,GAP9B,MADF,EA0Iayc,OA7HG,KAChB,MAAO/f,EAAS6H,GAAc7O,oBAAS,IAChCsG,EAAWihB,GAAgBvnB,mBAAS,IAE3CO,qBAAU,KACR6mB,GAAW,GACV,IAEH,MAAMA,EAAYrpB,UAChB8Q,GAAW,GACX,IACE,MAAMzN,QAAYC,EAAO/C,IAAI,0CAC1B8C,EAAKjD,KAAKsB,QACX8nB,EAAanmB,EAAKjD,KAAKqB,OAC1B,CAAC,MAAOvC,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACD4R,GAAW,EAAX,EAGI6Y,EAAe,CACnB,CAAErkB,KAAM,YAAalE,MAAOmH,EAAUuF,QAAOb,GAAgB,kBAAbA,EAAE2c,WAA4B5hB,QAAU,GACxF,CAAE1C,KAAM,gBAAiBlE,MAAOmH,EAAUuF,QAAOb,GAAgB,kBAAbA,EAAE2c,WAA4B5hB,QAAU,IAGxF6hB,EAAoB,CACxB,CAAEvkB,KAAM,YAAalE,MAAOmH,EAAUuF,QAAOb,GAAqB,kBAAlBA,EAAE6c,gBAAiC9hB,QAAU,GAC7F,CAAE1C,KAAM,gBAAiBlE,MAAOmH,EAAUuF,QAAOb,GAAqB,kBAAlBA,EAAE6c,gBAAiC9hB,QAAU,IAGnG,OACE,mCACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,WACEgF,GAAY,qBAAKtF,UAAU,iBAAiBC,MAAO,CAACwL,UAAU,IAAlD,qCACVnG,GACA,cAACC,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,sBACEC,MAAO,CACLqD,QAAS,OACTwL,SAAS,OACThO,OAAQ,IACRD,MAAO,OACP4K,UAAW,IANf,UASE,qBAAKxL,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEY,MAAO,OAAOiO,SAAS,OAAQhO,OAAQ,QAArD,UACE,2DACA,cAAC+K,GAAA,EAAD,UACE,eAACG,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAAMupB,GAAgB,GACtB3Z,WAAW,EACX1B,MAAO9C,GACPK,YAAa,IACb1F,KAAK,UACL8J,QAAQ,QANV,SAQG0Z,EAAa3c,KAAI,CAACkD,EAAOnE,IACxB,cAACoE,GAAA,EAAD,CAEEhK,KAAMyE,GAAOmB,EAAQnB,GAAO5C,SAF9B,eACe+D,QAKnB,cAACqE,GAAA,EAAD,cAKR,qBAAKxM,MAAO,CAAE0D,KAAM,GAApB,SACE,sBAAK1D,MAAO,CAAEa,OAAQ,OAAQgO,SAAS,OAAQjO,MAAO,QAAtD,UACE,oBAAIZ,MAAO,CAAEwD,WAAY,IAAzB,6CAGA,cAACoI,GAAA,EAAD,UACE,eAACG,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAEEvJ,OAAO,aACPwJ,cAAc,MACdC,MAAM,WAER,cAACC,GAAA,EAAD,CACE3P,KAAMypB,GAAqB,GAC3B7Z,WAAW,EACX1B,MAAO9C,GACPK,YAAa,IACb1F,KAAK,UACL8J,QAAQ,QANV,SAQG4Z,EAAkB7c,KAAI,CAACkD,EAAOnE,IAC7B,cAACoE,GAAA,EAAD,CAEEhK,KAAMujB,GAAQ3d,EAAQ2d,GAAQ1hB,SAFhC,eACe+D,QAKnB,cAACqE,GAAA,EAAD,qBAShB,cAAClH,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,MAAzB,SACE,cAAC,GAAD,CACE7G,UAAWA,GAAa,GACxBU,QAASA,UAvFnB,EC1Da,SAAS8gB,KACtB,MAAOC,EAAUC,GAAehoB,mBAAS,kBACzC,OACE,eAAC+B,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,cAACiF,EAAA,EAAD,UACE,cAACmN,GAAA,EAAD,CACE1S,UAAU,SACVC,MAAO,CAAEY,MAAO,OAAQiO,SAAU,OAAQrD,UAAW,IAFvD,SAIE,cAACkH,GAAA,EAAD,UACE,cAACpN,EAAA,EAAD,UACE,eAACyB,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,aAAX,yBACA,eAACC,GAAA,EAAD,CACErX,KAAK,SACL+G,KAAK,cACLvB,GAAG,aACH+R,SAAWrN,GAAMwhB,EAAYxhB,EAAEqK,OAAO1R,OACtCA,MAAO4oB,EALT,UAOE,wBAAQ5oB,MAAM,iBAAd,mCACA,wBAAQA,MAAM,gBAAd,wDASE,kBAAb4oB,GAAgC,cAAC,GAAD,IACnB,mBAAbA,GAAiC,cAAC,GAAD,MAGvC,CC1BD,MAAQ3B,gBAAF,IAAsBC,a,OChB5B,MAAMpG,GAAgBC,KAAOC,IAAV,+JAGAtgB,GAAyB,SAAhBA,EAAM6D,MAAmB,UAAY,YAC7C7D,GAAyB,SAAhBA,EAAM6D,MAAmB,UAAY,YAK5D0c,GAAW,IAA2C,IAA1C,OAAEC,EAAF,QAAUC,EAAV,MAAmBxb,EAAnB,SAA0Byb,GAAe,EACzD,MAAM,MAAE7c,EAAQ,SAAYpD,aAAYrB,GAASA,EAAM9C,eAAeQ,OACtE,OACE,eAAC,GAAD,CAAe+G,MAAOA,EAAtB,UACE,qBAAK/B,MAAO,CAAEY,MAAO,GAAIC,OAAQ,GAAI8V,aAAc,EAAGkI,WAAsB,SAAV9c,EAAmB,0BAA4B,UAAW+c,OAAQ,GAAIhZ,QAAS,GAAIzC,QAAS,gBAA9J,SACGsb,IAEH,qBAAK3e,MAAO,CAAEqD,QAAS,gBAAvB,SACE,sBAAKrD,MAAO,CAAE+e,SAAU,YAAxB,UACE,sBAAM/e,MAAO,CAAE0G,MAAe,SAAR3E,EAAe,UAAU,UAAWwB,WAAY,OAAQD,SAAU,QAASD,QAAS,QAASmI,WAAY,IAA/H,SAAsIrI,IACtI,sBAAMnD,MAAO,CAAE0G,MAAe,SAAR3E,EAAe,UAAU,UAAWwB,WAAY,SAAUD,SAAU,QAASD,QAAS,SAA5G,SAAwHub,SAG5H,qBAAK5e,MAAO,CAAEqD,QAAS,eAAgB2Z,MAAO,QAAS8B,OAAQ,IAA/D,SACGJ,MAZP,ECiIa4H,OA9HsB,KACnC,IAAIrY,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,eAERxL,EAAS6H,GAAc7O,oBAAS,GAEjCjB,EAAWsB,cAEjBE,qBAAU,KACHuB,GAELT,EACG/C,IAAI,sCAAwCwD,GAC5C9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN0S,EAAarR,EAAI3C,KAClB,GALL,GAOC,CAAC2D,IAGJ,MAqBOoQ,EAAWC,GAAgBnS,mBAAS,CACzCkoB,yBAAyB,EACzBC,mBAAoB,MAGfzV,EAAkBC,GAAuB3S,mBAAS,CACvDkoB,yBAAyB,EACzBC,oBAAoB,IAIhBvV,EAAwB,IAAyC,IAAtC/B,QAAQ,GAAE/O,EAAF,MAAM3C,EAAN,QAAawZ,IAAgB,EACzD,4BAAP7W,IACF3C,EAAQwZ,GACVjG,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAGF,OACE,mCACE,eAAC3Q,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,gCAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SA1DRtM,IAEtB,GADAA,EAAEwM,iBACEhM,EACF,OAEF6H,GAAW,GAEX,MAAM1Q,EAAO+T,EACb7Q,EACGjD,KAAK,sCAAwC0D,EAAI3D,GACjDa,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNV,EAAShC,EAAaC,QAAQ8D,EAAIjE,UAElCkC,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAEFmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,uBACxCgT,SAAQ,IAAMpB,GAAW,IAV5B,EAkDY,UACE,cAAC2E,GAAA,EAAD,UACE,cAAClC,GAAD,MAGF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2CACA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAUiW,mBACjBvU,QAASlB,EAAiByV,mBAC1BtU,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,wDAEF,eAACN,GAAA,EAAD,CAAWkF,OAAK,EAAhB,UACE,cAAC/E,GAAA,EAAD,CACE7R,GAAG,0BACH6W,QAASzG,EAAUgW,wBACnBrU,SAAUjB,EACVtW,KAAK,aAEN,GACD,cAACmX,GAAA,EAAD,CAAOC,IAAI,0BAA0BgF,OAAK,EAA1C,0CAEF,cAACzR,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC,GAAD,CACEhH,UAAU,mBACVpF,KAAK,SACL+U,UAAWrK,EAHb,qCA7CpB,EC9DF,MAAMohB,GAAe,CACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,cAAc,EACdJ,mBAAoB,GACpBK,YAAa,QACbC,aAAc,SACdC,gBAAiB,EACjBC,iBAAkB,EAClBC,kBAAmB,EACnBC,mBAAoB,EACpBC,WAAY,SAkaCC,OA/ZgB,KACflZ,cACd,MAAM,GAAE/N,GAAO0Q,cACTzT,EAAWsB,eAEX,KAAEiD,EAAO,WAAchD,aAC1BlE,GAAUA,EAAMD,eAAeQ,QAG3BqK,EAAS6H,GAAc7O,oBAAS,IAChCgpB,EAAOC,GAAYjpB,mBAAS,KAE5BkS,EAAWC,GAAgBnS,mBAAS,IAAKooB,KAEhD7nB,qBAAU,KACR2oB,IACAC,GAAW,GACV,IAEH,MAAMA,EAAYprB,UAChB,IACE,MAAMqD,QAAaC,EAAO/C,IAExB,iCAEF,GAAI8C,EAAKjD,KAAKsB,QAAoC,IAA1B2B,EAAKjD,KAAKA,KAAK4H,OAAc,CACnD,MAAQ5H,KAAMirB,GAAUhoB,EAAKjD,KAC7B,IAAIA,EAAOirB,EAIX,GAHa,UAAT9lB,IACFnF,EAAOirB,EAAMvd,QAAQb,GAAsB,IAAhBA,EAAE0F,aAEX,IAAhBvS,EAAK4H,OAAc,CAAC,IAAD,IACrB,MAAMmhB,EAAS/oB,EAAK0N,QACjBb,GAAuB,kBAAjBA,EAAEqe,aACT,GACIrC,EAAU7oB,EAAK0N,QAClBb,GAAuB,mBAAjBA,EAAEqe,aACT,GACIC,EAAU,CACdjB,eAAc,OAAEnB,QAAF,IAAEA,OAAF,EAAEA,EAAQqC,SACxBjB,gBAAe,OAAEtB,QAAF,IAAEA,OAAF,EAAEA,EAASuC,SAC1BhB,aAAY,UAAEpqB,EAAK,UAAP,aAAE,EAASqrB,kBACvBrB,mBAAkB,UAAEhqB,EAAK,UAAP,aAAE,EAASsrB,sBAC7BjB,YAAW,OAAEtB,QAAF,IAAEA,OAAF,EAAEA,EAAQwC,SACrBjB,aAAY,OAAEzB,QAAF,IAAEA,OAAF,EAAEA,EAAS0C,SACvBhB,gBACuB,YAAf,OAANxB,QAAM,IAANA,OAAA,EAAAA,EAAQwC,UACJ,IAAI5L,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaC,SAC9B,EACNjB,iBACwB,YAAf,OAAP3B,QAAO,IAAPA,OAAA,EAAAA,EAAS0C,UACL,IAAI5L,KAAJ,OAASkJ,QAAT,IAASA,OAAT,EAASA,EAAS2C,aAAaC,SAC/B,EACNhB,kBACuB,aAAf,OAAN1B,QAAM,IAANA,OAAA,EAAAA,EAAQwC,UACJ,IAAI5L,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaE,UAC9B,EACNhB,mBACwB,aAAf,OAAP7B,QAAO,IAAPA,OAAA,EAAAA,EAAS0C,UACL,IAAI5L,KAAJ,OAASkJ,QAAT,IAASA,OAAT,EAASA,EAAS2C,aAAaE,UAC/B,EACNf,WAAW,GAAD,QACP,IAAIhL,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaG,WAAa,GAAK,IAAM,IACvD,IAAIhM,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaG,WAFtB,aAIP,IAAIhM,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaI,aAAe,GAAK,IAAM,IACzD,IAAIjM,KAAJ,OAASoJ,QAAT,IAASA,OAAT,EAASA,EAAQyC,aAAaI,eAGlC5X,EAAamX,EACd,CACF,CACF,CAAC,MAAOrsB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GAGGisB,EAAQ,KACZ,IAAIc,EAAO,GACX,IAAK,IAAIhf,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3Bgf,EAAKvZ,KAAKzF,GAEZie,EAASe,EAAT,GAGKtX,EAAkBC,GAAuB3S,mBAAS,CACvDuoB,cAAc,EACdJ,oBAAoB,IAGhBvV,EAAwB,IAAyC,IAAtC/B,QAAQ,GAAE/O,EAAF,MAAM3C,EAAN,QAAawZ,IAAgB,EACzD,iBAAP7W,IAAuB3C,EAAQwZ,GACnCjG,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAGIuX,EAAe3tB,IACnB,IAAI4tB,EAAO,IAAIpM,KACf,MAAM3Z,EAAI,IAAI2Z,KACd3Z,EAAEgmB,QAAQhmB,EAAE0lB,UAAY1lB,EAAEylB,UAC1B,MAAMxG,EAAIlR,EAAU4W,WAAW7b,MAAM,KACrC,OAAQ3Q,GACN,IAAK,SACH,GAA8B,UAA1B4V,EAAUsW,YAAyB,CACrCrkB,EAAEimB,SAAShH,EAAE,GAAIA,EAAE,IACnB8G,EAAO/lB,EACP,KACD,CAAM,GAA8B,WAA1B+N,EAAUsW,YAA0B,CAC7CrkB,EAAEgmB,QAAQhmB,EAAE0lB,UAAYxS,SAASnF,EAAUwW,kBAC3CvkB,EAAEimB,SAAShH,EAAE,GAAIA,EAAE,IACnB8G,EAAO/lB,EACP,KACD,CAAoC,YAA1B+N,EAAUsW,cACnB0B,EAAO,IAAIpM,KACT3Z,EAAEkmB,cACFlmB,EAAEmmB,WACFpY,EAAU0W,kBACVxF,EAAE,GACFA,EAAE,KAGN,MAEF,IAAK,UAC4B,UAA3BlR,EAAUuW,cACZtkB,EAAEimB,SAAShH,EAAE,GAAIA,EAAE,IACnB8G,EAAO/lB,GAC6B,WAA3B+N,EAAUuW,cACnBtkB,EAAEgmB,QAAQhmB,EAAE0lB,UAAYxS,SAASnF,EAAUyW,mBAC3CxkB,EAAEimB,SAAShH,EAAE,GAAIA,EAAE,IACnB8G,EAAO/lB,GAC6B,YAA3B+N,EAAUuW,eACnByB,EAAO,IAAIpM,KACT3Z,EAAEkmB,cACFlmB,EAAEmmB,WACFpY,EAAU2W,mBACVzF,EAAE,GACFA,EAAE,KAGN,MAEF,QACE,OAEJ,OAAO8G,CAAP,EAwDF,OACE,mCACE,cAACnoB,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,SACE,cAACiF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAX,UACE,cAACkQ,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2CAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAUiW,mBACjBvU,QAASlB,EAAiByV,mBAC1BtU,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,mDAIF,eAACN,GAAA,EAAD,CAAWkF,OAAK,EAAhB,UACE,cAAC/E,GAAA,EAAD,CACE7R,GAAG,eACH6W,QAASzG,EAAUqW,aACnB1U,SAAUjB,EACVtW,KAAK,aAEN,GACD,cAACmX,GAAA,EAAD,CAAOC,IAAI,eAAegF,OAAK,EAA/B,wBAIF,eAACzR,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,UACE,cAACzE,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,sCAGA,eAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAUsW,YACjB3U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,QAAf,mBACA,wBAAQA,MAAO,SAAf,oBACA,wBAAQA,MAAO,UAAf,wBAEF,cAAC2U,GAAA,EAAD,4DAKuB,WAA1B5B,EAAUsW,aACT,cAAC9f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,kBAAX,0BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,kBACH3C,MAAO+S,EAAUwW,gBACjB7U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,qBACA,wBAAQA,MAAO,EAAf,uBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,uBAEF,cAAC2U,GAAA,EAAD,4DAMqB,YAA1B5B,EAAUsW,aACT,cAAC9f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,oBAAX,2BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,oBACH3C,MAAO+S,EAAU0W,kBACjB/U,SAAUjB,EACVtW,KAAK,SAJP,SAMG0sB,EAAMje,KAAKC,GACV,wBAAQ7L,MAAO6L,EAAf,SAAmBA,QAGvB,cAAC8I,GAAA,EAAD,oEAOR,eAAC7M,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,eAAX,uCAGA,eAACC,GAAA,EAAD,CACE7R,GAAG,eACH3C,MAAO+S,EAAUuW,aACjB5U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,QAAf,mBACA,wBAAQA,MAAO,SAAf,oBACA,wBAAQA,MAAO,UAAf,wBAEF,cAAC2U,GAAA,EAAD,6DAKwB,WAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,mBAAX,0BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,mBACH3C,MAAO+S,EAAUyW,iBACjB9U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,qBACA,wBAAQA,MAAO,EAAf,uBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,uBAEF,cAAC2U,GAAA,EAAD,gEAMsB,YAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAU2W,mBACjBhV,SAAUjB,EACVtW,KAAK,SAJP,SAMG0sB,EAAMje,KAAKC,GACV,wBAAgB7L,MAAO6L,EAAvB,SACGA,GADUA,OAKjB,cAAC8I,GAAA,EAAD,qEAOR,cAAC7M,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,kBACA,cAACC,GAAA,EAAD,CACErX,KAAK,OACL+G,KAAK,OACLvB,GAAG,aACH3C,MAAO+S,EAAU4W,WACjBjV,SAAUjB,WAMlB,cAAC3L,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC,GAAD,CACEhH,UAAU,mBACV2P,UAAWrK,EACXxD,QAzPHzF,UACjB,IAAK,IAAD,EACF,IAAIwsB,EAAY,CACdhB,SAAUrX,EAAUmW,eACpBgB,WAAY,gBACZK,SAAUxX,EAAUsW,YAEpBmB,YAAa,IAAI7L,KAAKmM,EAAY,WAAWO,cAC7Cf,sBAAuBvX,EAAUiW,mBACjCqB,kBAAmBtX,EAAUqW,cAE3BkC,EAAa,CACflB,SAAUrX,EAAUoW,gBACpBe,WAAY,iBACZK,SAAUxX,EAAUuW,aAEpBkB,YAAa,IAAI7L,KAAKmM,EAAY,YAAYO,cAC9Cf,sBAAuBvX,EAAUiW,mBACjCqB,kBAAmBtX,EAAUqW,cAGlB,UAATjlB,IACFinB,EAAY,IAAKA,EAAgB7Z,UAAW,GAC5C+Z,EAAa,IAAKA,EAAiB/Z,UAAW,IAEhD,MAAMga,QAAmBrpB,EAAOjD,KAC9B,+BACAmsB,GAGF,UAAIG,QAAJ,IAAIA,GAAJ,UAAIA,EAAYvsB,YAAhB,OAAI,EAAkBsB,OACpB,IAAK,IAAD,EACF,MAAMkrB,QAAoBtpB,EAAOjD,KAC/B,+BACAqsB,GAGF,OAAIE,QAAJ,IAAIA,GAAJ,UAAIA,EAAaxsB,YAAjB,OAAI,EAAmBsB,SACrBV,EAAShC,EAAaC,QAAQ,yBAC9BmsB,IACAlK,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MAEN,CAAC,MAAOD,GACPiE,QAAQC,IAAI,SAAUlE,EACvB,CAEJ,CAAC,MAAOgE,GACPC,QAAQC,IAAI,OAAQF,EACrB,GAoMiB,oCAjMpB,ECyDa2pB,OAnRO,KACN/a,cACd,MAAM,GAAE/N,GAAO0Q,eAGRxL,EAAS6H,IAFCxO,cAEaL,oBAAS,KAChCgpB,EAAOC,GAAYjpB,mBAAS,KAE5BkS,EAAWC,GAAgBnS,mBAAS,CACzC+nB,SAAU,EACVQ,cAAc,EACdJ,mBAAoB,GACpBK,YAAa,SACbC,aAAc,UACdC,gBAAiB,EACjBC,iBAAkB,EAClBC,kBAAmB,EACnBC,mBAAoB,EACpBC,WAAY,UAGdvoB,qBAAU,KACR2oB,GAAO,GAEN,IAEH,MASMA,EAAQ,KACZ,IAAIc,EAAO,GACX,IAAK,IAAIhf,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3Bgf,EAAKvZ,KAAKzF,GAEZie,EAASe,EAAT,GAGKtX,EAAkBC,GAAuB3S,mBAAS,CACvDuoB,cAAc,EACdJ,oBAAoB,IAGhBvV,EAAwB,IAAyC,IAAtC/B,QAAQ,GAAE/O,EAAF,MAAM3C,EAAN,QAAawZ,IAAgB,EACzD,iBAAP7W,IAAuB3C,EAAQwZ,GACnCjG,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EA8EF,OACE,mCACE,cAAC3Q,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,SACE,cAACiF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAAU,OAA5B,UACE,cAACU,GAAA,EAAD,UACE,cAAClC,GAAD,MAGF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2CAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAUiW,mBACjBvU,QAASlB,EAAiByV,mBAC1BtU,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,mDAIF,eAACN,GAAA,EAAD,CAAWkF,OAAK,EAAhB,UACE,cAAC/E,GAAA,EAAD,CACE7R,GAAG,eACH6W,QAASzG,EAAUqW,aACnB1U,SAAUjB,EACVtW,KAAK,aAEN,GACD,cAACmX,GAAA,EAAD,CAAOC,IAAI,eAAegF,OAAK,EAA/B,wBAIF,eAACzR,EAAA,EAAD,CAAKtF,MAAO,CAACwL,UAAU,IAAvB,UACE,cAACzE,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,eAAX,mCAGA,eAACC,GAAA,EAAD,CACE7R,GAAG,eACH3C,MAAO+S,EAAUuW,aACjB5U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,QAAf,mBACA,wBAAQA,MAAO,SAAf,oBACA,wBAAQA,MAAO,UAAf,wBAEF,cAAC2U,GAAA,EAAD,gDAKwB,WAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,mBAAX,0BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,mBACH3C,MAAO+S,EAAUyW,iBACjB9U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,qBACA,wBAAQA,MAAO,EAAf,uBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,uBAEF,cAAC2U,GAAA,EAAD,uCAMsB,YAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAU2W,mBACjBhV,SAAUjB,EACVtW,KAAK,SAJP,SAMG0sB,EAAMje,KAAKC,GACV,wBAAQ7L,MAAO6L,EAAf,SAAmBA,QAGvB,cAAC8I,GAAA,EAAD,2CAOR,cAAC7M,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,kBACA,cAACC,GAAA,EAAD,CACErX,KAAK,OACL+G,KAAK,OACLvB,GAAG,aACH3C,MAAO+S,EAAU4W,WACjBjV,SAAUjB,WAMlB,cAAC3L,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC,GAAD,CACEhH,UAAU,mBACVpF,KAAK,SACL+U,UAAWrK,EACXxD,QA7JHzF,YAyJC,oCA5HpB,E,UCyKa+pB,OAxSe,KACdjY,cACd,MAAM,GAAE/N,GAAO0Q,eAGRxL,EAAS6H,IAFCxO,cAEaL,oBAAS,KAChCgpB,EAAOC,GAAYjpB,mBAAS,KAE5BkS,EAAWC,GAAgBnS,mBAAS,CACzC+nB,SAAU,EACVQ,cAAc,EACdJ,mBAAoB,GACpBK,YAAa,SACbC,aAAc,QACdC,gBAAiB,EACjBC,iBAAkB,EAClBC,kBAAmB,EACnBC,mBAAoB,EACpBC,WAAY,WAGP+B,EAAcC,GAAmB9qB,oBAAS,GAIjDO,qBAAU,KACR2oB,GAAO,GAEN,IAEH,MASMA,EAAQ,KACZ,IAAIc,EAAO,GACX,IAAK,IAAIhf,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3Bgf,EAAKvZ,KAAKzF,GAEZie,EAASe,EAAT,GAGKtX,EAAkBC,GAAuB3S,mBAAS,CACvDuoB,cAAc,EACdJ,oBAAoB,IAGhBvV,EAAwB,IAAyC,IAAtC/B,QAAQ,GAAE/O,EAAF,MAAM3C,EAAN,QAAawZ,IAAgB,EACzD,iBAAP7W,IAAuB3C,EAAQwZ,GACnCjG,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EA8EF,OACE,mCACE,cAAC3Q,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,SACE,cAACiF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAAU,OAA5B,UACE,cAACU,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WAEA,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,yBAGE,eAACqX,GAAA,EAAD,CACErlB,OAAQmlB,EACRllB,OAlIL,IAAMmlB,GAAiBE,IAAeA,IAmIjCC,UAAW,OACXtpB,MAAO,CAACwD,WAAW,IAJrB,UAME,cAACrC,EAAA,EAAD,CAAgB0gB,OAAK,EAArB,oBACA,cAACxgB,EAAA,EAAD,UAKJ,eAACwQ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2CAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAUiW,mBACjBvU,QAASlB,EAAiByV,mBAC1BtU,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,mDAIF,eAACN,GAAA,EAAD,CAAWkF,OAAK,EAAhB,UACE,cAAC/E,GAAA,EAAD,CACE7R,GAAG,eACH6W,QAASzG,EAAUqW,aACnB1U,SAAUjB,EACVtW,KAAK,aAEN,GACD,cAACmX,GAAA,EAAD,CAAOC,IAAI,eAAegF,OAAK,EAA/B,wBAKF,eAACzR,EAAA,EAAD,CAAKtF,MAAO,CAACwL,UAAU,IAAvB,UACE,cAACzE,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,eAAX,mCAGA,eAACC,GAAA,EAAD,CACE7R,GAAG,eACH3C,MAAO+S,EAAUuW,aACjB5U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,QAAf,mBACA,wBAAQA,MAAO,SAAf,oBACA,wBAAQA,MAAO,UAAf,wBAEF,cAAC2U,GAAA,EAAD,gDAKwB,WAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,mBAAX,0BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,mBACH3C,MAAO+S,EAAUyW,iBACjB9U,SAAUjB,EACVtW,KAAK,SAJP,UAMG,IACD,wBAAQ6C,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,qBACA,wBAAQA,MAAO,EAAf,uBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,oBACA,wBAAQA,MAAO,EAAf,sBACA,wBAAQA,MAAO,EAAf,uBAEF,cAAC2U,GAAA,EAAD,uCAMsB,YAA3B5B,EAAUuW,cACT,cAAC/f,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,qBAAX,2BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,qBACH3C,MAAO+S,EAAU2W,mBACjBhV,SAAUjB,EACVtW,KAAK,SAJP,SAMG0sB,EAAMje,KAAKC,GACV,wBAAQ7L,MAAO6L,EAAf,SAAmBA,QAGvB,cAAC8I,GAAA,EAAD,2CAOR,cAAC7M,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,kBACA,cAACC,GAAA,EAAD,CACErX,KAAK,OACL+G,KAAK,OACLvB,GAAG,aACH3C,MAAO+S,EAAU4W,WACjBjV,SAAUjB,WAMlB,cAAC3L,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC,GAAD,CACEhH,UAAU,mBACVpF,KAAK,SACL+U,UAAWrK,EACXxD,QA9KHzF,YA0KC,oCA7IpB,E,kCClJF,SAASmtB,GAAerrB,GACtB,MAAQsrB,EAAUC,GAAgBprB,mBAAS,KACnC/C,EAAOouB,GAAarrB,mBAAS,MAYrC,OACE,eAACyF,GAAA,EAAD,CACE/D,UAAU,wBACVgE,OAAQ7F,EAAM6F,OACdC,OAAQ,IAAM9F,EAAMwkB,SAAQ,GAH9B,UAKE,sBAAK3iB,UAAU,eAAeC,MAAO,CAAE2pB,aAAc,sBAArD,UACE,oBAAI5pB,UAAU,cAAcI,GAAG,sBAA/B,8BAGA,wBACE,aAAW,QACXJ,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,IAAM3D,EAAMwkB,SAAQ,GAL/B,SAOE,sBAAM,eAAa,EAAnB,uBAGJ,qBAAK3iB,UAAU,aAAf,SACE,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,eAAC8K,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,mBACA,cAACE,GAAA,EAAD,CAAOxU,MAAOgsB,EAAUtX,SAAU,QAAGhD,QAAQ,MAAE1R,IAAb,SAA2BisB,EAAYjsB,EAAvC,aAK1C,qBAAKuC,UAAU,eAAf,SACE,cAAC4O,GAAA,EAAD,CAAQjI,MAAM,UAAU/L,KAAK,SAASkH,QAzCpB,KACtB,GAAI2nB,EAASplB,OAAS,EACpBslB,EAAS,qBACN,CACH,MAAM,SAAEE,GAAa1rB,EAClB0rB,GACDA,EAASJ,EAEZ,GAiCG,qBAMP,CAED,MAAMK,GAAgB,IAAe,IAAd,KAAElvB,GAAW,EAClC,OAAQA,GACN,IAAK,mBACH,OAAO,qCAAE,mBAAGqU,MAAM,qBAAqB7O,GAAG,2BAA2BH,MAAO,CAAEwD,WAAY,GAAIF,SAAU,GAAIoL,QAAS,MACnH,eAACO,GAAA,EAAD,CACE6a,UAAU,QACV5a,OAAO,2BACPnP,UAAU,sBACVoP,UAAU,EAJZ,UAME,sBAAKnP,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,SAAUF,aAAc,GAAnE,UACE,mBAAGL,MAAM,qBAAqBhP,MAAO,CAAEyD,YAAa,GAAIH,SAAU,MAClE,mBAAGtD,MAAO,CAAEqP,aAAc,EAAG9L,WAAY,QAAzC,0CAEF,sBAAKvD,MAAO,CAAE+hB,YAAa,IAA3B,UACE,mBAAG/hB,MAAO,CAAE8e,OAAQ,EAAGxb,SAAU,IAAjC,sCACA,oBAAItD,MAAO,CAAE0O,QAAS,GAAKW,aAAc,EAAG/L,SAAU,IAAtD,SACE,4EAEF,mBAAGtD,MAAO,CAAE8e,OAAQ,EAAGxb,SAAU,IAAjC,iDACA,qBAAItD,MAAO,CAAE0O,QAAS,GAAKoQ,OAAQ,EAAGxb,SAAU,IAAhD,UACE,sHACA,8GACA,oJAKV,IAAK,qBACH,OAAO,qCAAE,mBAAG0L,MAAM,qBAAqB7O,GAAG,6BAA6BH,MAAO,CAAEwD,WAAY,GAAIF,SAAU,GAAIoL,QAAS,MACrH,eAACO,GAAA,EAAD,CACE6a,UAAU,QACV5a,OAAO,6BACPnP,UAAU,sBACVoP,UAAU,EAJZ,UAME,sBAAKnP,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,SAAUF,aAAc,GAAnE,UACE,mBAAGL,MAAM,qBAAqBhP,MAAO,CAAEyD,YAAa,GAAIH,SAAU,MAClE,mBAAGtD,MAAO,CAAEqP,aAAc,EAAG9L,WAAY,QAAzC,2CAEF,sBAAKvD,MAAO,CAAE+hB,YAAa,IAA3B,UACE,mBAAG/hB,MAAO,CAAE8e,OAAQ,EAAGxb,SAAU,IAAjC,sCACA,oBAAItD,MAAO,CAAE0O,QAAS,GAAKW,aAAc,EAAG/L,SAAU,IAAtD,SACE,gFAEF,mBAAGtD,MAAO,CAAE8e,OAAQ,EAAGxb,SAAU,IAAjC,iDACA,qBAAItD,MAAO,CAAE0O,QAAS,GAAKoQ,OAAQ,EAAGxb,SAAU,IAAhD,UACE,6FACA,iIAKV,QACE,OAAO,KArDX,EAyDa,SAASymB,GAAa7rB,GAAQ,IAAD,EAE1C,MAAO8rB,EAAYC,GAAiB5rB,oBAAS,GAEvCmH,EAAU,CACd,CACEC,UAAW,OAAQC,KAAM,OAAQ1F,MAAO,CAAE2kB,WAAY,UAAY9e,YAAa,CAAEC,QAAS,OAAQzC,QAAS,OAAQkM,WAAY,SAAU6C,eAAe,gBAAkBlI,OAAQggB,sBAAW,CAC3LlqB,MAAO,CACLwL,UAAW,EACXhI,WAAY,GACZ5C,MAAM,QAER8b,YAAa,aAKb1X,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAWhH,EAAMisB,KAAOjsB,EAAMisB,KAAK/lB,OAAS,EAC5CgmB,eAAgB,GAGlB,IAAIC,EAAW,KAEf,MAAM7W,EAAY,CAChBC,KAAM,WACNC,eAAe,EACf4W,kBAAmB,CACjBze,cAAc,KAKZ0e,EAAe,KACnB,MAAM9lB,EAAW4lB,EAASG,iBAAiB/lB,SACrC0lB,EAAOjsB,EAAMisB,KACbM,EAAUtmB,IAAEumB,WAAWP,EAAM1lB,GAC/BvG,EAAM0rB,UACR1rB,EAAM0rB,SAASa,EAAf,EAaJ,OACE,sBAAKzqB,MAAO,CAAE8F,QAAS,GAAvB,UACE,cAACR,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,eAAC0L,GAAA,EAAD,CAAMzS,MAAO,CAAEa,OAAO,QAAtB,UACE,cAAC8pB,GAAA,EAAD,UACE,eAACrlB,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,CAAK/G,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAA3C,UAAuD,6BAAKrR,EAAMiF,QAC/DjF,EAAM0sB,UAAY,cAACf,GAAD,CAAelvB,KAAMuD,EAAMiF,WAEhD,cAAC4D,GAAA,EAAD,UAAK,cAAC4H,GAAA,EAAD,CAAQjI,MAAM,UAAU2J,KAAK,KAAKrQ,MAAO,CAAEgd,MAAO,SAAWnb,QAAS,IAAMooB,GAAc,GAA1F,wBAGT,cAACvX,GAAA,EAAD,UACE,cAAC,KAAD,CACEnN,SAAS,OACT/I,MAAM,UAAA0B,EAAMisB,YAAN,eAAY/gB,KAAIuJ,IAAC,CAAOzQ,KAAMyQ,QAAS,GAC7CnN,QAASA,EAHX,SAMItH,GACE,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAII,QAAC,gBACCoB,EADD,qBAECC,GAFF,SAIE,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAACqP,aAAa,GAA1B,UACE,cAACtI,GAAA,EAAD,CAAKuI,GAAG,KAAKvP,UAAU,aAAaC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAA1E,SACE,cAAC,iCAAD,IAEMnJ,MAGR,cAACW,GAAA,EAAD,CAAKuI,GAAI,EAAT,SACE,cAACX,GAAA,EAAD,CAAQC,SAAO,EAAC/M,QAAS,IAAM0oB,IAAgBvqB,MAAO,CAAE8e,OAAQ,UAAW9B,MAAO,SAAlF,SACE,mBAAGhO,MAAM,4BAIf,cAAC,KAAD,CACE6b,IAAKC,GAAKT,EAAWS,EACrBtX,UAAWA,KACPtV,EAAM2I,aACNR,EACJG,iBAAiB,UACjB0D,OAAQ6gB,SAEV,cAACzlB,EAAA,EAAD,CAAKvF,UAAU,OAAf,SACE,cAACgH,GAAA,EAAD,UACE,cAAC,4BAAD,IACMX,UA7Bd,eA6ClB,cAACmjB,GAAD,CACExlB,OAAQimB,EACRtH,QAASuH,EACTL,SAnFY,WAAqB,IAApBoB,EAAmB,uDAAP,GAC7B,MAAM,KAAEb,GAASjsB,EACZ+sB,MAAMC,QAAQF,KACjBA,EAAY,CAACA,IACf,MAAMP,EAAUtmB,IAAEgnB,MAAMhB,EAAMa,GAC1B9sB,EAAM0rB,UACR1rB,EAAM0rB,SAASa,GACjBR,GAAc,EACf,MA+EF,CC/OD,MAAM9O,GAAe,WAEN,SAASiQ,GAAgBltB,GAEtC,MAAOyG,EAAWihB,GAAgBvnB,mBAAS,IAErCmH,EAAU,CAAC,CACfC,UAAW,WACXC,KAAM,WACN1F,MAAM,CAAC2kB,WAAW,WACjB,CACDlf,UAAW,eACXC,KAAM,WACNwE,OAAQggB,wBACRlqB,MAAM,CAAC2kB,WAAW,WAEpB,CACElf,UAAW,cACXC,KAAM,UACNwE,OAAQggB,wBACRlqB,MAAM,CAAC2kB,WAAW,WAEpB,CACElf,UAAW,aACXC,KAAM,OACN1F,MAAM,CAAC2kB,WAAW,WACjB,CACDlf,UAAW,UACXC,KAAM,UACN1F,MAAM,CAAC2kB,WAAW,aAKbpL,EAAkBC,GAAuBnb,mBAAS,KAClDgtB,EAAkBC,GAAwBjtB,mBAAS,IAEpDjB,EAAWsB,eA0BV6sB,EAAOC,GAAYntB,mBAAS,CAAEotB,gBAAgB,EAAMC,mBAAmB,EAAMC,WAAW,KAExFtmB,EAAS6H,GAAc7O,oBAAS,IAChCutB,EAAUC,GAAextB,oBAAS,GAEzCO,qBAAU,KACJyG,IAEJ6H,GAAW,GACXxN,EACG/C,IAAI,gCACJU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN8nB,EAAazmB,EAAI3C,MACjB8uB,EAAqBnsB,EAAI3C,KAAzB,IAEH8R,SAAQ,IAAMpB,GAAW,KAP5B,GAQC,IAqBH,OACE,cAAC9M,EAAA,EAAD,CAAWC,OAAK,EAAhB,SACE,cAACiF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,WACE,cAAC/C,GAAD,IACA,eAACrK,EAAA,EAAD,CAAKtF,MAAO,CAAEuP,WAAY,UAA1B,UACE,eAACxI,GAAA,EAAD,CAAKuI,GAAI,EAAT,UACE,eAACuC,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAvB,UACE,cAAC9E,GAAA,EAAD,CAAOgF,QAASuU,EAAME,eAAgB9wB,KAAK,WAAWuX,SAAU,IAA8B,IAA3BhD,QAAQ,QAAE8H,IAAgB,EAAEwU,EAAS,IAAKD,EAAOE,eAAgBzU,GAArC,IAC/F,cAAClF,GAAA,EAAD,CAAOiF,OAAK,EAAZ,8BAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAvB,UACE,cAAC9E,GAAA,EAAD,CAAOgF,QAASuU,EAAMG,kBAAmB/wB,KAAK,WAAWuX,SAAU,IAA8B,IAA3BhD,QAAQ,QAAE8H,IAAgB,EAAEwU,EAAS,IAAKD,EAAOG,kBAAmB1U,GAAxC,IAClG,cAAClF,GAAA,EAAD,CAAOiF,OAAK,EAAZ,mCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAvB,UACE,cAAC9E,GAAA,EAAD,CAAOgF,QAASuU,EAAMI,UAAWhxB,KAAK,WAAWuX,SAAU,IAA8B,IAA3BhD,QAAQ,QAAE8H,IAAgB,EAAEwU,EAAS,IAAKD,EAAOI,UAAW3U,GAAhC,IAC1F,cAAClF,GAAA,EAAD,CAAOiF,OAAK,EAAZ,qCAGJ,eAAChQ,GAAA,EAAD,kCAA0BwS,EAAiBnV,UAC3C,cAAC2C,GAAA,EAAD,UAAK,cAAC0I,GAAD,CAAS/I,MAAM,UAAUuW,UAAW1D,EAAiBnV,OAAQpE,MAAO,CAAEgd,MAAO,SAAWtN,UAAWkc,EAAU/pB,QA1C7G,KACb+pB,IAEJC,GAAY,GACZnsB,EACGjD,KAAK,6BAA6B,CACjC8uB,QACA/vB,OAAS0C,EAAM1C,OACfmJ,UAAa4U,IAEdlc,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACvB/B,EAAShC,EAAaC,QAAQ,uBAC9BiiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,IAFH,IAID+S,SAAQ,IAAMud,GAAY,KAZ7B,EAsCiB,wBAEP,cAACvmB,EAAA,EAAD,CAAKvF,UAAU,OAAf,SACE,cAACgH,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,UACE,cAAC,KAAD,CACEnN,SAAU4V,GACV3e,KAAMmI,EACNa,QAASA,EACTU,WAAYC,OACZK,iBAAkBnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UACtE8M,UAAW,CACTC,KAAM,WACNC,eAAe,EACfjP,SAAU8U,EACV5F,SArGD,CAAC7O,EAAK8O,KAC3B,MAAMyH,EAAWvW,EAAIqW,IAEnB3B,EADE5F,EACkB,IAAI2F,EAAkB8B,GAEtB9B,EAAiBrP,QAAO7B,GAAKA,IAAMvD,EAAIqW,MAC5D,EAgGqBrH,YA7FA,CAACF,EAAUG,KACjC,MAAMwH,EAAQ8P,EAAiBjiB,KAAIf,GAAKA,EAAE8S,MAExC3B,EADE5F,EACkB,IAAI2F,KAAqBgC,GAEzB,GACrB,GAyFmBrR,OAAQ6gB,KAAc,CAACe,YAtFzB,CAACjuB,EAAQkuB,KACvB5nB,IAAE6nB,IAAIX,EAAiBjiB,KAAIf,GAAKA,EAAE8S,MAAgBtd,EAAOuL,KAAIf,GAAKA,EAAE8S,OAAgB/W,QACtFknB,EAAqBztB,GAAU,GAChC,wBAiGJ,CClJc,SAASouB,GAAc/tB,GACpC,MAAMguB,EAAO,CACXzX,GAAI,EACJ7D,MAAO,GACPub,gBAAiB,GACjBC,iBAAkB,GAClBC,UAAW,GACXC,iBAAiB,EACjBC,oBAAoB,EACpBC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,EACnBC,oBAAoB,EACpBC,cAAc,EACdC,sBAAsB,IAElB,iBAAEC,GAAmB,EAArB,eAA4BC,GAAiB,GAAU7uB,GACtD1C,EAAQwxB,GAAa3uB,mBAAS6tB,IAC9Be,EAASC,GAAc7uB,oBAAS,IAChC8uB,EAAeC,GAAoB/uB,mBAAS6tB,IAC5C7mB,EAAS6H,GAAc7O,oBAAS,IAChCgvB,EAAgBC,GAAqBjvB,oBAAS,IAC9CkvB,EAAUC,GAAenvB,mBAAS,IACnCjB,EAAWsB,cAEjBE,qBAAU,KACR6uB,GAAc,GACb,CAACvvB,EAAMiC,KAEV,MAAMstB,EAAe,KACnB,GAAIpoB,EAAS,OACb6H,GAAW,GAEX,MAAM9N,EAAM2tB,EACR,+BADsB,WAElBD,EAAmB,YAAc,YAFf,qBAEuC5uB,EAAMiC,IACvEutB,IACAhuB,EAAO/C,IAAIyC,GACR/B,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACvB,GAAIA,EAAIrB,OAAQ,CAAC,IAAD,IACd,MAAM6vB,EAAWxpB,IAAEme,UAAUnjB,EAAI3C,KAAKmxB,UAChCC,GAAc,OAAL1vB,QAAK,IAALA,GAAA,UAAAA,EAAO+P,eAAP,mBAAgB4J,gBAAhB,eAA0Bpd,QAAS,CAAC,EAEnD2yB,EAAiBjuB,EAAI3C,KAAKmxB,UAC1B,OAAIC,QAAJ,IAAIA,KAAQzB,iBACVwB,EAASxB,gBAAgBrd,KAAzB,OAA8B8e,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAQzB,iBAExC,OAAIyB,QAAJ,IAAIA,KAAQvB,WACVsB,EAAStB,UAAUvd,KAAnB,OAAwB8e,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAQvB,WAElCW,EAAUW,EACX,KAEFrf,SAAQ,IAAMpB,GAAW,IAhB5B,EAmBIwgB,EAAe,KACnBhuB,EAAO/C,IAAI,2CAA2CU,MACpD,IAAoB,IAAjBb,KAAM2C,GAAU,EACbA,EAAIrB,QAAQ0vB,EAAYrpB,IAAE0pB,QAAQ1uB,EAAItB,OAAQ,WAAY,QAA9C,GAFpB,GAOK+tB,EAAUC,GAAextB,oBAAS,GAqBzCO,qBAAU,KACRkvB,GAAkC,GACjC,CAACtyB,EAAQ2xB,IAEZ,MAAOY,EAAkBC,GAAuB3vB,oBAAS,IAClD4vB,EAAWC,GAAgB7vB,oBAAS,GAErC8vB,EAAe,CAACC,EAAWC,KAC/B,MAAMC,EAAY,IAAK9yB,GACvB8yB,EAAUF,GAAaC,EACvBrB,EAAUsB,EAAV,EAGIR,EAAmC,KAClC3pB,IAAEpJ,QAAQS,EAAQ2xB,GAClBG,GAAkB,GADgBA,GAAkB,EACpD,GAGD,KAAE3rB,EAAO,UAAT,MAAoBI,EAAQ,SAAYpD,aAC3ClE,GAAUA,EAAMD,eAAeQ,OAGlC,OACE,eAACoF,EAAA,EAAD,CAAWC,OAAK,EAAhB,UACE,cAACiF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,YACIub,GAAa,cAACte,GAAD,IACdtK,GACC,qBACEtF,UAAU,gBACVC,MAAO,CACLa,OAAQ,oBACRD,MAAO,oBACPie,WAAY,0BACZE,SAAU,WACVwP,OAAQ,IAPZ,SAUE,cAAC9nB,GAAA,EAAD,CAAS9L,KAAK,SAAS+L,MAAM,cAGjC,cAACpB,EAAA,EAAD,CAAKtF,MAAO,CAAE0O,QAASrJ,EAAU,IAAO,GAAxC,SACI0nB,EAAkB,IAClB,cAAChmB,GAAA,EAAD,UACE,eAACzB,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,CAAKuI,GAAI,EAAT,UACE,eAACuC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,QAAX,SACE,sDAEF,cAACC,GAAA,EAAD,CACErX,KAAK,QACL0V,KAAK,KACL7S,MAAOhC,EAAOoV,MACdsB,SAAU,QAAGhD,QAAQ,MAAE1R,IAAb,SACR2wB,EAAa,QAAS3wB,EADd,OAKd,eAACqU,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,QAAX,SACE,iCACG+a,EACG,kBACA,8BAGR,eAAC9a,GAAA,EAAD,CACE7R,GAAG,OACHxF,KAAK,SACL6C,MAAOhC,EAAOgzB,mBACd9R,YAAY,UACZrM,KAAK,KACL6B,SAAWrN,GACTspB,EAAa,qBAAsBtpB,EAAEqK,OAAO1R,OAPhD,WAUI,IACG+vB,EAASnkB,KAAKC,GAAMA,EAAEolB,UACzB,WACAjT,SAAShgB,EAAOgzB,qBAChB,wBAAQhxB,MAAOhC,EAAOgzB,mBAAtB,SACGhzB,EAAOgzB,qBAGX1B,GACC,wBAAQtvB,MAAM,UAAd,qBAED+vB,EAASnkB,KAAKC,GACb,wBAAQ7L,MAAO6L,EAAEolB,QAAjB,SAA2BplB,EAAEolB,qBAKrC,eAAC1nB,GAAA,EAAD,CAAKuI,GAAI,CAAEgJ,OAAQ,EAAGjI,KAAM,GAA5B,UACE,qDACA,qBAAKrQ,MAAO,CAAEwL,UAAW,KACzB,eAACqG,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAO8wB,gBAChBpa,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,kBAAmB3wB,EADxB,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,kCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOkxB,kBAChBxa,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,oBAAqB3wB,EAD1B,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,oCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOmxB,mBAChBza,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,qBAAsB3wB,EAD3B,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,yCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOqxB,qBAChB3a,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,uBAAwB3wB,EAD7B,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,qCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAAO,OAAExb,QAAF,IAAEA,OAAF,EAAEA,EAAQkzB,aACjBxc,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,eAAgB3wB,EADrB,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,iCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAAO,OAAExb,QAAF,IAAEA,OAAF,EAAEA,EAAQmzB,aACjBzc,SAAU,IAAqC,IAAlChD,QAAU8H,QAASxZ,IAAc,EACxCA,GAAK,OAAIhC,QAAJ,IAAIA,KAAQoxB,aACnBM,GAAW,GACRiB,EAAa,eAAgB3wB,EAA7B,IAGT,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,+BAEQ,UAATpV,GACC,mCACE,eAACkQ,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAO+wB,mBAChBra,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,qBAAsB3wB,EAD3B,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,gDAKK,UAATpV,GAA6B,YAATA,IACpB,qCACE,eAACkQ,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOoxB,aAChB1a,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,eAAgB3wB,EADrB,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,6BAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOixB,iBAChBva,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,mBAAoB3wB,EADzB,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,uCAEF,eAAClF,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAE+c,SAAU,KAA3C,UACE,cAAC/K,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASxb,EAAOgxB,WAChBta,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACR2wB,EAAa,aAAc3wB,EADnB,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,sDASfsW,GACC,cAAC/nB,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC8I,GAAA,EAAD,CAAOnJ,MAAM,UAAb,kFAON,cAACpB,EAAA,EAAD,CAAKtF,MAAO,CAAE0O,QAASrJ,EAAU,IAAO,EAAGmG,UAAW,GAAtD,SACE,eAACzE,GAAA,EAAD,CACEhH,UAAU,gBACVC,MAAO,CAAEoS,eAAgB,YAF3B,UAII0a,GACA,cAAC,GAAD,CACEpmB,MAAM,UACN2J,KAAK,GACLzB,SAAO,EACP/M,QAAS,IAAMqsB,GAAa,GAJ9B,gCASCnB,GAAkB,KACjB,eAAClb,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAvB,UACE,cAAC9E,GAAA,EAAD,CACErX,KAAK,WACL6C,MAAOuwB,EACP7b,SAAU,QAAGhD,QAAU8H,QAASxZ,IAAtB,SACRwwB,EAAoBxwB,EADZ,IAIZ,cAACsU,GAAA,EAAD,CAAOiF,OAAK,EAAZ,4CAGN,cAAC,GAAD,CACErQ,MAAM,UACN1G,MAAO,CAAEgd,MAAO,SAChBnb,QAlRE,KAClB,GAAI+pB,GAAYvmB,EAAS,OACzBwmB,GAAY,GACZ,MAAMzsB,EAAM2tB,EACR,+BADsB,WAElBD,EAAmB,YAAc,YAFf,wBAGpB5uB,EAAMiC,IAEZT,EAAOjD,KAAK2C,EAAK,CAAEuuB,SAAUnyB,EAAQozB,iBAAkBb,IACpD1wB,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACvBiuB,EAAiB5xB,GACjB4B,EAAShC,EAAaC,QAAQ,mCAC9BiiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,IAFH,IAID+S,SAAQ,IAAMud,GAAY,IAR7B,EA2QgBnc,UAAWkc,EAJb,gCAeZ,eAACtmB,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,GAAI6D,aAAc,IAA3C,UACGyd,GACC,cAAC/lB,GAAA,EAAD,CAAKuI,GAAIwd,EAAmB,EAAI,EAAhC,SACE,cAAC/C,GAAD,CACE5mB,MAAM,oBACNgnB,KAAM3uB,EAAO4wB,iBACbxC,SAAWvH,GAAM8L,EAAa,mBAAoB9L,OAIxD,cAACtb,GAAA,EAAD,CAAKuI,GAAIwd,EAAmB,EAAI,EAAhC,SACE,cAAC/C,GAAD,CACE5mB,MAAM,mBACNgnB,KAAM3uB,EAAO2wB,gBACbvC,SAAWvH,GAAM8L,EAAa,kBAAmB9L,GACjDuI,SAAUmC,MAGd,cAAChmB,GAAA,EAAD,CAAKuI,GAAIwd,EAAmB,EAAI,EAAhC,SACE,cAAC/C,GAAD,CACE5mB,MAAM,qBACNgnB,KAAM3uB,EAAO6wB,UACbzC,SAAWvH,GAAM8L,EAAa,YAAa9L,GAC3CuI,SAAUmC,SAKhB,eAACjpB,GAAA,EAAD,CACEC,OAAQkqB,EACRjqB,OAAQ,IAAMkqB,GAAa,GAC3B7d,KAAK,KACLwe,SAAS,SAJX,UAME,qBAAK9uB,UAAU,eAAf,SACE,wBACE,aAAW,QACXA,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,KACPzE,EAAShC,EAAaG,SACtB2yB,GAAa,EAAb,EAPJ,SAUE,sBAAM,eAAa,EAAnB,sBAGJ,qBAAKnuB,UAAU,aAAf,SACE,cAACqrB,GAAD,CAAiB5vB,OAAQA,SAG7B,eAACsI,GAAA,EAAD,CACEC,OAAQkpB,EACRjpB,OAAQ,IAAMkpB,GAAW,GACzB2B,SAAS,SAHX,UAKE,cAAC3e,GAAA,EAAD,uCACA,cAACC,GAAA,EAAD,sKAKA,eAACC,GAAA,EAAD,WACE,cAAC,GAAD,CACE1J,MAAM,UACN7E,QAAS,KACPssB,EAAa,gBAAgB,GAC7BjB,GAAW,EAAX,EAJJ,sBASA,cAAC,GAAD,CAAQxmB,MAAM,YAAYkI,SAAO,EAAC/M,QAAS,IAAMqrB,GAAW,GAA5D,4BAOT,C,wBCtUc4B,OApHQ,IAAkD,IAAjD,KAAEtyB,EAAF,QAAQ4nB,EAAR,YAAiB2K,EAAjB,YAA8BC,GAAkB,EACtE,MAAOC,EAAaC,GAAkB7wB,mBAAS,KACxC8wB,EAAgBC,GAAqB/wB,mBAAS,KAC9CgxB,EAAgBC,GAAqBjxB,mBAAS,KAC9CkxB,EAAYC,GAAiBnxB,mBAAS,KACtCoxB,EAAaC,GAAkBrxB,mBAAS,KACxCsxB,EAAaC,GAAkBvxB,mBAAS,IAE9BK,cAEjBE,qBAAU,KACR,MAAM6rB,EAAU,CACdwE,YAAa9qB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGzlB,OAAS,KACvE6kB,eAAgBhrB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGC,gBAAkB,KACnFX,eAAgBlrB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGlK,UAAY,KAC7E0J,WAAYprB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGE,YAAc,KAC3EN,YAAaxrB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGG,aAAe,KAC7ET,YAAatrB,IAAE0rB,KAAK1rB,IAAE2rB,QAAQtzB,GAAM,SAAUuzB,GAAM,OAAOA,EAAGI,WAAa,MAE7EjB,EAAezE,EAAQwE,aACvBG,EAAkB3E,EAAQ0E,gBAC1BG,EAAkB7E,EAAQ4E,gBAC1BG,EAAc/E,EAAQ8E,YACtBG,EAAejF,EAAQgF,aACvBG,EAAenF,EAAQkF,YAAvB,GACC,CAACnzB,IAEJ,MAAM4zB,EAAe,IAAiB,IAAhB,OAAElhB,GAAa,EACnC,MAAMmhB,EAAajM,EAChBlV,EAAO8H,QACRqZ,EAAWnhB,EAAO/O,IAAI2O,KAAKI,EAAOxN,MAGlC2uB,EAAWnhB,EAAO/O,IAAMkwB,EAAWnhB,EAAO/O,IAAI+J,QAAOmY,GAAKA,GAAKnT,EAAOxN,OAExEqtB,EAAYsB,EAAZ,EAGF,OACE,eAACnf,GAAA,EAAD,CAAMvP,KAAK,OAAX,UACE,cAAC2uB,GAAA,EAAD,UACE,eAAChrB,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,0BAAb,2BAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACX,GAAA,EAAD,CACE9M,QAASmtB,EACTpgB,SAAO,EACP7O,UAAU,sBACV2G,MAAM,YACN/L,KAAK,SALP,0BAYN,eAAC41B,GAAA,EAAD,WACE,eAACjrB,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,UAAX,SAAqB,mBAAGhS,UAAU,6BAAb,uBACrB,qBAAKA,UAAU,aAAf,SACGkvB,EAAY7lB,KAAIC,GAAK,gCACpB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAASoN,EAAQphB,QAAQwY,SAASnS,GAAIlJ,GAAG,UAAU+R,SAAUke,IADzE,IAC2F/mB,YAIrH,eAACtC,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,aAAX,SAAwB,mBAAGhS,UAAU,6BAAb,0BACxB,qBAAKA,UAAU,aAAf,SACGovB,EAAe/lB,KAAIC,GAAK,gCACvB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAASoN,EAAQE,WAAW9I,SAASnS,GAAIlJ,GAAG,aAAa+R,SAAUke,IAD5E,IAC8F/mB,YAI3H,eAACtC,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,aAAX,SAAwB,mBAAGhS,UAAU,6BAAb,2BACxB,qBAAKA,UAAU,aAAf,SACGsvB,EAAejmB,KAAIC,GAAK,gCACvB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAASoN,EAAQG,WAAW/I,SAASnS,GAAIlJ,GAAG,aAAa+R,SAAUke,IAD5E,IAC8F/mB,eAK7H,eAAC/D,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,SAAX,SAAoB,mBAAGhS,UAAU,6BAAb,sBACpB,qBAAKA,UAAU,aAAf,SACGwvB,EAAWnmB,KAAIC,GAAK,gCACnB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAASoN,EAAQtmB,OAAO0d,SAASnS,GAAIlJ,GAAG,SAAS+R,SAAUke,IADxE,IAC0F/mB,YAInH,eAACtC,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,UAAX,SAAqB,mBAAGhS,UAAU,6BAAb,uBACrB,qBAAKA,UAAU,aAAf,SACG0vB,EAAYrmB,KAAIC,GAAK,gCACpB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAASoN,EAAQI,QAAQhJ,SAASnS,GAAIlJ,GAAG,UAAU+R,SAAUke,IADzE,IAC2F/mB,YAIrH,eAACtC,GAAA,EAAD,WACE,cAAC+K,GAAA,EAAD,CAAOC,IAAI,UAAX,SAAqB,mBAAGhS,UAAU,6BAAb,8BACrB,qBAAKA,UAAU,aAAf,SACG4vB,EAAYvmB,KAAIC,IAAC,aAAI,gCACpB,cAAC2I,GAAA,EAAD,CAAOrX,KAAK,WAAW+G,KAAM2H,EAAG2N,QAAO,OAAEoN,QAAF,IAAEA,GAAF,UAAEA,EAASoM,eAAX,aAAE,EAAkBhV,SAASnS,GAAIlJ,GAAG,UAAU+R,SAAUke,IAD3E,IAC6F/mB,IADjG,iBAnE9B,ECdaonB,OAxCgB,CAACj0B,EAAKnC,KAAa,IAAD,IAC/C,IAAI40B,EAAc,GACdE,EAAiB,GACjBE,EAAiB,GACjBI,EAAc,GACdF,EAAa,GACbI,EAAc,GA+BlB,OA7BAV,EAAyC,IAA3B50B,EAAQ2I,QAAQoB,OAAe5H,EAAO,GACpDnC,EAAQ2I,QAAQwO,SAAQnI,IACtB4lB,EAAYngB,QAAQtS,EAAK0N,QAAOwmB,GAAMA,EAAGpmB,UAAYjB,IAArD,IAGFsmB,EAA2C,KAAtB,OAAPt1B,QAAO,IAAPA,GAAA,UAAAA,EAASm2B,eAAT,eAAkBpsB,QAAe6qB,EAAc,GACtD,OAAP50B,QAAO,IAAPA,GAAA,UAAAA,EAASm2B,eAAT,SAAkBhf,SAAQnI,IACxBsmB,EAAY7gB,QAAQmgB,EAAY/kB,QAAOwmB,IAAQ,OAAFA,QAAE,IAAFA,OAAA,EAAAA,EAAIR,iBAAkB7mB,IAAnE,IAGF8lB,EAA+C,IAA9B90B,EAAQiqB,WAAWlgB,OAAeurB,EAAc,GACjEt1B,EAAQiqB,WAAW9S,SAAQnI,IACzB8lB,EAAergB,QAAQ6gB,EAAYzlB,QAAOwmB,GAAMA,EAAGV,mBAAqB3mB,IAAxE,IAGFgmB,EAA+C,IAA9Bh1B,EAAQkqB,WAAWngB,OAAe+qB,EAAiB,GACpE90B,EAAQkqB,WAAW/S,SAAQnI,IACzBgmB,EAAevgB,QAAQqgB,EAAejlB,QAAOwmB,GAAMA,EAAG7K,aAAexc,IAArE,IAGFomB,EAAyC,IAA3Bp1B,EAAQmqB,QAAQpgB,OAAeirB,EAAiB,GAC9Dh1B,EAAQmqB,QAAQhT,SAAQnI,IACtBomB,EAAY3gB,QAAQugB,EAAenlB,QAAOwmB,GAAMA,EAAGP,cAAgB9mB,IAAnE,IAGFkmB,EAAuC,IAA1Bl1B,EAAQyD,OAAOsG,OAAeqrB,EAAc,GACzDp1B,EAAQyD,OAAO0T,SAAQnI,IACrBkmB,EAAWzgB,QAAQ2gB,EAAYvlB,QAAOwmB,GAAMA,EAAGT,eAAiB5mB,IAAhE,IAEKkmB,CAAP,E,6BCKiBtwB,EAAQ,KAA3B,MAEQ2O,UAAF,IAAgBC,WACd4W,gBAAF,IAAsBC,aACtBvJ,GAAe,WAEN,SAASwV,GAAezyB,GACrC,MAAOgmB,EAAeC,GAAuB9lB,oBAAS,IAC/C+lB,EAASC,GAAchmB,mBAAS,CACrC2E,QAAS,GACTshB,WAAY,GACZC,WAAY,GACZzmB,OAAQ,GACR0mB,QAAS,GACTgM,QAAS,MAGJjsB,EAASC,GAAcnG,mBAAS,KAChCuyB,EAAmBC,GAAmBxyB,mBAAS,KAC/Ckb,EAAkBC,GAAuBnb,mBAAS,KAClDyyB,EAAaC,GAAkB1yB,oBAAS,IACxC2yB,EAAWC,GAAgB5yB,oBAAS,IACpCyS,EAASiC,GAAc1U,mBAAS,IAChC6yB,EAAeC,GAAc9yB,mBAAS,KACtC+yB,EAAgBC,GAAchzB,mBAAS,KACvC6a,EAAMV,GAAWna,oBAAS,IAC1Bgb,EAAgBC,GAAqBjb,mBAAS,OAC9CizB,EAAaC,GAAkBlzB,mBAAS,CAC7CgN,MAAM,EACN1Q,KAAM,KACN+G,KAAM,QAEDgO,EAAW6P,GAAgBlhB,oBAAS,IACpCmzB,EAAKC,GAAUpzB,mBAAS,KAEzB,MAAE0D,GAAUpD,aAAalE,GAAUA,EAAMD,eAAeQ,QAAS,CACrE+G,MAAO,SAEH/G,EAAO2D,aAAawP,GAAMA,EAAE3T,eAAeQ,OAC3CoC,EAAWsB,eACX,UAAEiG,EAAF,aAAa+sB,GAAiBxzB,EAEpCU,qBAAU,KACRiyB,EAAgBlsB,GAChB,IAAIgtB,EAAWr0B,IAAMX,IAAN,8BAAiC3B,EAAK42B,QAKrD,GAJKF,IACHC,EAAWvN,EACX9mB,IAAMklB,IAAN,8BAAiCxnB,EAAK42B,OAASD,IAE7CA,EAAU,CACZ,MAAME,EAAapB,GAAuB9rB,EAAWgtB,GACrDntB,EAAWqtB,GACXxN,EAAWsN,EACZ,MACCntB,EAAWG,EACZ,GACA,CAACA,EAAW+sB,IAEf,MAAMzjB,EAAUC,cA6BVkN,EAAiB,CAACtW,EAAK8O,KAC3B,MAAMyH,EAAWvW,EAAIqW,IAEnB3B,EADE5F,EACkB,IAAI2F,EAAkB8B,GAGxC9B,EAAiBrP,QAAQ7B,GAAMA,IAAMvD,EAAIqW,MAE5C,EAGGG,EAAkB,CAAC1H,EAAUG,KACjC,MAAMwH,EAAQhX,EACX2F,QAAQb,IAAOkQ,EAAiBiC,SAASnS,EAAE8R,OAC3C/R,KAAKf,GAAMA,EAAE8S,MAEd3B,EADE5F,EACkB,IAAI2F,KAAqBgC,GAEzB,GACrB,EAGG3W,EAAY,CAChB/C,QAAS,CAACgD,EAAGC,EAAKC,KAChBkJ,EAAQa,KAAR,sCAA4ChK,EAAIgtB,UAAhD,IAKFC,YAAY,cAAEC,EAAgB,UAC5B9zB,EAEEsH,EAAU,CACd,CACEC,UAAW,WACXC,KAAM,KACNC,MAAM,EACNC,YAAY,EACZC,YAAa,CAAEjF,MAAO,OAAQkF,QAAS,aAEzC,CACEL,UAAW,eACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EAEZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,cACXC,KAAM,UACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,WACXC,KAAM,WACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,eACXC,KAAM,SACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EAEZ4I,UAAW,SAAUC,EAAM3J,GACzB,OACE,sBACE9E,MAAO,CACL0G,MAAgB,YAAT+H,EAAqB,UAAY,UACxClL,WAAsB,UAAVxB,EAAoB,SAAW,QAH/C,SAMG0M,GAGN,EACD5I,YAAa,CAAEC,QAAS,WAAYlF,MAAO,SAE7C,CACE6E,UAAW,aACXC,KAAM,OACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEC,QAAS,WAAYlF,MAAO,KAE7C,CACE6E,UAAW,mBACXC,KAAM,aACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZ4I,UAAW,SAAUC,EAAM3J,GACzB,OACE,sBACE9E,MAAO,CACL0G,MAAgB,kBAAT+H,EAA2B,UAAY,UAC9ClL,WAAsB,UAAVxB,EAAoB,SAAW,QAH/C,SAMG0M,GAGN,EACDoW,OAA0B,SAAlBmN,EACRnsB,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,sBACXC,KAAM,iBACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZif,OAA0B,SAAlBmN,EACRnsB,YAAa,CAAEC,QAAS,WAAYlF,MAAO,UAE7C,CACE6E,UAAW,UACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNoV,SAAU,CAACtJ,EAAG/Q,EAAGsa,KACfvJ,EAAU,KAANA,EAAW,QAAUA,EACzB/Q,EAAU,KAANA,EAAW,QAAUA,EACX,QAAVsa,EAC8B,IAAzBC,KAAOC,QAAQzJ,EAAG/Q,GAAW,GAAK,EAET,IAAzBua,KAAOC,QAAQzJ,EAAG/Q,IAAY,EAAI,GAI7CkF,YAAY,EACZC,YAAa,CAAEC,QAAS,WAAYlF,MAAO,MAG7C,CACE6E,UAAW,cACXC,KAAM,UACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,EACZif,OAA0B,SAAlBmN,EAERnsB,YAAa,CAAEC,QAAS,WAAYlF,MAAO,MAE7C,CACE6E,UAAW,mBACXC,KAAM,eACNK,QAAS,4BACTJ,MAAM,EACNC,YAAY,EACZif,OAA0B,SAAlBmN,EAERhyB,MAAO,CAAE2kB,WAAY,UACrBnW,UAAW,SAAUC,EAAM3J,GACzB,OAAO,IAAIqX,KAAK1N,GAAMmW,gBACvB,EACD/e,YAAa,CAAEC,QAAS,aAE1B,CACEL,UAAW,cACXof,QAAQ,EACRjf,WAA0B,UAAd5K,EAAK2G,KACjBmjB,WAAW,IAIT9f,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAS,OAAEX,QAAF,IAAEA,OAAF,EAAEA,EAASH,QAiDhB6tB,EAAoB71B,iBAAyC,IAAlCzB,EAAiC,uDAA1B,GAAI6C,EAAsB,4DAAd2jB,EAClD,IACE,MAAM,OAAEhC,GAAWjhB,EACb6Z,EAAM,CACVpT,UAAW4U,EACX7e,OAAQC,GAGC,4BAATA,GACS,2BAATA,EAEAod,EAAI7V,KAAO1E,EACRua,EAAI/T,OAASxG,SACCkC,EAAOjD,KAAK,yBAA0Bsb,IAChDvb,KAAKsB,QACZV,EAAShC,EAAaC,QAAQ,sBAC9B8jB,KACK/hB,EAAShC,EAAaE,MAAM,wBACpC,CAAC,MAAOA,GACPiE,QAAQC,IAAI,QAASlE,GACrBF,EAAaE,MAAM,uBACpB,CACF,GA4HK,QAAE+J,EAAF,aAAWyT,IAAiB5a,EAE5Bg0B,GACJ,cAACC,GAAA,EAAD,CACEjjB,OAAO,gBACPkjB,KAAMlO,EACNnkB,UAAU,mBAHZ,SAKE,cAAC,GAAD,CACEqkB,QAASA,EACT5nB,KAAMo0B,EACN7B,YA3Me10B,IACnB,MAAMw3B,EAAapB,GAAuBG,EAAmBv2B,GAC7DmK,EAAWqtB,GAAc,IACzBv0B,IAAMklB,IAAN,8BAAiCxnB,EAAK42B,OAASv3B,GAC/CgqB,EAAWhqB,EAAX,EAwMI20B,YArMc,KAClBxqB,EAAWosB,GACX,MAAMyB,EAAU,CACdrvB,QAAS,GACTshB,WAAY,GACZC,WAAY,GACZzmB,OAAQ,GACR0mB,QAAS,IAEXH,EAAWgO,GACX/0B,IAAMklB,IAAN,8BAAiCxnB,EAAK42B,OAASS,GAC/ClO,GAAoB,GACpBmO,SAASC,KAAKC,OAAd,MA8LIC,IAAkBtuB,IAAE4gB,OAAOX,GAASY,MAAM7gB,IAAEwN,SAElD,OACE,gCACE,cAAChC,GAAD,IACA,cAAC,KAAD,CACEpK,SAAS,WACT/I,KACE+H,EAAQ2F,QACLb,GACc,IAAZyH,GAAiBzH,EAAEqpB,cAAgB5hB,GACvB,IAAZA,GAAiBzH,KACjB,GAEP7D,QAASA,EACTQ,QAAM,EACNC,QAAM,EACNgf,UAAW,CACTC,SAAU,oBACVyN,YAAWpZ,EAAiBnV,OAAS,GACrCwuB,oBAAqBrZ,EAAiBnV,OAAS,GAfnD,SAkBIlG,GACA,cAAC,sBAAD,CAAoBgI,WAAYC,KAAkBnB,GAAlD,SACG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,IAA5B,UACE,eAACtI,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CAAEqD,QAAS,OAAQkM,WAAY,UAHxC,+BAME,cAAC,iCAAD,CACExP,UAAU,oCACNqG,IAEN,cAACysB,GAAA,EAAD,CACEC,QAAQ,QACRC,WAAS,EACTjJ,UAAU,SACVkJ,QAASd,GAJX,SAME,cAACvjB,GAAA,EAAD,CACExO,GAAG,gBACH0B,QAAS,IAAMsiB,GAAqBD,GACpCtV,SAAO,EACP7O,UAAW0yB,GAAiB,eAAiB,GAJ/C,SAME,mBAAGzjB,MAAM,sBAGb,eAACgD,GAAA,EAAD,CACE7R,GAAG,gBACHuB,KAAK,UACLlE,MAAO,EACP7C,KAAK,SACLqF,MAAO,CACLY,MAAO,IACPsc,UAAW,OACXC,UAAW,SACXC,UAAW,QAEblL,SAAWrN,GAzLT,EAAC1E,EAAIjC,KACzB,OAAQiC,GACN,KAAK,EACH4wB,GAAe,GACf,MAEF,KAAK,EACHvY,GAAQ,GACR,MAEF,KAAK,EACHta,EAAMinB,SAAS8N,WACf,MAEF,KAAK,EACHhB,EAAkB,gBAClB,MAEF,KAAK,EACHR,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,qBACN+G,KAAM,2BAER,MAEF,KAAK,EACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,iBACN+G,KAAM,kBAER,MAEF,KAAK,EACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,uBACN+G,KAAM,0BAER,MAEF,KAAK,EACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,eACN+G,KAAM,iBAER,MAEF,KAAK,EACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,yBACN+G,KAAM,wBAER,MAEF,KAAK,GACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,yBACN+G,KAAM,2BAER,MAEF,KAAK,GACH+vB,GAAO,GACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,iBACN+G,KAAM,gCAER,MAEF,KAAK,GACH+vB,EAAO,IACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,0BACN+G,KAAM,qBAER,MAEF,KAAK,GACH+vB,EAAO,IACPF,EAAe,CACblmB,MAAM,EACN1Q,KAAM,yBACN+G,KAAM,sBA9FZ,EAyLoBwxB,CAAcxd,SAAS7Q,EAAEqK,OAAO1R,OAAQU,GAZ5C,UAeE,wBAAQV,MAAO,EAAf,qBACA,wBAAQA,MAAO,EAAf,2BACA,wBACEA,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,mCAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,4BAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,0BAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,oCAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,4BAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,mCAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,0BAMA,wBACE5G,MAAO,EACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,iCAMA,wBACE5G,MAAO,GACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,oCAMA,wBACE5G,MAAO,GACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,yCAMA,wBACE5G,MAAO,GACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,4BAMA,wBACE5G,MAAO,GACPyf,SAAsC,IAA5B1D,EAAiBnV,OAF7B,iCAQJ,eAAC2C,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,6BAAtB,UACiB,UAAd/E,EAAK2G,MACJ,8BACE,cAAC4a,GAAA,EAAD,CACEC,QAAS,CACP,CAAE9a,KAAM,WAAYlE,MAAOkY,SAAS,OACjC,IAAI,IAAIrL,IAAI9F,EAAQ6E,KAAKC,GAAD,OAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAGqpB,gBAClCxoB,QACEb,GACE6nB,GACC7nB,EACGoT,cACAjB,SAAS0V,EAAczU,iBAC1ByU,GAAiB7nB,IAEtBD,KAAKuJ,IACG,CAAEjR,KAAMiR,EAAGnV,MAAOmV,OAG/BnV,MAAOsT,EACPpP,KAAK,UACLgb,YAAY,iBACZ1W,QAAM,EACN2W,WAAaC,GAAQuU,EAAWvU,GAChC1K,SAAWrN,GAAMkO,EAAWlO,OAIlC,cAAC,GAAD,CACE7E,MAAO,CAAEwD,WAAY,IACrBzD,UAAU,wBACN7B,EAAMsR,oBAIhB,cAAC,KAAD,CACElJ,OAAK,EACLC,UAAU,EACV3B,UAAWA,EACX4B,iBACEnB,EACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,qBACrB6M,UAAW,CACTC,KAAM,WACNC,eAAe,EACfjP,SAAU8U,EACV5F,SAAUyH,EACVtH,YAAawH,GAEf1U,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SACE,KAKJ,eAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WA3LrC,MAmMP,eAACtC,GAAA,EAAD,CAAOC,OAAQ+sB,EAAa9sB,OAAQ,IAAM+sB,GAAe,GAAzD,UACE,cAAC7gB,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAM+sB,GAAe,GAF/B,mDAMA,eAAC5gB,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,UAC+B,IAA5BwZ,EAAiBnV,OAAjB,sCACkCmV,EAAiBnV,OADnD,qCAEG,+BACJ,cAAC8M,GAAA,EAAD,UACE,eAACW,GAAA,EAAD,CAAWkF,OAAK,EAACD,QAAM,EAAC9W,MAAO,CAAEwL,UAAW,IAA5C,UACE,cAACwG,GAAA,EAAD,CACErX,KAAK,WACLqc,QAASga,EACT9e,SAAU,IAAM+e,GAAcD,KAEhC,cAAClf,GAAA,EAAD,CAAOiF,OAAK,EAAZ,2CAIN,eAAC3G,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC4O,GAAA,EAAD,CACEjI,MAAmC,IAA5B6S,EAAiBnV,OAAe,SAAW,QAClD6Y,SAAsC,IAA5B1D,EAAiBnV,OAC3BiM,KAAK,KACLxO,QAxpBYzF,UACpB,IACE,MAAM2b,EAAM,CACVob,qBAAsB5Z,EACtB6Z,WAAYpC,GAERvxB,QAAaC,EAAOjD,KAAK,2BAA4Bsb,GACvDtY,EAAKjD,KAAKsB,QACZV,EACEhC,EAAaC,QAAb,+BAC0B21B,EAAY,kBAAoB,MAG5D1T,YAAW,KACTlS,OAAOyM,SAASsH,QAAhB,GACC,MACE/hB,EAAShC,EAAaE,MAAMmE,EAAKjD,KAAKtB,SAC9C,CAAC,MAAOI,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CAlBD,QAmBEgiB,YAAW,KACTlgB,EAAShC,EAAaG,SACtBw1B,GAAe,EAAf,GACC,IACJ,GA4nBK,UAME,mBAAGhxB,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KANxD,cASA,cAACkL,GAAA,EAAD,CAAQ0B,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMkvB,GAAe,GAAxD,0BAKJ,eAACjtB,GAAA,EAAD,CACEC,OAAQmV,EACRlV,OAAQ,KACNwU,GAAQ,GACRc,EAAkB,KAAlB,EAJJ,UAOE,cAACpJ,GAAA,EAAD,iCACA,eAACC,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACGzG,GAAW,cAACoB,GAAA,EAAD,KACVpB,GACA,eAACwM,GAAA,EAAD,WACE,eAACvM,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAE8F,QAAS,OAA9B,SACE,cAACgM,GAAA,EAAD,CAAOC,IAAI,gBAAX,8BAEF,cAAChL,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACiN,GAAA,EAAD,CACEC,QAAS,CACP,CAAE9a,KAAM,UAAWlE,MAAOkY,SAAS,OAChCoD,GACA5O,QAAQb,GACPA,EAAEgM,YAAYoH,cAAcjB,SAC1B4V,EAAe3U,iBAGlBrT,KAAKC,IAAD,CAAU3H,KAAM2H,EAAEgM,YAAa7X,MAAO6L,EAAEoL,QAEjDjX,MAAO6b,EACP3X,KAAK,UACLgb,YAAY,iBACZ1W,QAAM,EACN2W,WAAaC,GAAQyU,EAAWzU,GAChC1K,SAAWrN,GAAMyU,EAAkB5D,SAAS7Q,WAIlD,cAAC8J,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwL,UAAW,OAAQwR,MAAO,SACnCnb,QApeKzF,UACjB,MAAM,OAAE+iB,GAAWjhB,EACb6Z,EAAM,CACVjC,WAAYJ,SAAS2D,GACrBgE,aAAc9D,GAEhB7Z,EAAOjD,KAAK,mCAAoCsb,GAC7C1a,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,SACNV,EAAShC,EAAaC,QAAQ,sBAC9Bmd,GAAQ,GACR2G,IACA3F,EAAoB,IACpBF,EAAkB,MAClBgE,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MACJ,IAEF8D,OAAOC,IACNC,QAAQC,IAAI,MAAOF,EAAnB,GAdJ,EA2dU,2BAWR,eAACwE,GAAA,EAAD,CACE9D,MAAO,CACL6O,SACuB,4BAArByiB,EAAY32B,MACS,2BAArB22B,EAAY32B,KACR,MACA,OAERoJ,QAAmB,OAAXutB,QAAW,IAAXA,OAAA,EAAAA,EAAajmB,QAAQ,EAC7BrH,OAAQ,KACNutB,EAAe,CAAElmB,MAAM,EAAO1Q,KAAM,KAAM+G,KAAM,OAChD+vB,EAAO,GAAP,EAXJ,UAcE,cAACvhB,GAAA,EAAD,WAAyB,OAAXohB,QAAW,IAAXA,OAAA,EAAAA,EAAa5vB,OAAQ,KACnC,eAACyO,GAAA,EAAD,CAAWnQ,MAAO,CAAE8L,UAAW,UAA/B,UACG4D,GAAa,cAACjJ,GAAA,EAAD,KACZiJ,GACA,eAACmC,GAAA,EAAD,WACE,eAACvM,EAAA,EAAD,YACyB,4BAArBgsB,EAAY32B,MACS,2BAArB22B,EAAY32B,OACZ,qCACE,cAACoM,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAE8F,QAAS,OAA9B,SACE,cAACgM,GAAA,EAAD,CAAOC,IAAI,gBAAX,iCAEF,cAAChL,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAAC0C,GAAA,EAAD,CACExU,MAAOg0B,EACPtf,SAAWrN,GAAM4sB,EAAO5sB,EAAEqK,OAAO1R,gBAMlB,4BAArB8zB,EAAY32B,MACS,2BAArB22B,EAAY32B,OAEZ,qCACE,cAACoM,GAAA,EAAD,CAAKuI,GAAG,MACR,cAACvI,GAAA,EAAD,CAAKuI,GAAG,IAAItP,MAAO,CAAE8F,QAAS,OAA9B,SACE,cAACgM,GAAA,EAAD,CAAOC,IAAI,gBAAX,UACc,OAAXuf,QAAW,IAAXA,OAAA,EAAAA,EAAa5vB,OAAQ,aAG1B,cAACqF,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAAC0C,GAAA,EAAD,CACErX,KAAK,WACL6C,MAAOg0B,EACPtf,SAAWrN,GAAM4sB,EAAO5sB,EAAEqK,OAAO8H,mBAM3C,cAACrI,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwL,UAAW,OAAQwR,MAAO,SACnCnb,QAtfIzF,UAChB,IACEmjB,GAAa,GACb,MAAM,KAAE5kB,GAAS22B,QACXW,EAAkBt3B,EAAM62B,GAC9BD,EAAe,CACblmB,MAAM,EACN1Q,KAAM,KACN+G,KAAM,OAER6d,GAAa,GACbkS,EAAO,IACPnU,YAAW,IAAMlgB,EAAShC,EAAaG,UAAU,KAClD,CAAC,MAAOD,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GAoeS,iCAab,CC5xBc+3B,OA1FM,KAAO,IAAD,EACzB,MAAMrtB,EAAS8R,cAAc9R,OACvBstB,EAAS,IAAIC,gBAAgBvtB,GAAQrJ,IAAI,UACzCqG,EAAO,UAAG,IAAIuwB,gBAAgBvtB,GAAQrJ,IAAI,kBAAnC,aAAG,EAA4C2O,MAAM,KAC5DxN,EAAS,IAAIy1B,gBAAgBvtB,GAAQrJ,IAAI,UACzC62B,EAAW,IAAID,gBAAgBvtB,GAAQrJ,IAAI,YAC3C82B,EAAS,IAAIF,gBAAgBvtB,GAAQrJ,IAAI,UACzCq1B,EAAgB,IAAIuB,gBAAgBvtB,GAAQrJ,IAAI,kBAC/Ci0B,EAAmBC,GAAmBxyB,mBAAS,KAC/CgH,EAAS6H,GAAc7O,oBAAS,IAChCq1B,EAAaC,GAAkBt1B,oBAAS,IACxCya,EAAcC,GAAmB1a,mBAAS,IAEjDO,qBAAU,KACRg1B,IACA3e,GAAe,GACd,IAEH,MAAM2e,EAAgB,KACpB1mB,GAAW,GACXxN,EAAO/C,IAAI,mBACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN+yB,EAAgB1xB,EAAI3C,KACrB,IAEF6C,OAAOC,GAAQC,QAAQC,IAAI,QAASF,KACpCgP,SAAQ,IAAMpB,GAAW,IAP5B,EAUI+H,EAAgB,KACpB8D,EAAgB,IAChBrZ,EAAO/C,IAAP,+BACGU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQib,EAAgB5Z,EAAI3C,KAApB,IAEjB6C,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,IAJnC,EAaF,OANAV,qBAAU,KAEN+0B,IADEL,GAAUtwB,GAAWlF,GAAU01B,GAAYC,GAAUzB,GAEpD,GACJ,CAACsB,EAAQtB,EAAewB,EAAUC,EAAQ31B,EAAQkF,IAGnD,mCACE,eAAC5C,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,uBACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC4wB,GAAD,CACEe,aAAcgC,EACdvU,OAAQyU,EACR9a,aAAcA,EACdiZ,WAAY,CAAEC,iBACdrtB,UAAWisB,EACR1mB,QACEb,GAAOiqB,GAAUjqB,EAAEwc,aAAeyN,IAAaA,GAAUjqB,IAE3Da,QACEb,GACEvL,GAAUuL,EAAE4mB,eAAiBnyB,GAC7BkF,IAAO,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAASwY,SAASnS,EAAEiB,WAC/BkpB,GACCnqB,EAAEwqB,kBACc,SAAbL,IACJC,GACCpqB,EAAEyqB,gBAA6B,SAAXL,IACH,SAAlBzB,IAC4B,kBAA1B3oB,EAAE0qB,qBACD1qB,EAAE0qB,oBAAoBvY,SACpB,wCAEJxY,IACClF,IACA01B,IACAC,IACAzB,GACD3oB,IAERhE,QAASA,YApCrB,EC7CF,MAAMnC,GAAU,QAAC,MAAEC,EAAF,SAASC,GAAV,SACd,sBAAKpD,MAAO,CAAEqD,QAAS,OAAQzC,MAAO,OAAQ0C,SAAU,IAAxD,UACE,mBAAGtD,MAAO,CAAEuD,WAAY,OAAQ3C,MAAO,IAAK0C,SAAU,IAAtD,SAA6DH,IAC7D,mBAAGnD,MAAO,CAAEwD,WAAY,EAAGC,YAAa,GAAIH,SAAU,IAAtD,eACA,mBAAGtD,MAAO,CAAE0D,KAAM,EAAGJ,SAAU,IAA/B,SAAsCF,MAJ1B,EA6SDO,OArSf,YAA0C,IAAtB,OAAEC,EAAF,QAAUC,GAAW,EACvC,MAAO2tB,EAAKC,GAAUpzB,mBAAS,KACxB21B,EAAaC,GAAgB51B,oBAAS,IACtC61B,EAAWC,GAAgB91B,oBAAS,IACpC1D,EAAMulB,GAAW7hB,mBAAS,YAE3B4P,EAAUC,cAEVkmB,EAAiB3gB,IACrB,MAAM4gB,EAAc,CAAC,EACrBA,EAAY5gB,GAAQ+d,EACP,aAAT72B,GACFsT,EAAQa,KAAK,CACXmI,SAAS,gCAAD,OAAkC9S,IAAExH,IAC1CiH,EACA,8BAEFnJ,MAAO45B,IAGE,aAAT15B,GACFsT,EAAQa,KAAK,CACXmI,SAAS,gCAAD,OAAkC9S,IAAExH,IAC1CiH,EACA,oBAEFnJ,MAAO45B,GAEV,EAaH,OACE,gCACE,eAACvwB,GAAA,EAAD,CAAOC,OAAQH,EAAQI,OAAQ,IAAMH,IAArC,UACE,sBAAK9D,UAAU,eAAeC,MAAO,CAAEuD,WAAY,QAAnD,0BAEE,wBACE,aAAW,QACXxD,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,KACPgC,GAAS,EANb,SASE,sBAAM,eAAa,EAAnB,uBAGJ,sBAAK9D,UAAU,aAAaC,MAAO,CAAEiE,WAAY,GAAjD,UACE,cAAC,GAAD,CAASd,MAAM,OAAf,SACGS,EACGM,KACEC,IAAExH,IAAIiH,EAAQ,gBAGN,MAFLO,IAAExH,IAAIiH,EAAQ,eACbO,IAAExH,IAAIiH,EAAQ,eAAeQ,OAAS,GAEpC,GACA,MACNC,OAAO,yBACT,KAEN,cAAC,GAAD,CAASlB,MAAM,UAAf,SACE,qBACEnD,MAAO,CACLs0B,aAAc,WACd7oB,SAAU,SACVkZ,WAAY,SACZ/jB,MAAO,SALX,SAQGuD,IAAExH,IAAIiH,EAAQ,0BAGnB,cAAC,GAAD,CAAST,MAAM,aAAf,SACGgB,IAAExH,IAAIiH,EAAQ,sBAEjB,cAAC,GAAD,CAAST,MAAM,iBAAf,SACGgB,IAAExH,IAAIiH,EAAQ,yBAEjB,cAAC,GAAD,CAAST,MAAM,SAAf,SACE,mBACE3C,KAAI,wCAAmC2D,IAAExH,IACvCiH,EACA,oBAEFsL,OAAO,SALT,SAOG/K,IAAExH,IAAIiH,EAAQ,uBAGnB,cAAC,GAAD,CAAST,MAAM,aAAf,SACGgB,IAAExH,IAAIiH,EAAQ,sBAEjB,cAAC,GAAD,CAAST,MAAM,OAAf,SAAuBgB,IAAExH,IAAIiH,EAAQ,iBAIrC,cAAC,GAAD,CAAST,MAAM,gBAAf,SACGgB,IAAExH,IAAIiH,EAAQ,6BACb,sBAAM5D,MAAO,CAAE0G,MAAO,WAAtB,gBAEA,sBAAM1G,MAAO,CAAE0G,MAAO,WAAtB,mBAGJ,cAAC,GAAD,CAASvD,MAAM,iBAAf,SACGgB,IAAExH,IAAIiH,EAAQ,uBACb,sBAAM5D,MAAO,CAAE0G,MAAO,WAAtB,gBAEA,sBAAM1G,MAAO,CAAE0G,MAAO,WAAtB,mBAGJ,sBAAK1G,MAAO,CAAEqD,QAAS,OAAQ+O,eAAgB,UAA/C,UACE,eAACzD,GAAA,EAAD,CACExO,GAAG,eACHkQ,KAAK,KACLzB,SAAO,EACPlI,MAAM,UACN7E,QAAS,IACPuJ,OAAOC,KAAP,wCACmClH,IAAExH,IACjCiH,EACA,+BATR,UAcE,mBAAGoL,MAAM,cAAc,cAAY,SACnC,cAACC,GAAA,EAAD,CAAqBC,OAAO,eAAeC,UAAU,EAArD,8BAIF,eAACR,GAAA,EAAD,CACExO,GAAG,mBACHkQ,KAAK,KACLzB,SAAO,EACPlI,MAAM,UACN7E,QAAS,KACPoyB,GAAa,GACbxC,EAAOttB,IAAExH,IAAIiH,EAAQ,uBAAyB,GAA9C,EAPJ,UAUE,mBAAGoL,MAAM,cAAc,cAAY,SACnC,cAACC,GAAA,EAAD,CAAqBC,OAAO,mBAAmBC,UAAU,EAAzD,kCAIF,eAACR,GAAA,EAAD,CACExO,GAAG,gBACHkQ,KAAK,KACLzB,SAAO,EACPlI,MAAM,UACN7E,QAAS,KACPsyB,GAAa,GAnIAvX,KACzB,IACE,MAAM2X,EAAW3X,EAAItR,MAAM,MAC3BipB,EAASC,MACT/C,EAAO8C,EAAShqB,KAAK,MAAQ,KAC9B,CAAC,MAAOjP,GACPiE,QAAQC,IAAI,8BAA+BlE,EAC5C,GA6HWm5B,CAAkBtwB,IAAExH,IAAIiH,EAAQ,wBAA0B,GAA1D,EAPJ,UAUE,mBAAGoL,MAAM,oBAAoB,cAAY,SACzC,cAACC,GAAA,EAAD,CAAqBC,OAAO,gBAAgBC,UAAU,EAAtD,wCAOR,eAACrL,GAAA,EAAD,CAAOC,OAAQmwB,EAAWlwB,OAAQ,IAAMmwB,GAAa,GAArD,UACE,sBAAKp0B,UAAU,eAAeC,MAAO,CAAEuD,WAAY,QAAnD,2BAEE,wBACE,aAAW,QACXxD,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,IAAMsyB,GAAa,GAL9B,SAOE,sBAAM,eAAa,EAAnB,uBAGJ,sBAAKp0B,UAAU,aAAaC,MAAO,CAAEiE,WAAY,EAAG4H,cAAe,GAAnE,UACE,cAAC,GAAD,CAAS1I,MAAM,OAAf,SACE,cAAC6O,GAAA,EAAD,CACExU,MAAOg0B,EACPkD,OAAO,KACPxiB,SAAWrN,GAAM4sB,EAAO5sB,EAAEqK,OAAO1R,WAGrC,cAAC,GAAD,CAAS2F,MAAM,OAAf,SACE,eAAC6O,GAAA,EAAD,CACE7R,GAAG,gBACHuB,KAAK,SACLlE,MAAO7C,EACPA,KAAK,SACLqF,MAAO,CACLY,MAAO,IACPsc,UAAW,OACXC,UAAW,SACXJ,SAAU,QAEZ7K,SAAWrN,GAAMqb,EAAQrb,EAAEqK,OAAO1R,OAXpC,UAaE,wBAAQA,MAAM,WAAd,sBACA,wBAAQA,MAAM,WAAd,8BAIN,sBAAKuC,UAAU,eAAeC,MAAO,CAAEiE,WAAY,GAAnD,UACE,cAAC0K,GAAA,EAAD,CACEjI,MAAM,UACN7E,QAAS,IAAMuyB,EAAc,mBAF/B,sBAMA,cAACzlB,GAAA,EAAD,CACEjI,MAAM,SACNkI,SAAO,EACP/M,QAAS,KACP4vB,EAAO,IACP0C,GAAa,EAAb,EALJ,0BAYJ,eAACrwB,GAAA,EAAD,CAAOC,OAAQiwB,EAAahwB,OAAQ,IAAMiwB,GAAa,GAAvD,UACE,sBAAKl0B,UAAU,eAAeC,MAAO,CAAEuD,WAAY,QAAnD,8BAEE,wBACE,aAAW,QACXxD,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,IAAMoyB,GAAa,GAL9B,SAOE,sBAAM,eAAa,EAAnB,uBAGJ,sBAAKl0B,UAAU,aAAaC,MAAO,CAAEiE,WAAY,EAAG4H,cAAe,GAAnE,UACE,cAAC,GAAD,CAAS1I,MAAM,UAAf,SACE,cAAC6O,GAAA,EAAD,CACExU,MAAOg0B,EACPkD,OAAO,KACPxiB,SAAWrN,GAAM4sB,EAAO5sB,EAAEqK,OAAO1R,WAGrC,cAAC,GAAD,CAAS2F,MAAM,OAAf,SACE,eAAC6O,GAAA,EAAD,CACE7R,GAAG,gBACHuB,KAAK,SACLlE,MAAO7C,EACPA,KAAK,SACLqF,MAAO,CACLY,MAAO,IACPsc,UAAW,OACXC,UAAW,SACXJ,SAAU,QAEZ7K,SAAWrN,GAAMqb,EAAQrb,EAAEqK,OAAO1R,OAXpC,UAaE,wBAAQA,MAAM,WAAd,sBACA,wBAAQA,MAAM,WAAd,8BAIN,sBAAKuC,UAAU,eAAeC,MAAO,CAAEiE,WAAY,GAAnD,UACE,cAAC0K,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMuyB,EAAc,aAArD,sBAGA,cAACzlB,GAAA,EAAD,CACEjI,MAAM,SACNkI,SAAO,EACP/M,QAAS,KACP4vB,EAAO,IACPwC,GAAa,EAAb,EALJ,4BAcT,E,OCHcU,OA/QI,KACjB,MAAOC,EAAiBC,GAAiBx2B,mBAAS,KAC3CoG,EAAUC,GAAerG,mBAAS,OAElCgH,EAAS6H,GAAc7O,oBAAS,IAChCgS,EAAMykB,GAAWz2B,mBAAS,KAC1B02B,EAAOC,GAAY32B,mBAAS,IAC5B42B,EAAMC,GAAW72B,mBAAS,IAC1Bi1B,EAAQ6B,GAAa92B,mBAAS,IAC9BoX,EAAUO,GAAe3X,mBAAS,IAClC+yB,EAAgBC,GAAahzB,mBAAS,KACtC+2B,EAAgBC,GAAch3B,mBAAS,KACvCua,EAASC,GAAcxa,mBAAS,KAChCiW,EAAWghB,GAAgBj3B,mBAAS,KAErC,KAAEsD,EAAO,WAAchD,aAC1BlE,GAAUA,EAAMD,eAAeQ,OAElC4D,qBAAU,KASYxC,WAClB8Q,GAAW,GACXxN,EAAO/C,IAAI,mBAAmBU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EAChDA,EAAIrB,QACN+a,EAAW1Z,EAAI3C,KAChB,GAHH,EAMF+4B,GAhBsBn5B,WACpBsD,EAAO/C,IAAP,+BAA0CU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EAC5DA,EAAIrB,QACNw3B,EAAan2B,EAAI3C,KAClB,GAHH,EAgBFyY,EAAe,GACd,IAEHrW,qBAAU,KACYxC,WAClB8Q,GAAW,GACX2nB,EAAc,IACdn1B,EAAOjD,KAAK,uBAAwB,CAClC+4B,SAAUnlB,EACVolB,WAAYR,EACZnf,WAAYL,EACZqc,SAAUwB,IAETj2B,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,SACNk3B,EAAS71B,EAAItB,OAAO63B,iBACpBb,EAAc11B,EAAItB,OAAO83B,oBAC1B,IAEFrnB,SAAQ,IAAMpB,GAAW,IAZ5B,EAcF0oB,EAAa,GACZ,CAACvlB,EAAM4kB,EAAM3B,EAAQ7d,IAExB,MAAMogB,EAAgB,CAACl7B,EAAD,KAAkC,IAA3B,KAAEs6B,EAAF,YAAQ9vB,GAAkB,EACrD+vB,EAAQD,GACRH,EAAQ3vB,EAAR,EAGIK,EAAU,CACd,CACEC,UAAW,cACXC,KAAM,OACNK,QAAS,4BACTyI,UAAW,SAAUC,EAAM3J,GACzB,OAAO,+BAAOZ,KAAOuK,GAA4B,MAAtBA,EAAKA,EAAKrK,OAAO,GAAS,GAAG,MAAMC,OAAO,2BACtE,EACDwB,YAAa,CAAEC,QAAS,OAAQiX,SAAU,MAE5C,CACEtX,UAAW,qBACXC,KAAM,UACNK,QAAS,4BACTF,YAAa,CAAEC,QAAS,OAAQlF,MAAO,OAExC0yB,GAAU,CACT7tB,UAAW,kBACXC,KAAM,WACNK,QAAS,4BACTF,YAAa,CAAEC,QAAS,SAE1B,CACEL,UAAW,cACXC,KAAM,OACNK,QAAS,4BACT/F,MAAO,CAAE2kB,WAAY,UACrB9e,YAAa,CAAEC,QAAS,SAEjB,aAATnE,IACG8T,GAAY,CACXhQ,UAAW,uBACXC,KAAM,WACNK,QAAS,4BACT/F,MAAO,CAAE2kB,WAAY,UACrB9e,YAAa,CAAEC,QAAS,UAIxBlB,EAAY,CAChB/C,QAAS,CAACgD,EAAGC,EAAKC,KAChBL,EAAYI,EAAZ,GAqBJ,OAFAvF,QAAQC,IAAI,SAAU8zB,EAAQ7d,GAG5B,mCACE,eAACrV,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,oBACA,cAACuF,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,IAA5B,SACE,cAAC,sBAAD,CACEnJ,WAAYC,KAAkB,CAC5BiJ,QAAQ,EACR6lB,OACA9vB,YAAakL,EACbnL,UAAW6vB,IALf,SAQG,QAAC,gBAAE3uB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CACLqD,QAAS,OACTkM,WAAY,SACZF,aAAc,IANlB,+BAUE,cAAC,iCAAD,CACEtP,UAAU,oCACNqG,OAGR,eAACW,GAAA,EAAD,CAAKhH,UAAU,6BAA6BuP,GAAG,IAA/C,UACY,aAAT3N,GACC,8BACE,cAAC4a,GAAA,EAAD,CACEC,QAAS,CACP,CAAE9a,KAAM,YAAalE,MAAOkY,SAAS,OAClCpB,EACApK,QACEb,GACE+nB,GACC,UAAG/nB,EAAEqH,UAAL,YAAkBrH,EAAEsH,SAApB,cAAkCtH,EAAEgM,aACjCoH,cACAjB,SACC4V,EAAe3U,iBAEnB2U,GAAkB/nB,IAEvBD,KAAKuJ,IACG,CACLjR,KAAK,GAAD,OAAKiR,EAAEjC,UAAP,YAAoBiC,EAAEhC,SAAtB,cAAoCgC,EAAE0C,aAC1C7X,MAAOmV,EAAE8B,QAIjBjX,MAAOiY,EACP/T,KAAK,WACLgb,YAAY,kBACZ1W,QAAM,EACN2W,WAAaC,GAAQyU,EAAWzU,GAChC1K,SAAWrN,IACTmR,EAAYN,SAAS7Q,IACrBswB,EAAU,EAAV,OAKO,IAAb1f,GAA2B,aAAT9T,IAClB,qBAAK3B,MAAO,CAACwD,WAAW,QAAxB,SACE,cAAC+Y,GAAA,EAAD,CACEC,QAAS,CACP,CAAE9a,KAAM,YAAalE,MAAOkY,SAAS,OAClCkD,EACA1O,QACEb,KACEoM,IACI,OAADpM,QAAC,IAADA,OAAA,EAAAA,EAAGyM,cAAeL,KAEpB2f,GACA/rB,EAAEysB,SACCrZ,cACAjB,SACC4Z,EAAe3Y,iBAEjB2Y,GAAkB/rB,KAEzBD,KAAKuJ,IACG,CACLjR,KAAMiR,EAAEmjB,SACRt4B,MAAOmV,EAAEmf,cAIjBt0B,MAAO81B,EACP5xB,KAAK,WACLgb,YAAY,kBACZ1W,QAAM,EACN2W,WAAaC,GAAQyY,EAAWzY,GAChC1K,SAAWrN,IACTswB,EAAUzf,SAAS7Q,GAAnB,YAOZ,cAAC,KAAD,CACEoB,QAAM,EACNV,SAAS,KACTswB,cAAeA,EACfvvB,OAAK,EACL9J,KAAMo4B,EACNpvB,QAASA,EACTe,UAAU,EACVC,iBACEnB,EACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJ9B,UAAWA,EACX+B,qBAAqB,qBACrBC,YAAY,yBACRP,IAEN,eAACf,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WAtHrC,MA6HL,cAAC,GAAD,CAAYxC,OAAQa,EAAUZ,QAAS,IAAMa,EAAY,YA1I/D,EChGaqxB,OAvDgB,KAE7B,MAAM,GAAE51B,GAAO0Q,eAER+f,EAAmBC,GAAmBxyB,mBAAS,KAC/CgH,EAAS6H,GAAc7O,oBAAS,IAChCya,EAAcC,GAAmB1a,mBAAS,IAEjDO,qBAAU,KACRg1B,IACA3e,GAAe,GACd,IAEH,MAAM2e,EAAc,KAClB1mB,GAAW,GACXxN,EACG/C,IAAI,+BAAiCwD,GACrC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN+yB,EAAgB1xB,EAAI3C,KACrB,IAEF6C,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,KAChCgP,SAAQ,IAAIpB,GAAW,IAR1B,EAWI+H,EAAgB,KACpB8D,EAAgB,IAChBrZ,EAAO/C,IAAP,+BACGU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQib,EAAgB5Z,EAAI3C,KAApB,IAEjB6C,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,IAJnC,EAOF,OACE,mCACE,eAACc,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,mCACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC4wB,GAAD,CACExR,OAAQyU,EACR9a,aAAcA,EACdiZ,WAAY,CAAEC,cAAe,SAC7BrtB,UAAWisB,EACXvrB,QAASA,YAXrB,ECiBa2wB,OArDgB,KAC7B,MAAM,GAAE71B,GAAO0Q,eAER+f,EAAmBC,GAAmBxyB,mBAAS,KAC/CgH,EAAS6H,GAAc7O,oBAAS,IAChCya,EAAcC,GAAmB1a,mBAAS,IAEjDO,qBAAU,KACRqW,IACA2e,GAAe,GACd,IAEH,MAAMA,EAAgB,KACpB1mB,GAAW,GACXxN,EAAO/C,IAAI,8BAAgCwD,GACxC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN+yB,EAAgB1xB,EAAI3C,KACrB,IAEF6C,OAAOC,GAAQC,QAAQC,IAAI,MAAOF,KAClCgP,SAAQ,IAAMpB,GAAW,IAP5B,EAUI+H,EAAgB,KACpB8D,EAAgB,IAChBrZ,EAAO/C,IAAP,+BACGU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQib,EAAgB5Z,EAAI3C,KAApB,IAEjB6C,OAAOC,GAAQC,QAAQC,IAAI,MAAOF,IAJrC,EAOF,OACE,mCACE,eAACc,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,oCACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC4wB,GAAD,CACExR,OAAQyU,EACR9a,aAAcA,EACdiZ,WAAY,CAAEC,cAAe,SAC7B3sB,QAASA,EACTV,UAAWisB,YAXvB,ECmBaqF,OApDe,KAC5B,MAAM,GAAE91B,GAAO0Q,eAER+f,EAAmBC,GAAmBxyB,mBAAS,KAC/CgH,EAAS6H,GAAc7O,oBAAS,IAChCya,EAAcC,GAAmB1a,mBAAS,IAEjDO,qBAAU,KACRqW,IACA2e,GAAe,GACd,IAEH,MAAMA,EAAgB,KACpB1mB,GAAW,GACXxN,EAAO/C,IAAI,8BAAgCwD,GACxC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN+yB,EAAgB1xB,EAAI3C,KACrB,IAEF8R,SAAQ,IAAMpB,GAAW,IAN5B,EASI+H,EAAgB,KACpB8D,EAAgB,IAChBrZ,EAAO/C,IAAP,+BACGU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQib,EAAgB5Z,EAAI3C,KAApB,IAEjB6C,OAAOC,GAAQC,QAAQC,IAAI,MAAOF,IAJrC,EAOF,OACE,mCACE,eAACc,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,qCACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC4wB,GAAD,CACExR,OAAQyU,EACR9a,aAAcA,EACdiZ,WAAY,CAAEC,cAAe,SAC7B3sB,QAASA,EACTV,UAAWisB,YAXvB,ECpBF,MAAM1sB,GAASjF,EAAQ,IAER,SAASi3B,GAAT,GAAkC,IAApB,SAAEC,EAAF,IAAYC,GAAO,EAC9C,MAAOC,EAAOC,GAAUj4B,oBAAS,IAC1Bk4B,EAAUC,GAAan4B,oBAAS,IAChCo4B,EAAYC,GAAiBr4B,oBAAS,IACtCgH,EAAS6H,GAAc7O,oBAAS,IAChCs4B,EAASC,GAAcv4B,mBAAS,IAEjCjB,EAAWsB,eACX,GAAEyB,GAAO0Q,cAEfjS,qBAAU,KACRw3B,GAAKC,GACDA,GAAOQ,GAAa,GACvB,CAACR,IAEJz3B,qBAAU,KACR,IAAIk4B,EACJ,GAAIP,EAAU,CACZ,MAAMQ,EAAe36B,UACdu6B,GAASD,GAAc,GAE5B,IACE,MAAMv3B,QAAYO,EAAO/C,IAAP,2CACoBwD,IAGO,IAAD,EAD5C,GAAIhB,EAAI3C,KAAKsB,QACPqB,EAAI3C,KAAKA,MAAQ2C,EAAI3C,KAAKA,KAAKw6B,MAC7BL,IAAYx3B,EAAI3C,KAAKA,KAAKw6B,OAAOR,GAAU,GAC/CI,EAAU,UAACz3B,EAAI3C,KAAKA,KAAKw6B,aAAf,aAAC,EAAqBrxB,MAAK,CAAC8L,EAAE/Q,IAAY,IAAIyb,KAAKzb,EAAEu2B,cAAc,IAAI9a,KAAK1K,EAAEwlB,iBACxFP,GAAc,EAEnB,CAAC,MAAOp7B,GACPiE,QAAQC,IAAIlE,EACb,GAGHy7B,IACAD,EAAWI,aAAY,KACrBH,GAAc,GACb,IACJ,CAED,MAAO,IAAMI,cAAcL,EAA3B,GACC,CAACP,IAuCJ,MA4BMM,EAAc,KAClBH,GAAc,GACdh3B,EAAO/C,IAAP,2CAA+CwD,IAAM9C,MACnD,IAAoB,IAAjBb,KAAM2C,GAAU,EACA,IAAD,EAAZA,EAAIrB,SACFqB,EAAI3C,MAAQ2C,EAAI3C,KAAKw6B,OAAOJ,EAAU,UAACz3B,EAAI3C,KAAKw6B,aAAV,aAAC,EAAgBrxB,MAAK,CAAC8L,EAAE/Q,IAAY,IAAIyb,KAAKzb,EAAEu2B,cAAc,IAAI9a,KAAK1K,EAAEwlB,iBACnHP,GAAc,GACf,GALL,EAUI9xB,EAAY,CAChB/C,QAASzF,MAAOyI,EAAGC,EAAKC,KACtB,IACE,MAAMgT,EAAM,CACV+Z,SAAUpc,SAASvV,GACnBi3B,SAAUtyB,EAAIuyB,MAEV53B,QAAaC,EAAOjD,KAAP,oBAAiCsb,GAChDtY,EAAKjD,KAAKsB,QAAQsN,OAAOC,KAAK5L,EAAKjD,KAAK4C,IAC7C,CAAC,MAAO9D,GACPiE,QAAQC,IAAIlE,GACZ8B,EAAShC,EAAaE,MAAM,yBAC5BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,IACJ,IAICiK,EAAU,CACd,CAAEC,UAAW,OAAQC,KAAM,OAAQC,MAAK,GACxC,CACED,KAAM,gBACNC,MAAK,EACL6I,UAAW,CAACC,EAAM3J,IACTZ,GAAOY,EAAImyB,cACf5yB,OAAO,yBACPugB,iBAEL7J,SAAU,CAACtJ,EAAG/Q,EAAGsa,EAAOvV,EAAW6xB,EAAMC,IACzB,SAAVvc,EACE,IAAImB,KAAKmb,EAAKL,cAAgB,IAAI9a,KAAKob,EAAKN,cAAsB,EAClE,IAAI9a,KAAKmb,EAAKL,cAAgB,IAAI9a,KAAKob,EAAKN,eAAuB,EAChE,EAGH,IAAI9a,KAAKmb,EAAKL,cAAgB,IAAI9a,KAAKob,EAAKN,eAAuB,EACnE,IAAI9a,KAAKmb,EAAKL,cAAgB,IAAI9a,KAAKob,EAAKN,cAAsB,EAC/D,IAMf,OACE,gCACE,cAACxnB,GAAD,CACEb,SAAO,EACP5O,MAAO,CAAEyD,YAAa,GACtB5B,QAAS,IAAMy0B,GAAO,GAHxB,iBAQA,cAACxyB,GAAA,EAAD,CAAOC,OAAQsyB,EAAOhmB,KAAK,KAAKrM,OAAQ,IAAMsyB,GAAQD,GAAtD,SACE,sBAAKr2B,MAAO,CAAE8F,QAAS,IAAvB,UACE,qBAAK/F,UAAU,eAAf,SACE,wBACE,aAAW,QACXA,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,IAAMy0B,GAAO,GALxB,SAOE,sBAAM,eAAa,EAAnB,sBAGJ,gCACE,cAAC3mB,GAAD,CAAc3P,MAAO,CAAEgd,MAAO,UAC9B,sBAAKhd,MAAO,CAAEqD,QAAS,OAAQ2Z,MAAO,SAAtC,UACE,cAACrO,GAAA,EAAD,CAAQC,SAAO,EAACyB,KAAK,KAAKxO,QA9GjBzF,UACnB,GAAiB,YAAb+5B,EASF,OARA/4B,EACEhC,EAAaE,MACX,+DAGJgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,CAAC,MAGN,WACqBmE,EAAO/C,IAAP,kDAC0BwD,EAD1B,cACyC,KAEnD3D,KAAKsB,QACZV,EAAShC,EAAaC,QAAQ,aAC9Bm7B,GAAU,IACLp5B,EAAShC,EAAaE,MAAM,yBACnCgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,IACJ,CAAC,MAAO+D,GACPC,QAAQC,IAAIF,EACb,GAqFS,oBAGA,eAACqP,GAAA,EAAD,CACEjI,MAAM,UACN2J,KAAK,KACLxO,QAzJWzF,UAEvB,GADA8Q,GAAW,GACM,YAAbipB,EAUF,OATA/4B,EACEhC,EAAaE,MACX,+DAGJgiB,YAAW,KACTlgB,EAAShC,EAAaG,SACtB2R,GAAW,EAAX,GACC,CAAC,MAGN,WACqBxN,EAAO/C,IAAP,kDAC0BwD,EAD1B,cACyC,KAEnD3D,KAAKsB,cAeD05B,EAdG,IAeX,IAAIC,SAAQC,GAAWpa,WAAWoa,EAASF,MAd9Cp6B,EAAShC,EAAaC,QAAQ,mBAC9B6R,GAAW,GACXspB,GAAU,IACLp5B,EAAShC,EAAaE,MAAM,yBACnCgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,IACJ,CAAC,MAAO+D,GACPC,QAAQC,IAAIF,GACZ4N,GAAW,EACZ,CAGH,IAAiBsqB,CAHd,EA4HWx3B,MAAO,CAAEyD,YAAa,IAJxB,UAKE4B,GAAY,cAACoB,GAAA,EAAD,CAASzG,MAAO,CAAEY,MAAO,SAAUC,OAAQ,SAAU4C,YAAY,KAL/E,uBAWJ,cAAC0M,GAAA,EAAD,CAAWnQ,MAAO,CAAEwL,UAAW,IAA/B,SACE,cAAC,KAAD,CACEjG,SAAS,OACTgB,UAAU,EACVf,QAASA,EACThJ,KAAMm6B,EACN/xB,UAAWA,EACX4B,iBACEiwB,EACE,cAAChwB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,4BAGJE,YAAY,sBACZV,WAAYC,KAAkB,CAC5BhB,YAAa,EACbC,iBAAiB,IAEnB8E,OAAQ6gB,kBAOrB,CC9ND,SAAS4M,GAAT,GAAuC,IAAnB,MAAEx0B,EAAF,MAAS3F,GAAS,EACpC,OACE,eAAC8H,EAAA,EAAD,CAAKvF,UAAU,WAAWC,MAAO,CAAE8F,QAAS,GAA5C,UACE,cAACiB,GAAA,EAAD,UACE,iCAAS5D,MAEX,cAAC4D,GAAA,EAAD,UAAMvJ,MAGX,CAED,SAASo6B,GAAT,GAA2C,IAAb,GAAEz3B,EAAK,GAAK,EACxC,MAAOgqB,EAAM0N,GAAWx5B,mBAAS,KAC1BqR,EAAWxC,GAAc7O,oBAAS,GAUzC,OATAO,qBAAU,KACRsO,GAAW,GACXxN,EAAO/C,IAAP,+BAAmCwD,IAChC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQ+5B,EAAQ14B,EAAI3C,KAAZ,IAEjB8R,SAAQ,IAAMpB,GAAW,IAJ5B,GAKC,IAGD,mCACIwC,GACA,iCACE,cAACjJ,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,eAG7B,gCACE,cAACpB,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,GAA5B,SACE,eAACtI,GAAA,EAAD,sBAAcojB,EAAK/lB,YAErB,cAACkB,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC,KAAD,CACExB,SAAS,OACTC,QAAS,CACP,CAAEC,UAAW,OAAQC,KAAM,OAAQwE,OAAQggB,0BAE7C1tB,KAAM2tB,EAAK/gB,KAAKC,IAAD,CAAUnH,KAAMmH,MAC/BnD,WAAYC,KAAkB,CAC5BhB,YAAa,EACbC,iBAAiB,IAEnB8E,OAAQ6gB,iBAQvB,CAED,MAAMjb,GAAa,IAA2B,IAA1B,KAAEC,EAAF,WAAQ+nB,GAAiB,EAC3C,MAAO9nB,EAAOC,GAAY5R,oBAAS,IAC5B2yB,EAAWC,GAAe5yB,oBAAS,GAO1C,OACE,qCACE,cAACoR,GAAD,CACE/I,MAAM,SACNgJ,UAAWooB,EACXj2B,QAAS,IAAMoO,GAAUD,GAH3B,oBAOA,eAAClM,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAMiM,GAAS,GAFzB,uCAMA,eAACE,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,qEAGA,cAACmR,GAAA,EAAD,UACE,eAACW,GAAA,EAAD,CACEkF,OAAK,EACLD,QAAM,EACN9W,MAAO,CAACwL,UAAU,IAHpB,UAKE,cAACwG,GAAA,EAAD,CAAOrX,KAAK,WAAWqc,QAASga,EAAW9e,SAAU,IAAI+e,GAAcD,KACvE,cAAClf,GAAA,EAAD,CAAOiF,OAAK,EAAZ,6CAOJ,eAAC3G,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC4O,GAAA,EAAD,CAAQjI,MAAM,SAAS2J,KAAK,KAAKxO,QAxCnB,KAEhBkO,GAAMA,EAAKihB,GACd/gB,GAAS,EAAT,EAqCK,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAACkL,GAAA,EAAD,CAAQ0B,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BAtCR,EA+CI8nB,GAAY,IAA2B,IAA1B,KAAEhoB,EAAF,WAAQ+nB,GAAiB,EAC1C,MAAOvB,EAAUyB,GAAa35B,oBAAS,GAOzC,OACE,qCACE,cAACoR,GAAD,CAASb,SAAO,EAACc,UAAWooB,EAAYj2B,QAAS,IAAIm2B,GAAWzB,GAAhE,0BACA,eAACzyB,GAAA,EAAD,CAAOC,OAAQwyB,EAAUvyB,OAAQ,IAAIg0B,GAAU,GAA/C,UACE,cAAC9nB,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAIg0B,GAAU,GAFxB,uCAMA,cAAC7nB,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,4EAGA,eAACqQ,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,cAAC4O,GAAA,EAAD,CAAQjI,MAAM,UAAU2J,KAAK,KAAKxO,QAnBpB,KAChBkO,GAAMA,IACVioB,GAAU,EAAV,EAiBM,sBAGA,cAACrpB,GAAA,EAAD,CAAQ0B,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAIm2B,GAAU,GAAjD,4BAjBR,ECwFeC,OAzNE/5B,IACf,MAAOqS,EAAWC,GAAgBnS,mBAAS,CACzC65B,WAAY,GACZC,YAAa,GACbC,aAAc,GACdC,OAAQ,GACRC,KAAM,GACNC,OAAQ,MAEJ,GAAEp4B,EAAF,KAAMxF,GAASkW,cACf5C,EAAUC,cACV9Q,EAAWsB,cACjBE,qBAAU,KACR4oB,GAAW,GACV,IAEH,MAAMA,EAAYprB,UAChB,IACE,IAAIqD,EAAO,CAAC,EAYZ,GAXU,YAAP9E,IACD8E,QAAa7D,EAAOe,IAAP,iDAC6B+Y,SAASvV,MAG3C,aAAPxF,IACD8E,QAAa7D,EAAOe,IAAP,2CACuB+Y,SAASvV,MAI3CV,EAAKjD,KAAKsB,OAAQ,CACpB,MAAMtB,EAAOiD,EAAKjD,KAAKqB,OACjB4pB,EAAQ,CACZyQ,WAAY17B,EAAKg8B,kBACjBL,YAAaj0B,KAAO1H,EAAKi8B,aAAej8B,EAAKk8B,YAAYr0B,OACvD,cAEF+zB,aAAc57B,EAAKm8B,cAAgB,UACnCN,OAAQ77B,EAAKo8B,SACbN,KAAM97B,EAAKq8B,cACXN,OAAQ/7B,EAAKs8B,MACbC,WAAY70B,KAAM,OAAC1H,QAAD,IAACA,OAAD,EAACA,EAAMk8B,YAAYr0B,OAAO,eAE9CmM,EAAaiX,EACd,CACF,CAAC,MAAOnoB,GACPC,QAAQC,IAAI,MAAOF,EACpB,GAoCG05B,EAAY,IAAgC,IAA7B9pB,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC/C+S,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,GAAlB,EAGF,OACE,8BACE,eAACnQ,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,UAQgB,WAANpF,EAAiB,UAAY,WARvC,cAUA,cAAC2K,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,eAACxB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAvDb/U,UACjByI,EAAEwM,iBACF,MAAM0G,EAAM,CACVkhB,cAAe1oB,EAAU+nB,KACzBY,SAAU3oB,EAAU8nB,OACpBG,kBAAmB9iB,SAASnF,EAAU2nB,YACtCO,YAAav0B,KAAOqM,EAAU4nB,YAAa,cAAc9zB,SACzDs0B,aAAcpoB,EAAU6nB,aACxBU,MAAOK,WAAW5oB,EAAUgoB,SAE9B,IACE,IAAI94B,EACM,YAAP9E,IACDod,EAAIhJ,UAAU2G,SAASvV,GACvBV,QAAa7D,EAAOa,KAAK,gCAAiCsb,IAElD,aAAPpd,IACDod,EAAIjC,WAAWJ,SAASvV,GACxBV,QAAa7D,EAAOa,KAAK,iCAAkCsb,IAEzDtY,EAAKjD,KAAKsB,QACZ0pB,IACApqB,EAAShC,EAAaC,QAAQ,yBACzB+B,EAAShC,EAAaE,MAAM,oBACpC,CAAC,MAAOgE,GACPC,QAAQC,IAAI,MAAOF,GACnBlC,EAAShC,EAAaE,MAAM,wBAC7B,CACDgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KAFH,EA2BY,UACE,cAACsW,GAAA,EAAD,UACE,cAAC,GAAD,MAEF,eAACA,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,aACH3C,MAAO+S,EAAUwoB,WACjBp+B,KAAK,OACLsiB,UAAQ,OAGZ,eAACpL,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,2CAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,aACH3C,MAAO+S,EAAU2nB,WACjBhmB,SAAU8mB,EACVr+B,KAAK,WAEP,cAACwX,GAAA,EAAD,mDAIF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,SAAX,mCACA,cAACC,GAAA,EAAD,CACE7R,GAAG,SACH3C,MAAO+S,EAAUgoB,OACjBrmB,SAAU8mB,EACVr+B,KAAK,WAEP,cAACwX,GAAA,EAAD,2CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAU4nB,YACjBjmB,SAAU8mB,EACVr+B,KAAK,SAEP,cAACwX,GAAA,EAAD,8BAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,eAAX,2BACA,eAACC,GAAA,EAAD,CACE7R,GAAG,eACH3C,MAAO+S,EAAU6nB,aACjBlmB,SAAU8mB,EACVr+B,KAAK,SAJP,UAME,wBAAQ6C,MAAO,MAAf,kBACA,wBAAQA,MAAO,UAAf,wBAGF,cAAC2U,GAAA,EAAD,+CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,SAAX,uBACA,cAACC,GAAA,EAAD,CACErX,KAAK,OACLwF,GAAG,SACH3C,MAAO+S,EAAU8nB,OACjBnmB,SAAU8mB,IAEZ,cAAC7mB,GAAA,EAAD,0CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,qBACA,cAACC,GAAA,EAAD,CACErX,KAAK,OACLwF,GAAG,OACH3C,MAAO+S,EAAU+nB,KACjBpmB,SAAU8mB,IAEZ,cAAC7mB,GAAA,EAAD,wCAGF,sBACEnS,MAAO,CACLwL,UAAW,GACXnI,QAAS,OACT+O,eAAgB,iBAJpB,UAOE,cAAC,GAAD,CACExD,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,IAAMoM,EAAQa,KAAR,2BAAiCnU,EAAjC,YAAyCwF,IAL1D,6BASA,cAAC,GAAD,CAAQJ,UAAU,aAAapF,KAAK,SAApC,oCAnHlB,ECjFF,MAAQiT,UAAF,IAAgBC,UAEhBiC,GAAa,IAAe,IAAd,KAAEC,GAAW,EAC/B,MAAOC,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAAC,GAAD,CAAQwD,QAAS,IAAMoO,GAAUD,GAAQtJ,MAAM,SAA/C,SACE,mBAAG3G,UAAU,uBAEf,eAAC+D,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAMiM,GAAS,GAFzB,+CAMA,cAACE,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,oFAGA,eAACqQ,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC,GAAD,CAAQ2G,MAAM,SAAS2J,KAAK,KAAKxO,QArBnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EAmBM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAAC,GAAD,CAAQ4M,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BApBR,EA6Ba,SAASmpB,KACtB,MAAO70B,EAASC,GAAcnG,mBAAS,KAChCgH,EAAS6H,GAAc7O,oBAAS,IAChCg7B,EAAUC,GAAej7B,mBAAS,CACvCk7B,KAAM,KACNC,MAAO,KACPC,UAAW,MAENC,EAASC,GAAct7B,oBAAS,GAEjCjB,EAAWsB,cACjBE,qBAAU,KACRg7B,GAAW,GACV,IAEH,MAAMA,EAAYx9B,UAChB8Q,GAAW,GACX,IACE,MAAMzN,QAAa7D,EAAOe,IAAI,yBAC1B8C,EAAKjD,KAAKsB,QAAU2B,EAAKjD,KAAKqB,QAAQ2G,EAAW/E,EAAKjD,KAAKqB,OAChE,CAAC,MAAOyB,GACPC,QAAQC,IAAI,MAAOF,EACpB,CACD4N,GAAW,EAAX,EAwDI2sB,EAAa,CAACxwB,EAAGuT,KACrB,MAAMpgB,EAAO,IAAK68B,GAClB78B,EAAK6M,GAAKuT,EACV0c,EAAY98B,EAAZ,EAGIgJ,EAAU,CACd,CACEC,UAAW,OACXC,KAAM,OACNC,MAAM,EACNC,YAAY,GAEd,CACEH,UAAW,QACXC,KAAM,QACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,EACZ4I,UAAW,CAACC,EAAM3J,IAAQ,qCAAQ2J,MAEpC,CACEhJ,UAAW,YACXC,KAAM,aACNC,MAAM,EACNI,QAAS,4BACTH,YAAY,GAEd,CACEF,KAAM,UACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,CAACC,EAAM3J,IAChB,+BACE,cAAC,GAAD,CAAYiL,KAAM,IAjDP3T,WACjB,WACqBR,EAAOk+B,OAAP,yCAAgD35B,KAC1D3D,KAAKsB,SACZ87B,IACAx8B,EAAShC,EAAaC,QAAQ,kBAC9BiiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MAEN,CAAC,MAAOD,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GAqC6By+B,CAAWj1B,EAAI2P,UAMzCzP,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAWX,EAAQH,QAErB,OACE,8BACE,eAAChE,EAAA,EAAD,CAAWC,OAAK,EAAhB,WACIq5B,GAAW,cAAC/pB,GAAD,IACb,cAACrK,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,KAAD,CACEwF,SAAS,YACT/I,KAAM+H,EACNiB,QAASA,EACTQ,QAAM,EAJR,SAMI9H,GACA,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAGG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,GAA5B,UACE,eAACtI,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CACLqD,QAAS,OACTkM,WAAY,UALhB,+BASE,cAAC,iCAAD,CACExP,UAAU,oCACNqG,OAGR,eAACW,GAAA,EAAD,CAAKhH,UAAU,6BAAf,UACE,cAACkP,GAAA,EAAD,CAAqBC,OAAQ,OAA7B,sBAGA,cAAC,GAAD,CACE/O,GAAG,OACHuG,MAAM,UACNkI,SAAO,EACP/M,QAAS,IAAM83B,GAAW,GAJ5B,eAQA,cAAC,GAAD,CACE55B,UAAU,wBACN7B,EAAMsR,oBAIhB,cAAC,KAAD,CACElJ,OAAK,EACLC,UAAU,EAEVC,iBACEnB,EACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,IAEN,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,UACE,cAACzE,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WAxDrC,UAkEX,eAACtC,GAAA,EAAD,CACEC,OAAQ21B,EACR11B,OAAQ,KACN21B,GAAW,GACXL,EAAY,CACVC,KAAM,KACNC,MAAO,KACPC,UAAW,IAHb,EAJJ,UAWE,cAACvpB,GAAA,EAAD,uBACA,cAACP,GAAD,IACA,eAACQ,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,UACE,eAAC8R,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,oBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,OACH3C,MAAK,OAAE67B,QAAF,IAAEA,OAAF,EAAEA,EAAUE,KACjBrnB,SAAWrN,GAAMg1B,EAAW,OAAQh1B,EAAEqK,OAAO1R,OAC7C7C,KAAK,cAGT,eAACkX,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,QAAX,qBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,QACH3C,MAAK,OAAE67B,QAAF,IAAEA,OAAF,EAAEA,EAAUG,MACjBtnB,SAAWrN,GAAMg1B,EAAW,QAASh1B,EAAEqK,OAAO1R,OAC9C7C,KAAK,cAGT,eAACkX,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,gBACH3C,MAAK,OAAE67B,QAAF,IAAEA,OAAF,EAAEA,EAAUI,UACjBvnB,SAAWrN,GAAMg1B,EAAW,YAAah1B,EAAEqK,OAAO1R,OAClD7C,KAAK,eAIX,eAACyV,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC,GAAD,CAAQ2G,MAAM,UAAU2J,KAAK,KAAKxO,QA/NtBzF,UACpB,IACE,MAAM,KAAEm9B,EAAF,UAAQE,EAAR,MAAmBD,GAAUH,EACnC,IAAKE,IAASE,IAAcD,EAK1B,OAJAp8B,EAAShC,EAAaE,MAAM,wBAC5BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MAGL,MAAMwc,EAAM,CACVqhB,KAAM1jB,SAAS6jB,GACfS,UAAWP,EACXX,MAAOK,WAAWK,WAED59B,EAAOa,KAAK,0BAA2Bsb,IACjDvb,KAAKsB,SACZ87B,IACAD,GAAW,GACXL,EAAY,CACVC,KAAM,KACNC,MAAO,KACPC,UAAW,KAEbr8B,EAAShC,EAAaC,QAAQ,mBAC9BiiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MAEN,CAAC,MAAO+D,GACPC,QAAQC,IAAI,MAAOF,GACnBlC,EAAShC,EAAaE,MAAM,yBAC5BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KACJ,GA4LO,UACE,mBAAGwE,UAAU,cAAcC,MAAO,CAAEyD,YAAa,KADnD,SAIA,cAAC,GAAD,CACE4M,KAAK,KACLzB,SAAO,EACP/M,QAAS,KACP83B,GAAW,GACXL,EAAY,CACVC,KAAM,KACNC,MAAO,KACPC,UAAW,IAHb,EALJ,8BAmBX,CClTD,MAAQ7rB,UAAF,IAAgBC,UAEhBiC,GAAa,IAAe,IAAd,KAAEC,GAAW,EAC/B,MAAOC,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAAC4Q,GAAA,EAAD,CAAqBC,OAAQ,SAA7B,oBACA,cAAC,GAAD,CACE/O,GAAG,SACH0B,QAAS,IAAMoO,GAAUD,GACzBK,KAAK,KACL3J,MAAM,UACNkI,SAAO,EALT,eASA,eAAC9K,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACViE,OAAQ,IAAMiM,GAAS,GAFzB,kDAMA,cAACE,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,wFAIA,eAACqQ,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC,GAAD,CAAQ2G,MAAM,SAAS2J,KAAK,KAAKxO,QA7BnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EA2BM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,YAGU,IACV,cAAC,GAAD,CAAQ4M,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BA5BR,ECsMaK,OAhOMpS,IACnB,MAAMsE,EAAI,IAAI2Z,MAEP5L,EAAWC,GAAgBnS,mBAAS,CACzC47B,YAAa/1B,KAAO1B,GAAG6B,OAAO,cAC9B61B,QAASh2B,KAAO,IAAIiY,KAAK3Z,EAAEgmB,QAAQhmB,EAAE0lB,UAAY,MAAM7jB,OAAO,cAC9Do1B,UAAW,EACXU,SAAU,EACV5B,OAAQ,KAEHgB,EAAMa,GAAW/7B,mBAAS,KAC1Bg8B,EAAOC,GAAWj8B,mBAAS,IAC3BgH,EAAS6H,GAAc7O,oBAAS,IAChCk8B,EAAiBC,GAAen8B,oBAAS,IAC1C,GAAE8B,EAAF,KAAMxF,GAASkW,cACfzT,EAAWsB,cAEjBE,qBAAU,KACRg7B,IACAa,GAAgB,GACf,CAACv8B,EAAM4S,UAEVlS,qBAAU,KACR2R,EAAU4pB,SAAWE,GAAS,EAC9B7pB,EAAaD,EAAb,GACC,CAAC8pB,IAEJz7B,qBAAU,KAAO,IAAD,EACd2R,EAAUgoB,QACR,UAAAgB,EAAKrvB,QAAQb,GAAMA,EAAE2wB,YAAczpB,EAAUkpB,YAAW,UAAxD,eAA4DX,QAAS,EACvEtoB,EAAa,IAAKD,GAAlB,GACC,CAACA,EAAUkpB,YAEd,MAAO1oB,EAAkBC,GAAuB3S,mBAAS,CACvD47B,aAAa,EACbC,SAAS,EACTT,WAAW,EACXU,UAAU,EACV5B,QAAQ,IAGJkC,EAAiBr+B,UACrB,IACE8Q,GAAW,GACX,MAAMzN,QAAa7D,EAAOe,IAAI,qBAAqB,YAAPhC,EAAmB,kBAAoB,mBAArD,KAA6EwF,GACpF,IAAD,EAAtB,GAAIV,EAAKjD,KAAKsB,OACZw8B,EAAO,UACL76B,EAAKjD,KAAKA,KAAK0N,QAAQb,GAA6B,cAAvBA,EAAE2mB,0BAD1B,aACL,EACI5rB,OAGT,CAAC,MAAO9E,GACPC,QAAQC,IAAI,MAAOF,EACpB,CACD4N,GAAW,EAAX,EAGI0sB,EAAYx9B,UAChB,IACE,MAAMqD,QAAa7D,EAAOe,IAAI,yBAC1B8C,EAAKjD,KAAKsB,QAAU2B,EAAKjD,KAAKqB,QAAQu8B,EAAQ36B,EAAKjD,KAAKqB,OAC7D,CAAC,MAAOyB,GACPC,QAAQC,IAAI,MAAOF,EACpB,GAuCG2R,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC3DuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAGF,OAAO1L,EACL,cAACoB,GAAA,EAAD,CACE4J,KAAK,KACLrQ,MAAO,CACL+e,SAAU,WACV2b,KAAM,MACNC,UAAW,sCAIf,eAACzpB,GAAA,EAAD,CAAMvP,KAAK,OAAO3B,MAAO,CAAE6O,SAAU,QAAUsC,SArD9B/U,UACjB,IACEyI,EAAEwM,iBACFmpB,GAAY,GACZ,MAAM,QAAEN,EAAF,UAAWT,EAAX,SAAsBU,EAAtB,OAAgC5B,GAAWhoB,EAC3CwH,EAAM,CACV+gB,MAAOK,WAAWZ,GAClBqC,UAAWnB,EACXoB,SAAUnlB,SAASykB,GACnBW,QAASZ,GAED,YAAPv/B,IAAkBod,EAAIhJ,UAAU2G,SAASvV,IAClC,aAAPxF,IAAmBod,EAAIjC,WAAWJ,SAASvV,WAC3BvE,EAAOa,KAAK,gCAAiCsb,IACvDvb,KAAKsB,QACZV,EAAShC,EAAaC,QAAQ,uBAC9BmV,EAAa,CACXypB,YAAa/1B,KAAO1B,GAAG6B,OAAO,cAC9B61B,QAASh2B,KAAO,IAAIiY,KAAK3Z,EAAEgmB,QAAQhmB,EAAE0lB,UAAY,MAAM7jB,OACrD,cAEFo1B,UAAW,EACXU,SAAU,EACV5B,OAAQ,KAELn7B,EAAShC,EAAaE,MAAM,sBACpC,CAAC,MAAOgE,GACPC,QAAQC,IAAI,MAAOF,GACnBlC,EAAShC,EAAaE,MAAM,wBAC7B,CACDk/B,GAAY,GACZld,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,CAAC,MAFJ,EAsBA,UACE,cAACsW,GAAA,EAAD,UACE,cAAC,GAAD,MAEF,eAACA,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAU0pB,YACjBhoB,QAASlB,EAAiBkpB,YAC1B/nB,SAAUjB,EACVtW,KAAK,OACLsiB,UAAQ,IAEV,cAAC9K,GAAA,EAAD,6CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,UAAX,sBACA,cAACC,GAAA,EAAD,CACE7R,GAAG,UACH3C,MAAO+S,EAAU2pB,QACjBjoB,QAASlB,EAAiBmpB,QAC1BhoB,SAAUjB,EACVtW,KAAK,SAEP,cAACwX,GAAA,EAAD,yCAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,qBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,YACH3C,MAAO+S,EAAUkpB,UACjBxnB,QAASlB,EAAiB0oB,UAC1BvnB,SAAUjB,EACVtW,KAAK,SALP,UAOE,wBAAQsiB,UAAQ,EAACzf,MAAO,EAAxB,oBAGC+7B,EAAKnwB,KAAKC,GACT,yBAA6B7L,MAAO6L,EAAE2wB,UAAtC,UACG3wB,EAAE+vB,KADL,IACY/vB,EAAE2wB,YADDtkB,SAASrM,EAAEoL,UAK5B,cAACtC,GAAA,EAAD,4CAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,WAAX,sBACA,cAACC,GAAA,EAAD,CACErX,KAAK,SACLwF,GAAG,WACH3C,MAAO+S,EAAU4pB,SACjBloB,QAASlB,EAAiBopB,SAC1BjoB,SAAUjB,IAEZ,cAACkB,GAAA,EAAD,uCAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,SAAX,wBACA,cAACC,GAAA,EAAD,CACErX,KAAK,SACLwF,GAAG,SACH3C,MAAO+S,EAAUgoB,OACjBtmB,QAASlB,EAAiBwnB,OAC1BrmB,SAAUjB,IAEZ,cAACkB,GAAA,EAAD,yCAEF,sBAAKnS,MAAO,CAAEqD,QAAS,OAAQ03B,cAAe,UAA9C,UACE,qBACE/6B,MAAO,CACLwL,UAAW,GACXnI,QAAS,OACT2Z,MAAO,SAJX,SAOE,gCACE,2DACA,qBAAKhd,MAAO,CAAEoS,eAAgB,OAA9B,SACE,uCACIsD,SAASnF,EAAU4pB,UAAYhB,WAAW5oB,EAAUgoB,kBAK9D,qBACEv4B,MAAO,CACLwL,UAAW,GACXnI,QAAS,OACT+O,eAAgB,iBAJpB,SAOE,eAAC,GAAD,CAAQrS,UAAU,aAAapF,KAAK,SAApC,UACG4/B,GACC,cAAC9zB,GAAA,EAAD,CAAS4J,KAAK,KAAKrQ,MAAO,CAAEyD,YAAa,SAF7C,qBAvGR,ECdaqP,OA7FK,KAClB,IAAI7E,EAAUC,cACd,MAAM,GAAE/N,EAAF,KAAMxF,GAASkW,eACd4E,EAAUO,GAAe3X,mBAAS,OAClCyS,EAASiC,GAAc1U,mBAAS,OAChCgH,EAAS6H,GAAc7O,oBAAS,GAEvCO,qBAAU,KACK,aAATjE,GAAqBggB,IACZ,YAAThgB,GAAoBqgC,GAAc,GACrC,CAAC76B,IAEJ,MAAM/C,EAAWsB,cAEXic,EAAuB,KAC3BzN,GAAW,GACXxN,EAAO/C,IAAP,6BAAiCwD,IAAM9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACzDA,EAAIrB,OACNkY,EAAY7W,EAAI3C,OAEhBY,EACEhC,EAAaE,MACK,gBAAhB6D,EAAIjE,QAA4B,qBAAuBiE,EAAIjE,UAG/D8a,EAAY,CAAC,GACbsH,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MACJ,IAEH2R,GAAW,EAAX,EAGI8tB,EAAe,KACnB9tB,GAAW,GACXO,GAAWtN,GACR9C,MAAMQ,IACDA,EACFkV,EAAWlV,GAEXT,EAAShC,EAAaE,MAAM,qBAC7B,IAEF+D,OAAOC,IACNC,QAAQC,IAAI,MAAOF,GACnBlC,EAAShC,EAAaE,MAAM,wBAA5B,IAEJgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,MACH2R,GAAW,EAAX,EAGF,OAAI7H,EAEA,cAACoB,GAAA,EAAD,CACkCzG,MAAO,CACrC+e,SAAU,WACV2b,KAAM,MACNC,UAAW,sCAOjB,mCACE,eAACv6B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,wBAQ+B,YAAPpF,EAAA,OAAmBmW,QAAnB,IAAmBA,OAAnB,EAAmBA,EAASL,WAA5B,OAAyCgF,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAU/E,aAE3E,cAACpL,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,gBAjBd,EC1EF,MAAQ9E,UAAF,IAAgBC,UA6KPotB,OA3KE,KACf,MAAO12B,EAASC,GAAcnG,mBAAS,KAChCgH,EAAS6H,GAAc7O,oBAAS,GAEvC,IAAI4P,EAAUC,cAEdtP,qBAAU,KACJyG,IAEJ6H,GAAW,GACXxN,EACG/C,IAAI,mBACJU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN0G,EAAWrF,EAAI3C,KAAK4M,KAAItE,IAAG,IACtBA,EACHqZ,KAAuB,OAAjBrZ,EAAIo2B,SAAoC,OAAhBp2B,EAAImR,QAAmB,QAAU,UAAY,eAF7E,IAKH3H,SAAQ,IAAMpB,GAAW,KAT5B,GAUC,IAGH,MAAMtI,EAAY,CAChB/C,QAAS,CAACgD,EAAGC,EAAKC,KAChBkJ,EAAQa,KAAR,8BAAoChK,EAAI2P,IAAxC,GAKEjP,EAAU,CAAC,CACfE,KAAM,OACNC,MAAM,EACNC,YAAY,EACZG,QAAS,4BACTF,YAAa,CAAEjF,MAAO,SACtB6E,UAAU,QACT,CACDA,UAAW,QACXC,KAAM,gBACNK,QAAS,4BACTF,YAAa,CAAEjF,MAAO,SACtB+E,MAAM,EACNC,YAAY,GACX,CACDF,KAAM,WACND,UAAW,qBACXM,QAAS,4BACTyI,UAAW,CAAC0N,EAAapX,IACvB,sCAA0B,OAAjBA,EAAIo2B,SAAoB,GAAKp2B,EAAIo2B,SAASxqB,UAAb,YAA8B5L,EAAIo2B,SAAS7lB,YAA3C,MAAtC,OAEF1P,MAAM,EACNC,YAAY,GACX,CACDF,KAAM,UACND,UAAW,qBACXM,QAAS,4BACTJ,MAAM,EACNC,YAAY,GACX,CACDH,UAAW,mBACXC,KAAM,cACNK,QAAS,4BACTyI,UAAW,CAAC0N,EAAapX,IACvB,qBAAK/E,UAAU,oBAAf,SACE,gCACE,uBAAOpF,KAAK,WAAWqc,QAASlS,EAAIq2B,iBAAkBle,UAAQ,SAInE,CACDxX,UAAW,iBACXC,KAAM,kBACNK,QAAS,4BACTyI,UAAW,CAAC0N,EAAapX,IACvB,qBAAK/E,UAAU,oBAAf,SACE,gCACE,uBAAOpF,KAAK,WAAWqc,QAASlS,EAAIs2B,eAAgBne,UAAQ,SAIjE,CACDxX,UAAW,oBACXC,KAAM,gBACNK,QAAS,8BAGLf,EAAoB,CACxBoK,QAAQ,EACRlK,UAAWX,EAAQH,QAGrB,OACE,eAAChE,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,mBACA,cAACuF,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,KAAD,CACEwF,SAAS,KACT/I,KAAM+H,EACNiB,QAASA,EACTQ,QAAM,EAJR,SAMG9H,GACC,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAII,QAAC,gBACCoB,EADD,qBAECC,GAFF,SAIE,gCACE,eAACf,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAIvP,UAAU,aAAtB,+BAEE,cAAC,iCAAD,CACEA,UAAU,oCACNqG,OAIR,eAACW,GAAA,EAAD,CAAKhH,UAAU,6BAAf,UACE,cAAC,GAAD,CACEA,UAAU,wBACN7B,EAAMsR,cAEZ,cAACb,GAAA,EAAD,CACE5O,UAAU,kBACV8B,QAAS,IAAMoM,EAAQa,KAAK,oBAF9B,gCAQJ,cAAC,KAAD,CACExI,OAAK,EACLC,UAAU,EACV3B,UAAWA,EACX4B,iBAAkBnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,UACtEC,qBAAqB,+CACrBC,YAAY,yBACR1I,EAAM2I,aACNR,EACJS,SAAU,KAIZ,eAACxB,EAAA,EAAD,CAAKvF,UAAU,OAAf,UACE,cAACgH,GAAA,EAAD,UACE,cAAC,6BAAD,IACMX,MAGR,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IACMX,WAhDd,YAhBhB,EC6Gai1B,OA5MK,KAAO,IAAD,MACxB,MAAOrgC,EAAMsgC,GAAWj9B,mBAAS,CAAC,GAElC,IAAI4P,EAAUC,cACd,MAAM9Q,EAAWsB,eAEX,GAAEyB,GAAO0Q,cAEfjS,qBAAU,KACR9B,EAAQqD,EAAR,GACC,CAACA,IAEJ,MAAMrD,EAAWqD,IACfT,EACG/C,IADH,4BAC4BwD,IACzB9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNw9B,EAAQn8B,EAAI3C,OAEZ8+B,EAAQ,CAAC,GACTl+B,EAAShC,EAAaE,MAAM6D,EAAIjE,UACjC,GARL,EAYIqgC,EAAevgC,GACdA,EAAKkgC,UAAalgC,EAAKib,QAEvBjb,EAAKkgC,SAEH,WADE,UAFA,iBAKJM,EAASC,GAAcp9B,oBAAS,IAChCq9B,EAAUC,GAAet9B,oBAAS,IAClCu9B,EAAcC,GAAmBx9B,oBAAS,GAkCjD,OACE,eAAC+B,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQa,KAAK,UAH9B,SAKE,mBAAG/O,UAAU,0BAEd/E,EAAK4V,SAER,eAACtL,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,qBAAKvP,UAAU,aAAf,4BAIF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAAC,GAAD,CACEvP,UAAU,sBACV8B,QAAS,IAAMoM,EAAQa,KAAR,2BAAiC3O,IAFlD,+BAQJ,cAACmF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,KAAKtP,MAAO,CAAEwL,UAAW,QAAjC,SACE,eAACiH,GAAA,EAAD,CAAMzS,MAAO,CAAE8F,QAAS,QAAxB,UACE,cAAC6J,GAAD,IACA,eAACrK,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,qBAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAA+B/E,EAAK4V,aAGxC,eAACtL,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,oBAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAA+Bw7B,EAAYvgC,UAGxB,YAAtBugC,EAAYvgC,IACX,eAACsK,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,4BAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SACI/E,EAAKib,QAAN,UAAqBjb,EAAKib,eAA1B,aAAqB,EAAcxF,WAAnB,UAMF,aAAtB8qB,EAAYvgC,IACX,eAACsK,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,6BAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,oBAAGvP,UAAU,iBAAb,oBACG/E,EAAKkgC,gBADR,aACG,EAAexqB,UADlB,cAC8B1V,EAAKkgC,gBADnC,aAC8B,EAAevqB,iBAMnD,eAACrL,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,kCAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAA+B/E,EAAKmgC,iBAAmB,MAAQ,YAGnE,eAAC71B,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,mCAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAA+B/E,EAAK8gC,yBAGxC,eAACx2B,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,gBAAb,8BAEF,cAACgH,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,mBAAGvP,UAAU,iBAAb,SAAgC/E,EAAKogC,eAAwB,SAAP,YAG1D,sBAAKr7B,UAAU,6BAAf,UACE,cAAC,GAAD,CACE6O,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,KAvIjB25B,IAEJC,GAAW,GACX/7B,EACGjD,KADH,4BAC6B0D,IAC1B9C,MAAK,IAAMP,EAAQqD,KACnBmO,SAAQ,IAAMmtB,GAAW,KA4HlB,EAME/rB,UAAY8rB,EANd,SAQGxgC,EAAKogC,eAAiB,SAAW,SAEpC,cAAC,GAAD,CACExsB,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,KAvIjB65B,IAEJC,GAAY,GACZj8B,EACGjD,KADH,wBACyB0D,IACtB9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACpBA,EAAIrB,QACLmQ,EAAQa,KAAK,SAAb,IAEHR,SAAQ,IAAMqtB,GAAY,KAyHnB,EAMEjsB,UAAYgsB,EANd,oBAUA,cAAC,GAAD,CACE9sB,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACLkH,QAAS,KApIjB+5B,IAEJC,GAAgB,GAChBn8B,EACGjD,KADH,4BAC6B0D,IAC1B9C,MAAK,IAAMP,EAAQqD,KACnBmO,SAAQ,IAAMutB,GAAgB,KAyHvB,EAMEnsB,UAAYksB,EANd,oCAtHZ,EC7DF,MAAML,GAAevgC,GACdA,EAAKkgC,UAAalgC,EAAKib,QAEvBjb,EAAKkgC,SAEH,WADE,UAFA,gBAuLIa,OAjLG79B,IAChB,MAAO89B,EAASC,GAAc59B,mBAAS,CAAE69B,MAAO,GAAI5nB,UAAW,GAAIa,SAAU,MAEtEgnB,EAAeC,GAAoB/9B,mBAAS,IAC5Cg+B,EAAYC,GAAiBj+B,oBAAS,GAE7CO,qBAAU,KACRc,EAAO/C,IAAI,6BACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNm+B,EAAW,IAAK98B,EAAI3C,MACrB,GAJL,GAMC,IAEHoC,qBAAU,KACR,GAAIV,EAAMmU,SAAU,CAAC,IAAD,IAClB,MAAM,KAAErX,GAASkD,EACjBsS,EAAa,CACX+rB,KAAMhB,GAAYvgC,GAClB+T,WAAW,UAAA/T,EAAKib,eAAL,eAAclH,YAAa,KACtC+G,YAAY,UAAA9a,EAAKkgC,gBAAL,eAAeplB,aAAc,KACzCR,UAAWta,EAAK4V,OAEnB,IACA,CAAC1S,EAAMlD,OACV,MAAOuV,EAAWC,GAAgBnS,mBAAS,CACzCk+B,KAAM,GACNxtB,UAAW,GACX+G,WAAY,GACZR,UAAW,GACX2C,SAAU,MAELlH,EAAkBC,GAAuB3S,mBAAS,CACvDk+B,MAAM,EACNxtB,WAAW,EACX+G,YAAY,EACZR,WAAW,EACX2C,UAAU,IAqCNhH,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC3DuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAGF,OACE,eAACG,GAAA,EAAD,CAAMqrB,KAAK,OAAOprB,SA1CAtM,IAClB,IAAIuM,EAAO,EACXvM,EAAEwM,iBACGK,KAAU8qB,QAAQjsB,EAAU+E,aAC/BvE,EAAgB,WAAgB,EAChCK,EAAO,GAELM,KAAUC,QAAQpB,EAAUgsB,QAC9BxrB,EAAgB,MAAW,EAC3BK,EAAO,IAEJlT,EAAMmU,UAAYX,KAAUC,QAAQpB,EAAU0H,YACjDlH,EAAgB,UAAe,EAC/BK,EAAO,GAEc,YAAnBb,EAAUgsB,MAAuBhsB,EAAUxB,YAC7CgC,EAAgB,WAAgB,EAChCK,EAAO,GAGc,aAAnBb,EAAUgsB,MAAwBhsB,EAAUuF,aAC9C1E,EAAO,EACPL,EAAgB,YAAiB,GAGnCC,EAAoB,IAAKD,IACZ,IAATK,IACFb,EAAUuF,WAAaJ,SAASnF,EAAUuF,aAAe,KACzDvF,EAAUxB,UAAY2G,SAASnF,EAAUxB,YAAc,KACvD7Q,EAAM0T,cAAcrB,GACrB,EAYD,UACE,cAACsB,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,kBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,OACH3C,MAAO+S,EAAUgsB,KACjBtqB,QAASlB,EAAiBwrB,KAC1BrqB,SAAUjB,EACVtW,KAAK,SALP,UAOE,4CACCqhC,EAAQE,MAAM9yB,KAAIuJ,GAAK,iCAASA,EAAE0kB,YAErC,cAACllB,GAAA,EAAD,2CAEkB,YAAnB5B,EAAUgsB,MACT,eAAC1qB,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,qBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,YACH3C,MAAO+S,EAAUxB,UACjBkD,QAASlB,EAAiBhC,UAC1BmD,SAAUjB,EACVtW,KAAK,SALP,UAOG,4CACAqhC,EAAQ7mB,SAAS/L,KAAIuJ,GAAK,wBAAQnV,MAAOmV,EAAE5D,UAAjB,SAA6B4D,EAAElC,kBAE5D,cAAC0B,GAAA,EAAD,2CAIgB,aAAnB5B,EAAUgsB,MAET,eAAC1qB,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,sBACA,eAACC,GAAA,EAAD,CACE7R,GAAG,aACH3C,MAAO+S,EAAUuF,WACjB7D,QAASlB,EAAiB+E,WAC1B5D,SAAUjB,EACVtW,KAAK,SALP,UAOG,4CACAqhC,EAAQ1nB,UAAUlL,KAAIuJ,GAAK,yBAAQnV,MAAOmV,EAAEmD,WAAjB,UAA8BnD,EAAEjC,UAAhC,IAA4CiC,EAAEhC,SAA9C,MAA2DgC,EAAE8pB,gBAE3F,cAACtqB,GAAA,EAAD,4CAGJ,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,YAAX,mBACA,cAACC,GAAA,EAAD,CACErX,KAAK,YACLwF,GAAG,YACH3C,MAAO+S,EAAU+E,UACjBrD,QAASlB,EAAiBuE,UAC1BpD,SAAUjB,IAEZ,cAACkB,GAAA,EAAD,gDAGAjU,EAAMmU,SAAW,KACf,eAACR,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,WAAX,sBACA,sBAAK/R,MAAO,CAACqD,QAAQ,OAAQ03B,cAAe,OAA5C,UACE,cAAC/oB,GAAA,EAAD,CACA7R,GAAG,WACH3C,MAAO+S,EAAU0H,SACjBhG,QAASlB,EAAiBkH,SAC1B/F,SAAUjB,EACVtW,KAAM0hC,EAAa,OAAS,aAE9B,cAAC,GAAD,CAAQr8B,MAAO,CAACwD,WAAW,IAAKoL,SAAO,EAAC/M,QAAS,IAAIy6B,GAAeD,GAApE,SAAiF,mBAAGt8B,UAAWs8B,EAAa,YAAc,yBAG1H,eAAClqB,GAAA,EAAD,4DAA6DgqB,QAGnE,cAAC72B,EAAA,EAAD,UACE,cAAC,GAAD,CACEvF,UAAU,uBACVpF,KAAK,SACL+U,UAAWxR,EAAMmH,QAHnB,SAKGnH,EAAMmU,SAAW,OAAS,eAxFnC,ECrCaqqB,OAvDC,KACd,IAAIzuB,EAAUC,cACd,MAAO7I,EAAS6H,GAAc7O,oBAAS,GAEjCjB,EAAWsB,cAwBjB,OACE,mCACE,eAAC0B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACEC,SAAO,EACP7O,UAAU,uBACV8B,QAAS,IAAIoM,EAAQa,KAAK,UAH5B,SAKE,mBAAG/O,UAAU,0BANjB,cAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CAAUrN,QAASA,EAASuM,cAvCxBpV,IAEZ6I,IAEJ6H,GAAW,GACW,OAAnB1Q,EAAKuS,kBACCvS,EAAKuS,UACS,OAApBvS,EAAKsZ,mBACCtZ,EAAKsZ,WACdpW,EACGjD,KADH,gBACyBD,GACtBa,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQa,KAAK,uBAAyB3P,EAAI3C,KAAKiY,IAE/CrX,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAEFoT,SAAQ,IAAMpB,GAAW,KAT5B,gBAaF,EC6CayvB,OAxEE,KACf,IAAI1uB,EAAUC,cACd,MAAM,GAAE/N,GAAO0Q,eACR7V,EAAMsgC,GAAWj9B,mBAAS,CAAC,IAC3BgH,EAAS6H,GAAc7O,oBAAS,GAEjCjB,EAAWsB,cAEjBE,qBAAU,KACR9B,EAAQqD,EAAR,GACC,CAACA,IAEJ,MAAMrD,EAAWqD,IACfT,EACG/C,IADH,4BAC4BwD,IACzB9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNw9B,EAAQn8B,EAAI3C,OAEZ8+B,EAAQ,CAAC,GACTl+B,EAAShC,EAAaE,MAAM6D,EAAIjE,UACjC,GARL,EAgCF,OACE,mCACE,eAACkF,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQa,KAAR,8BAAoC3O,IAHrD,SAKE,mBAAGJ,UAAU,0BANjB,eAUA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CAAUrN,QAASA,EAASrK,KAAMA,EAAMqX,UAAU,EAAMT,cAtCpDpV,IAEZ6I,IAEJ6H,GAAW,GACW,OAAnB1Q,EAAKuS,kBACCvS,EAAKuS,UACS,OAApBvS,EAAKsZ,mBACCtZ,EAAKsZ,WACdpW,EACGjD,KADH,sBACuB0D,GAAM3D,GAC1Ba,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQa,KAAK,uBAAyB3O,GAEtC/C,EAAShC,EAAaE,MAAM6D,EAAIjE,SACjC,IAEFoT,SAAQ,IAAMpB,GAAW,KAT5B,gBAYF,E,WCnDa,SAAS0vB,GAAO1+B,GAE7B,MAAO2+B,EAAUC,GAAez+B,mBAAS,CAAE1D,KAAM,QAASqI,QAAS,MAC5DwG,EAASuzB,GAAc1+B,oBAAS,IAEhCmyB,EAASwM,GAAc3+B,mBAAS,IAEjCjB,EAAWsB,cAEjBE,qBAAU,KACR8uB,GAAc,GACb,IAEH,MAAMA,EAAe,KACnBhuB,EAAO/C,IAAI,2CACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQk/B,EAAW79B,EAAItB,OAAf,GAFpB,EAOIo/B,EAAc,CAACx/B,EAAKD,KACxBs/B,EAAY,IAAKD,EAAU,CAACp/B,GAAMD,GAAlC,EA6CF,OACE,eAAC4C,EAAA,EAAD,CAAWL,UAAU,iBAAiBC,MAAO,CAAE8F,QAAS,IAAxD,UACE,cAAC+L,GAAA,EAAD,UACE,cAAClC,GAAD,MAEF,eAACkC,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,qBAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,OACHxF,KAAK,OACLuX,SAAWrN,GAAMo4B,EAAY,OAAQp4B,EAAEqK,OAAO8nB,MAAM,SAGxD,eAACnlB,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,UAAX,qBAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,UACHxF,KAAK,OACL6C,MAAOq/B,EAAS75B,QAChBkP,SAAWrN,GAAMo4B,EAAY,UAAWp4B,EAAEqK,OAAO1R,YAGrD,eAACqU,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,OAAX,qBAGA,cAACC,GAAA,EAAD,CACE7R,GAAG,OACHxF,KAAK,SACL6C,MAAOq/B,EAASliC,KAChBuX,SAAWrN,GAAMo4B,EAAY,OAAQp4B,EAAEqK,OAAO1R,OAJhD,SAMGgzB,EAAQpnB,KAAIC,GAAK,wBAAQ7L,MAAO6L,EAAEolB,QAAjB,SAA2BplB,EAAEolB,iBAGnD,cAAC5c,GAAA,EAAD,UACE,cAAC,GAAD,CACEhQ,QAnFYgD,IAIlB,GAHAA,EAAEwM,iBACFjU,EAAShC,EAAaG,SAElBiO,EACF,OAEF,IAAKkI,KAAUwrB,SAASL,EAAS75B,SAE/B,YADA5F,EAAShC,EAAaE,MAAM,oBAG9B,GAAIoW,KAAUC,QAAQkrB,EAASliC,MAE7B,YADAyC,EAAShC,EAAaE,MAAM,iBAG9B,IAAKuhC,EAASM,KAEZ,YADA//B,EAAShC,EAAaE,MAAM,sBAI9ByhC,GAAW,GACX,MAAMvgC,EAAO,IAAI4iB,SACjB5iB,EAAK4gC,OAAO,OAAQP,EAASM,MAC7B3gC,EAAK4gC,OAAO,UAAWP,EAAS75B,SAChCxG,EAAK4gC,OAAO,cAAeP,EAASliC,MAEpC+E,EACGjD,KAAK,yBAA0BD,EAAM,CACpC4kB,QAAS,CACP,eAAgB,yBAGnB/jB,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNI,EAAMihB,SAGN/hB,EAAShC,EAAaE,MAAM6D,EAAIjE,SAAhC,IAEHoT,SAAQ,IAAMyuB,GAAW,IAb5B,EA0DMrtB,UAAWlG,EACX9C,MAAM,UAHR,wBAUP,C,cClHc,SAAS+nB,GAAT,GAAqC,IAApB,KAAEpjB,EAAF,QAAQgyB,GAAW,EACjD,MAAOv4B,EAAKw4B,GAAUj/B,mBAAS,KACxBgH,EAAS6H,GAAc7O,oBAAS,IAEhCqD,EAAM67B,GAAWl/B,mBAAS,KAC1Bm/B,EAAMC,GAAWp/B,mBAAS,OAC1Bq/B,EAAOC,GAAUt/B,oBAAS,GAEjCO,qBAAU,KACR8uB,GAAc,GACb,IAEH,MAAMA,EAAe,KACnBxgB,GAAW,GACXxN,EAAO/C,IAAI,2CACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQw/B,EAAOn5B,IAAE0pB,QAAQ1uB,EAAItB,OAAQ,WAAY,QAAzC,IAEjByQ,SAAQ,IAAMpB,GAAW,IAJ5B,EA6BF,OACE,8BACE,eAACpJ,GAAA,EAAD,CAAOC,OAAQsH,EAAMrH,OAAQq5B,EAA7B,UACE,cAACntB,GAAA,EAAD,CAAalQ,MAAO,CAAE6L,cAAe,GAAK7H,OAAQq5B,EAAlD,8BACA,eAACltB,GAAA,EAAD,CAAWnQ,MAAO,CAAE8F,QAAS,IAA7B,UACE,eAAC83B,GAAA,EAAD,WACE,gCACE,+BACE,8CACA,0CACA,8CAGJ,gCACG94B,EAAIsE,KAAKC,GACR,+BACE,6BAAKA,EAAEolB,UACP,6BAAKplB,EAAEw0B,WACP,6BACc,WAAZx0B,EAAEolB,SACF,cAAC9f,GAAA,EAAD,CACEjI,MAAM,SACNuW,SAAU5X,EACVuJ,SAAO,EACPyB,KAAK,KACLxO,QAAS,IApCP,KAA2B,IAA1B,iBAAEi8B,GAAuB,EAC9C5wB,GAAW,GACXxN,EAAOjD,KACL,kDAAoDqhC,GAEnDzgC,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQ4vB,GAAc,IAE/Bpf,SAAQ,IAAMpB,GAAW,IAN5B,EAkCiC6wB,CAAc10B,GAL/B,SAOE,mBAAG2F,MAAM,+BAQpB3J,EACC,sBAAMtF,UAAU,qCAEhB,sBAAKC,MAAO,CAAEqD,QAAS,OAAQ0Z,SAAU,OAAQ3K,eAAgB,aAAc7C,WAAY,SAAUzJ,QAAS,IAA9G,UACE,cAAC6I,GAAA,EAAD,CACE3O,MAAO,CAAE8F,QAAS,IAClB8I,SAAO,EACPlI,MAAM,UACN7E,QAAS,IAAM87B,GAAQD,GAJzB,SAMGA,EAAQ,mBAAG1uB,MAAM,iBAAoB,mBAAGA,MAAM,kBAEhD0uB,GAAS,qCACR,cAAC1rB,GAAA,EAAD,CACE0K,YAAY,eACZ/hB,KAAK,OACL6C,MAAOkE,EACP1B,MAAO,CAAEY,MAAO,IAAK6C,YAAa,IAClCyO,SAAWrN,GAAM04B,EAAQ14B,EAAEqK,OAAO1R,SAEpC,cAACwU,GAAA,EAAD,CACE0K,YAAY,WACZlf,MAAOggC,EACP7iC,KAAK,SACL6iB,IAAK,EACLtL,SAAWrN,GAAM44B,EAAQ54B,EAAEqK,OAAO1R,SAEpC,cAACmR,GAAA,EAAD,CACE3O,MAAO,CAAE8F,QAAS,GAAItC,WAAY,MAClCkD,MAAM,UACNuW,UAAWvb,IAAS87B,GAAQ14B,EAAIsE,KAAIuJ,GAAC,UAAOA,EAAEkrB,YAAYriB,SAASgiB,GACnE37B,QAxFG,KACjBqL,GAAW,GACXxN,EAAOjD,KAAK,4CAA6C,CAAEgyB,QAAS/sB,EAAMm8B,SAAUnoB,SAAS8nB,EAAM,MAChGngC,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QAAQ4vB,GAAc,IAE/Bpf,SAAQ,IAAMpB,GAAW,KAC5BqwB,EAAQ,IACRE,EAAQ,KAAR,EA4EY,SAME,mBAAGzuB,MAAM,+BAS1B,CCxHc,SAASgvB,GAAT,GAAuD,IAAhC,KAAE3yB,EAAF,QAAQgyB,EAAR,WAAiB5d,GAAc,EACnE,MAAO3a,EAAKw4B,GAAUj/B,mBAAS,KACxBmyB,EAASwM,GAAa3+B,mBAAS,IAEtCO,qBAAU,KACLyM,GACDqiB,GACD,GACA,CAACriB,IAEJ,MAAMqiB,EAAe,KACnBhuB,EAAO/C,IAAI,2CAA2CU,MACpD,IAAoB,IAAjBb,KAAM2C,GAAU,EACbA,EAAIrB,QAAQw/B,EAAOn5B,IAAE85B,OAAO9+B,EAAItB,OAAO,YAA3B,GAFpB,EAcF,OACE,8BACE,eAACiG,GAAA,EAAD,CAAOC,OAAQsH,EAAMrH,OAAQq5B,EAA7B,UACE,cAACntB,GAAA,EAAD,CAAalM,OAAQq5B,EAArB,4BACA,eAACnsB,GAAA,EAAD,CAAM4F,QAAM,EAAC9W,MAAO,CAAC8F,QAAQ,GAAItC,WAAW,IAA5C,UACE,eAACqO,GAAA,EAAD,CAAW9R,UAAU,uBAArB,UACE,cAAC+R,GAAA,EAAD,CAAOC,IAAI,gBAAgBhS,UAAU,UAArC,4BAGA,cAACiS,GAAA,EAAD,CAAOxU,MAAOgzB,EAASte,SAAWrN,GAAIm4B,EAAWn4B,EAAEqK,OAAO1R,OAAQwC,MAAO,CAACY,MAAM,KAAMjG,KAAK,SAAS+G,KAAK,SAASvB,GAAG,gBAArH,SACG2E,EAAIsE,KAAKC,GACR,wBAAQ4T,UAAW5R,GAAMA,EAAK8S,OAAO9U,EAAEolB,QAAvC,SAAiDplB,EAAEolB,iBAIzD,cAAC9f,GAAA,EAAD,CAAQC,SAAO,EAAClI,MAAM,UAAUuW,UAAWuT,EAAS3uB,QAtBxC,KACfwJ,EAAKoJ,IAAM+b,IACZ/Q,EAAWpU,EAAKoJ,GAAI+b,GACpB6M,IACD,EAkBK,SAA0E,mBAAGruB,MAAM,yBAK5F,CC9CD,MAAMc,GAAa,IAAe,IAAd,KAAEC,GAAW,EAC/B,MAAOC,EAAOC,GAAY5R,oBAAS,GAOnC,OACE,qCACE,cAACsQ,GAAA,EAAD,CACEjI,MAAM,SACNkI,SAAO,EACP5O,MAAO,CAAEwD,WAAY,GACrB3B,QAAS,IAAMoO,GAAUD,GACzBK,KAAK,KALP,oBASA,eAACvM,GAAA,EAAD,CAAOC,OAAQiM,EAAOhM,OAAQ,IAAMiM,GAAS,GAA7C,UACE,cAACC,GAAA,EAAD,CACEnQ,UAAU,uBACVC,MAAO,CAAE6L,cAAe,GAF1B,+CAMA,eAACuE,GAAA,EAAD,CAAarQ,UAAU,uBAAuBC,MAAO,CAAEiE,WAAY,GAAnE,UACE,eAAC0K,GAAA,EAAD,CAAQjI,MAAM,SAAS2J,KAAK,KAAKxO,QAxBnB,KAChBkO,GAAMA,IACVE,GAAS,EAAT,EAsBM,UACE,mBAAGlQ,UAAU,mBAAmBC,MAAO,CAAEyD,YAAa,KADxD,cAGU,IACV,cAACkL,GAAA,EAAD,CAAQ0B,KAAK,KAAKzB,SAAO,EAAC/M,QAAS,IAAMoO,GAAS,GAAlD,4BAvBR,EAqIa4P,OArGf,YAAmE,IAAjD,KAAErjB,EAAF,MAAQ2L,EAAQ,MAAhB,KAAuBkD,EAAvB,QAA6BxH,EAA7B,OAAsCic,GAAU,EAChE,MAAO5d,EAAMg8B,GAAW7/B,mBAAS,KAC1BoiB,EAAQC,GAAariB,oBAAS,GAErCO,qBAAU,KACRs/B,EAAQ1hC,EAAR,GACC,CAAC6O,IAEJ,MAAMoU,EAAarjB,UACjB,GAAK8F,EAAL,CACA,IACEwe,GAAU,SACJZ,EAAO3X,EAAO,MAAOjG,GAC3Bof,GACD,CAAC,MAAOhmB,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACDolB,GAAU,EARO,CAQjB,EAYIY,EAAW,KACf4c,EAAQ,IACJr6B,GAASA,GAAS,EAGxB,OACE,gCACE,eAAC6d,GAAA,EAAD,CAAY1hB,MAAO,CAAEwL,UAAW,EAAG6D,aAAc,IAAjD,UACE,cAAC2C,GAAA,EAAD,CACE0K,YAAY,WACZlf,MAAO0E,EACPgQ,SAAWrN,GAAMq5B,EAAQr5B,EAAEqK,OAAO1R,OAClCwC,MAAO,CAAE2W,aAAc,EAAGoL,YAAa,OAGvCvlB,GACA,eAACmS,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwD,WAAY,IACrB3B,QAAS4d,EAHX,UAKGgB,GACC,sBACEzgB,MAAO,CAAEyD,YAAa,IACtB1D,UAAU,qCARhB,YAgBHvD,GACC,sBACEwD,MAAO,CACLqD,QAAS,OACT+O,eAAgB,gBAChB5G,UAAW,IAJf,UAOE,cAAC,GAAD,CAAYuE,KAjDC3T,iBAAwB,2CAAZI,EAAKiY,GACpC,IACEqL,EAAO3X,EAAO,SACf,CAAC,MAAO7M,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACF,IA4CO,sBAAK0E,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAACsL,GAAA,EAAD,CACEjI,MAAM,YACNkI,SAAO,EACP5O,MAAO,CAAEwD,WAAY,GACrB3B,QAASyf,EACTjR,KAAK,KALP,oBASA,eAAC1B,GAAA,EAAD,CACEjI,MAAM,UACN1G,MAAO,CAAEwD,WAAY,GACrB3B,QAAS4d,EACTpP,KAAK,KAJP,UAMGoQ,GACC,sBACEzgB,MAAO,CAAEyD,YAAa,IACtB1D,UAAU,qCAThB,oBAmBX,ECrID,MAAM0iB,GAAW,IAA8B,IAA7B,KAAEjmB,EAAF,OAAQsjB,EAAR,MAAgB3X,GAAY,EAC5C,MAAOkD,EAAMqX,GAAWrkB,oBAAS,GACjC,OACE,eAACskB,GAAA,EAAD,WACE,cAACT,GAAA,EAAD,CAAUne,OAAQsH,EAAlB,SACE,cAAC,GAAD,CACElD,MAAOA,EACP3L,KAAMA,EACN6O,KAAMA,EACNxH,QAAS,IAAM6e,GAAQ,GACvB5C,OAAQA,OAGVzU,GACA,sBACErL,MAAO,CACLqD,QAAS,OACT+O,eAAgB,gBAChB7C,WAAY,UAJhB,UAOG/S,EACD,cAACmS,GAAA,EAAD,CACE9M,QAAS,IAAM6gB,GAASrX,GACxBgF,KAAK,KACLzB,SAAO,EACPlI,MAAM,YAJR,SAME,mBAAGsI,MAAM,sBA1BnB,EA4HamvB,IC5FXC,GAAS,CACX,CACEl8B,KAAM,SACNm8B,UAAWjoB,GACX3T,OAAQ,SAEV,CACEP,KAAM,eACNm8B,UAAWC,GACX77B,OAAQ,SAEV,CACEP,KAAM,SACNm8B,UAAW7mB,GACX/U,OAAQ,SAIV,CACEP,KAAM,aACNm8B,UAAW3xB,GACXjK,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAE,UAIX,CACEh6B,KAAM,aACNm8B,UAAWvwB,GACXrL,OAAQ,SAER87B,OAAQ,WAERrC,MAAO,CAAC,UAEV,CACEh6B,KAAM,6BACNm8B,UAAWvrB,GACXrQ,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAEV,CACEh6B,KAAM,wBACNm8B,UAAW7rB,GACX/P,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAGV,CACEh6B,KAAM,4BACNm8B,UAAW9qB,GACX9Q,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAGV,CACEh6B,KAAM,6BACNm8B,UAAWlmB,GACX1V,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAEV,CACEh6B,KAAM,+BACNm8B,UAAWG,GACX/7B,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAGV,CACEh6B,KAAM,qBACNm8B,UAAWpG,GACXx1B,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAEV,CACEh6B,KAAM,6BACNm8B,UbvDW,WACb,MAAO95B,EAASC,GAAcnG,mBAAS,KAChCgH,EAAS6H,GAAc7O,oBAAS,IAChCogC,EAAUC,GAAergC,oBAAS,IAClCsgC,EAAUC,GAAevgC,oBAAS,IAClCwgC,EAAaC,GAAkBzgC,mBAAS,OACxC0gC,EAAWC,GAAgB3gC,mBAAS,OACpC4gC,EAAWC,GAAgB7gC,oBAAS,GACrC4P,EAAUC,eACV,GAAE/N,EAAF,KAAMxF,GAASkW,cACfzT,EAAWsB,cAEjBE,qBAAU,KACRugC,GAAc,GACb,CAACh/B,IAEJ,MAAMg/B,EAAe/iC,UACnB8Q,GAAW,GACX,IACE,MAAMzN,QAAa7D,EAAOe,IAAP,sCAET,GAANwD,EAAA,WACiB,YAATxF,EAAqB,YAAc,aAD3C,YAC2D+a,SACrDvV,IAEF,KAGJV,EAAKjD,KAAKsB,QAAU2B,EAAKjD,KAAKqB,QAAQ2G,EAAW/E,EAAKjD,KAAKqB,OAChE,CAAC,MAAOyB,GACPC,QAAQC,IAAI,MAAOF,EACpB,CACD4N,GAAW,EAAX,EAgDI1H,EAAU,CACd,CACEC,UAAW,gBACXC,KAAM,UACNE,YAAY,GAEd,CACEH,UAAW,cACXC,KAAM,eACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,CAACC,EAAM3J,IAChB,+BAAOZ,KAAOuK,GAAMpK,OAAO,iBAG/B,CACEoB,UAAW,UACXC,KAAM,WACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,CAACC,EAAM3J,IAChB,+BAAOZ,KAAOuK,GAAMpK,OAAO,iBAG/B,CACEqB,KAAM,UACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,SAAUC,EAAM3J,GAAM,IAAD,gBAC9B,IAAIs6B,EAAW,YAKf,OAJIt6B,EAAIiK,WAAJ,UAAiBjK,EAAImR,eAArB,OAAiB,EAAavF,WAA9B,UAA2C5L,EAAImR,eAA/C,OAA2C,EAAatF,WAC1DyuB,GAAW,UAAAt6B,EAAImR,eAAJ,eAAavF,WAAY,KAAzB,UAA+B5L,EAAImR,eAAnC,aAA+B,EAAatF,WACrD7L,EAAIgR,YAAJ,UAAkBhR,EAAIo2B,gBAAtB,OAAkB,EAAcxqB,WAAhC,UAA6C5L,EAAIo2B,gBAAjD,OAA6C,EAAcvqB,WAC7DyuB,GAAW,UAAAt6B,EAAIo2B,gBAAJ,eAAcxqB,WAAY,KAA1B,UAAgC5L,EAAIo2B,gBAApC,aAAgC,EAAcvqB,WACpD,+BAAOyuB,GACf,GAEH,CACE15B,KAAM,YACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,SAAUC,EAAM3J,GACzB,IAAIs6B,EAAc,OAAHt6B,QAAG,IAAHA,KAAKgR,WAAa,WAAa,UAC9C,OAAO,+BAAOspB,GACf,GAEH,CACE35B,UAAW,YACXC,KAAM,WACNK,QAAS,4BACTH,YAAY,GAEd,CACEH,UAAW,SACXC,KAAM,SACNK,QAAS,4BACTH,YAAY,GAEd,CACEH,UAAW,gBACXC,KAAM,SACNK,QAAS,4BACTH,YAAY,EACZ4I,UAAW,CAACC,EAAM3J,IAChB,sBAAM9E,MAAO,CAAE0G,MAAgB,WAAT+H,EAAoB,UAAY,WAAtD,SACGA,KAIP,CACE/I,KAAM,UACNK,QAAS,4BACTH,YAAY,EACZC,YAAa,CAAEjF,MAAO,SACtB4N,UAAW,CAACC,EAAM3J,IAChB,sBAAK9E,MAAO,CAAEqD,QAAS,QAAvB,UACwB,QAArByB,EAAIu6B,eACH,sBAAKr/B,MAAO,CAAEqD,QAAS,OAAQI,YAAa,QAA5C,UACE,cAACwL,GAAA,EAAD,CAAqBC,OAAQ,aAA7B,0BAGA,cAAC,GAAD,CACE/O,GAAG,aACHkQ,KAAK,KACL3J,MAAM,UACNkI,SAAO,EACP/M,QAAS,KACP68B,GAAY,GACZM,EAAal6B,EAAI2P,GAAjB,EAPJ,SAUE,mBAAGzF,MAAM,wBAEX,cAAC,GAAD,CAAYe,KAAM,IAjHT3T,WACnB,IACE8iC,GAAa,UACMtjC,EAAOe,IAAP,gEACiCgW,QADjC,IACiCA,OADjC,EACiCA,EAAG2sB,iBAE9C9iC,KAAKsB,QACZqhC,IACA/hC,EAAShC,EAAaC,QAAQ,2BACzB+B,EAAShC,EAAaE,MAAM,wBACpC,CAAC,MAAOA,GACPiE,QAAQC,IAAI,QAASlE,GACrB8B,EAAShC,EAAaE,MAAM,wBAC7B,CACD4jC,GAAa,GACb5hB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KAFH,EAkGkCgkC,CAAaz6B,SAGrC,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAK06B,iBACJ,sBAAKx/B,MAAO,CAAEyD,YAAa,QAA3B,UACE,cAACwL,GAAA,EAAD,CAAqBC,OAAQ,SAA7B,kCAGA,cAAC,GAAD,CACE/O,GAAG,SACHkQ,KAAK,KACL3J,MAAM,UACNkI,SAAO,EACP/M,QAAS,IACPuJ,OAAOC,KAAP,4DACgDvG,QADhD,IACgDA,OADhD,EACgDA,EAAK06B,iBAPzD,SAWE,mBAAGxwB,MAAM,4BAIX,OAAHlK,QAAG,IAAHA,OAAA,EAAAA,EAAKw6B,gBACJ,gCACE,cAACrwB,GAAA,EAAD,CAAqBC,OAAQ,cAA7B,gCAGA,cAAC,GAAD,CACE/O,GAAG,cACHkQ,KAAK,KACL3J,MAAM,UACNkI,SAAO,EACP/M,QAAS,IACPuJ,OAAOC,KAAP,4EACgEvG,QADhE,IACgEA,OADhE,EACgEA,EAAKw6B,gBAPzE,SAWE,mBAAGtwB,MAAM,iCASjBhK,EAAoB,CACxBoK,QAAQ,EACRnK,kBAAkB,EAClBC,UAAWX,EAAQH,QAErB,OACE,gCACG,IACD,eAAChE,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC,GAAD,CACEA,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,oBAUA,cAACO,EAAA,EAAD,UACE,gCAAQ,eAERq+B,GAAY,cAAChvB,GAAD,IACd,cAACrK,EAAA,EAAD,UACE,qBAAKvF,UAAU,MAAf,SACE,cAAC,KAAD,CACEwF,SAAS,YACT/I,KAAM+H,EACNiB,QAASA,EACTQ,QAAM,EAJR,SAMI9H,GACA,cAAC,sBAAD,CACEgI,WAAYC,KAAkBnB,GADhC,SAGG,QAAC,gBAAEoB,EAAF,qBAAmBC,GAApB,SACC,gCACE,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEqP,aAAc,GAA5B,UACE,eAACtI,GAAA,EAAD,CACEuI,GAAG,IACHvP,UAAU,aACVC,MAAO,CACLqD,QAAS,OACTkM,WAAY,UALhB,+BASE,cAAC,iCAAD,CACExP,UAAU,oCACNqG,OAGR,eAACW,GAAA,EAAD,CAAKhH,UAAU,6BAAf,UACE,cAACkP,GAAA,EAAD,CAAqBC,OAAQ,OAA7B,6BAGA,eAAC,GAAD,CACE/O,GAAG,OACHuG,MAAM,UACNkI,SAAO,EACP/M,QAAS,KACP+8B,GAAY,EAAZ,EALJ,UAQE,mBAAG5vB,MAAM,6BARX,YAUA,cAAC,GAAD,CACEjP,UAAU,wBACN7B,EAAMsR,oBAIhB,cAAC,KAAD,CACElJ,OAAK,EACLC,UAAU,EAEVC,iBACEnB,EACE,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,UAGJC,qBAAqB,qBACrBC,YAAY,yBACR1I,EAAM2I,aACNR,IAEN,eAACf,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,UACE,cAACzE,GAAA,EAAD,UACE,cAAC,6BAAD,IAA+BX,MAEjC,cAACW,GAAA,EAAD,UACE,cAAC,4BAAD,IAA8BX,WA1DrC,UAoEX,eAACtC,GAAA,EAAD,CACEC,OAAQ46B,EACR3+B,MAAO,CAAE+c,SAAU,OACnB/Y,OAAQ,KACN46B,GAAY,EAAZ,EAJJ,UAOE,cAAC1uB,GAAA,EAAD,8BACA,cAACC,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,SACE,cAACq5B,GAAD,SAGJ,eAACt1B,GAAA,EAAD,CACEC,OAAQ06B,EACRz6B,OAAQ,KACN06B,GAAY,GACZI,EAAe,MACfE,EAAa,KAAb,EALJ,UAQE,cAAC9uB,GAAA,EAAD,2BACA,cAACC,GAAA,EAAD,CAAWpQ,UAAU,qBAArB,SACE,eAAC8R,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,aAAX,6BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAOqhC,EACP3sB,SAAWrN,GAAMi6B,EAAej6B,EAAEqK,OAAO1R,OACzC7C,KAAK,cAIX,eAACyV,GAAA,EAAD,CAAarQ,UAAU,uBAAvB,UACE,eAAC,GAAD,CAAQ2G,MAAM,UAAU2J,KAAK,KAAKxO,QAlUtBzF,UACpB,IACE8iC,GAAa,GACb,MAAMnnB,EAAM,CACV0nB,UAAWV,EACXW,UAAWb,UAEMjjC,EAAOa,KAAK,6BAA8Bsb,IACpDvb,KAAKsB,SACZkhC,EAAa,MACbN,GAAY,GACZI,EAAe,MACf1hC,EAAShC,EAAaC,QAAQ,0BAC9B8jC,IAEH,CAAC,MAAO7jC,GACPiE,QAAQC,IAAI,QAASlE,GACrB8B,EAAShC,EAAaE,MAAM,wBAC7B,CACD4jC,GAAa,GACb5hB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KAFH,EA8SQ,UACE,mBAAGwE,UAAU,cAAcC,MAAO,CAAEyD,YAAa,KADnD,cAIA,cAAC,GAAD,CACE4M,KAAK,KACLzB,SAAO,EACP/M,QAAS,KACP68B,GAAY,GACZI,EAAe,MACfE,EAAa,KAAb,EANJ,0BAaJ,cAACl7B,GAAA,EAAD,CAAOC,OAAQk7B,EAAf,SACE,cAAC9uB,GAAA,EAAD,CAAWnQ,MAAO,CAAE2/B,UAAW,QAA/B,SACE,cAACl5B,GAAA,EAAD,CACEzG,MAAO,CACL+e,SAAU,WACV2b,KAAM,MACNC,UAAW,+CAQ1B,Ea5UGl4B,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAEV,CACEh6B,KAAM,6BACNm8B,UAAWuB,GACXn9B,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAGV,CACEh6B,KAAM,aACNm8B,UAAWtpB,GACXtS,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,kCACNm8B,UAAW5lB,GACXhW,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,6BACNm8B,UAAWrgB,GACXvb,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,0BACNm8B,UAAWzoB,GACXnT,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,+BACNm8B,UAAWtoB,GACXtT,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,uCACNm8B,UAAWwB,GACXp9B,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,mCACNm8B,UC1LW,WACb,MAAM,GAAEl+B,GAAO0Q,cACT5C,EAAUC,cAEhB,OACE,eAAC9N,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,4BAUA,cAACksB,GAAD,CAAe9rB,GAAIA,EAAI2sB,kBAAkB,EAAO7e,QAASA,MAI9D,EDuKGxL,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,mCACNm8B,UElMW,WACb,MAAMpwB,EAAUC,cAEhB,OACE,eAAC9N,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,2BAUA,cAACksB,GAAD,CAAe9rB,GAAI,EAAG2sB,kBAAkB,EAAOC,gBAAgB,EAAM9e,QAASA,MAGnF,EFiLGxL,OAAQ,SACRy5B,MAAO,CAAC,UAEV,CACEh6B,KAAM,gCACNm8B,UAAWyB,GACXr9B,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,yCACNm8B,UAAW0B,GACXt9B,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,YAInB,CACEh6B,KAAM,aACNm8B,UAAWhL,GACX5wB,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,kCACNm8B,UhBpDW,WAAoB,IAAD,wCAChC,MAAM,GAAEl+B,GAAO0Q,cACT5C,EAAUC,cACV9Q,EAAWsB,eAEVshC,EAASC,GAAc5hC,mBAAS,CAAC,IACjCg4B,EAAOC,GAAUj4B,oBAAS,IAE1B6hC,EAAuBC,GAA4B9hC,oBAAS,IAE5D+hC,EAAgBC,GAAqBhiC,oBAAS,GAE/CrD,EAAO2D,aAAYrB,GAASA,EAAM9C,eAAeQ,OAEvD4D,qBAAU,KACR0hC,GAAY,GACX,IAEH,MAAMA,EAAa,KACjBljC,EAAShC,EAAaG,SAElB6kC,IACJC,GAAkB,GAClB3gC,EAAO/C,IAAP,6BAAiCwD,IAC9B9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OAAQmiC,EAAW9gC,EAAI3C,MAC1BY,EAAShC,EAAaE,MAAM6D,EAAIjE,SAAhC,IAENoT,SAAQ,IAAM+xB,GAAkB,KALnC,GAQKE,EAAYC,GAAiBniC,oBAAS,IAatCoiC,EAAkBC,GAAqBriC,oBAAS,IAChDsiC,EAAkBC,GAAqBviC,oBAAS,GAsCvD,OACE,eAAC+B,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,sBAUA,eAACuF,EAAA,EAAD,WACE,eAACyB,GAAA,EAAD,WACGsvB,GACC,cAAC/wB,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAAC4I,GAAD,QAIN,eAACrK,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,CAAK/G,MAAO,CAAEqD,QAAS,QAAvB,SACE,2CAEF,cAACiC,EAAA,EAAD,UACA,sBAAKtF,MAAO,CAAEgd,MAAM,QAAS3Z,QAAQ,OAAQI,YAAY,IAAzD,UACE,cAACs0B,GAAD,CAAWD,WAAY6I,EAAkB5wB,KA/ChC,KACnB3S,EAAShC,EAAaG,SACnBolC,IAEHC,GAAkB,GAClBlhC,EACG/C,IADH,2DAC2DwD,IACxD9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACRV,EAAShC,EAAaC,QAAQ,8BAE5B+B,EAAShC,EAAaE,MAAM,yBAC9BgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,KAFH,IAID+S,SAAQ,IAAMsyB,GAAkB,KAXnC,KA2C0B,YAAd5lC,EAAK2G,MAAoC,UAAd3G,EAAK2G,OAChC,cAACu0B,GAAD,CACEC,SAAQ,UAAE6J,EAAQ1M,cAAV,aAAE,EAAgBrD,aAC1BmG,IAAM52B,GAAQ82B,EAAO92B,KAGzB,cAAC,GAAD,CAAYs4B,WAAY2I,EAAkB1wB,KAtEhCihB,IACpB5zB,EAAShC,EAAaG,SACnBklC,IAEHC,GAAkB,GAClBhhC,EACGjD,KADH,4BAC6B0D,EAD7B,sBAC6C6wB,IAC1C3zB,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OACNmQ,EAAQ+E,IAAI,GAEZ5V,EAAShC,EAAaE,MAAM,wBAA5B,IAEHgT,SAAQ,IAAMoyB,GAAkB,KARnC,YAqEM,cAACp7B,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,SACE,cAACzE,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,WACE,cAACilB,GAAD,CACEx0B,MAAM,YACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBxB,WAEzB,cAAC6F,GAAD,CACEx0B,MAAM,WACN3F,MAAK,oBAAKwiC,EAAQ1M,cAAb,aAAK,EAAgBuN,gBAE5B,cAAClJ,GAAD,CACEx0B,MAAM,WACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBwC,WAEzB,cAAC6B,GAAD,CACEx0B,MAAM,gBACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBrD,eAEzB,cAAC0H,GAAD,CACEx0B,MAAM,oBACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBtD,mBAEzB,cAAC2H,GAAD,CACEx0B,MAAM,cACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBzN,aAEzB,cAAC8R,GAAD,CACEx0B,MAAM,eACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBnD,cAEzB,cAACwH,GAAD,CAAYx0B,MAAM,UAAU3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBhpB,UACnD,cAACqtB,GAAD,CACEx0B,MAAM,SACN3F,MAAK,UAAEwiC,EAAQ1M,cAAV,aAAE,EAAgBwN,yBAOnC,eAAC/5B,GAAA,EAAD,WACE,eAACzB,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,UACE,oDAEF,cAACA,GAAA,EAAD,UACE,cAAC0I,GAAD,CACEzP,MAAO,CAAEgd,MAAO,SAChBtW,MAAM,UACN7E,QA5IQ,KACpBzE,EAAShC,EAAaG,SAClBglC,IACJC,GAAc,GACd9gC,EAAOjD,KAAP,6BAAkC0D,IAC/B9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,OAAQwiC,IACXljC,EAAShC,EAAaE,MAAM,wBAA5B,IAENgT,SAAQ,IAAMkyB,GAAc,KAL/B,EAyIY9wB,UAAW6wB,EAJb,0BAUJ,cAACj7B,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,SACE,cAACzE,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,WACE,cAACilB,GAAD,CACEx0B,MAAM,YACN3F,MAAK,UAAEwiC,EAAQe,gBAAV,aAAE,EAAkB/a,WAE3B,cAAC2R,GAAD,CACEx0B,MAAM,iBACN3F,MAAK,UAAEwiC,EAAQe,gBAAV,aAAE,EAAkB7a,gBAE3B,cAACyR,GAAD,CACEx0B,MAAM,eACN3F,MAAO0G,MACE,OAAP87B,QAAO,IAAPA,GAAA,UAAAA,EAASe,gBAAT,eAAmBC,aAGX,OAFE,OAAPhB,QAAO,IAAPA,GAAA,UAAAA,EAASe,gBAAT,eAAmBC,YACX,OAAPhB,QAAO,IAAPA,GAAA,UAAAA,EAASe,gBAAT,eAAmBC,WAAW58B,QAAS,IAErC,GACA,MACNC,OAAO,qCAMnB,qBAAKrE,MAAO,CAAEwL,UAAW,MACzB,eAAClG,EAAA,EAAD,WACE,cAACyB,GAAA,EAAD,UACE,kDAEF,cAACA,GAAA,EAAD,UACE,cAAC0I,GAAD,CACEzP,MAAO,CAAEgd,MAAO,SAChBtW,MAAM,UACN7E,QAAS,IACPoM,EAAQa,KAAR,uCAA6C3O,IAJjD,yBAWJ,cAACmF,EAAA,EAAD,CAAKtF,MAAO,CAAEwL,UAAW,IAAzB,SACE,cAACzE,GAAA,EAAD,UACE,cAAC0L,GAAA,EAAD,UACE,eAACC,GAAA,EAAD,WACE,cAACilB,GAAD,CAAYx0B,MAAM,QAAQ3F,MAAK,UAAEwiC,EAAQrS,gBAAV,aAAE,EAAkB/c,QACnD,cAAC+mB,GAAD,CACEx0B,MAAM,oBACN3F,MACE,UAAAwiC,EAAQrS,gBAAR,SAAkBrB,gBACd,SACA,eAGR,cAACqL,GAAD,CACEx0B,MAAM,mBACN3F,MACE,UAAAwiC,EAAQrS,gBAAR,SAAkBsT,oBACd,SACA,eAGR,cAACtJ,GAAD,CACEx0B,MAAM,sBACN3F,MACE,UAAAwiC,EAAQrS,gBAAR,SAAkBlB,iBACd,SACA,eAGR,cAACkL,GAAD,CACEx0B,MAAM,2BACN3F,MACE,UAAAwiC,EAAQrS,gBAAR,SAAkBnB,WAAa,SAAW,eAG9C,cAACmL,GAAD,CACEx0B,MAAM,oBACN3F,MACE,sBACEwC,MAAO,CACL0G,MAAO,oBACPw6B,OAAQ,WAEVv/B,KAAK,eACLE,QAAS,IAAMs+B,GAAyB,GAN1C,mCAmBhB,eAACr8B,GAAA,EAAD,CACEC,OAAQm8B,EACR7vB,KAAK,KACLrM,OAAQ,IAAMm8B,GAAyB,GACvCgB,gBAAc,EAJhB,UAME,qBAAKphC,UAAU,eAAf,SACE,wBACE,aAAW,QACXA,UAAU,QACV,eAAa,QACbpF,KAAK,SACLkH,QAAS,IAAMs+B,GAAyB,GAL1C,SAOE,sBAAM,eAAa,EAAnB,sBAGJ,cAAChwB,GAAA,EAAD,CAAWnQ,MAAO,CAAEiE,WAAY,GAAhC,SACE,cAAC2zB,GAAD,CAAsBz3B,GAAIA,WAKnC,EgB1PGsC,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,mCACNm8B,UGrOG,WACL,MAAM,GAAEl+B,GAAO0Q,cACT5C,EAAUC,cAEhB,OACE,eAAC9N,EAAA,EAAD,CAAWL,UAAU,kBAAkBM,OAAK,EAA5C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAH7B,SAKE,mBAAGjT,UAAU,0BANjB,uBAUA,cAACksB,GAAD,CAAe9rB,GAAIA,EAAI2sB,kBAAkB,EAAM7e,QAASA,MAI7D,EHkNGxL,OAAQ,SACR87B,OAAQ,YACRrC,MAAO,CAAC,QAAS,UAAW,aAG9B,CACEh6B,KAAM,iCACNm8B,UAAW+C,GACX3+B,OAAQ,SACR87B,OAAQ,WACRrC,MAAO,CAAC,UAIV,CACEh6B,KAAM,+BACNm8B,UI1OW,WAEb,MAAMjhC,EAAWsB,eAEV6R,EAAWC,GAAgBnS,mBAAS,CACzCgjC,YAAa,GACbC,YAAa,GACbC,gBAAiB,MAGZ7xB,EAAW6P,GAAgBlhB,oBAAS,IAEpC0S,EAAkBC,GAAuB3S,mBAAS,CACvDgjC,aAAa,EACbC,aAAa,EACbC,iBAAiB,IAGbtwB,EAAwB,IAAgC,IAA7B/B,QAAQ,GAAE/O,EAAF,MAAM3C,IAAc,EAC3DuT,EAAiB5Q,IAAM,EACvBoQ,EAAUpQ,GAAM3C,EAChBgT,EAAa,IAAKD,IAClBS,EAAoB,IAAKD,GAAzB,EAqCF,OACE,eAAC3Q,EAAA,EAAD,CAAWL,UAAU,iCAAiCC,MAAO,CAAEwD,WAAY,GAA3E,UACE,qBAAKzD,UAAU,iBAAf,6BAGA,cAACO,EAAA,EAAD,UACA,gCACG,sBAGH,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK+N,GAAI,EAAT,SACE,cAACrC,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAAC/C,GAAD,IACA,eAACuB,GAAA,EAAD,CAAMvP,KAAK,OAAOwP,SAjDVtM,IAClBA,EAAEwM,iBACF,IAAID,GAAO,EACXE,OAAOC,QAAQhB,GAAWiB,SAAQ,IAAa,IAAXC,EAAG/Q,GAAO,EACxCgR,KAAUC,QAAQjR,KACpB0Q,GAAO,EACPL,EAAiBU,IAAK,EACtBT,EAAoB,IAAKD,IAC1B,IAGCR,EAAS,kBAAwBA,EAAS,cAC5Ca,GAAO,EACPL,EAAgB,iBAAsB,EACtCC,EAAoB,IAAKD,KAGtBK,IACHmO,GAAa,GACb7f,EACGjD,KAAK,6BAA8B8T,GACnClT,MAAKQ,IACJ,MAAM,OAAEC,EAAF,QAAU5C,GAAY2C,EAAOrB,KAEjCY,EADEU,EACO1C,EAAaC,QAAQH,GAErBE,EAAaE,MAAMJ,GAA5B,IAEHmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,6BACxCgT,SAAQ,IAAMiR,GAAa,KAC/B,EAmBS,UACE,eAAC1N,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,0BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAU8wB,YACjBpvB,QAASlB,EAAiBswB,YAC1BnvB,SAAUjB,EACVtW,KAAK,aAEP,cAACwX,GAAA,EAAD,iDAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,cAAX,2BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,cACH3C,MAAO+S,EAAU+wB,YACjBrvB,QAASlB,EAAiBuwB,YAC1BpvB,SAAUjB,EACVtW,KAAK,aAEP,cAACwX,GAAA,EAAD,yCAEF,eAACN,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAOC,IAAI,kBAAX,8BACA,cAACC,GAAA,EAAD,CACE7R,GAAG,kBACH3C,MAAO+S,EAAUgxB,gBACjBtvB,QAASlB,EAAiBwwB,gBAC1BrvB,SAAUjB,EACVtW,KAAK,aAEP,cAACwX,GAAA,EAAD,uCAEF,cAACN,GAAA,EAAD,UACE,cAAC,GAAD,CAAQlX,KAAK,SAAS+L,MAAM,UAAUgJ,UAAWA,EAAjD,oCAUjB,EJoHGjN,OAAQ,SACRy5B,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,mCACNm8B,UD5MsB,KACxB,MAAMpwB,EAAUC,cACV9Q,EAAWsB,eAEV6F,EAASC,GAAcnG,mBAAS,KAChCgH,EAASm8B,GAAcnjC,oBAAS,GAEvCO,qBAAU,KACR6iC,GAAgB,GACf,IAEH,MAAMA,EAAiBrlC,UACrBolC,GAAW,GACX,IACE,MAAMriC,QAAYwO,EAAIhR,IAAI,4CACJ,IAAD,IAArB,GAAIwC,EAAI3C,KAAKsB,OACX0G,GAAW,UAAArF,EAAI3C,YAAJ,mBAAUqB,cAAV,eAAkB6jC,WAAY,GAE5C,CAAC,MAAOpmC,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CACDkmC,GAAW,EAAX,EAGIG,EAAkBvlC,MAAO+L,EAAOxN,EAAM6B,KAC1C,IAAK,IAAD,EACF,MAAMirB,EAAQ,IAAIljB,GAClB,OAAQ5J,GACN,IAAK,MACW,QAAVwN,EAAiBsf,EAAM3Y,KAAKtS,GAC3BirB,EAAMma,OAAOz5B,EAAO,EAAG3L,GAC5B,MAEF,IAAK,SACHirB,EAAMma,OAAOz5B,EAAO,GAGxB,MAAM4P,EAAM,CAAE2pB,SAAUja,GAKxB,iBAJkB9Z,EAAIlR,KACpB,2CACAsb,IAEMvb,YAAR,OAAI,EAAUsB,SACZV,EAAShC,EAAaC,QAAQ,mCAC9BomC,IAEH,CAAC,MAAOnmC,GACPiE,QAAQC,IAAI,QAASlE,EACtB,CAID,OAHAgiB,YAAW,KACTlgB,EAAShC,EAAaG,QAAtB,GACC,OACI,CAAP,EAGF,OACE,mCACE,eAAC6E,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBAAKN,UAAU,iBAAf,UACE,cAAC4O,GAAA,EAAD,CACE5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,GAAG,MAH5B,SAKE,mBAAGjT,UAAU,0BANjB,iCAUA,cAAC4P,GAAD,IACA,cAAC8C,GAAA,EAAD,CAAMzS,MAAO,CAAE8F,QAAS,IAAxB,SACE,cAAC,GAAD,CAAUga,OAAQ6hB,MAEpB,eAAClvB,GAAA,EAAD,CAAMzS,MAAO,CAAEwL,UAAW,GAAI1F,QAAS,IAAvC,6BAEE,cAACqd,GAAA,EAAD,CAAWnjB,MAAO,CAAEwL,UAAW,GAA/B,SACInG,GACA,cAACsd,GAAA,EAAD,UACE,cAAClc,GAAA,EAAD,CAASC,MAAM,UAAU2J,KAAK,UAGhC9L,EAAQ6E,KAAI,CAACga,EAAGjb,IACd,cAAC,GAAD,CAAUA,MAAOA,EAAO3L,KAAM4mB,EAAGtD,OAAQ6hB,eA1BvD,ECsJEl/B,OAAQ,SACRy5B,MAAO,CAAC,UAEV,CACEh6B,KAAM,0BACNm8B,UK3PG,WAEL,MAAO3uB,EAAW6P,GAAgBlhB,oBAAS,IAEpCwjC,EAASC,GAAczjC,oBAAS,IAChC0jC,EAAkBC,GAAuB3jC,mBAAS,KAClD4jC,EAAWC,GAAa7jC,mBAAS,IAElCjB,EAAWsB,cACXuP,EAAUC,cAEhBtP,qBAAU,KACRujC,GAAqB,GACpB,IAEH,MAAMA,EAAsB,KAC1BziC,EACG/C,IAAI,4BACJU,MAAKQ,IACJ,MAAQrB,MAAM,OAAEsB,EAAF,KAAUtB,IAAWqB,GAC7B,gBAAEukC,EAAF,OAAmBC,GAAW7lC,EACpC8lC,KAAOC,UAAUF,GAAQhlC,MAAKsV,GAAKuvB,EAAUvvB,KAC7CmvB,EAAWM,EAAX,GANJ,EA2CF,OACE,eAAChiC,EAAA,EAAD,CACEL,UAAU,iCACVC,MAAO,CAAEwD,WAAY,GAFvB,UAIE,qBAAKzD,UAAU,iBAAf,kDACA,cAACO,EAAA,EAAD,UACE,gCAAQ,gCAEV,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK+N,GAAI,EAAT,SACE,cAACrC,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAAC/C,GAAD,IACA,eAACkC,GAAA,EAAD,WACE,yDACA,wBAAO9R,UAAU,qBAAjB,UACE,uBACEI,GAAG,eACHxF,KAAK,WACLqc,QAAS6qB,EACT3vB,SAAWrN,IACLA,EAAEqK,OAAO8H,UAtD/BkrB,EAAU,IACVxiC,EAAO/C,IAAI,4BAA4BU,MAAMQ,IAC3C,MACErB,MAAM,OAAEsB,EAAF,KAAUtB,IACdqB,GACE,OAAEwkC,GAAW7lC,EACnB8lC,KAAOC,UAAUF,GAAQhlC,MAAMsV,GAAMuvB,EAAUvvB,IAA/C,KAiDgBmvB,EAAWj9B,EAAEqK,OAAO8H,QAApB,IAGJ,sBAAMjX,UAAU,8CAGnB8hC,GACC,gCACE,6BACE,mGAKF,qBAAI7yB,MAAM,OAAV,UACE,6BACE,yGAGE,mBAAGxO,KAAK,iDAAR,qBAEK,IALP,MAOE,mBAAGA,KAAK,iDAAR,iBAEK,IATP,8BAWE,mBAAGA,KAAK,6FAAR,qBAEK,IAbP,MAeE,mBAAGA,KAAK,wEAAR,iBAfF,SAqBF,+BACE,0HAICyhC,EACC,qBAAKnhC,IAAKmhC,IAEV,cAAC,KAAD,CAAM5xB,KAAK,aAGf,+BACE,gNAMA,cAACwB,GAAA,EAAD,UACE,cAACG,GAAA,EAAD,CACExU,MAAOukC,EACP7vB,SAAU,QAAGhD,QAAQ,MAAE1R,IAAb,SACRwkC,EAAoBxkC,EADZ,eAStB,cAACqU,GAAA,EAAD,UACE,cAAC,GAAD,CACEnL,MAAM,UACNgJ,UAAWA,EACX7N,QAnHC,KACf,MAAM2gC,EAAc,CAAEC,QAASZ,EAASa,iBAAkBX,GAC1DxiB,GAAa,GACb7f,EAAOjD,KAAK,2BAA4B+lC,GACrCnlC,MAAKQ,IACJ,MAAQrB,MAAM,OAAEsB,EAAF,QAAU5C,IAAc2C,EACnCC,GACDV,EAAShC,EAAaC,QAAQH,IAC9B0C,EAAYT,cAAcC,GAC1BkgB,YAAW,KACTlgB,EAAShC,EAAaG,SACtB0S,EAAQa,KAAK,IAAb,GACA,MAGF1R,EAAShC,EAAaE,MAAMJ,GAA5B,IAEHmE,OAAM,IAAMjC,EAAShC,EAAaE,MAAM,oBACxCgT,SAAQ,IAAIiR,GAAa,IAf5B,EA6GY,iCAcf,ELwFG9c,OAAQ,SACRy5B,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,2BACNm8B,U/C3PW,WACb,MAAO3uB,EAAWxC,GAAc7O,oBAAS,IAClCskC,EAAUC,GAAevkC,mBAAS,CAAC,IACnCwkC,EAASC,GAAczkC,oBAAS,GAEjCjB,EAAWsB,cACJC,aAAarB,GAAUA,EAAM9C,eAAeQ,OAEzD4D,qBAAU,KACRG,GAAkB,GACjB,IAEH,MAAMgkC,EAAc,CAACtlC,EAAKD,KACxBolC,EAAY,IAAKD,EAAU,CAACllC,GAAMD,GAAlC,EAGIuB,EAAmB3C,UACvB,IACE,MAAMqD,QAAaC,EAAO/C,IAAI,kCAM3B,IAAD,QALF,GACE8C,EAAKjD,KAAKsB,QACV2B,EAAKjD,KAAKA,MACViD,EAAKjD,KAAKA,KAAKmD,cACfF,EAAKjD,KAAKA,KAAKoD,YAEfgjC,EAAY,CACVzgC,KAAI,UAAE1C,EAAKjD,KAAKA,YAAZ,aAAE,EAAgBoD,YACtBojC,KAAI,UAAEvjC,EAAKjD,KAAKA,YAAZ,aAAE,EAAgBmD,aACtB+G,MAAK,UAAEjH,EAAKjD,KAAKA,YAAZ,aAAE,EAAgBqD,MACvBwV,YAAW,UAAE5V,EAAKjD,KAAKA,YAAZ,aAAE,EAAgB6Y,aAGlC,CAAC,MAAO/Z,GACPiE,QAAQC,IAAI,QAASlE,EACtB,GA6CH,OACE,gCACE,eAAC8E,EAAA,EAAD,CACEL,UAAU,iCACVC,MAAO,CAAEwD,WAAY,GAFvB,UAIE,qBAAKzD,UAAU,iBAAf,yBACA,cAACO,EAAA,EAAD,UACE,gCAAQ,kBAEV,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACmD,GAAA,EAAD,CAAM1S,UAAU,SAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAAC/C,GAAD,IACA,cAACrK,EAAA,EAAD,CAAKtF,MAAO,CAAE+e,SAAU,YAAxB,SACE,cAAChY,GAAA,EAAD,UACE,cAAC8K,GAAA,EAAD,CAAW7R,MAAO,CAAEwL,UAAW,IAA/B,SACE,eAAClG,EAAA,EAAD,CAAKtF,MAAO,CAAEwD,WAAY,IAA1B,UACE,cAACuD,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAACwC,GAAA,EAAD,CAAOC,IAAI,OAAO/R,MAAO,CAAEsD,SAAU,IAArC,SACG,yBAGL,cAACyD,GAAA,EAAD,CAAKuI,GAAG,IAAR,SACE,cAAC0C,GAAA,EAAD,CACE7R,GAAG,OACH3C,MAAK,OAAEmlC,QAAF,IAAEA,OAAF,EAAEA,EAAUttB,YACjBnD,SAAWrN,GACTk+B,EAAY,cAAel+B,EAAEqK,OAAO1R,oBAQlD,cAAC8H,EAAA,EAAD,CAAKtF,MAAO,CAAE+e,SAAU,YAAxB,SACE,cAAChY,GAAA,EAAD,CAAKuI,GAAG,KAAKgJ,OAAQ,EAArB,SACE,eAACzG,GAAA,EAAD,CAAW7R,MAAO,CAAEwL,UAAW,IAA/B,UACE,eAAClG,EAAA,EAAD,CAAKtF,MAAO,CAAEwD,WAAY,IAA1B,UACE,cAACsO,GAAA,EAAD,CAAO9R,MAAO,CAAEsD,SAAU,IAA1B,SAAiC,gBACjC,cAAC,GAAD,CACEsL,SAAO,EACPyB,KAAK,KACLrQ,MAAO,CAAEwD,WAAY,GAAIsC,QAAS,IAHpC,SAKE,cAACgM,GAAA,EAAD,CAAO9R,MAAO,CAAEwL,UAAW,GAAKuG,IAAI,QAApC,sBAIF,cAACC,GAAA,EAAD,CACE7R,GAAG,QACHxF,KAAK,OACLqF,MAAO,CAAEqD,QAAS,QAClB6O,SAAWrN,GACTk+B,EAAY,OAAQl+B,EAAEqK,OAAO8nB,MAAM,MAGvC,eAAC,GAAD,CAAQpoB,SAAO,EAACyB,KAAK,KAArB,UACG,IACD,cAACyB,GAAA,EAAD,CAAO9R,MAAO,CAAEwL,UAAW,GAAKuG,IAAI,QAApC,wCAID4wB,EAASK,MACR,cAACj8B,GAAA,EAAD,UACE,oBAAG/G,MAAO,CAAEsD,SAAU,IAAtB,wBACc,IACXq/B,EAASK,KAAKthC,MACbihC,EAASK,KAAK13B,MAAM,KAAK23B,OAAO,GAAI,IAHxC,aAIaN,EAASj8B,MAAQi8B,EAASj8B,MAAQ,WAKrD,cAACsL,GAAA,EAAD,CACE7R,GAAG,QACHxF,KAAK,QACLqF,MAAO,CAAEqD,QAAS,QAClB6O,SAAWrN,GAAMk+B,EAAY,QAASl+B,EAAEqK,OAAO1R,gBAKvD,cAAC8H,EAAA,EAAD,CAAKtF,MAAO,CAAE+e,SAAU,YAAxB,SACE,cAAChY,GAAA,EAAD,CAAKm8B,KAAM,EAAX,SACE,eAACrxB,GAAA,EAAD,CAAW7R,MAAO,CAAEwL,UAAW,IAA/B,UACE,eAAClG,EAAA,EAAD,CAAKtF,MAAO,CAAEwD,WAAY,IAA1B,UACE,cAACsO,GAAA,EAAD,CAAO9R,MAAO,CAAEsD,SAAU,IAA1B,SACG,mCAEH,cAAC,GAAD,CAAQsL,SAAO,EAACyB,KAAK,KAAKrQ,MAAO,CAAEwD,WAAY,IAA/C,SACE,cAACsO,GAAA,EAAD,CAAO9R,MAAO,CAAEwL,UAAW,GAAKuG,IAAI,QAApC,sBAIF,cAAChL,GAAA,EAAD,UACG47B,EAASxgC,MACR,oBAAGnC,MAAO,CAAEsD,SAAU,IAAtB,wBACc,IACXq/B,EAASxgC,KAAKT,MACbihC,EAASxgC,KAAKmJ,MAAM,KAAK23B,OAAO,WAM1C,cAACjxB,GAAA,EAAD,CACE7R,GAAG,QACHxF,KAAK,OACLqF,MAAO,CAAEY,MAAO,IAAKyC,QAAS,QAC9B6O,SAAWrN,GAAMk+B,EAAY,OAAQl+B,EAAEqK,OAAO8nB,MAAM,aAK5D,eAAC1xB,EAAA,EAAD,CAAKtF,MAAO,CAAE+e,SAAU,YAAxB,UACE,cAAChY,GAAA,EAAD,CAAKsR,GAAG,IAAR,SACE,cAAC,GAAD,CACErY,MAAO,CAAEwD,WAAY,GAAIgI,UAAW,IACpC3J,QAAS,IAAMihC,GAAYD,GAC3B5lB,UAAW0lB,EAASxgC,OAASwgC,EAASK,KAHxC,uBAQF,cAACj8B,GAAA,EAAD,CAAKsR,GAAG,IAAR,SACE,cAAC,GAAD,CACErY,MAAO,CAAEwL,UAAW,IACpB9E,MAAM,UACNgJ,UAAWA,EACX7N,QA9KCzF,UAEnB,GADA8Q,GAAW,IACNy1B,EAASxgC,OAASwgC,EAASK,KAM9B,OALA5lC,EAAShC,EAAaE,MAAM,sCAC5BgiB,YAAW,KACTlgB,EAAShC,EAAaG,SACtB2R,GAAW,EAAX,GACC,CAAC,MAGN,IACE,MAAM2vB,EAAW,CACfxnB,YAAastB,EAASttB,YACtBxV,MAAO8iC,EAASj8B,OAAS,IAErBy8B,EAAmB,IAAI/jB,GACvBgkB,EAAoB,IAAIhkB,GAG9B,IAAIikB,EAAUC,EAAQC,EAFtBH,EAAkBhG,OAAO,gBAAiBuF,EAASK,MACnDG,EAAiB/F,OAAO,eAAgBuF,EAASxgC,MAEjDkhC,QAAiB3jC,EAAOjD,KAAK,kCAAmCogC,GACnC,kBAAlB8F,EAASxgC,OAClBohC,QAAe7jC,EAAOjD,KAAK,0BAA2B0mC,IAC3B,kBAAlBR,EAASK,OAClBM,QAAe5jC,EAAOjD,KACpB,2BACA2mC,IAEAC,EAAS7mC,KAAKsB,QAAUwlC,EAAO9mC,KAAKsB,QAAUylC,EAAO/mC,KAAKsB,OAC5DV,EAAShC,EAAaC,QAAQ,0BAC3B+B,EAAShC,EAAaE,MAAM,wBAClC,CAAC,MAAOA,GACPiE,QAAQC,IAAIlE,GACZ8B,EAAShC,EAAaE,MAAM,gBAC7B,CAxBD,QAyBE4R,GAAW,GACXoQ,YAAW,KACTlS,OAAOyM,SAASsH,QAAhB,GACC,IACJ,GAmIe,sCAeZwjB,EAASxgC,MAAQwgC,EAASK,OAC1B,cAACl/B,GAAA,EAAD,CACEC,OAAQ8+B,EACR7+B,OAAQ,IAAM8+B,GAAYD,GAC1B7iC,MAAO,CAAEY,MAAO,KAHlB,SAKE,eAACuP,GAAA,EAAD,WACE,cAAC7K,EAAA,EAAD,UACGq9B,EAASK,MACR,eAACj8B,GAAA,EAAD,WACE,wCACA,qBACE/G,MAAO,CACLa,OAAQ,IACRD,MAAO,IACP4K,UAAW,GACX6D,aAAc,GACdpP,gBAAiB0iC,EAASj8B,OAAS,GACnCZ,QAAS,GACTgG,UAAW,UAEbhL,IAC2B,kBAAlB6hC,EAASK,KACZQ,IAAIC,gBAAgBd,EAASK,MAC7BL,EAASK,KAEfriC,IAAI,sBAKZ,cAAC2E,EAAA,EAAD,UACGq9B,EAASxgC,MACR,eAAC4E,GAAA,EAAD,WACE,wCACA,qBACE/G,MAAO,CACLa,OAAQ,GACRD,MAAO,GACP4K,UAAW,GACXM,UAAW,UAEbhL,IAC2B,kBAAlB6hC,EAASxgC,KACZqhC,IAAIC,gBAAgBd,EAASxgC,MAC7BwgC,EAASxgC,KAEfxB,IAAI,kCAUvB,E+C3BG8B,OAAQ,SACRy5B,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,eACNm8B,UhD1NW,WAGb,MAAMpwB,EAAUC,eACV,MAAEnM,EAAQ,QAAV,KAAmBJ,GAAShD,aAAYrB,GAASA,EAAM9C,eAAeQ,OAC5E,OACE,eAACoF,EAAA,EAAD,CAAWL,UAAU,iCAAiCC,MAAO,CAAEwD,WAAY,GAA3E,UACE,qBAAKzD,UAAU,iBAAf,yBAGA,cAACO,EAAA,EAAD,UACE,gCACG,kBAGL,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK+N,GAAI,EAAT,SACE,cAACrC,GAAA,EAAD,CAAM1S,UAAU,UAAhB,SACE,eAAC2S,GAAA,EAAD,WACE,cAAC+L,GAAD,CACEC,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,2BAApD,uBACR6P,QACE,qBAAK/d,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACE,sBAAMI,EAAE,m/CAAm/CD,KAAgB,SAAVR,EAAmB,UAAY,cAGpiDoB,MAAM,4BACNyb,SAAS,gCAEX,cAACH,GAAD,CACEC,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,gCAApD,oBACR6P,QACE,sBAAK/d,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACE,sBAAMI,EAAE,mIAAmID,KAAgB,SAAVR,EAAmB,UAAY,YAChL,sBAAM,YAAU,UAAU,YAAU,UAAUS,EAAE,+WAA+WD,KAAgB,SAAVR,EAAmB,UAAY,eAIxcoB,MAAM,kBACNyb,SAAS,8BAGX,cAACH,GAAD,CACEC,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,4BAApD,oBACR6P,QACE,qBAAK/d,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACE,sBAAM,YAAU,UAAU,YAAU,UAAUI,EAAE,sUAAsUD,KAAgB,SAAVR,EAAmB,UAAY,cAG/ZoB,MAAM,cACNyb,SAAS,0BAGX,cAACH,GAAD,CACEC,OAAQ,cAACM,GAAD,IACRL,QACE,qBAAK/d,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,SACE,sBAAM,YAAU,UAAU,YAAU,UAAUI,EAAE,y4BAAy4BD,KAAgB,SAAVR,EAAmB,UAAY,cAGl+BoB,MAAM,aACNyb,SAAS,0CAGV,CAAC,UAAW,SAASpD,SAAS7Z,IAAS,cAAC8c,GAAD,CACtCC,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,yBAApD,uBACR6P,QACE,qBAAKvc,MAAM,6BAA6BC,QAAQ,cAAhD,SACE,sBAAME,KAAgB,SAAVR,EAAmB,UAAY,UAAWS,EAAE,u+BAE5DW,MAAM,YACNyb,SAAS,0BAEV,CAAC,SAASpD,SAAS7Z,IAAS,cAAC8c,GAAD,CAC3BC,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,oCAApD,uBACR6P,QACE,sBAAKvc,MAAM,6BAA6BG,KAAK,UAAUF,QAAQ,YAAYlC,GAAG,UAAU,YAAU,UAAlG,UAA4G,sBAAMqC,EAAE,seAAseD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,wGAAwGD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,yGAAyGD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,yGAAyGD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,yGAAyGD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,sGAAsGD,KAAgB,SAAVR,EAAmB,UAAY,YAAY,sBAAMS,EAAE,yGAAyGD,KAAgB,SAAVR,EAAmB,UAAY,eACzkDoB,MAAM,oBACNyb,SAAS,iDASxB,EgDoIGnc,OAAQ,SACRy5B,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,wBACNm8B,UAAWzb,GACXngB,OAAQ,SACRy5B,MAAO,CAAC,UAIV,CACEh6B,KAAM,WACNm8B,UnCrQW,WACb,MAAOqF,EAAQC,GAAatlC,mBAAS,CAAEmH,QAAS,CAAC,CAAC,MAE3Co+B,EAAaC,GAAkBxlC,mBAAS,KACxCylC,EAAYC,GAAiB1lC,mBAAS,KACtC+nB,EAAUC,GAAehoB,mBAAS,KAElCqR,EAAW6P,GAAgBlhB,oBAAS,IAEpC2lC,EAAYC,GAAc5lC,mBAAS,IAEpC4P,EAAUC,cAGVg2B,GAFKrzB,cAEQ,WAAoB,IAAnBuV,EAAkB,uDAAP,GAC7B7G,GAAa,GACb,MAAM4kB,EApBV,SAAwB/d,GACtB,OAAOge,GAAYhe,IAAa,CAAE5gB,QAAS,CAAC,CAAC,GAC9C,CAkBuB6+B,CAAeje,GAEnC1mB,EAAO,CACL4kC,OAAQ,MACRllC,IAAI,GAAD,OAAK+kC,EAAY/kC,KACpBrD,QAASC,EAAUP,UAElB4B,MAAMQ,IACLkmC,EAAclmC,EAAOrB,KAAKA,MAC1BqnC,EAAeM,EAAYhhC,MAA3B,IAEDmL,SAAQ,IAAMiR,GAAa,KAC9BokB,EAAUQ,GACV9d,EAAYD,EACb,GAEDxnB,qBAAU,KACRslC,EAAW,iBAAX,GACC,IAEH,MAAM,MAAEniC,EAAQ,SAAYpD,aAAawP,GAAMA,EAAE3T,eAAeQ,QAAS,CAAC,EAE1E,OACE,eAACoF,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBACEL,MAAO,CACLqD,QAAS,OACTzC,MAAO,OACPmc,SAAU,OACVvR,UAAW,IALf,UAQE,qBAAKzL,UAAU,iBAAf,qBACA,qBAAKC,MAAO,CAAEgd,MAAO,QAASpc,MAAO,QAArC,SACE,cAAC+N,GAAA,EAAD,CACEC,SAAO,EACP5O,MAAO,CAAEgd,MAAO,SAChBjd,UAAU,sBACV2G,MAAM,UACN/L,KAAK,SACL0V,KAAK,KACLxO,QAAS,IAAMoM,EAAQa,KAAK,4BAP9B,kCAaJ,cAACxJ,EAAA,EAAD,UACE,cAACmN,GAAA,EAAD,CAAM1S,UAAU,SAASC,MAAO,CAAEY,MAAO,QAAzC,SACE,cAAC8R,GAAA,EAAD,UACE,cAACpN,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,eAACoN,GAAA,EAAD,WACE,cAACxF,GAAA,EAAD,CACEjI,MAAM,UACNkI,QAAsB,mBAAbwX,EACTrmB,UACe,mBAAbqmB,EACI,gCACA,GAENvkB,QAAS,IAAMqiC,EAAW,kBAR5B,kCAaA,cAACv1B,GAAA,EAAD,CACEjI,MAAM,UACNkI,QAAsB,mBAAbwX,EACTrmB,UACe,mBAAbqmB,EACI,gCACA,GAENvkB,QAAS,IAAMwkB,EAAY,kBAR7B,kCAaA,cAAC1X,GAAA,EAAD,CACEjI,MAAM,UACNkI,QAAsB,sBAAbwX,EACTrmB,UACe,sBAAbqmB,EACI,gCACA,GAENvkB,QAAS,IAAMwkB,EAAY,qBAR7B,mDAkBE,mBAAbD,GAAiC,cAAC,GAAD,IACpB,sBAAbA,GAAoC,cAACD,GAAD,IACvB,mBAAbC,GACC,cAAC9gB,EAAA,EAAD,UACE,qBAAKtF,MAAO,CAAEwL,UAAW,IAAzB,SACE,cAAC,KAAD,CACEjG,SAAS,KACT/I,KAAMsnC,EACNt+B,QAASk+B,EAAOl+B,QAChBgB,iBAAiB,qBACjBye,UAAW,CACTC,SAAS,GAAD,OACNwe,EAAOvgC,MADD,eAEF,IAAIgZ,MAAOC,qBAFT,SANZ,SAWIle,GACA,sBAAK8B,MAAO,CAAEqP,aAAc,IAA5B,UACE,sBACEtP,UAAU,gBACVC,MAAO,CACLqP,aAAc,GACd+C,eAAgB,gBAChBtM,QAAS,WALb,UAQE,oBAAI9F,MAAO,CAAE8F,QAAS,iBAAtB,SAA0C89B,IAC1C,cAAC,GAAD,IAAqB1lC,EAAMinB,SAA3B,8BAIY,mBAAbiB,IAAkC1W,GACjC,cAAC,GAAD,CAAelT,KAAMsnC,IAEvB,qBAAK9jC,MAAO,CAAEwL,UAAW,GAAIvH,WAAW,IAAxC,SACE,cAAC,KAAD,IACM/F,EAAM2I,UACVL,iBACEkJ,EACE,cAACjJ,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAE3B,yBAazB,EmC+FGjE,OAAQ,SACR87B,OAAQ,UACRrC,MAAO,CAAC,QAAS,YAEnB,CACEh6B,KAAM,2BACNm8B,UMxRW,WACb,MAAOkG,EAAeC,GAAoBnmC,oBAAS,IAC5CyuB,EAAkB2X,GAAuBpmC,oBAAS,IAClDqmC,EAAeC,GAAoBtmC,oBAAS,GAE7C4P,EAASC,cAOf,OACE,eAAC9N,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,sBAAKN,UAAU,iBAAf,UACA,cAAC4O,GAAA,EAAD,CACM5O,UAAU,uBACV6O,SAAO,EACP/M,QAAS,IAAMoM,EAAQ+E,IAAI,GAHjC,SAKM,mBAAGjT,UAAU,0BANnB,qBAUA,cAACuF,EAAA,EAAD,UACE,cAACmN,GAAA,EAAD,CAAM1S,UAAU,SAASC,MAAO,CAAEY,MAAO,QAAzC,SACE,cAAC8R,GAAA,EAAD,UACE,cAACpN,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,UACE,cAACoN,GAAA,EAAD,UACE,cAACxF,GAAA,EAAD,CACEjI,MAAM,UACNkI,SAAU21B,EACVxkC,UACEwkC,EAAgB,gCAAkC,GAEpD1iC,QAAS,KA5BzB2iC,GAAiB,GACjBC,GAAoB,GACpBE,GAAiB,GA4BCH,GAAiB,EAAjB,EARJ,iDA8CXD,GACC,cAAC,GAAD,IAEDG,GACC,cAAC,GAAD,IAED5X,GACC,cAAC,GAAD,MAIP,ENkMGrqB,OAAQ,SACR87B,OAAQ,UACRrC,MAAO,CAAC,QAAS,YAcnB,CACEh6B,KAAM,0BACNm8B,UAAWhD,GACX54B,OAAQ,SACR87B,OAAQ,QACRrC,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,kBACNm8B,UAAW3B,GACXj6B,OAAQ,SACR87B,OAAQ,QACRrC,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,uBACNm8B,UAAW1B,GACXl6B,OAAQ,SACR87B,OAAQ,QACRrC,MAAO,CAAC,QAAS,UAAW,aAE9B,CACEh6B,KAAM,SACNm8B,UAAWpD,GACXx4B,OAAQ,SACR87B,OAAQ,QACRrC,MAAO,CAAC,QAAS,UAAW,aAI9B,CACEh6B,KAAM,mBACNm8B,UO/UW,WACGnwB,cAAhB,MAEOwN,EAAUkpB,GAAevmC,mBAAS,KAClCwmC,EAAUC,GAAYzmC,mBAAS,OAC/BgH,EAAS6H,GAAc7O,oBAAS,GACvCO,qBAAU,KACRmmC,GAAc,GACb,IAEH,MAAMA,EAAe,KACnB73B,GAAW,GACXxN,EAAO/C,IAAI,4BACRU,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACN8mC,EAAYzlC,EAAI3C,KAAhB,IAEH8R,SAAQ,IAAMpB,GAAW,IAL5B,GAkDK83B,EAAYC,GAAiB5mC,oBAAS,IACtC6mC,EAAaC,GAAkB9mC,oBAAS,IAExC+mC,EAAaC,GAAkBhnC,mBAAS,IACxCq9B,EAAUC,GAAet9B,oBAAS,GAEnC8gB,EAAS,KACb8lB,GAAc,GACdI,EAAe,GACfT,EAAY,IACZG,GAAc,EAEVxa,EAAgBpqB,IAChBu7B,IAEJC,GAAY,GACZ0J,EAAellC,GACfT,EACGjD,KAAK,0BAA4B0D,GACjC9C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNqhB,GACD,IAEF7Q,SAAQ,IAAMqtB,GAAY,KAP7B,GAUK/P,EAASC,GAAextB,oBAAS,GAiBxC,OACE,eAAC+B,EAAA,EAAD,CAAWL,UAAU,iBAAiBM,OAAK,EAA3C,UACE,qBAAKN,UAAU,iBAAf,sBACA,cAACuF,EAAA,EAAD,UACE,eAACyB,GAAA,EAAD,WACE,cAACzB,EAAA,EAAD,CAAKvF,UAAU,OAAf,SACE,cAACgH,GAAA,EAAD,CAAKsR,GAAI,CAAEC,OAAQ,EAAGjI,KAAM,GAA5B,SACE,sBAAKrQ,MAAO,CAAEqD,QAAS,OAAQ2Z,MAAO,SAAtC,UACA,eAAC,GAAD,CACInb,QAAS,IAAMsjC,GAAe,GAC9Bv2B,SAAO,EAFX,UAII,mBAAGI,MAAM,qBAJb,eAME,eAAC,GAAD,CACE7O,GAAG,UACH0B,QAAS,IAAMojC,GAAc,GAC7Bv+B,MAAM,UAHR,UAKE,mBAAGsI,MAAM,uBALX,oBAUN,cAAC1J,EAAA,EAAD,UACE,cAAC,KAAD,CACEC,SAAS,KACT/I,KAAMkf,EACNlW,QAnHI,EAAC4/B,EAAa1J,IAAa,CACzC,CACEj2B,UAAW,UACXC,KAAM,UACNK,QAAS,6BAEX,CACEN,UAAW,OACXC,KAAM,UACNK,QAAS,4BACTyI,UAAYC,GAASA,EAAOA,EAAK62B,OAAO,GAAGC,cAAgB92B,EAAKw0B,MAAM,GAAKx0B,GAE7E,CACEhJ,UAAW,KACX+/B,cAAc,EACdh3B,UAAW,CAACC,EAAM3J,EAAK2gC,IACrB,sBAAKzlC,MAAO,CAAEqD,QAAS,QAAvB,UACE,cAAC,GAAD,CACEuL,SAAO,EACP7O,UAAU,sBACV2G,MAAM,UACN2J,KAAK,KACLxO,QAAS,KAAKijC,EAAUhgC,EAAV,EACd4K,UAAW01B,IAAgBtgC,EAAI2P,IAAMmX,EANvC,4BAUA,cAAC,GAAD,CACEhd,SAAO,EACP7O,UAAU,oBACV2G,MAAM,SACN2J,KAAK,KACLxO,QAAS,IAAM0oB,EAAazlB,EAAI2P,IAChC/E,UAAW01B,IAAgBtgC,EAAI2P,IAAMinB,EANvC,yBAwFal2B,CAAQ4/B,EAAa1J,GAC9Bl1B,iBAAkBnB,EAAU,cAACoB,GAAA,EAAD,CAAS9L,KAAK,OAAO+L,MAAM,YAAe,mBAK9E,cAAC,KAAD,CACEojB,UAAU,SACV/lB,OAAQihC,EACR91B,OAAO,UACPlL,OAAQ,IAAMihC,GAAeD,GAJ/B,SAME,cAACpI,GAAD,CACEzd,OAAQA,MAGZ,cAACsP,GAAD,CAASpjB,KAAM65B,EAAa7H,QAAS,IAAI8H,GAAgBD,KACzD,cAAClH,GAAD,CAAeve,WA7DE,CAACtf,EAAI1F,KACpBmxB,IAEJC,GAAY,GACZwZ,EAAellC,GACfT,EACGjD,KAAK,+BAAiC0D,EAAI,CAAExF,KAAOF,IACnD4C,MAAK,IAAoB,IAAjBb,KAAM2C,GAAU,EACnBA,EAAIrB,QACNqhB,GACD,IAEF7Q,SAAQ,IAAMud,GAAY,KAP7B,EAwD2CxgB,KAAMw5B,EAAUxH,QAAS,KAAKyH,EAAU,KAAV,MAG5E,EPsLGriC,OAAQ,SACRy5B,MAAO,CAAC,UAIV,CACEh6B,KAAM,IACNm8B,UQ/VW,WACb,MAAMrjC,EAAO2D,aAAYrB,GAASA,EAAM9C,eAAeQ,QAAS,CAAC,GAC3D,KAAE2G,GAAS3G,EACjB,OAAQ2G,GACN,IAAK,QAAS,OAAO,cAAC,IAAD,CAAUlB,GAAK,cACpC,IAAK,SAAU,OAAO,cAAC,IAAD,CAAUA,GAAK,eACrC,QAAS,OAAO,cAAC,IAAD,CAAUA,GAAK,eAElC,ERwVGgC,OAAQ,UAGV,CACEP,KAAM,UACNm8B,UAAW1J,GACXlyB,OAAQ,SACR87B,OAAQ,SACRrC,MAAO,CAAC,QAAS,UAAW,aAG9B,CACEh6B,KAAM,gBACNm8B,UlC5UW,WAGb,MAAMpwB,EAAUC,eACV,MAAEnM,EAAQ,QAAV,KAAmBJ,GAAShD,aAAYrB,GAASA,EAAM9C,eAAeQ,OAC5E,OACE,eAACoF,EAAA,EAAD,CAAWL,UAAU,iCAAiCC,MAAO,CAAEwD,WAAY,GAA3E,UACE,qBAAKzD,UAAU,iBAAf,yBAGA,cAACO,EAAA,EAAD,UACE,gCACG,kBAGL,cAACgF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK+N,GAAI,EAAT,SACE,cAACrC,GAAA,EAAD,CAAM1S,UAAU,UAAhB,SACE,cAAC2S,GAAA,EAAD,UACE,cAAC,GAAD,CACEgM,OAAQ,cAAC/P,GAAA,EAAD,CAAQjI,MAAM,UAAU7E,QAAS,IAAMoM,EAAQa,KAAK,yBAApD,uBACR6P,QACE,sBAAK/d,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAAlE,UACE,sBAAMI,EAAE,gKAAgKD,KAAc,SAARR,EAAe,UAAU,YACvM,sBAAMS,EAAE,2QAA2QD,KAAc,SAARR,EAAe,UAAU,YAClT,sBAAMS,EAAE,mGAAmGD,KAAc,SAARR,EAAe,UAAU,eAG9IoB,MAAM,cACNyb,SAAS,yCASxB,EkCuSGnc,OAAQ,SACRy5B,MAAO,CAAE,YAEX,CACEh6B,KAAM,wBACNm8B,USjXW,WACb,OACE,eAACj+B,EAAA,EAAD,CACEL,UAAU,iCACVC,MAAO,CAAEwD,WAAY,GAFvB,UAIE,qBAAKzD,UAAU,iBAAf,yBACA,cAACuF,EAAA,EAAD,UACE,cAACyB,GAAA,EAAD,CAAK+N,GAAI,EAAT,SACE,cAACuK,GAAD,UAQT,ETiWG5c,OAAQ,SACR87B,OAAQ,cACRrC,MAAO,CAAE,aAIEkC,MU9Vf,MAAMsH,GAAWxnC,IACf,MAAOynC,EAAcC,GAAmBvnC,mBAAkD,SAAzCzB,aAAaipC,QAAQ,kBAEhE,MAAE9jC,EAAF,KAASJ,GAAShD,aAAYlE,GAASA,EAAMD,eAAeQ,QAAS,CAAE+G,MAAO,UAC7E+jC,EAAY9wB,GAAa3W,mBAAS,OAClC8E,EAAM4iC,GAAW1nC,mBAAS,mBAE3B,SAAEwZ,GAAa3Z,EACrBU,qBAAU,KACRonC,GAAkB,GAClB,CAACnuB,IAEH,MA8CMouB,EAAe7H,GACZA,EAAOh1B,KAAI,CAAC88B,EAAMzoC,IACf,gCACN,cAAC6C,EAAA,EAAD,UACA,gCACG6C,MAGH,cAACgjC,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,CACE3lC,GAAIylC,EAAKhkC,KACTT,IAAK4kC,IACLC,gBAAgB,SAChBtmC,MAAO,CAAEa,OAAQ,IACjBqO,OAAQhR,EAAMgR,OACdvE,OAAQm7B,IAAaI,EAAKxkC,KAC1BG,QAAUgD,GAAIkhC,EAASG,EAAKxkC,MAP9B,UASGwkC,EAAK/jC,KACLwjC,EAAeO,EAAKxkC,KAAO,OAXlBjE,QAqBduoC,EAAmB,KACvB,MAAQnuB,UAAU,SAAEZ,IAAe/Y,EAC7BqoC,EAAc,GAOpB,GANAnI,EAAO5sB,SAAQ,IAAuB,IAAtB,KAAEtP,EAAF,OAAQq8B,GAAa,EAC/BtnB,EAASuE,SAAStZ,EAAKoJ,MAAM,KAAK,KACpCi7B,EAAYz3B,KAAK,CAAE5M,OAAMq8B,UAC1B,IAGCgI,EAAYniC,OAAQ,CACtB,MAAMoiC,EAAariC,IAAEsiC,MAAMF,GAAc,QAAC,KAAErkC,GAAH,SAAcA,EAAKkC,MAAnB,IACzC4Q,EAAUwxB,EAAWjI,OAASiI,EAAWjI,OAAS,KACnD,MAECvpB,EAAU,KACX,GAKG,QAAE1W,EAAF,OAAW8/B,EAAX,KAAmB4E,GAAS9kC,EAClC,IAAIwoC,EAaJ,OAZI1D,GAAQA,EAAK2D,UACfD,EAAmB,CACjBjmC,GAAIuiC,EAAK2D,UACTllC,IAAKG,KAEEohC,GAAQA,EAAK4D,aACtBF,EAAmB,CACjBlmC,KAAMwiC,EAAK4D,WACX13B,OAAQ,WAKV,cAACpP,EAAA,EAAD,CACEC,UAAW,gDAAkD+B,EAAgBC,GAC7E7B,OAAQylC,EAAe,KAAO,QAC9BkB,SAAUlB,EACVxlC,GAAG,eAJL,SAME,eAACC,EAAA,EAAD,CAAWC,OAAK,EAAhB,UAEG2iC,EACC,cAAC8D,EAAA,EAAD,CAAa/mC,UAAU,UAAW2mC,EAAlC,SACE,qBACE/lC,IAAKqiC,EAAK+D,OACVhnC,UAAU,mBACVe,IAAKkiC,EAAKgE,WAGZ,KACJ,cAACjmC,EAAA,EAAD,CAAKC,QAAM,EAAX,SA1HgBo9B,KACpB,MAAMh7B,EAAW,GAoCjB,OAnCAA,EAAS0L,KACP,cAACq3B,EAAA,EAAD,CAAwBpmC,UAAU,gBAAlC,SACE,eAACqmC,EAAA,EAAD,CACEvkC,QAAUgD,IACRA,EAAEwM,iBAVVu0B,GAAiBD,GACjB/oC,aAAaqqC,QAAQ,eAAiBtB,EAAwB,QAAT,OAU/B,EAGhB3lC,MAAO,CAAEkhC,OAAQ,WANnB,UAQE,sBAAKtgC,MAAM,KAAKC,OAAO,KAAKwB,QAAQ,YAAYE,KAAK,OAAOH,MAAM,6BAA6BpC,MAAO2lC,EAAe,CAAC,EAAI,CAAEhL,UAAW,cAAvI,UACE,sBAAMj4B,SAAS,UAAUC,SAAS,UAAUH,EAAE,mzBAAmzBD,KAAK,YACt2B,sBAAMG,SAAS,UAAUC,SAAS,UAAUH,EAAE,y/BAAy/BD,KAAK,eAE7iCojC,EAAe,WAAa,OAbpB,aAiBfviC,EAAS0L,QAAQm3B,EAAY7H,IAC7Bh7B,EAAS0L,KACP,cAACq3B,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,CACE5lC,KAAK,kDACL0O,OAAO,SACPlP,MAAO,CAAEa,OAAQ,IAHnB,UAKE,sBAAKD,MAAM,KAAKC,OAAO,KAAK0B,KAAK,UAAUF,QAAQ,YAAYD,MAAM,6BAArE,UACE,sBAAMI,EAAE,0EACR,sBAAMA,EAAE,uPAETmjC,EAAe,YAAc,OAVrB,aAeRviC,CAAP,EAsFO8jC,CAAajlC,EAAaN,UAnBnC,EA0BF+jC,GAAQyB,aAAe,CACrB/I,OAAQ,CAAC,CAAC,IAoBGsH,U,2CChJA0B,OAlDf,WACE,MAAM,SAAEnwB,GAAaa,cACfuvB,EAAQpwB,EAAS3L,MAAM,KAAKs2B,OAAO,GAGnC0F,EAAU,CACd,QACA,SACA,SACA,QACA,YACA,aACA,2BAEIC,EAAY,GAMlB,OALAF,EAAMriB,OAAM,CAAC9iB,EAAMmH,KACjBk+B,EAAUz4B,KAAK5M,IACPolC,EAAQl+B,KAAKuJ,GAAMzQ,EAAKslC,MAAM70B,KAAIzI,QAAQ4gB,GAAMA,IAAG1mB,UAI3D,8BACE,eAACqjC,GAAA,EAAD,CACEhmC,IAAI,MACJimC,QAAQ,MACR1nC,MAAO,CAAEgd,MAAO,QAASvZ,YAAa,GAAI+H,UAAW,QACrDm8B,cAAeC,KAAOC,mBAJxB,UAME,cAACC,GAAA,EAAD,CAAgBrmC,IAAI,IAAIjB,KAAK,MAA7B,kBAGC+mC,EAAUn+B,KAAI,CAAClH,EAAMmH,IACpB,cAACy+B,GAAA,EAAD,CACEtnC,KACE+mC,EAAUnjC,SAAWiF,EAAI,EACrB,KADJ,aAEUg+B,EAAMpE,MAAM,EAAG55B,EAAI,GAAGkB,KAAK,MAEvC9I,IAAI,IACJkJ,OAAQ48B,EAAUnjC,SAAWiF,EAAI,EACjCrJ,MAAO,CAAE+nC,cAAe,cAR1B,SAUG7lC,EAAKgR,QAAQ,KAAM,aAM/B,EC4Cc80B,I,GAAAA,GArFA9pC,IACb,MAAM+pC,EAAcC,IAAMC,OAAO,MAC3BtwB,EAAWC,cAEjBowB,IAAMtpC,WAAU,KACd0zB,SAAS8V,gBAAgBC,UAAY,EACrC/V,SAASgW,iBAAiBD,UAAY,EACtCJ,EAAYM,QAAQF,UAAY,CAAhC,GACC,CAACxwB,IAEJ,MAAM,MACJ9V,EAAQ,QADJ,gBAEJymC,EAFI,KAGJ7mC,EAAO,YACLhD,aAAalE,GAAUA,EAAMD,eAAeQ,QAAS,CACvD+G,MAAO,QACPJ,KAAM,YA4BR,OACE,sBAAK5B,UAAS,aAAd,UACE,cAACO,EAAA,EAAD,CACEmoC,eAAgB,CACd1mC,MAAOA,GAAS,WAGpB,cAAC,EAAD,IACM7D,EACJwqC,UArBgBxmC,KACpB,IAAK,IAAImH,EAAI,EAAGA,EAAI+0B,GAAOh6B,OAAQiF,IACjC,IAEG,IADDnL,EAAM2Z,SAASZ,SAAS0xB,QAAQvK,GAAO/0B,GAAG5G,OAAS27B,GAAO/0B,GAAGnH,MAG7D,OAAOk8B,GAAO/0B,GAAG3H,KAGrB,MAAO,OAAP,EAYeknC,CAAa1qC,EAAM2Z,SAASZ,YAEzC,sBACElX,UAAU,eACVC,MAAO,CAAEqD,QAAS,OAAQK,KAAM,EAAGyZ,UAAW,UAC9C0N,IAAKod,EAHP,UAKE,cAAC,GAAD,IAAa/pC,EAAOkgC,OAAQA,KAC5B,sBAAKp+B,MAAO,CAAE0D,KAAM,EAAGL,QAAS,OAAQ03B,cAAe,UAAvD,UACE,cAAC,GAAD,IACA,sBAAK/6B,MAAO,CAAE0D,KAAM,GAApB,WACI8kC,GACA,qBAAKxoC,MAAO,CAAE8F,QAAS,IAAvB,SACE,cAAC+J,GAAA,EAAD,CAAOnJ,MAAM,SAAb,6HAMJ,8BACE,eAAC,IAAD,YAtDO03B,EAuDMA,GAtDhBA,EAAOh1B,KAAI,CAAC88B,EAAMzoC,IAEL,WAAhByoC,EAAKzjC,SACHyjC,EAAKhK,OAASgK,EAAKhK,MAAM1gB,SAAS7Z,KAAWukC,EAAKhK,OAE7C,cAAC,IAAD,CAAOh6B,KAAMgkC,EAAKhkC,KAAMm8B,UAAW6H,EAAK7H,UAAqBwK,OAAK,GAAVprC,GAExD,QAgDC,cAAC,IAAD,CAAUqrC,KAAK,IAAIroC,GAAG,uBAxDjB29B,KAyBnB,ECxDa,OAA0B,iCCYzC,MAAM2K,GAAiBxqB,KAAOC,IAAV,6IAiFLwqB,OAvED9qC,IAEZ,MAAOM,EAAgByqC,GAAY5qC,mBAAS,IAE5CO,qBAAU,KACRE,GAAgB,GAChB,IAEF,MAAMoqC,EAAYvqC,aAAYrB,GAASA,EAAM9C,iBAEvC2uC,EAAkBD,EAAU/uC,SAE5B0d,EAAWC,cACjB,GAAIqxB,EAAiB,CACnB,MAAMC,EAAW,IAAI7V,gBAAgB1b,EAAS7R,QAAQrJ,IAAI,aAAe,IACzE,OAAO,cAAC,IAAD,CAAU8D,GAAI2oC,GACtB,CAED,MAeMtqC,EAAgB1C,gBACd4C,MACJC,EAAQ,KAAgCC,SACxC7B,MAAM8B,IACN8pC,EAAS9pC,EAAIC,IAAb,IAEDC,OAAOC,GAAMC,QAAQC,IAAI,MAAOF,IALjC,EAQF,OACE,qCACE,cAACgB,EAAA,EAAD,UACE,sBAAMC,IAAI,gBAAgBC,KAAMhC,MAElC,qBAAKwB,MAAO,CAAEY,MAAO,OAAQC,OAAQ,OAAQge,WAAY,YAAaE,SAAU,WAAYtT,SAAU,QAAtG,SACE,eAACs9B,GAAD,WACE,qBACEpoC,IAAI,MACJX,MAAO,CAAEY,MAAO,IAAKC,OAAQ,KAC7BC,IAAKuoC,KAEP,uBACCH,EAAU9uC,WACT,iCACE,cAACqM,GAAA,EAAD,OAGF,cAAC,IAAD,UA1CS23B,KACjB,MAAMkL,EAAU,GAWhB,OAVAlL,EAAO5sB,SAAQ,CAAC00B,EAAMzoC,KACA,UAAhByoC,EAAKzjC,QACP6mC,EAAQx6B,KACN,cAAC,IAAD,CACE5M,KAAMgkC,EAAKzjC,OAASyjC,EAAKhkC,KACzBm8B,UAAW6H,EAAK7H,WACX5gC,GAJT,IAQG6rC,CAAP,EA+BWC,CAAUnL,aAnBvB,ECpDaoL,OARf,YAAoC,IAAf,SAAEpmC,GAAY,EACjC,MAAM+lC,EAAkBxqC,aAAYrB,GAASA,EAAM9C,eAAeL,WAC5D8T,EAAUC,cACVu7B,EAAUC,mBAAmBz7B,EAAQ4J,SAASZ,SAAWhJ,EAAQ4J,SAAS7R,QAChF,OAA2B,IAApBmjC,EACH/lC,EAAW,cAAC,IAAD,CAAU3C,GAAE,+BAA0BgpC,GAAWv2B,SAAO,GACxE,ECHc,SAASy2B,GAASzrC,GAQ/B,OANAU,qBAAU,KACRc,EACG/C,IAAI,mBACJU,MAAKsV,GAAGpT,QAAQC,IAAImT,EAAEnW,OAFzB,GAGC,IAGD,SAEH,CCPcotC,OAPf,YAAmC,IAAf,SAAExmC,GAAY,EAChC,MAAM,gBAAEolC,GAAoB7pC,aAAYrB,GAASA,EAAM9C,eAAeQ,OAChEiT,EAAUC,cAChB,OAAOs6B,GAAiD,4BAA9Bv6B,EAAQ4J,SAASZ,SACvC7T,EAAW,cAAC,IAAD,CAAU3C,GAAG,0BAA0ByS,SAAO,GAC9D,ECMD,MAAM22B,GAAkB,WAElBC,GAAe,IAAmB,IAAlB,SAAE1mC,GAAe,EACrC,MAAM,KAAE2mC,EAAF,SAAQC,GAAaC,cACrBjvC,EAAO2D,aAAYrB,GAASA,EAAM9C,eAAeQ,OAEvD4D,qBAAU,KACRsrC,GAAa,GACZ,CAAClvC,IAEJ,MAAMkvC,EAAc,KACdlvC,EACF+uC,EAAK,CACHI,MAAON,GACPjY,MAAO52B,EAAK42B,QAGdoY,GACD,EAIH,OAAO5mC,CAAP,EAGIgnC,GAAkB,IAAmB,IAAlB,SAAEhnC,GAAe,EACxC,OACE,cAAC,IAAD,CAAkB+mC,MAAON,GAAzB,SACE,cAACC,GAAD,UAAe1mC,KAFnB,EASI6K,GAAUo8B,cAEhB,SAASC,KACP,MAAMltC,EAAWsB,cAgBjB,OAdAE,qBAAU,KACRqP,GAAQs8B,QAAO,CAAC1yB,EAAUnd,KACxB0C,EAAShC,EAAaG,QAAtB,GADF,GAGC,CAAC6B,IAEJwB,qBAAU,KACRhB,EAAYT,cAAcC,EAA1B,GAMC,CAACA,IAEF,cAACgtC,GAAD,UACE,cAAC,IAAD,CAAQn8B,QAASA,GAAjB,SACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAO/L,KAAK,QAAQsoC,OAAStsC,GAAU,cAAC,GAAD,IAAgBA,MACvD,cAAC,IAAD,CAAOgE,KAAK,WAAWsoC,OAAStsC,GAAU,cAACyrC,GAAD,IAAczrC,MACxD,cAAC,IAAD,CAAOgE,KAAK,IAAIsoC,OAAStsC,GAAU,cAAC,GAAD,UAAa,cAAC,GAAD,UAAY,cAAC,GAAD,IAAiBA,gBAKtF,C,mCC/DD,MAAMusC,GAAmBC,yBAEZptC,GAAQqtC,YACnBrwC,EACAswC,YACEC,IACAJ,KAIJK,IAASN,OACP,cAAC,IAAD,CAAUltC,MAAOA,GAAjB,SACE,cAACgtC,GAAD,MAEFhY,SAASyY,eAAe,Q","file":"static/js/main.b17b460a.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/favicon.e51414bf.ico\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumb_wrapper\":\"styles_breadcrumb_wrapper__1-MRZ\"};","export default __webpack_public_path__ + \"static/media/white.b1b8ac65.png\";","export const userConstants = {\r\n LOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\r\n LOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\r\n LOGIN_2FA: 'USERS_LOGIN_2FA',\r\n LOGIN_2FA_PROGRESS: 'USERS_LOGIN_2FA_PROGRESS',\r\n LOGOUT: 'USERS_LOGOUT', \r\n LOGIN_PROGRESS : 'USERS_LOGIN_PROGRESS',\r\n SET_MSG :'USER_LOGIN_SET_MSG',\r\n CLEAR_MSG :'USER_LOGIN_CLEAR_MSG'\r\n};\r\n\r\nexport const alertConstants = {\r\n SUCCESS: 'ALERT_SUCCESS',\r\n ERROR: 'ALERT_ERROR',\r\n CLEAR: 'ALERT_CLEAR'\r\n};\r\n\r\nexport const endpointFiltersConstants = {\r\n CHANGE: 'ENDPOINT_FILTER_CHANGE',\r\n CLEAR: 'ALERT_CLEAR'\r\n};\r\n","import { userConstants } from '../_constants';\r\n\r\nimport { isEqual } from 'lodash'\r\n\r\nconst initialState = { loggedIn: false, firstLoad : true }\r\n\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case userConstants.LOGIN_PROGRESS:\r\n return {\r\n loginProgess: true,\r\n isWorking: true,\r\n };\r\n case userConstants.LOGIN_2FA:\r\n return {\r\n loginProgess: true,\r\n TwoFA: true,\r\n isWorking: false\r\n }\r\n case userConstants.LOGIN_2FA_PROGRESS:\r\n return {\r\n loginProgess: true,\r\n TwoFA: true,\r\n isWorking: true\r\n }\r\n case userConstants.LOGIN_SUCCESS:\r\n if (!isEqual(state.user, action.user)) {\r\n return {\r\n loggedIn: true,\r\n user: action.user\r\n };\r\n }\r\n return state\r\n case userConstants.LOGOUT:\r\n if (state.loginProgess)\r\n return state\r\n return {}\r\n case userConstants.LOGIN_FAILURE:\r\n if (state.loginProgess) {\r\n if (state.TwoFA)\r\n return state\r\n }\r\n return {}\r\n default:\r\n return state\r\n }\r\n}","import { endpointFiltersConstants } from '../_constants';\r\nconst initialState = { filters: {} }\r\n\r\nexport function endpointFilters(state = initialState, action) {\r\n switch (action.type) {\r\n case endpointFiltersConstants.CHANGE:\r\n return {\r\n type: 'filter-change',\r\n filters: action.filters\r\n };\r\n default:\r\n return state\r\n }\r\n}","import { combineReducers } from 'redux';\r\n\r\nimport { authentication } from './authentication.reducer';\r\nimport { alert } from './alert.reducer';\r\nimport { endpointFilters } from './endpointfilters.reducer'\r\n\r\nconst rootReducer = combineReducers({\r\n authentication,\r\n alert,\r\n endpointFilters\r\n});\r\n\r\nexport default rootReducer;","import { alertConstants } from '../_constants';\r\n\r\nexport function alert(state = {}, action) {\r\n switch (action.type) {\r\n case alertConstants.SUCCESS:\r\n return {\r\n type: 'success',\r\n message: action.message\r\n };\r\n case alertConstants.ERROR:\r\n return {\r\n type: 'danger',\r\n message: action.message\r\n };\r\n case alertConstants.CLEAR:\r\n return {};\r\n default:\r\n return state\r\n }\r\n}","import { alertConstants } from '../_constants';\r\n\r\nfunction success(message) {\r\n return { type: alertConstants.SUCCESS, message };\r\n}\r\n\r\nfunction error(message) {\r\n return { type: alertConstants.ERROR, message };\r\n}\r\n\r\nfunction clear() {\r\n return { type: alertConstants.CLEAR };\r\n}\r\n\r\nexport const alertActions = {\r\n success,\r\n error,\r\n clear\r\n};","\r\nconst host = process.env.NODE_ENV===\"production\" ? '/'\r\n : 'https://localhost:7173/'\r\n // : 'https://cs-prod-portal-app-stage.azurewebsites.net/'\r\n\r\nconst config = {\r\n apiHost: host,\r\n apiUrl : host + 'spa_api'\r\n};\r\n\r\nexport default config;","import AppConfig from 'config'\r\nimport Axios from 'axios'\r\n\r\nconst Client = Axios.create({\r\n baseURL: AppConfig.apiUrl,\r\n withCredentials : true\r\n})\r\n\r\n\r\nexport default Client","import Client from 'services/WebAPI'\r\n\r\nasync function login(username, password, rememberUser = false) {\r\n const { data } = await Client.post('Login/Login', { username, password, rememberUser })\r\n return data\r\n}\r\n\r\nasync function submit2FA(code, rememberUser = false, rememberMachine = false) {\r\n const { data } = await Client.post('Login/TwoFALogin', { code, rememberUser, rememberMachine })\r\n return data\r\n}\r\n\r\nasync function logout() {\r\n await Client.get('Login/Logout')\r\n localStorage.removeItem('user');\r\n}\r\n\r\nasync function getUser() {\r\n try {\r\n const { data } = await Client.get('Login/GetUser');\r\n return data.user\r\n }\r\n catch {}\r\n return false\r\n}\r\n\r\nexport const userService = {\r\n login,\r\n logout,\r\n getUser,\r\n submit2FA\r\n};","import store from \"store\"; \r\nimport { alertConstants, userConstants } from '../_constants';\r\nimport { userService } from '../_services';\r\nimport { alertActions } from '../_actions'\r\n\r\nfunction request() { return { type: userConstants.LOGIN_PROGRESS } }\r\nfunction request2FA() { return { type: userConstants.LOGIN_2FA_PROGRESS } }\r\nfunction success(user) { return { type: userConstants.LOGIN_SUCCESS, user } }\r\nfunction failure(error) { return { type: userConstants.LOGIN_FAILURE, error } }\r\nfunction twoFA() { return { type: userConstants.LOGIN_2FA } }\r\n\r\nfunction login(username, password, rememberUser) {\r\n return dispatch => {\r\n dispatch(request())\r\n dispatch(alertActions.clear())\r\n userService.login(username, password, rememberUser).then(result => {\r\n if (result.status) {\r\n if (result.twoFAactive) {\r\n dispatch(twoFA())\r\n } else {\r\n dispatch(alertActions.success(\"Login success!\"))\r\n getAndSetUser(dispatch)\r\n }\r\n } else {\r\n dispatch({ type: alertConstants.ERROR, message: 'Invalid Login' })\r\n dispatch({ type: userConstants.LOGIN_FAILURE })\r\n }\r\n });\r\n };\r\n\r\n\r\n}\r\n\r\nfunction twoFASubmit(code, rememberUser, rememberMachine) {\r\n return dispatch => {\r\n dispatch(request2FA())\r\n dispatch(alertActions.clear())\r\n userService.submit2FA(code, rememberUser, rememberMachine).then(result => {\r\n if (result.status) {\r\n dispatch(alertActions.success(\"Login success!\"))\r\n getAndSetUser(dispatch)\r\n } else {\r\n dispatch({ type: alertConstants.ERROR, message: 'Invalid Token' })\r\n dispatch(twoFA())\r\n }\r\n })\r\n\r\n }\r\n}\r\n\r\nfunction getAndSetUser(dispatch, loggedIn) {\r\n userService.getUser().then(user => {\r\n if (user) {\r\n dispatch(success(user));\r\n } else {\r\n store.each((value, key) => {\r\n if (key.startsWith('app.endpointFilters.')) {\r\n store.remove(key);\r\n }\r\n });\r\n dispatch({ type: userConstants.LOGOUT });\r\n }\r\n })\r\n}\r\n\r\nfunction logout() {\r\n userService.logout();\r\n return { type: userConstants.LOGOUT };\r\n}\r\n\r\nexport const userActions = {\r\n login,\r\n logout,\r\n twoFASubmit,\r\n getAndSetUser\r\n};","import { Link } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n// reactstrap components\r\nimport {\r\n DropdownMenu,\r\n DropdownItem,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n Navbar,\r\n Nav,\r\n Container,\r\n Media,\r\n} from \"reactstrap\";\r\nimport { userActions } from \"redux/_actions\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport WebAPI from \"services/WebAPI\";\r\n\r\n\r\nconst AdminNavbar = (props) => {\r\n const [partnerLogo, setPLogo]= useState('')\r\n const [bgColor, setBgColor] = useState('')\r\n const [partnerFavicon, setPfavicon]= useState('')\r\n const dispatch = useDispatch()\r\n const user = useSelector(store => store.authentication.user)\r\n useEffect(()=>{\r\n prepareLogo()\r\n prepareFavicon()\r\n fetchPartnerLogo()\r\n },[])\r\n\r\n const prepareLogo= async()=>{\r\n await fetch(\r\n require(\"../../assets/img/brand/white.png\").default\r\n ).then((res) => {\r\n setPLogo(res.url);\r\n })\r\n .catch((err)=>console.log('err', err))\r\n }\r\n\r\n const prepareFavicon= async()=>{\r\n await fetch(\r\n require(\"../../assets/img/brand/favicon.ico\").default\r\n ).then((res) => {\r\n setPfavicon(res.url);\r\n })\r\n .catch((err)=>console.log('err', err))\r\n }\r\n\r\n const fetchPartnerLogo=async()=>{\r\n const resp=await WebAPI.get('Partner/FetchPartnerPreference')\r\n if(resp.data.status&& resp.data.data && resp.data.data.LogoLargeUrl && resp.data.data.LogoMiniUrl)\r\n {\r\n setPfavicon(resp.data.data.LogoMiniUrl)\r\n setPLogo(resp.data.data.LogoLargeUrl)\r\n setBgColor(resp.data.data.Color)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {/* add favicon Url */}\r\n {partnerFavicon&&(\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\nexport default AdminNavbar;\r\n","\r\n\r\nexport const getSideBarClass = (theme) => {\r\n return theme === 'dark' ? 'navbar-dark bg-dark' : 'navbar-light bg-white' \r\n}\r\n\r\nconst getGlobalStyles = (component) => {\r\n const styling = component === 'sidebar' ? getSideBarClass() : ''\r\n return styling;\r\n}\r\n\r\nexport default getGlobalStyles","\r\nvar menuBarItems = {\r\n \"admin\": [\r\n {\r\n path: \"/dashboard\",\r\n name: \"Dashboard\",\r\n icon: \r\n \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/partners\",\r\n name: \"Partners\",\r\n icon: \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/customers\",\r\n name: \"Customers\",\r\n icon: \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/endpoints\",\r\n name: \"Endpoints\",\r\n icon: \r\n \r\n , \r\n layout: \"/admin\",\r\n }, \r\n {\r\n path: \"/alerts\",\r\n name: \"Alerts\",\r\n icon: \r\n \r\n ,\r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/reports\",\r\n name: \"Reports\",\r\n icon: \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\",\r\n },\r\n /* {\r\n path: \"/reporting\",\r\n name: \"Reporting\",\r\n icon: \r\n \r\n , \r\n layout: \"/admin\",\r\n }, */\r\n {\r\n path: \"/users\",\r\n name: \"Users\",\r\n icon: \r\n \r\n \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\",\r\n },\r\n {\r\n path: \"/upgrade_manager\",\r\n name:\"Upgrade Manager\",\r\n icon: \r\n \r\n \r\n \r\n ,\r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/billing/history/all/0\",\r\n name:\"Billings\",\r\n icon: \r\n ,\r\n layout: \"/admin\"\r\n }\r\n ],\r\n \"partner\": [\r\n /* {\r\n path: \"/dashboard\",\r\n name: \"Dashboard\",\r\n icon: \r\n \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\"\r\n }, */\r\n {\r\n path: \"/customers\",\r\n name: \"Customers\",\r\n icon: \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/endpoints\",\r\n name: \"Endpoints\",\r\n icon: \r\n \r\n , \r\n layout: \"/admin\",\r\n }, \r\n {\r\n path: \"/alerts\",\r\n name: \"Alerts\",\r\n icon: ,\r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/reports\",\r\n name: \"Reports\",\r\n icon: \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\",\r\n }, \r\n /* {\r\n path: \"/reporting\",\r\n name: \"Reporting\",\r\n icon: \r\n \r\n , \r\n layout: \"/admin\",\r\n }, */\r\n {\r\n path: \"/users\",\r\n name: \"Users\",\r\n icon: \r\n \r\n \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\",\r\n },\r\n {\r\n path: \"/integrations\",\r\n name:\"Integration\",\r\n icon: \r\n ,\r\n layout: \"/admin\"\r\n }\r\n ],\r\n \"customer\": [\r\n {\r\n path: \"/endpoints\",\r\n name: \"Endpoints\",\r\n icon: \r\n \r\n , \r\n layout: \"/admin\",\r\n }, \r\n {\r\n path: \"/alerts\",\r\n name: \"Alerts\",\r\n icon: ,\r\n layout: \"/admin\"\r\n },\r\n {\r\n path: \"/users\",\r\n name: \"Users\",\r\n icon: \r\n \r\n \r\n \r\n \r\n \r\n \r\n , \r\n layout: \"/admin\",\r\n }\r\n ]\r\n}\r\n\r\nexport default menuBarItems;\r\n","import React from \"react\";\r\nimport { Modal } from \"reactstrap\";\r\nimport _ from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nconst FormRow = ({ title, children }) => (\r\n
\r\n

{title}

\r\n

:

\r\n

{children}

\r\n
\r\n);\r\n\r\nfunction AttackView({ attack, onClose }) {\r\n return (\r\n onClose()}>\r\n
\r\n Alert Details\r\n {\r\n onClose();\r\n }}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n {attack\r\n ? moment(_.get(attack, \"Attack.Time\")+(_.get(attack, \"Attack.Time\")[_.get(attack, \"Attack.Time\").length-1]===\"Z\"?\"\":\"Z\")).format(\r\n \"YYYY-MM-DD, h:mm:ss a\"\r\n )\r\n : \"\"}\r\n \r\n {_.get(attack, \"Attack.ProcessName\")}\r\n \r\n {_.get(attack, \"Attack.ProcessId\")}\r\n \r\n \r\n {_.get(attack, \"Attack.LastFileName\")}\r\n \r\n {_.get(attack, \"Device.Hostname\")}\r\n \r\n {_.get(attack, \"Attack.IpAddress\")}\r\n \r\n {_.get(attack, \"Attack.User\")}\r\n \r\n {_.get(attack, \"Customer.CompanyName\")}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AttackView;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Col, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider from \"react-bootstrap-table2-toolkit\";\r\nimport AttackView from \"./view\";\r\n\r\nexport default function EndpointTable(props) {\r\n const [rowData, setRowData] = useState([]);\r\n const [selected, setSelected] = useState(null);\r\n\r\n useEffect(() => {\r\n const { endpoints } = props;\r\n setRowData(endpoints);\r\n }, [props]);\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n setSelected(row);\r\n },\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"Device.Hostname\",\r\n text: \"Endpoint\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"Attack.ProcessName\",\r\n text: \"Process\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n //custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData?.length,\r\n sizePerPage: 5,\r\n hideSizePerPage: true,\r\n };\r\n\r\n const { loading } = props;\r\n\r\n return (\r\n \r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\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 setSelected(null)} />\r\n
\r\n );\r\n}\r\n","import { useState, useEffect } from \"react\";\r\nimport { Container, Row, Spinner } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Legend,\r\n Tooltip,\r\n Cell,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\nimport EndpointsTable from \"./table\";\r\n\r\nconst COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\r\nconst COLORS02 = {\r\n Healthy: \"#44b840\",\r\n Unhealthy: \"#e33b43\",\r\n};\r\nconst COLORS04 = {\r\n Latest: \"#44b840\",\r\n Previous: \"#c77f04\",\r\n Old: \"#c7c240\",\r\n \"Very old\": \"#e33b43\",\r\n};\r\nconst COLORS05 = {\r\n Healthy: \"#44b840\",\r\n Unhealthy: \"#e33b43\",\r\n};\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({\r\n cx,\r\n cy,\r\n midAngle,\r\n innerRadius,\r\n outerRadius,\r\n percent,\r\n index,\r\n}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst Visualization = (props) => {\r\n const {\r\n loading = false,\r\n recentAlerts = [],\r\n versionHealth = [],\r\n workstationDetails = [],\r\n serverHealth = [],\r\n serverDetails = [],\r\n workstationHealth = [],\r\n } = props;\r\n\r\n const data01 =\r\n recentAlerts.map((i) => ({\r\n endpoints: i.Device.Hostname,\r\n process: i.Attack.ProcessName,\r\n })) || [];\r\n\r\n const data02 = [\r\n {\r\n name: \"Healthy\",\r\n value: serverHealth?.healthyCount,\r\n },\r\n {\r\n name: \"Unhealthy\",\r\n value: serverHealth?.unHealthyCount,\r\n },\r\n ];\r\n\r\n const data03 = [\r\n { name: \"Offline\", value: serverDetails?.offlineServerData || 0 },\r\n { name: \"Failed Updates\", value: serverDetails?.failedServerCount || 0 },\r\n { name: \"Firewall Status\", value: serverDetails?.firewallStatus || 0 },\r\n ];\r\n\r\n const data04 = [\r\n {\r\n name: \"Latest\",\r\n value:\r\n versionHealth.filter((i) => i.HealthColor === \"Green\")[0]?.DeviceList\r\n ?.length || 0,\r\n version: [\r\n ...new Set(\r\n versionHealth\r\n .filter((i) => i.HealthColor === \"Green\")[0]\r\n ?.DeviceList.map((i) => i.Version)\r\n ),\r\n ].join(\", \"),\r\n },\r\n {\r\n name: \"Previous\",\r\n value:\r\n versionHealth.filter((i) => i.HealthColor === \"Yellow\")[0]?.DeviceList\r\n ?.length || 0,\r\n version: [\r\n ...new Set(\r\n versionHealth\r\n .filter((i) => i.HealthColor === \"Amber\")[0]\r\n ?.DeviceList.map((i) => i.Version)\r\n ),\r\n ].join(\", \"),\r\n },\r\n {\r\n name: \"Old\",\r\n value:\r\n versionHealth.filter((i) => i.HealthColor === \"Amber\")[0]?.DeviceList\r\n ?.length || 0,\r\n version: [\r\n ...new Set(\r\n versionHealth\r\n .filter((i) => i.HealthColor === \"Yellow\")[0]\r\n ?.DeviceList.map((i) => i.Version)\r\n ),\r\n ].join(\", \"),\r\n },\r\n {\r\n name: \"Very old\",\r\n value:\r\n versionHealth.filter((i) => i.HealthColor === \"Red\")[0]?.DeviceList\r\n ?.length || 0,\r\n version: [\r\n ...new Set(\r\n versionHealth\r\n .filter((i) => i.HealthColor === \"Red\")[0]\r\n ?.DeviceList.map((i) => i.Version)\r\n ),\r\n ].join(\", \"),\r\n },\r\n ];\r\n\r\n function CustomTooltip({ payload, label, active }) {\r\n if (active) {\r\n return (\r\n
\r\n Count: {payload[0]?.value}\r\n
Version: {payload[0]?.payload?.version}
\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function CustomTooltipIssues({ payload, label, active }) {\r\n if (active) {\r\n return (\r\n
\r\n
{payload[0]?.name}
\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const data05 = [\r\n {\r\n name: \"Healthy\",\r\n value: workstationHealth?.healthyCount,\r\n },\r\n {\r\n name: \"Unhealthy\",\r\n value: workstationHealth?.unHealthyCount,\r\n },\r\n ];\r\n\r\n const data06 = [\r\n { name: \"Offline\", value: workstationDetails?.offlineWorkstationData || 0 },\r\n {\r\n name: \"Failed Updates\",\r\n value: workstationDetails?.failedEndpointsCount || 0,\r\n },\r\n {\r\n name: \"Firewall Status\",\r\n value: workstationDetails?.firewallOffCount || 0,\r\n },\r\n ];\r\n\r\n const serverMap = (event, version) => {\r\n switch (event) {\r\n case \"Offline\": {\r\n window.open(\"/#/endpoints?device=Server&status=Offline\");\r\n break;\r\n }\r\n case \"Firewall Status\": {\r\n window.open(\"/#/endpoints?device=Server&firewall=false\");\r\n break;\r\n }\r\n case \"Version\": {\r\n window.open(`/#/endpoints?version=${version.split(', ').join()}`);\r\n break;\r\n }\r\n case \"Healthy\": {\r\n window.open(\"/#/endpoints?device=Server&health=true\");\r\n break;\r\n }\r\n case \"Unhealthy\": {\r\n window.open(\"/#/endpoints?device=Server&health=false\");\r\n break;\r\n }\r\n case \"Failed Updates\": {\r\n window.open(\"/#/endpoints?device=Server&failedUpdates=true\");\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const workstationMap = (event) => {\r\n switch (event) {\r\n case \"Offline\": {\r\n window.open(\"/#/endpoints?device=Desktop&status=Offline\");\r\n break;\r\n }\r\n case \"Firewall Status\": {\r\n window.open(\"/#/endpoints?device=Desktop&firewall=false\");\r\n break;\r\n }\r\n case \"Healthy\": {\r\n window.open(\"/#/endpoints?device=Desktop&health=true\");\r\n break;\r\n }\r\n case \"Unhealthy\": {\r\n window.open(\"/#/endpoints?device=Desktop&health=false\");\r\n break;\r\n }\r\n case \"Failed Updates\": {\r\n window.open(\"/#/endpoints?device=Desktop&failedUpdates=true\");\r\n break;\r\n }\r\n default:\r\n break;\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
Most Recent Alerts
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Server Health
\r\n {serverHealth.length===0 &&(
)}\r\n \r\n {data02.filter((i)=>i.value!==0).length===0 && (
No Data
)}\r\n \r\n \r\n i.value!==0).length===0 ? [] : data02}\r\n labelLine={false}\r\n label={renderCustomizedLabel}\r\n //outerRadius={150}\r\n fill=\"#8884d8\"\r\n dataKey=\"value\"\r\n onClick={(e)=>serverMap(e?.payload?.payload?.name)}\r\n >\r\n {(data02.filter((i)=>i.value!==0).length===0 ? [] : data02).map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Server Issues
\r\n {serverDetails.length===0 &&(
)}\r\n \r\n {data03.filter((i)=>i.value!==0).length===0 && (
No Issues
)}\r\n \r\n \r\n i.value!==0).length===0 ? [] : data03}\r\n labelLine={false}\r\n label={renderCustomizedLabel}\r\n //outerRadius={150}\r\n fill=\"#8884d8\"\r\n dataKey=\"value\"\r\n onClick={(e)=>serverMap(e?.payload?.payload?.name)}\r\n >\r\n {(data03.filter((i)=>i.value!==0).length===0 ? [] : data03).map((entry, index) => (\r\n \r\n ))}\r\n \r\n }/>\r\n \r\n
\r\n
\r\n \r\n \r\n {/* secondRow */}\r\n \r\n \r\n
\r\n
Version Health
\r\n {versionHealth.length===0 &&(
)}\r\n \r\n {data04.filter((i)=>i.value!==0).length===0 && (
No Data
)}\r\n \r\n \r\n i.value!==0).length===0 ? [] : data04}\r\n labelLine={false}\r\n label={renderCustomizedLabel}\r\n //outerRadius={150}\r\n fill=\"#8884d8\"\r\n dataKey=\"value\"\r\n onClick={(e)=>serverMap(\"Version\",e?.payload?.payload?.version)}\r\n >\r\n {(data04.filter((i)=>i.value!==0).length===0 ? [] : data04).map((entry, index) => (\r\n \r\n ))}\r\n \r\n } />\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Workstation Health
\r\n {workstationHealth.length===0 &&(
)}\r\n \r\n {data05.filter((i)=>i.value!==0).length===0 && (
No Data
)}\r\n \r\n \r\n i.value!==0).length===0 ? [] : data05}\r\n labelLine={false}\r\n label={renderCustomizedLabel}\r\n //outerRadius={150}\r\n fill=\"#8884d8\"\r\n dataKey=\"value\"\r\n onClick={(e)=>workstationMap(e?.payload?.payload?.name)}\r\n >\r\n {(data05.filter((i)=>i.value!==0).length===0 ? [] : data05).map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
Workstation Issues
\r\n {workstationDetails.length===0 &&(
)}\r\n \r\n {data06.filter((i)=>i.value!==0).length===0 && (
No Issues
)}\r\n \r\n \r\n i.value!==0).length===0 ? [] : data06}\r\n labelLine={false}\r\n label={renderCustomizedLabel}\r\n //outerRadius={150}\r\n fill=\"#8884d8\"\r\n dataKey=\"value\"\r\n onClick={(e)=>workstationMap(e?.payload?.payload?.name)}\r\n >\r\n {(data06.filter((i)=>i.value!==0).length===0 ? [] : data06).map((entry, index) => (\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\nexport default Visualization;\r\n","import { result } from \"lodash\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row } from \"reactstrap\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\n\r\nimport Visualization from \"./visualization\";\r\n\r\nconst Dashboard = () => {\r\n const [recentAlerts, setRecentAlerts] = useState([]);\r\n const [versionHealth, setVersionHealth] = useState([]);\r\n const [workstationDetails, setWorkstationDetails] = useState([]);\r\n const [serverDetails, setServerDetails] = useState([]);\r\n const [worstationHealth, setWorkstationHealth] = useState([]);\r\n const [serverHealth, setServerHealth] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchVersionHealth();\r\n fetchMostRecentAlert();\r\n fetchWSDetails();\r\n fetchServerDetails();\r\n fetchWorkstationHealth();\r\n fetchServerHealthDetails();\r\n }, []);\r\n\r\n const fetchVersionHealth = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Dashboard/GetVersionHealth\");\r\n if (resp.data.status) setVersionHealth(resp.data.data);\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n const fetchMostRecentAlert = async () => {\r\n try {\r\n setLoading(true)\r\n const resp = await WebAPI.get(\"Dashboard/GetMostRecentAlert\");\r\n if (resp.data.status) setRecentAlerts(resp.data.data);\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setLoading(false)\r\n };\r\n\r\n const fetchServerDetails = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Dashboard/GetDashboardServerDetails\");\r\n if (resp.data.status) setServerDetails(resp.data.data);\r\n } catch (error) {\r\n console.log(\"error server Details\", error);\r\n }\r\n };\r\n\r\n const fetchWSDetails = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Dashboard/GetDashboardWorkstationDetails\");\r\n if (resp.data.status) setWorkstationDetails(resp.data.data);\r\n } catch (error) {\r\n console.log(\"errorDSH\", error);\r\n }\r\n };\r\n //working\r\n const fetchWorkstationHealth = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Dashboard/GetWorkStationHealthDetails\");\r\n if (resp.data.status) setWorkstationHealth(resp.data.data[0]);\r\n } catch (error) {\r\n console.log(\"error WH\", error);\r\n }\r\n };\r\n //working\r\n const fetchServerHealthDetails = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Dashboard/GetServerHealthDetails\");\r\n if (resp.data.status) setServerHealth(resp.data.data[0]);\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
Dashboard
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","import { alertActions } from 'redux/_actions'\r\nimport API from 'services/WebAPI'\r\n\r\nexport async function getList() {\r\n try {\r\n const response = await API.get('Partner/List')\r\n const { data, status } = response.data\r\n if (status)\r\n return data\r\n }\r\n catch { }\r\n return []\r\n}\r\n\r\n\r\nexport async function getPartner(id) {\r\n try {\r\n const response = await API.get(`Partner/Get/${id}`)\r\n const { data, status } = response.data\r\n if (status)\r\n return data\r\n\r\n }\r\n catch {\r\n\r\n }\r\n return false\r\n}\r\n\r\nexport async function editPartner(id, partner, dispatch) {\r\n try {\r\n const response = await API.post(`Partner/Edit/${id}`, partner)\r\n const { data, status, message } = response.data\r\n if (!status)\r\n dispatch(alertActions.error(message))\r\n else \r\n dispatch(alertActions.success(\"Updated\"))\r\n return status\r\n }\r\n catch { dispatch(alertActions.error(\"Error editing partner\")) }\r\n return false\r\n}\r\n\r\nexport async function deletePartner(id) {\r\n try {\r\n const response = await API.post(`Partner/deletepartner/${id}`);\r\n const { status } = response.data;\r\n if (status) return true;\r\n } catch {}\r\n return false;\r\n}\r\n\r\nexport async function addPartner(partner, dispatch) {\r\n try {\r\n const response = await API.post(`Partner/Add`, partner)\r\n const { data, status, message } = response.data\r\n if (status)\r\n return data\r\n else\r\n dispatch(alertActions.error(message))\r\n }\r\n catch {\r\n dispatch(alertActions.error(\"Error adding new partner\"))\r\n }\r\n\r\n return false\r\n}","import { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row,Spinner, UncontrolledTooltip } from \"reactstrap\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory,\r\n{ PaginationProvider, SizePerPageDropdownStandalone, PaginationTotalStandalone, PaginationListStandalone }\r\n from 'react-bootstrap-table2-paginator';\r\nimport ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport { getList } from './service.js'\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst { SearchBar } = Search;\r\n\r\nconst PartnerList = () => {\r\n const [selectedRow, setSelectedRow] = useState([]);\r\n const [rowData, setRowData] = useState([]);\r\n const [loading,setLoading] = useState(false)\r\n\r\n let history = useHistory()\r\n const dispatch = useDispatch()\r\n const user = useSelector((s) => s.authentication.user)\r\n\r\n useEffect(() => {\r\n loadTable()\r\n }, [])\r\n\r\n const loadTable = () => {\r\n setLoading(true)\r\n getList(dispatch).then(setRowData).finally(()=>setLoading(false))\r\n }\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const newSelection = isSelect ?\r\n [...selectedRow, row.PartnerId] : selectedRow.filter(x => x !== row.PartnerId)\r\n setSelectedRow(newSelection)\r\n }\r\n\r\n const handleOnSelectAll = (isSelect, rows) => {\r\n const ids = rows.map(r => r.PartnerId);\r\n isSelect ? setSelectedRow(ids) : setSelectedRow([])\r\n }\r\n\r\n const handlePartnerDelete = () => {\r\n console.log(\"delete entries\", selectedRow)\r\n }\r\n\r\n/* const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n history.push(`/partners/edit_partner/${row.PartnerId}`)\r\n },\r\n };*/\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n clickToSelect: false,\r\n selected: selectedRow,\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleOnSelectAll\r\n };\r\n\r\n const columns = [{\r\n dataField: 'PartnerId',\r\n text: 'ID',\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: '10%' },\r\n }, {\r\n dataField: 'EntityName',\r\n text: 'Partner Name',\r\n sort: true,\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '20%' },\r\n searchable: true\r\n }, {\r\n dataField: 'FirstName',\r\n text: 'First Name',\r\n sort: true,\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '15%' },\r\n searchable: true\r\n }, {\r\n dataField: 'LastName',\r\n text: 'Last Name',\r\n sort: true,\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '15%' },\r\n searchable: true\r\n }, {\r\n dataField: 'Email',\r\n sort: true,\r\n text: 'Contact Email',\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '20%' },\r\n searchable: true\r\n },\r\n {\r\n sort: false,\r\n text: 'Actions',\r\n classes: 'common-table-column-style',\r\n searchable: false,\r\n headerStyle: { width: \"20%\" },\r\n formatter: function (cell, row) {\r\n return (\r\n
\r\n \r\n history.push(`/partners/edit_partner/${row.PartnerId}`)\r\n }\r\n >\r\n \r\n \r\n Edit Partner\r\n \r\n \r\n\r\n \r\n history.push(\"/partners/list_customers/\" + row.PartnerId)\r\n }\r\n >\r\n \r\n \r\n View Customer\r\n \r\n \r\n {user.role === \"admin\" && (\r\n \r\n history.push(`/Endpoints/ListFromPartner/${row.PartnerId}`)\r\n }\r\n >\r\n \r\n \r\n View Endpoints\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n }];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData.length\r\n };\r\n\r\n return (\r\n \r\n
Partners
\r\n \r\n \r\n {\"Partners\"}\r\n \r\n \r\n \r\n
\r\n \r\n {props => (\r\n \r\n {\r\n ({\r\n paginationProps,\r\n paginationTableProps\r\n }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n {selectedRow.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n history.push(\"/partners/add_partner\")}\r\n >\r\n Add New Partner\r\n \r\n \r\n \r\n : \"No Data\"}\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\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\nexport default PartnerList;","import React from 'react'\r\nimport { Button } from 'reactstrap'\r\n\r\nexport default function TButton({ isLoading = false, ...props }) {\r\n\r\n return (\r\n \r\n )\r\n}","import { useSelector } from \"react-redux\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\nexport default function AlertMessage() {\r\n const alertMesssage = useSelector(state => state.alert)\r\n if (alertMesssage.type){\r\n return ({alertMesssage.message})\r\n }\r\n return null\r\n}\r\n\r\n","import { useEffect, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n UncontrolledTooltip\r\n} from \"reactstrap\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport Button from 'components/Inputs/TButton'\r\nimport validator from 'validator';\r\nimport Alert from \"components/Alert\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst PopConfirm = ({ onOk }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () =>{\r\n if (onOk) onOk()\r\n SetModal(false)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n SetModal(false)}>\r\n SetModal(false)}\r\n >\r\n Are you sure to delete this partner?\r\n \r\n \r\n As a result of this action all customers, customer endpoints, and user accounts associated with this partner will be deleted from the system. Please change the partner mapping of customer if you wish to keep the customer account.\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PartnerForm = (props) => {\r\n const [formState, setFormState] = useState({\r\n EntityName: '',\r\n FirstName: '',\r\n LastName: '',\r\n Email: '',\r\n })\r\n let history= useHistory()\r\n const {id} = useParams()\r\n\r\n useEffect(() => {\r\n if (props.partner)\r\n setFormState(props.partner)\r\n }, [props.partner])\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n EntityName: false,\r\n FirstName: false,\r\n LastName: false,\r\n Email: false,\r\n });\r\n\r\n const user = useSelector((s) => s.authentication.user)\r\n\r\n const handleSave = (e) => {\r\n let flag = 0\r\n e.preventDefault();\r\n Object.entries(formState).forEach(([a, b]) => {\r\n if (a !=='PartnerId' && validator.isEmpty(b)) {\r\n flag = 1\r\n invalidFormState[a] = true\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n });\r\n\r\n if (flag === 0) props.shareFormData(formState)\r\n }\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n const handleDelete = () => {\r\n if(props.deletePartner){\r\n props.deletePartner()\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 Please enter a partner name\r\n \r\n \r\n \r\n \r\n Please enter a contact first name\r\n \r\n \r\n \r\n \r\n Please enter a contact last name\r\n \r\n \r\n \r\n \r\n Please enter a valid Email\r\n \r\n
\r\n history.push(`/billing/partner/${id}`)}\r\n >\r\n Manage Billing\r\n \r\n history.push(`/billing/invoice/partner/${id}`)}\r\n >\r\n \r\n Create Invoice\r\n \r\n
\r\n \r\n {props.editMode && (\r\n
\r\n \r\n \r\n \r\n \r\n View Customer\r\n \r\n \r\n {user.role === \"admin\" && (\r\n history.push(`/Endpoints/ListFromPartner/${id}`)}\r\n >\r\n \r\n \r\n View Endpoints\r\n \r\n \r\n )}\r\n
\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PartnerForm;","import { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container\r\n} from \"reactstrap\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport PartnerForm from \"./form\";\r\n\r\nimport { addPartner } from './service'\r\n\r\nconst PartnerAdd = () => {\r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const savePartner = async (partnerData) => {\r\n const r = await addPartner(partnerData, dispatch)\r\n if (r) {\r\n history.push('/partners')\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.push('/partners')}\r\n >\r\n \r\n \r\n Add Partner\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\nexport default PartnerAdd;","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container\r\n} from \"reactstrap\";\r\n\r\nimport AlertMessage from 'components/Alert'\r\nimport { alertActions } from 'redux/_actions'\r\n\r\nimport PartnerForm from \"./form\";\r\n\r\nimport { getPartner, editPartner, deletePartner } from './service'\r\n\r\nconst PartnerEdit = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n\r\n const [partner, setPartner] = useState(null)\r\n\r\n useEffect(() => {\r\n dispatch(alertActions.clear())\r\n getPartner(id).then(result => {\r\n if (result) {\r\n setPartner(result)\r\n }\r\n else{\r\n dispatch(alertActions.error(\"Partner not found\"))\r\n }\r\n })\r\n }, []);\r\n\r\n const dispatch = useDispatch()\r\n\r\n const savePartner = (partnerData) => {\r\n editPartner(id, partnerData, dispatch)\r\n }\r\n\r\n const handleDelete = () => {\r\n deletePartner(id).then((status) => {\r\n if(status){\r\n history.replace(`/partner`)\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Edit Partner\r\n
\r\n \r\n \r\n \r\n \r\n history.push('/partners/list_customers/'+id)}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n )\r\n};\r\n\r\nexport default PartnerEdit;","const tableData = {\r\n products: [\r\n { \"PartnerId\": 2, \"EntityName\": \"Testco Products\", \"FirstName\": \"Chris\", \"LastName\": \"Hartwig\", \"Email\": \"chartwig@watchpointdata.com\" },\r\n { \"PartnerId\": 1, \"EntityName\": \"Akhilraj\", \"FirstName\": \"\", \"LastName\": \"K\", \"Email\": \"akhilraj.k@cdcllp.com\" },\r\n { \"PartnerId\": 4, \"EntityName\": \"WatchPoint\", \"FirstName\": \"Greg\", \"LastName\": \"Edwards\", \"Email\": \"gedwards@watchpointdata.com\" },\r\n { \"PartnerId\": 9, \"EntityName\": \"Jim\\u0027s MSP\", \"FirstName\": \"Jim\", \"LastName\": \"Johnson\", \"Email\": \"jjohnson@msp.com\" },\r\n { \"PartnerId\": 10, \"EntityName\": \"TestPartner\", \"FirstName\": \"CDC\", \"LastName\": \"Test\", \"Email\": \"cdctest@watchpointdata.com\" },\r\n { \"PartnerId\": 5, \"EntityName\": \"abhinand\", \"FirstName\": \"\", \"LastName\": \"bs\", \"Email\": \"abhinandtest@gmail.com\" },\r\n { \"PartnerId\": 7, \"EntityName\": \"deepak1\", \"FirstName\": \"\", \"LastName\": \"K\", \"Email\": \"akhitest@gmail.com\" },\r\n { \"PartnerId\": 6, \"EntityName\": \"deepak\", \"FirstName\": \"\", \"LastName\": \"K\", \"Email\": \"akhiltest@gmail.com\" },\r\n { \"PartnerId\": 14, \"EntityName\": \"Neal_Juern\", \"FirstName\": \"Neal\", \"LastName\": \"Juern\", \"Email\": \"neal@juerntech.com\" },\r\n { \"PartnerId\": 15, \"EntityName\": \"Deal_Yuern\", \"FirstName\": \"Deal\", \"LastName\": \"Yuern\", \"Email\": \"Deal@Yuerntech.com\" },\r\n { \"PartnerId\": 8, \"EntityName\": \"testpartner\", \"FirstName\": \"abhinand\", \"LastName\": \"bs\", \"Email\": \"abhinandtest@gmail.com\" },\r\n { \"PartnerId\": 11, \"EntityName\": \"TestPartner78\", \"FirstName\": \"AkTest\", \"LastName\": \"T\", \"Email\": \"AkTest@test.com\" },\r\n { \"PartnerId\": 12, \"EntityName\": \"StryderOne\", \"FirstName\": \"Sid\", \"LastName\": \"Nair\", \"Email\": \"sidharthnair.official@gmail.com\" },\r\n { \"PartnerId\": 13, \"EntityName\": \"ISP Technologies\", \"FirstName\": \"Tony\", \"LastName\": \"Spencer\", \"Email\": \"tspencer@isptech.com\" },\r\n ],\r\n endpoint_data: [\r\n { \"DeviceId\": 39, \"ConnectionId\": \"\", \"CustomerId\": 1, \"HostName\": \"LAPTOP-PKMCG7T3\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 0, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 236, \"ConnectionId\": \"\", \"CustomerId\": 2, \"HostName\": \"CDC-104\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Trial\", \"CustomerName\": \"abhinand bs\", \"CompanyName\": \"CDC\", \"PartnerName\": \"testpartner\", \"LicenseKey\": \"F7DD-87FD-2625-4AE1\", \"VerOrder\": 1, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 65, \"ConnectionId\": \"\", \"CustomerId\": 1, \"HostName\": \"LAPTOP-PKMCG7T3\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 2, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 53, \"ConnectionId\": \"\", \"CustomerId\": 1, \"HostName\": \"LAPTOP-PKMCG7T7\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 3, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 45, \"ConnectionId\": \"\", \"CustomerId\": 11, \"HostName\": \"HostName\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Trial\", \"CustomerName\": \"abhinand test\", \"CompanyName\": \"cdcllp\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"DA02-A6E5-BC56-4816\", \"VerOrder\": 4, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 107, \"ConnectionId\": \"bLK0gO08piq-fGfk5Ss-tw8523cd261\", \"CustomerId\": 1, \"HostName\": \"NanduR-PC-WIN7\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"901C-46F8-EFF0-49A5\", \"VerOrder\": 5, \"LastReportedTime\": \"2021-08-18T11:36:51.436Z\" }, { \"DeviceId\": 413, \"ConnectionId\": \"\", \"CustomerId\": 2, \"HostName\": \"THERESIA-PC\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Trial\", \"CustomerName\": \"abhinand bs\", \"CompanyName\": \"CDC\", \"PartnerName\": \"testpartner\", \"LicenseKey\": \"F7DD-87FD-2625-4AE1\", \"VerOrder\": 6, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 235, \"ConnectionId\": \"\", \"CustomerId\": 2, \"HostName\": \"CDC-102\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Trial\", \"CustomerName\": \"abhinand bs\", \"CompanyName\": \"CDC\", \"PartnerName\": \"testpartner\", \"LicenseKey\": \"F7DD-87FD-2625-4AE1\", \"VerOrder\": 7, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 233, \"ConnectionId\": \"\", \"CustomerId\": 2, \"HostName\": \"CDC-102\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Trial\", \"CustomerName\": \"abhinand bs\", \"CompanyName\": \"CDC\", \"PartnerName\": \"testpartner\", \"LicenseKey\": \"F7DD-87FD-2625-4AE1\", \"VerOrder\": 8, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 66, \"ConnectionId\": \"\", \"CustomerId\": 1, \"HostName\": \"LAPTOP-PKMCG7T7\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Not Available\", \"DeviceType\": \"\", \"Version\": \"\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 9, \"LastReportedTime\": \"Not Available\" }, { \"DeviceId\": 101, \"ConnectionId\": \"uExOAHvZNg61_jMaVJ_gIQ\", \"CustomerId\": 1, \"HostName\": \"WIN-7DVFN57QBSD\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.0.1\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 10, \"LastReportedTime\": \"2021-05-16T17:18:32.431Z\" }, { \"DeviceId\": 100, \"ConnectionId\": \"xUspof8OgNmfbfKcN3c0Hw\", \"CustomerId\": 1, \"HostName\": \"WIN-2SPHT3I4H0J\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.0.1\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 11, \"LastReportedTime\": \"2021-04-15T18:27:21.042Z\" }, { \"DeviceId\": 97, \"ConnectionId\": \"Gb8o7mtiZlQKQOIMwHghyw\", \"CustomerId\": 1, \"HostName\": \"WIN-REVUEGTR0LS\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.0.1\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 12, \"LastReportedTime\": \"2021-04-12T16:59:54.091Z\" }, { \"DeviceId\": 68, \"ConnectionId\": \"VZcH97MCbOQ50NbEVyWyjg\", \"CustomerId\": 1, \"HostName\": \"NanduR-PC\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.0.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"901C-46F8-EFF0-49A5\", \"VerOrder\": 13, \"LastReportedTime\": \"2021-04-26T11:26:25.101Z\" }, { \"DeviceId\": 147, \"ConnectionId\": \"CheuncI13AeG7hB7ZcB10Q\", \"CustomerId\": 19, \"HostName\": \"DESKTOP-A1EV91S\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.1.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Sid Nair\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Sid\", \"LicenseKey\": \"0FB6-C426-3457-4B1D\", \"VerOrder\": 14, \"LastReportedTime\": \"2021-05-11T19:24:13.765Z\" }, { \"DeviceId\": 157, \"ConnectionId\": \"RLmgWI0r9yPZVtLIHEXzuQ\", \"CustomerId\": 1, \"HostName\": \"WIN-H97A8C8EG2O\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.1.3\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"9CE4-3BD5-2236-4D41\", \"VerOrder\": 15, \"LastReportedTime\": \"2021-05-24T08:59:07.809Z\" }, { \"DeviceId\": 196, \"ConnectionId\": \"HnaQFoIPRtTpujCiz4ZbQA\", \"CustomerId\": 1, \"HostName\": \"DESKTOP-50624NU\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Expired\", \"DeviceType\": \"Desktop\", \"Version\": \"4.1.3\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"9CE4-3BD5-2236-4D41\", \"VerOrder\": 16, \"LastReportedTime\": \"2021-10-12T05:12:35.659Z\" }, { \"DeviceId\": 271, \"ConnectionId\": \"Vv3kBj_LTj2jCNslTVRf4Q\", \"CustomerId\": 1, \"HostName\": \"2K19-DC\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.1.9\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 17, \"LastReportedTime\": \"2021-10-20T09:59:14.019Z\" }, { \"DeviceId\": 273, \"ConnectionId\": \"lTJe9SrlV67CMCVNGGSLqw\", \"CustomerId\": 1, \"HostName\": \"VM-W10\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.1.9\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 18, \"LastReportedTime\": \"2021-10-20T03:30:33.412Z\" }, { \"DeviceId\": 276, \"ConnectionId\": \"8fh7VMnT9gSnLeDRT-qBEQ\", \"CustomerId\": 8, \"HostName\": \"CH-2k19FS\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 19, \"LastReportedTime\": \"2022-01-20T19:22:29.262Z\" }, { \"DeviceId\": 277, \"ConnectionId\": \"jla4gOZx12XrDlvLBPaoCw\", \"CustomerId\": 8, \"HostName\": \"CH-W10DEMO\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 20, \"LastReportedTime\": \"2022-01-20T19:21:54.660Z\" }, { \"DeviceId\": 278, \"ConnectionId\": \"yVx1M5hUUbgKp82IHGC0sw\", \"CustomerId\": 8, \"HostName\": \"CH-W10TEST\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 21, \"LastReportedTime\": \"2022-01-24T14:12:03.861Z\" }, { \"DeviceId\": 279, \"ConnectionId\": \"8BUpAyYgSPk6Tj56_G2QJQ\", \"CustomerId\": 8, \"HostName\": \"CHW10-CLOUD2\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 22, \"LastReportedTime\": \"2022-01-19T19:41:10.156Z\" }, { \"DeviceId\": 275, \"ConnectionId\": \"89fQjJPHpaOe_3OQYJwm1g\", \"CustomerId\": 8, \"HostName\": \"CH-2K19DC\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Server\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 23, \"LastReportedTime\": \"2022-01-24T15:44:18.387Z\" }, { \"DeviceId\": 280, \"ConnectionId\": \"z47vobns_LeZxqbKvbgV9Q\", \"CustomerId\": 8, \"HostName\": \"CHW10-CLOUD1\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Chris Hartwig\", \"CompanyName\": \"Testco Products\", \"PartnerName\": \"Testco Products\", \"LicenseKey\": \"0B0B-5F97-172B-4FDF\", \"VerOrder\": 24, \"LastReportedTime\": \"2022-01-19T19:42:27.315Z\" }, { \"DeviceId\": 274, \"ConnectionId\": \"hDlmJsPtTeMLPZhrXg2SUw\", \"CustomerId\": 1, \"HostName\": \"CDC-102\", \"OnlineStatus\": \"Offline\", \"ActivationStatus\": \"Activated\", \"DeviceType\": \"Desktop\", \"Version\": \"4.2.2\", \"LicenseType\": \"Paid\", \"CustomerName\": \"Akhilraj K\", \"CompanyName\": \"CDC\", \"PartnerName\": \"Akhilraj\", \"LicenseKey\": \"0267-D91E-EBD9-455E\", \"VerOrder\": 25, \"LastReportedTime\": \"2022-02-11T14:00:50.351Z\" }\r\n ],\r\n users :[\r\n {\"Customer\":null,\"Partner\":null,\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"bb5276b0-a872-4ed6-a6e3-85903cf0af51\",\"UserName\":\"sidharth.radhakrishnan@gmail.com\",\"NormalizedUserName\":null,\"Email\":\"sidharth.radhakrishnan@gmail.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"a8688719-6ffd-47d3-b697-64be866984d6\",\"ConcurrencyStamp\":\"488aa4ab-5692-41a9-9f6a-48308b36ded6\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":true,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0},{\"Customer\":null,\"Partner\":{\"PartnerId\":21,\"EntityName\":\"Nealfdsfgsdgfs\",\"FirstName\":\"Neal\",\"LastName\":\"fdsfgsdgfs\",\"Email\":\"neal@fdgg.com\"},\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"b2c077c8-889a-4722-b9a7-1b47d720387c\",\"UserName\":\"neal@fdgg.com\",\"NormalizedUserName\":null,\"Email\":\"neal@fdgg.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"217e2a57-40be-4159-af31-81fd10b62550\",\"ConcurrencyStamp\":\"87561b42-835f-4576-b39e-cb79c51fd1a9\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":false,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0},{\"Customer\":null,\"Partner\":{\"PartnerId\":1,\"EntityName\":\"Akhilraj\",\"FirstName\":\"Akhil\",\"LastName\":\"K\",\"Email\":\"akhilraj.k@cdcllp.com\"},\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"db8f7445-79a9-40b7-b163-e98e51bc139e\",\"UserName\":\"aa@cdc.com\",\"NormalizedUserName\":null,\"Email\":\"aa@cdc.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"ee165253-393d-4bec-b785-b304912c9611\",\"ConcurrencyStamp\":\"8354c264-d988-4fb2-bd4e-ef1dd046b657\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":false,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0},{\"Customer\":{\"CustomerId\":1,\"FirstName\":\"Akhilraj\",\"LastName\":\"K\",\"UserEmail\":\"akhibedakam@gmail.com\",\"Address\":\"CDC\",\"AccountType\":\"Company\",\"PartnerId\":1,\"Partner\":{\"PartnerId\":1,\"EntityName\":\"Akhilraj\",\"FirstName\":\"Akhil\",\"LastName\":\"K\",\"Email\":\"akhilraj.k@cdcllp.com\"},\"IsActive\":true,\"CompanyName\":\"CDC\"},\"Partner\":null,\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"d6078e76-6c6f-4ce2-924a-1abf1978c9ec\",\"UserName\":\"customer@gmail.com\",\"NormalizedUserName\":null,\"Email\":\"customer@gmail.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"b64761ee-ff3d-425a-b16d-0abc340855fb\",\"ConcurrencyStamp\":\"441a9126-bbdc-4e8e-8d8a-f9afe345e034\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":false,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0},{\"Customer\":null,\"Partner\":{\"PartnerId\":13,\"EntityName\":\"ISP Technologies\",\"FirstName\":\"Tony\",\"LastName\":\"Spencer\",\"Email\":\"tspencer@isptech.com\"},\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"352759a7-3b83-4436-9bdb-692dabc4e262\",\"UserName\":\"tpart@testpart.com\",\"NormalizedUserName\":null,\"Email\":\"tpart@testpart.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"d633b91a-37c0-4d9a-81ef-e48f8019d5c4\",\"ConcurrencyStamp\":\"96ba7be8-1eed-4c02-8bd0-6da5017fa0f7\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":false,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0},{\"Customer\":{\"CustomerId\":14,\"FirstName\":\"abhinand\",\"LastName\":\"hb\",\"UserEmail\":\"abhinandbs1@gmail.com\",\"Address\":\"meenakshmandirum,manalayam,poredom p o,chadayamangalam\",\"AccountType\":\"Company\",\"PartnerId\":1,\"Partner\":{\"PartnerId\":1,\"EntityName\":\"Akhilraj\",\"FirstName\":\"Akhil\",\"LastName\":\"K\",\"Email\":\"akhilraj.k@cdcllp.com\"},\"IsActive\":false,\"CompanyName\":\"cdcllp\"},\"Partner\":null,\"PartnerId\":null,\"CustomerId\":null,\"Id\":\"2fb149be-9cf8-43d7-838b-6c412fa19fa4\",\"UserName\":\"test@watchpointdata.com\",\"NormalizedUserName\":null,\"Email\":\"test@watchpointdata.com\",\"NormalizedEmail\":null,\"EmailConfirmed\":false,\"PasswordHash\":null,\"SecurityStamp\":\"8caec534-1047-4b1f-8158-a2e98cca6402\",\"ConcurrencyStamp\":\"809df5ea-d833-4f07-92de-9b0adfa238e9\",\"PhoneNumber\":null,\"PhoneNumberConfirmed\":false,\"TwoFactorEnabled\":false,\"LockoutEnd\":null,\"LockoutEnabled\":false,\"AccessFailedCount\":0}\r\n ]\r\n}\r\n\r\nexport default tableData","import { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row, ButtonGroup } from \"reactstrap\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory, \r\n { PaginationProvider, SizePerPageDropdownStandalone, PaginationTotalStandalone, PaginationListStandalone } \r\nfrom 'react-bootstrap-table2-paginator';\r\nimport ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';\r\n\r\nimport tableData from \"utils/getDummyTableData\";\r\n\r\nconst { SearchBar } = Search;\r\n\r\nconst PartnerCustomers = () => {\r\n const [selectedRow, setSelectedRow] = useState([]);\r\n const [rowData, setRowData] = useState([]);\r\n\r\n let history = useHistory();\r\n\r\n useEffect(() => {\r\n const newProducts = tableData.products\r\n setRowData(newProducts)\r\n });\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const newSelection = isSelect ?\r\n [...selectedRow, row.PartnerId] : selectedRow.filter(x => x !== row.PartnerId)\r\n setSelectedRow(newSelection)\r\n }\r\n\r\n const handleOnSelectAll = (isSelect, rows) => {\r\n const ids = rows.map(r => r.PartnerId);\r\n isSelect ? setSelectedRow(ids) : setSelectedRow([])\r\n }\r\n\r\n const handlePartnerDelete = () => {\r\n console.log(\"delete entries\", selectedRow)\r\n }\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n console.log(\"target\",e.target.cellIndex)\r\n //history.push(`/Partner/PartnerEdit/${row.PartnerId}`)\r\n },\r\n };\r\n\r\n const handlePartnerChange = (row) => {\r\n history.push(`/Partner/PartnerChange/${row.PartnerId}`)\r\n }\r\n\r\n const viewDevices = (row) => {\r\n console.log(row.EntityName)\r\n }\r\n\r\n const columnActions = (cell, row, rowIndex) => {\r\n return (
\r\n {' '}\r\n \r\n
)\r\n }\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n clickToSelect: false,\r\n selected: selectedRow,\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleOnSelectAll\r\n };\r\n\r\n const columns = [{\r\n dataField: 'PartnerId',\r\n text: 'ID',\r\n searchable: true,\r\n headerStyle: { width: '70px' },\r\n },\r\n {\r\n dataField: 'Email',\r\n text: 'Customer Email',\r\n searchable: true\r\n },\r\n {\r\n dataField: 'EntityName',\r\n text: 'Partner Name',\r\n searchable: true\r\n }, {\r\n dataField: 'FirstName',\r\n text: 'First Name',\r\n searchable: true\r\n }, {\r\n dataField: 'LastName',\r\n text: 'Last Name',\r\n searchable: true\r\n },\r\n {\r\n text: 'Actions',\r\n searchable: false,\r\n headerStyle: { width: '270px' },\r\n formatter: columnActions\r\n }];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast : true,\r\n totalSize: rowData.length\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
Partner Worldwide
\r\n \r\n
\r\n \r\n {props => (\r\n \r\n {\r\n ({\r\n paginationProps,\r\n paginationTableProps\r\n }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Entries per page : \r\n \r\n {selectedRow.length > 0 &&\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
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PartnerCustomers;","import { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, ButtonGroup, Col, Container, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory,\r\n{ PaginationProvider, SizePerPageDropdownStandalone, PaginationTotalStandalone, PaginationListStandalone }\r\n from 'react-bootstrap-table2-paginator';\r\nimport ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';\r\n\r\nimport { useSelector } from 'react-redux'\r\n\r\nconst { SearchBar } = Search;\r\n\r\nconst CustomerTable = (props) => {\r\n const [selectedRow, setSelectedRow] = useState([]);\r\n const [rowData, setRowData] = useState([]);\r\n\r\n let history = useHistory();\r\n\r\n const prepareCustomerData = (customers) => {\r\n return customers.map(e => {\r\n return { ...e, Contact: `${e.FirstName} ${e.LastName}` }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setRowData(prepareCustomerData(props.customers) || []);\r\n handleOnSelectAll(false, [])\r\n }, [props.customers]);\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const newSelection = isSelect ?\r\n [...selectedRow, row.Id] : selectedRow.filter(x => x !== row.Id)\r\n setSelectedRow(newSelection)\r\n }\r\n\r\n const handleOnSelectAll = (isSelect, rows) => {\r\n const ids = rows.map(r => r.Id);\r\n isSelect ? setSelectedRow(ids) : setSelectedRow([])\r\n }\r\n\r\n const handleInvactivate = () => {\r\n if (props.onDelete)\r\n props.onDelete(selectedRow)\r\n }\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n if (props.OnRowClick) {\r\n props.OnRowClick(row)\r\n }\r\n },\r\n };\r\n\r\n const setActiveState = (state) => {\r\n if (props.setActiveState)\r\n props.setActiveState(state)\r\n }\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n clickToSelect: false,\r\n selected: selectedRow,\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleOnSelectAll\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: 'Id',\r\n text: 'ID',\r\n sort: true,\r\n classes: 'common-table-column-style',\r\n searchable: true,\r\n headerStyle: { width: '70px' },\r\n },\r\n {\r\n dataField: 'CompanyName',\r\n text: 'Company',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true,\r\n },\r\n {\r\n dataField: 'Contact',\r\n text: 'Contact',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true\r\n },\r\n {\r\n dataField: 'ContactEmail',\r\n text: 'Email',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true,\r\n },\r\n {\r\n dataField: 'PartnerName',\r\n text: 'Partner',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true,\r\n },\r\n {\r\n dataField: 'LicenseType',\r\n text: 'License Type',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true,\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: rowData.length\r\n };\r\n\r\n const { active, loading } = props\r\n\r\n const user = useSelector(s => s.authentication.user)\r\n\r\n return (\r\n\r\n \r\n {props => (\r\n \r\n {\r\n ({\r\n paginationProps,\r\n paginationTableProps\r\n }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Entries per page :\r\n \r\n {selectedRow.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/customers/add_customer\")}\r\n >\r\n Add New Customer\r\n \r\n {user.role === 'admin' && (\r\n history.push('/customers/global_agent_settings')}\r\n >\r\n Global Settings\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n : \"No Data\"}\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={{\r\n //backgroundColor: '#fff',\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\nexport default CustomerTable;","import { result } from \"lodash\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row } from \"reactstrap\";\r\n\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nimport CustomerTable from './table'\r\n\r\nconst CustomerList = () => {\r\n const [rowData, setRowData] = useState([]);\r\n const [active, setActive] = useState(true)\r\n const [loading, setLoading] = useState(false)\r\n\r\n let history = useHistory();\r\n\r\n useEffect(() => {\r\n loadCustomers()\r\n }, [active]);\r\n\r\n const loadCustomers = () => {\r\n setLoading(true)\r\n setRowData([])\r\n WebAPI\r\n .get(`/Customers/List?active=${active ? 'true' : 'false'}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setRowData(res.data)\r\n })\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n const OnRowClick = (row) => {\r\n history.push('/customers/customer_details/' + row.Id)\r\n }\r\n\r\n const OnDelete = (ids) => {\r\n console.log(ids)\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n
Customers
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CustomerList;","import { result } from \"lodash\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row } from \"reactstrap\";\r\n\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nimport CustomerTable from './table'\r\n\r\nconst CustomerList = () => {\r\n const [rowData, setRowData] = useState([]);\r\n const [active, setActive] = useState(true)\r\n const [loading, setLoading] = useState(false)\r\n\r\n let history = useHistory();\r\n const { id } = useParams()\r\n\r\n useEffect(() => {\r\n loadCustomers()\r\n }, [active]);\r\n\r\n const loadCustomers = () => {\r\n setLoading(true)\r\n setRowData([])\r\n WebAPI\r\n .get(`/Customers/ListByPartner/${id}?active=${active ? 'true' : 'false'}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setRowData(res.data)\r\n })\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n const OnRowClick = (row) => {\r\n history.push('/customers/customer_details/' + row.Id)\r\n }\r\n\r\n const OnDelete = (ids) => {\r\n console.log(ids)\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n
Customers of Partner
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CustomerList;","import { useEffect, useState } from \"react\";\r\nimport {\r\n Col,\r\n Row,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback\r\n} from \"reactstrap\";\r\nimport validator from 'validator';\r\nimport Button from 'components/Inputs/TButton'\r\nimport { useSelector } from 'react-redux'\r\n\r\nimport WebAPI from 'services/WebAPI'\r\nimport AlertMessage from \"components/Alert\";\r\n\r\nconst CustomerForm = (props) => {\r\n\r\n const user = useSelector(store => store.authentication.user)\r\n\r\n const [partners, setPartners] = useState([])\r\n useEffect(() => {\r\n WebAPI.get('Partner/List')\r\n .then(({ data: res }) => {\r\n setPartners(res.data)\r\n })\r\n }, [])\r\n\r\n\r\n const [formState, setFormState] = useState({\r\n FirstName: \"\",\r\n LastName: \"\",\r\n CompanyName: \"\",\r\n UserEmail: \"\",\r\n Address: \"\",\r\n AccountType: \"Company\",\r\n PartnerId: 0,\r\n });\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n FirstName: false,\r\n LastName: false,\r\n CompanyName: false,\r\n UserEmail: false,\r\n Address: false,\r\n AccountType: false,\r\n PartnerId: false\r\n });\r\n\r\n useEffect(() => {\r\n if(props.editMode)\r\n setFormState(props.customer)\r\n }, [props.customer])\r\n\r\n const handleSave = (e) => {\r\n let flag = 0\r\n e.preventDefault();\r\n Object.entries(formState).forEach(([a, b]) => {\r\n if (a === 'PartnerId') {\r\n if (b < 1) {\r\n flag = 1\r\n invalidFormState[a] = true\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n } else {\r\n if (validator.isEmpty(b)) {\r\n flag = 1\r\n invalidFormState[a] = true\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n }\r\n });\r\n if (flag === 0) props.shareFormData(formState)\r\n }\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n if (id === 'PartnerId')\r\n value = parseInt(value, 10)\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please enter a first name\r\n \r\n \r\n \r\n \r\n Please enter a last name\r\n \r\n \r\n \r\n \r\n Please enter a company name\r\n \r\n \r\n \r\n \r\n Please enter a valid UserEmail\r\n \r\n \r\n \r\n \r\n Please enter a contact Address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select a account type\r\n \r\n {user.role !== 'Admin' && (\r\n \r\n \r\n \r\n \r\n {partners.map(o => ())}\r\n \r\n Please select a partner \r\n \r\n )}\r\n \r\n \r\n {props.editMode ? \"Save\" : \"Create\"}\r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nexport default CustomerForm;","import { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container\r\n} from \"reactstrap\";\r\nimport { useDispatch } from 'react-redux'\r\n\r\nimport { alertActions } from 'redux/_actions/'\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nimport CustomerForm from \"./form\";\r\n\r\nconst CustomerAdd = () => {\r\n let history = useHistory();\r\n const dispatch = useDispatch()\r\n\r\n const [loading, setLoading] = useState(false)\r\n\r\n const saveCustomer = (customerData) => {\r\n if (loading)\r\n return\r\n setLoading(true)\r\n WebAPI\r\n .post('/Customers/Create/', customerData)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n history.push('/customers/customer_details/' + res.data.CustomerId)\r\n }else {\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n .catch(() => dispatch(alertActions.error(\"Connection error\")))\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go('-1')}\r\n >\r\n \r\n \r\n Add Customer\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\nexport default CustomerAdd;","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from 'react-redux'\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container\r\n} from \"reactstrap\";\r\nimport CustomerForm from \"./form\";\r\n\r\nimport { alertActions } from 'redux/_actions/'\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nconst CustomerEdit = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n\r\n const [customer, setCustomer] = useState({})\r\n const [loading, setLoading] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (!id)\r\n return\r\n dispatch(alertActions.clear())\r\n WebAPI\r\n .get('/Customers/Details/' + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n const { Partner, CustomerId,IsActive, ...d } = res.data\r\n setCustomer(d)\r\n }\r\n else{\r\n setCustomer({})\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n }, [id]);\r\n\r\n\r\n const updateCustomer = (data) => {\r\n if (loading)\r\n return\r\n setLoading(true)\r\n WebAPI\r\n .post('/Customers/Update/' + id, data)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n history.push('/customers/customer_details/' + id)\r\n } else {\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n .catch(() => dispatch(alertActions.error(\"Connection error\")))\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Edit Customer\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\nexport default CustomerEdit;","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { userActions } from '../../redux/_actions';\r\nimport { Input, Label, FormGroup, Alert } from 'reactstrap';\r\nimport Button from 'components/Inputs/TButton'\r\nimport {Helmet} from 'react-helmet'\r\n\r\nimport { Link } from 'react-router-dom'\r\n\r\n\r\nfunction LoginAlerts() {\r\n const alertMesssage = useSelector(state => state.alert)\r\n if (alertMesssage.type) {\r\n return ({alertMesssage.message})\r\n }\r\n return null\r\n}\r\n\r\nfunction Login() {\r\n const twoFA = useSelector(state => state.authentication.TwoFA);\r\n const isLoading = useSelector(state => state.authentication.isWorking)\r\n const dispatch = useDispatch();\r\n\r\n const [username, setUsername] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [code, setCode] = useState('')\r\n const [rememberUser, setRememberUser] = useState(false)\r\n const [rememberMachine, setRememberMachine] = useState(false)\r\n\r\n\r\n\r\n const cssInput = {\r\n borderRadius: 0,\r\n boxShadow: 'none',\r\n borderColor: '#d2d6de',\r\n marginBotton: '.5rem'\r\n }\r\n\r\n function submitLogin(e) {\r\n e.preventDefault()\r\n dispatch(userActions.login(username, password, rememberUser))\r\n }\r\n\r\n function submit2FA(e) {\r\n e.preventDefault()\r\n dispatch(userActions.twoFASubmit(code, rememberUser, rememberMachine))\r\n }\r\n\r\n if (twoFA) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Authentication | Canauri\r\n \r\n \r\n setCode(e.target.value)}\r\n />\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 return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Login | Canauri\r\n \r\n \r\n setUsername(e.target.value)}\r\n />\r\n \r\n \r\n \r\n setPassword(e.target.value)}\r\n />\r\n \r\n\r\n \r\n \r\n Forgot Passsword?\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\nexport default Login;\r\n","import React, { useState } from \"react\";\r\nimport { Input, Label, FormGroup } from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport WebAPI from \"services/WebAPI.js\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nfunction ForgotPass(props) {\r\n const [mail, setMail] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n const [submitted, setSubmit] = useState(false);\r\n\r\n const dispatch = useDispatch;\r\n\r\n if (!_.get(props, \"location.state.fromLogin\"))\r\n return ;\r\n\r\n const handleSubmit = () => {\r\n if (!mail) return;\r\n setLoading(true);\r\n WebAPI.post(`ForgotPasswordAPI/ForgotPassword?Email=${mail}`,{Email:mail})\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setSubmit(true);\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n console.log(\"props\", props);\r\n\r\n if (submitted)\r\n return (\r\n <>\r\n

\r\n Please check your email to reset password.\r\n

\r\n \r\n Login\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n setMail(e.target.value)}\r\n />\r\n \r\n \r\n \r\n Back to login\r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ForgotPass;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Input, Label, FormGroup } from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { Link } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport WebApi from \"services/WebAPI\";\r\n\r\nfunction Reset() {\r\n const [mail, setMail] = useState(\"\");\r\n const [pass1, setPass1] = useState(\"\");\r\n const [pass2, setPass2] = useState(\"\");\r\n const [code, setCode] = useState();\r\n const [isLoading, setLoading] = useState(false);\r\n const [submitted, setSubmit] = useState(false);\r\n\r\n const location = useLocation();\r\n \r\n useEffect(() => {\r\n const id = location.search.replace(\"?code=\", \"\");\r\n setCode(id);\r\n }, []);\r\n\r\n const handleSubmit = () => {\r\n if (!mail || !pass1 || !pass2 || pass1 !== pass2) return;\r\n setLoading(true);\r\n const req = {\r\n Code: code,\r\n Email: mail,\r\n Password: pass1,\r\n };\r\n WebApi.post(`ResetPasswordAPI/ResetPassword?Code=${code}&Email=${mail}&Password=${pass1}`, req)\r\n .then(({ data: res }) => {\r\n if(res.status)\r\n setSubmit(true);\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n if (submitted)\r\n return (\r\n <>\r\n

\r\n Your password has been reset. Please{\" \"}\r\n \r\n click here to login\r\n \r\n

\r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n setMail(e.target.value)}\r\n />\r\n \r\n \r\n \r\n setPass1(e.target.value)}\r\n />\r\n \r\n \r\n \r\n setPass2(e.target.value)}\r\n />\r\n \r\n \r\n \r\n Reset\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Reset;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { \r\n Col, \r\n Row, \r\n Card, \r\n Form,\r\n Label,\r\n Input,\r\n Button,\r\n CardBody, \r\n Container,\r\n FormGroup,\r\n FormFeedback\r\n} from \"reactstrap\";\r\n\r\nconst ChangePartner = () => {\r\n const [partnername, ] = useState(\"partners name\");\r\n let history = useHistory();\r\n const { id } = useParams();\r\n \r\n useEffect(() => {\r\n console.log(\"id\",id)\r\n });\r\n\r\n const savePartner = (partnerData) => {\r\n console.log(partnerData)\r\n }\r\n\r\n const handlePartnerChange = (e) => {\r\n console.log(\"change\",e)\r\n }\r\n\r\n return(\r\n <>\r\n \r\n
\r\n history.push('/Partner/PartnerList')}\r\n >\r\n \r\n \r\n Change Partner\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Please enter a partner name\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\nexport default ChangePartner;","import { useState, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\nimport {\r\n Card,\r\n Col,\r\n Container,\r\n Row,\r\n Spinner,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n FormGroup,\r\n Label,\r\n Input,\r\n} from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport ToolkitProvider from \"react-bootstrap-table2-toolkit\";\r\nimport Button from \"components/Inputs/TButton\";\r\n\r\nimport AlertMessage from \"components/Alert\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\n\r\nimport { generatePassword } from \"utils/functions\";\r\nimport axios from \"axios\";\r\nimport semver from \"semver\";\r\nimport SelectSearch from \"react-select-search\";\r\n\r\nfunction DetailsLine({ title, value }) {\r\n return (\r\n \r\n \r\n

{title}

\r\n \r\n \r\n

{value}

\r\n \r\n
\r\n );\r\n}\r\n\r\nconst PopConfirm = ({ onOk, setMove }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n if (onOk) onOk();\r\n SetModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n SetModal(false)}>\r\n SetModal(false)}\r\n >\r\n Are you sure to delete this customer?\r\n \r\n \r\n As a result of this action, all endpoints and users associated with\r\n the customer will be deleted from the system. The automatic uninstall\r\n command for Canuari will also be sent to the endpoint. If any\r\n endpoints need to be moved to another customer, click Move\r\n \r\n \r\n {\r\n setMove(true);\r\n SetModal(false);\r\n }}\r\n >\r\n Move\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst CustomerDetails = () => {\r\n const [licenseData, setLicenseData] = useState([]);\r\n const [customer, setCustomer] = useState({});\r\n const [devices, setDevices] = useState([]);\r\n const [customerList, setCustomerList] = useState([]);\r\n const [manageDevice, setManageDevice] = useState(false);\r\n const [move, setMove] = useState(false);\r\n const [company, setCompany] = useState(null);\r\n const [moveToCustomer, setMoveToCustomer] = useState(null);\r\n const [selectedEndpoint, setSelectedEndpoint] = useState([]);\r\n const [totals, setTotals] = useState({ servers: 0, desktops: 0 });\r\n const [consolePassword, setConsolePassword] = useState(null);\r\n const [download, setDownload] = useState(false);\r\n const [url, setUrl] = useState(\"\");\r\n const [version, setVersion] = useState(\"\");\r\n const [versionSearch, setVersionSearch] = useState(\"\");\r\n const [isVersion, setIsVersion] = useState(false);\r\n const [downloadKey, setDownloadKey] = useState(\"\");\r\n const [availableVersions, setAvailableVersions] = useState([]);\r\n\r\n let history = useHistory();\r\n const { id } = useParams();\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n fetchCustomerDetails();\r\n fetchCustomerDevices();\r\n loadCustomers();\r\n fetchBuilds();\r\n }, [id]);\r\n\r\n const loadCustomers = () => {\r\n setLoading(true);\r\n setCustomerList([]);\r\n WebAPI.get(`/Customers/List?active=true`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setCustomerList(res.data?.filter((i) => i.Id !== parseInt(id)));\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const deviceColumns = [\r\n {\r\n dataField: \"DeviceId\",\r\n text: \"ID\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: \"70px\", padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"HostName\",\r\n text: \"Hostname\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"OnlineStatus\",\r\n text: \"Status\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: function (cell, row) {\r\n return (\r\n \r\n {cell}\r\n \r\n );\r\n },\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"DeviceType\",\r\n text: \"Type\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\", width: 80 },\r\n },\r\n {\r\n dataField: \"ActivationStatus\",\r\n text: \"Activation\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: function (cell, row) {\r\n return (\r\n \r\n {cell}\r\n \r\n );\r\n },\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"Version\",\r\n text: \"Version\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n sortFunc: (a, b, order) => {\r\n a = a === \"\" ? \"0.0.0\" : a;\r\n b = b === \"\" ? \"0.0.0\" : b;\r\n if (order === \"asc\") {\r\n return semver.compare(a, b) === 1 ? 1 : -1;\r\n } else {\r\n return semver.compare(a, b) === 1 ? -1 : 1;\r\n // desc\r\n }\r\n },\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\", width: 100 },\r\n },\r\n {\r\n dataField: \"LicenseType\",\r\n text: \"License\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\", width: 100 },\r\n },\r\n ];\r\n\r\n const fetchCustomerDevices = async () => {\r\n setLoading(true);\r\n WebAPI.get(\"/Endpoints/ListFromCustomer/\" + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setDevices(res.data);\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const ENDPOINT_KEY = \"DeviceId\";\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const endpoint = row[ENDPOINT_KEY];\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, endpoint]);\r\n } else {\r\n setSelectedEndpoint(\r\n selectedEndpoint.filter((x) => x !== row[ENDPOINT_KEY])\r\n );\r\n }\r\n };\r\n\r\n const handleSelectAll = (isSelect, rows) => {\r\n const newEP = devices\r\n .filter((i) => !selectedEndpoint.includes(i[ENDPOINT_KEY]))\r\n .map((x) => x[ENDPOINT_KEY]);\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, ...newEP]);\r\n } else {\r\n setSelectedEndpoint([]);\r\n }\r\n };\r\n\r\n const fetchCustomerDetails = () => {\r\n dispatch(alertActions.clear());\r\n WebAPI.get(`/Customers/Details/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setCustomer(res.data);\r\n setConsolePassword(res.consolePassword);\r\n } else {\r\n dispatch(\r\n alertActions.error(\r\n res.message === \"Not allowed\" ? \"Customer not found\" : res.message\r\n )\r\n );\r\n setCustomer({});\r\n setConsolePassword(null);\r\n }\r\n })\r\n .then(() => {\r\n fetchLicenseList();\r\n });\r\n };\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const fetchBuilds = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"/Settings/GetDownloadableVersions\");\r\n if (resp?.data?.status) {\r\n setAvailableVersions(resp.data?.result?.versions);\r\n }\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n };\r\n\r\n const fetchLicenseList = () => {\r\n setLoading(true);\r\n WebAPI.get(`/Licenses/ListByCustomer/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setLicenseData(res.data);\r\n totals.servers = res.data.reduce((prev, cur) => prev + cur.Server, 0);\r\n totals.desktops = res.data.reduce(\r\n (prev, cur) => prev + cur.Desktop,\r\n 0\r\n );\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const handleMove = async () => {\r\n const req = {\r\n CustomerId: parseInt(moveToCustomer),\r\n DeviceIdList: selectedEndpoint,\r\n };\r\n WebAPI.post(\"/Customers/SwapCustomerEndpoints\", req)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n dispatch(alertActions.success(\"Sucessfully moved\"));\r\n setMove(false);\r\n setManageDevice(false);\r\n setSelectedEndpoint([]);\r\n setCompany(null);\r\n setMoveToCustomer(null);\r\n fetchCustomerDevices();\r\n fetchCustomerDetails();\r\n fetchLicenseList();\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"err\", err);\r\n });\r\n };\r\n\r\n const [isSwitching, setSwitching] = useState(false);\r\n const switchState = (state) => {\r\n if (isSwitching) return;\r\n setSwitching(true);\r\n WebAPI.post(\r\n `/Customers/SwitchActive/${id}?isActive=${state ? \"true\" : \"false\"}`\r\n )\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n fetchCustomerDetails();\r\n }\r\n })\r\n .finally(() => setSwitching(false));\r\n };\r\n\r\n const sendConsolePassword = (password) => {\r\n if (isSwitching) return;\r\n setSwitching(true);\r\n WebAPI.post(`/Customers/SetConsolePassword/${id}`, { Password: password })\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n fetchCustomerDetails();\r\n }\r\n })\r\n .finally(() => setSwitching(false));\r\n };\r\n\r\n function generateConsolePassword() {\r\n setConsolePassword(null);\r\n sendConsolePassword(generatePassword(8));\r\n }\r\n\r\n function unsetConsolePassword() {\r\n setConsolePassword(null);\r\n sendConsolePassword(\"\");\r\n }\r\n\r\n function handleDelete() {\r\n WebAPI.post(`/Customers/DeleteCustomer/${id}`).then(({ data: res }) => {\r\n if (res.status) {\r\n history.replace(\"/customers\");\r\n }\r\n });\r\n }\r\n\r\n const prepareDownload = async () => {\r\n try {\r\n setDownload(true);\r\n setLoading(true);\r\n const resp = await axios.get(\r\n `https://installer.canauri.com/prepare_msi?c=${id}&key=${downloadKey}&version=${version}`\r\n );\r\n if (resp.data.status)\r\n setUrl(`https://installer.canauri.com${resp.data.url}`);\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n setLoading(false);\r\n setVersion(\"\");\r\n setIsVersion(false);\r\n setDownloadKey(\"\");\r\n };\r\n\r\n const { role = \"partner\", theme = \"white\" } =\r\n useSelector((s) => s.authentication.user) || {};\r\n\r\n const columnActions = (cell, row, rowIndex) => {\r\n return (\r\n
\r\n \r\n history.push(`/customers/endpoints_under_license/${row.Key}`)\r\n }\r\n >\r\n \r\n Devices\r\n \r\n {(role === \"admin\" || role === \"partner\") && (\r\n <>\r\n {\r\n setDownloadKey(row.Key);\r\n setIsVersion(true);\r\n }}\r\n >\r\n \r\n Download\r\n \r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"Key\",\r\n text: \"Key\",\r\n headerStyle: { width: \"250px\" },\r\n },\r\n {\r\n dataField: \"Server\",\r\n text: \"Active Servers\",\r\n },\r\n {\r\n dataField: \"Desktop\",\r\n text: \"Active Desktops\",\r\n },\r\n {\r\n dataField: \"ExpiryDate\",\r\n text: \"Expiration Date\",\r\n formatter: (cellContent) => new Date(cellContent).toLocaleDateString(),\r\n },\r\n {\r\n dataField: \"Type\",\r\n text: \"Type\",\r\n },\r\n {\r\n text: \"Actions\",\r\n formatter: columnActions,\r\n headerStyle: { width: \"300px\" },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n {customer.FirstName} {customer.LastName}\r\n
\r\n \r\n \r\n \r\n
Customer Details
\r\n \r\n \r\n setManageDevice(true)}\r\n />\r\n history.push(\"/customers/edit_customer/\" + id)}\r\n >\r\n Edit Details\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n history.push(`/billing/customer/${id}`)}\r\n >\r\n Manage Billing\r\n \r\n \r\n history.push(`/billing/invoice/customer/${id}`)\r\n }\r\n >\r\n Create Invoice\r\n \r\n \r\n history.push(`/customers/list_endpoints/${id}`)\r\n }\r\n >\r\n Devices\r\n \r\n \r\n history.push(\"/customers/notification_settings/\" + id)\r\n }\r\n >\r\n Notification Settings\r\n \r\n\r\n \r\n history.push(\"/customers/customer_settings/\" + id)\r\n }\r\n >\r\n Agent Default Settings\r\n \r\n switchState(!customer.IsActive)}\r\n isLoading={isSwitching}\r\n >\r\n {customer.IsActive ? \"Deactivate\" : \"Activate\"}\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 {false && (\r\n \r\n \r\n {consolePassword ? (\r\n {consolePassword}\r\n ) : (\r\n \r\n {isSwitching ? \"\" : \"\"}\r\n \r\n )}\r\n \r\n \r\n {\r\n e.preventDefault();\r\n generateConsolePassword();\r\n }}\r\n >\r\n Generate\r\n \r\n \r\n \r\n {\r\n e.preventDefault();\r\n unsetConsolePassword();\r\n }}\r\n >\r\n Remove\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
Customer Licenses
\r\n \r\n \r\n history.push(`/customers/new_license/${id}`)}\r\n >\r\n New License\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {(props) => (\r\n
\r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n {...props.baseProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\r\n }\r\n }\r\n />\r\n
\r\n )}\r\n \r\n \r\n
\r\n {\r\n setVersion(\"\");\r\n setIsVersion(false);\r\n setDownloadKey(\"\");\r\n }}\r\n >\r\n Download Installer\r\n \r\n {loading && }\r\n {!loading && (\r\n
\r\n \r\n \r\n Select Version\r\n \r\n \r\n \r\n (versionSearch &&\r\n i\r\n .toLowerCase()\r\n .includes(versionSearch.toLowerCase())) ||\r\n (!versionSearch && i)\r\n )\r\n .map((r) => {\r\n return { name: r, value: r };\r\n }),\r\n ]}\r\n value={version}\r\n name=\"Version\"\r\n placeholder=\"Choose Version\"\r\n search\r\n getOptions={(val) => setVersionSearch(val)}\r\n onChange={(e) => setVersion(e)}\r\n />\r\n prepareDownload()}\r\n >\r\n \r\n Download\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n\r\n {\r\n setUrl(\"\");\r\n setDownload(false);\r\n }}\r\n >\r\n Download Installer\r\n \r\n {loading && }\r\n {!loading && url && (\r\n \r\n Click here to download!\r\n \r\n )}\r\n {!loading && !url &&

Something went wrong. Please try again!

}\r\n
\r\n \r\n\r\n {\r\n setManageDevice(false);\r\n setSelectedEndpoint([]);\r\n setMoveToCustomer(null);\r\n }}\r\n style={{ minWidth: \"70%\" }}\r\n >\r\n Move Endpoints\r\n \r\n {loading && }\r\n {!loading && (\r\n
\r\n \r\n {(props) => (\r\n
\r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n {...props.baseProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\r\n }\r\n }\r\n />\r\n
\r\n )}\r\n \r\n setMove(true)}\r\n color=\"primary\"\r\n style={{ float: \"right\", marginTop: \"10px\" }}\r\n disabled={selectedEndpoint?.length === 0}\r\n >\r\n Move\r\n \r\n
\r\n )}\r\n
\r\n \r\n\r\n {\r\n setMove(false);\r\n setCompany(null);\r\n setMoveToCustomer(null);\r\n }}\r\n >\r\n Move Endpoints To:\r\n \r\n {loading && }\r\n {!loading && (\r\n \r\n \r\n setCompany(e.target.value)}\r\n >\r\n \r\n {[...new Set(customerList.map((i) => i.CompanyName))].map(\r\n (i) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n setMoveToCustomer(parseInt(e.target.value))}\r\n >\r\n \r\n {customerList\r\n .filter((i) => i.CompanyName === company)\r\n .map((i) => (\r\n \r\n ))}\r\n \r\n \r\n Move\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CustomerDetails;\r\n","function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n}\r\n\r\nfunction generateProductKey() {\r\n var tokens = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\",\r\n chars = 4,\r\n segments = 4,\r\n keyString = \"\";\r\n\r\n for (var i = 0; i < segments; i++) {\r\n var segment = \"\";\r\n\r\n for (var j = 0; j < chars; j++) {\r\n var k = getRandomInt(0, 35);\r\n segment += tokens[k];\r\n }\r\n\r\n keyString += segment;\r\n\r\n if (i < (segments - 1)) {\r\n keyString += \"-\";\r\n }\r\n }\r\n\r\n return keyString;\r\n\r\n}\r\n\r\nexport default generateProductKey","import { useState } from \"react\";\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Form,\r\n Input,\r\n Label,\r\n CardBody,\r\n Container,\r\n FormGroup,\r\n FormFeedback,\r\n} from \"reactstrap\";\r\n\r\nimport Button from 'components/Inputs/TButton'\r\nimport AlertMessage from 'components/Alert'\r\nimport { alertActions } from 'redux/_actions'\r\nimport genreateProductKey from 'utils/getSerialKey'\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nconst LicenseAdd = () => {\r\n let history = useHistory();\r\n\r\n const dispatch = useDispatch()\r\n\r\n const { id } = useParams();\r\n\r\n const { role = \"Partner\" } = useSelector(s => s.authentication.user) || {}\r\n\r\n const [formState, setFormState] = useState({\r\n Key: genreateProductKey(),\r\n Server: 99999,\r\n Desktop: 99999,\r\n ExpiryDate: \"2099-12-31\",\r\n Type: \"Paid\",\r\n OrderId: -1\r\n });\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n Server: false,\r\n Desktop: false,\r\n ExpiryDate: false,\r\n OrderId: false,\r\n Type: false\r\n });\r\n\r\n const [loading, setLoading] = useState(false)\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n const handleSave = (e) => {\r\n e.preventDefault()\r\n if (formState.Desktop === formState.Server && formState.Desktop === 0) {\r\n dispatch(alertActions.error(\"Please enter a valid count for server and desktop\"))\r\n return\r\n }\r\n if (loading)\r\n return\r\n setLoading(true)\r\n\r\n const { Server, Desktop, ...formState2 } = formState\r\n\r\n WebAPI\r\n .post('/Licenses/Create', { ...formState2, CustomerId: parseInt(id), Server: parseInt(Server), Desktop: parseInt(Desktop) })\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n history.push('/customers/customer_details/' + id)\r\n else\r\n dispatch(alertActions.error(res.message))\r\n })\r\n .catch(() => dispatch(alertActions.error(\"Connection failed\")))\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n New License\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 {role !== 'admin' || (\r\n <>\r\n \r\n \r\n \r\n Please enter a number of Server\r\n \r\n \r\n \r\n \r\n Please enter a number of Desktop\r\n \r\n \r\n \r\n \r\n Please select an expiration date\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select a type\r\n \r\n \r\n \r\n \r\n Please enter a order ID\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n Create\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\nexport default LicenseAdd;","import { useSelector } from \"react-redux\";\r\nimport WebAPI from 'services/WebAPI'\r\nimport { Container, Row, Col, Card, CardBody, Button, ButtonGroup } from \"reactstrap\";\r\nimport styled from \"styled-components\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\n\r\nconst SettingsBlock = styled.div`\r\nbox-sizing: border-box;\r\nborder-radius: 3px;\r\nborder:1px solid ${props => props.theme === 'dark' ? '#4E5054' : '#E8E8E8'};\r\nbackground-color: ${props => props.theme === 'dark' ? '#2F3032' : '#FFFFFF'};\r\nheight:80px;\r\nmargin-bottom:10px;\r\n`\r\n\r\nconst Settings = ({ button, iconSvg, title, subtitle }) => {\r\n const { theme = 'white' } = useSelector(store => store.authentication.user)\r\n return (\r\n \r\n
\r\n {iconSvg}\r\n
\r\n
\r\n
\r\n {title}\r\n {subtitle}\r\n
\r\n
\r\n
\r\n {button}\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst ModeSwitch = () => {\r\n\r\n\r\n const { theme = 'white' } = useSelector(store => store.authentication.user)\r\n\r\n const changeTheme = (theme) => {\r\n WebAPI\r\n .post('Preferences/Theme', { Theme: theme })\r\n .then(() => window.location.reload())\r\n .catch(() => console.log('error'))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default function Preferences() {\r\n\r\n\r\n const history = useHistory()\r\n const { theme = 'white', role } = useSelector(store => store.authentication.user)\r\n return (\r\n \r\n
\r\n Preferences\r\n
\r\n \r\n \r\n {\"Preferences\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n history.push('/preferences/change_2FA')}>Configure}\r\n iconSvg={(\r\n \r\n \r\n \r\n )}\r\n title=\"Two Factor Authentication\"\r\n subtitle=\"Configure authenticator app\"\r\n />\r\n history.push('/preferences/change_password')}>Change}\r\n iconSvg={(\r\n \r\n \r\n \r\n \r\n\r\n )}\r\n title=\"Change Password\"\r\n subtitle=\"Update your password here\"\r\n />\r\n\r\n history.push('/preferences/logo_upload')}>Update}\r\n iconSvg={(\r\n \r\n \r\n \r\n )}\r\n title=\"Change Logo\"\r\n subtitle=\"Update your Logo here\"\r\n />\r\n\r\n }\r\n iconSvg={(\r\n \r\n \r\n \r\n )}\r\n title=\"Appearance\"\r\n subtitle=\"Change the contrast of your interface\"\r\n />\r\n\r\n {[\"partner\", \"admin\"].includes(role) && history.push('/preferences/webhooks')}>Configure}\r\n iconSvg={(\r\n \r\n \r\n )}\r\n title=\"Web Hooks\"\r\n subtitle=\"Update Web Hooks here\"\r\n />}\r\n {[\"admin\"].includes(role) && history.push('/preferences/process_restriction')}>Configure}\r\n iconSvg={(\r\n )}\r\n title=\"Process Exception\"\r\n subtitle=\"Process whitelist exception paths\"\r\n />}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n\r\n}","import { useEffect, useState } from \"react\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n Card,\r\n CardBody,\r\n Modal,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { Input, Label, FormGroup } from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nconst FormData = require(\"form-data\");\r\nexport default function LogoUpload() {\r\n const [isLoading, setLoading] = useState(false);\r\n const [logoData, setLogoData] = useState({});\r\n const [preview, setPreview] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const data = useSelector((store) => store.authentication.user);\r\n\r\n useEffect(() => {\r\n fetchPartnerLogo();\r\n }, []);\r\n\r\n const LogoChanged = (key, value) => {\r\n setLogoData({ ...logoData, [key]: value });\r\n };\r\n\r\n const fetchPartnerLogo = async () => {\r\n try {\r\n const resp = await WebAPI.get(\"Partner/FetchPartnerPreference\");\r\n if (\r\n resp.data.status &&\r\n resp.data.data &&\r\n resp.data.data.LogoLargeUrl &&\r\n resp.data.data.LogoMiniUrl\r\n ) {\r\n setLogoData({\r\n icon: resp.data.data?.LogoMiniUrl,\r\n logo: resp.data.data?.LogoLargeUrl,\r\n color: resp.data.data?.Color,\r\n CompanyName: resp.data.data?.CompanyName,\r\n });\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n setLoading(true);\r\n if (!logoData.icon || !logoData.logo) {\r\n dispatch(alertActions.error(\"Please select Logo and Icon!\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n setLoading(false);\r\n }, [3000]);\r\n return;\r\n }\r\n try {\r\n const formData = {\r\n CompanyName: logoData.CompanyName,\r\n Color: logoData.color || \"\",\r\n };\r\n const formDataMiniLogo = new FormData();\r\n const formDataLargeLogo = new FormData();\r\n formDataLargeLogo.append(\"largeLogoFile\", logoData.logo);\r\n formDataMiniLogo.append(\"miniLogoFile\", logoData.icon);\r\n let respData, respLL, respML;\r\n respData = await WebAPI.post(\"Partner/PartnerUpdatepreference\", formData);\r\n if (typeof logoData.icon !== \"string\")\r\n respML = await WebAPI.post(\"Partner/PartnerMiniLogo\", formDataMiniLogo);\r\n if (typeof logoData.logo !== \"string\")\r\n respLL = await WebAPI.post(\r\n \"Partner/PartnerLargeLogo\",\r\n formDataLargeLogo\r\n );\r\n if (respData.data.status || respLL.data.status || respML.data.status)\r\n dispatch(alertActions.success(\"Successfully uploaded\"));\r\n else dispatch(alertActions.error(\"Something Went Wrong\"));\r\n } catch (error) {\r\n console.log(error);\r\n dispatch(alertActions.error(\"Server Error\"));\r\n } finally {\r\n setLoading(false);\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 3000);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
Upload Logo
\r\n \r\n {\"Upload Logo\"}\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 LogoChanged(\"CompanyName\", e.target.value)\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 LogoChanged(\"logo\", e.target.files[0])\r\n }\r\n />\r\n \r\n {logoData.logo && (\r\n \r\n

\r\n File Name :{\" \"}\r\n {logoData.logo.name ||\r\n logoData.logo.split(\"/\").slice(-1)}{\" \"}\r\n | Color : {logoData.color ? logoData.color : \"\"}\r\n

\r\n \r\n )}\r\n
\r\n LogoChanged(\"color\", e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {logoData.icon && (\r\n

\r\n File Name :{\" \"}\r\n {logoData.icon.name ||\r\n logoData.icon.split(\"/\").slice(-1)}\r\n

\r\n )}\r\n \r\n
\r\n\r\n LogoChanged(\"icon\", e.target.files[0])}\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n setPreview(!preview)}\r\n disabled={!logoData.icon && !logoData.logo}\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n Upload\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {(logoData.icon || logoData.logo) && (\r\n setPreview(!preview)}\r\n style={{ width: 800 }}\r\n >\r\n \r\n \r\n {logoData.logo && (\r\n \r\n
Logo :
\r\n \r\n \r\n )}\r\n
\r\n \r\n {logoData.icon && (\r\n \r\n
Icon :
\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport { Container, Row, Col, Card, CardBody } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport { Form, Input, Label, FormGroup } from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nexport default function AcronisApiGen() {\r\n const dispatch = useDispatch();\r\n\r\n const [key, setKey] = useState(\"\");\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchKey();\r\n }, []);\r\n\r\n const fetchKey = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await WebAPI.get(\"/Acronics/GetAPIKey\");\r\n console.log(\"respget\", resp);\r\n if (resp.data.status) setKey(resp.data.result);\r\n else {\r\n dispatch(alertActions.error(\"Key doesn't Exist!!\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setIsLoading(false);\r\n };\r\n\r\n const handleSave = async () => {\r\n setIsLoading(true);\r\n try {\r\n const resp = await WebAPI.get(\"/Acronics/GenerateAPIKey\");\r\n console.log(\"respgenerate\", resp);\r\n if (resp.data.status) {\r\n dispatch(alertActions.success(\"Key generated sucessfully\"));\r\n setKey(resp.data.result);\r\n } else {\r\n dispatch(alertActions.error(\"Failed to generate!\"));\r\n }\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n setIsLoading(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n {\"Acronis API\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Generate API

\r\n handleSave()}\r\n style={{ marginTop: \"20px\" }}\r\n >\r\n \r\n {\r\n navigator.clipboard.writeText(key);\r\n dispatch(alertActions.success(\"copied!\"));\r\n }}\r\n >\r\n Copy Key\r\n \r\n
\r\n \r\n {\r\n navigator.clipboard.writeText(key);\r\n dispatch(alertActions.success(\"copied!\"));\r\n }}\r\n outline\r\n style={{ opacity: \"0.7\", marginLeft: \"10px\" }}\r\n >\r\n Copy\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","import { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n Button,\r\n InputGroup,\r\n Input,\r\n UncontrolledTooltip,\r\n Collapse,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n UncontrolledDropdown,\r\n Modal,\r\n ModalHeader,\r\n ModalFooter,\r\n} from \"reactstrap\";\r\nimport _ from \"lodash\";\r\nimport API from \"services/WebAPI\";\r\n\r\nconst PopConfirm = ({ onOk }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n if (onOk) onOk();\r\n SetModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n SetModal(!modal)}\r\n size=\"sm\"\r\n >\r\n Delete\r\n \r\n SetModal(false)}>\r\n \r\n Are you sure to delete this webhook?\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction EditHook({ data, open, onClose, update }) {\r\n const [_targets, setAvailable] = useState([]);\r\n\r\n const [target, setTarget] = useState(\"\");\r\n const [url, setUrl] = useState(\"\");\r\n const [type, setType] = useState(null);\r\n const [header, setHeader] = useState({});\r\n const [key, setKey] = useState(\"\");\r\n const [value, setValue] = useState(\"\");\r\n const [headerOpen, setHeaderOpen] = useState(false);\r\n const [requestType, setRequestType] = useState(\"\");\r\n const [saving, setSaving] = useState(false);\r\n\r\n const { role } = useSelector((store) => store.authentication.user);\r\n\r\n useEffect(() => {\r\n if (role === \"admin\") {\r\n loadPartners();\r\n } else {\r\n loadCustomers();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setTarget(role === \"admin\" ? data.PartnerId : data.CustomerId);\r\n setUrl(data.Url);\r\n setType(data.Type);\r\n setRequestType(data?.RequestType || \"\")\r\n if (data.Headers) {\r\n let head = {};\r\n try {\r\n head = JSON.parse(JSON.parse(data.Headers));\r\n } catch { }\r\n setHeader(head);\r\n }\r\n }\r\n }, [open]);\r\n\r\n const loadPartners = async () => {\r\n try {\r\n const response = await API.get(\"Partner/List\");\r\n const { data: d, status } = response.data;\r\n if (status)\r\n setAvailable(\r\n d.map((e) => ({ id: e.PartnerId, emtity_name: e.EntityName }))\r\n );\r\n } catch { }\r\n };\r\n\r\n const loadCustomers = async () => {\r\n API.get(`/Customers/List?active=true`).then(({ data: res }) => {\r\n if (res.status)\r\n setAvailable(\r\n res.data.map((e) => ({ id: e.Id, emtity_name: e.CompanyName }))\r\n );\r\n });\r\n };\r\n\r\n const handleAddHeader = () => {\r\n if (!key || !value) return;\r\n const x = _.cloneDeep(header);\r\n _.set(x, key, value);\r\n setHeader(x);\r\n setKey(\"\");\r\n setValue(\"\");\r\n };\r\n\r\n const handleRemoveHeader = (key) => {\r\n const x = _.cloneDeep(header);\r\n delete x[key];\r\n setHeader(x);\r\n };\r\n\r\n const handleSave = async () => {\r\n if (!url || !target || type === undefined || type === null || !requestType) return;\r\n try {\r\n setSaving(true)\r\n const res = await API.post(\"Event/AddorUpdateNewPortalEvent/\", {\r\n Id: data ? data.Id : undefined,\r\n [role === \"admin\" ? \"partnerId\" : \"customerId\"]: target === 'All' ? 0 : target,\r\n url,\r\n type,\r\n headers: JSON.stringify(header),\r\n requestType\r\n });\r\n if (res.data.status) {\r\n update();\r\n onCancel();\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setSaving(false);\r\n };\r\n\r\n const handleDelete = async (id = data.Id) => {\r\n try {\r\n const res = await API.post(`Event/DeletePortalEvent?eventId=${id}`);\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n update();\r\n };\r\n\r\n const displayTarget = (isTypeDropdwn) => {\r\n if (isTypeDropdwn) {\r\n if (type == null) {\r\n return \"Action Type\";\r\n }\r\n return type ? \"Attack\" : \"License\";\r\n }\r\n if (!target) {\r\n return role === \"admin\" ? \"Partner\" : \"Customer\";\r\n }\r\n return _targets.filter((t) => t.id === target)[0]?.emtity_name || target;\r\n };\r\n\r\n const displayRequestType = () => {\r\n let data = \"Request Type\";\r\n if (requestType === \"http\") data = \"http://\";\r\n if (requestType === \"https\") data = \"https://\";\r\n return data;\r\n };\r\n\r\n // closing edit tab\r\n const onCancel = () => {\r\n setTarget(\"\");\r\n setUrl(\"\");\r\n setType(null);\r\n setHeader({});\r\n setKey(\"\");\r\n setValue(\"\");\r\n setRequestType(\"\")\r\n setHeaderOpen(false);\r\n if (onClose) onClose();\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {displayTarget()}\r\n \r\n \r\n setTarget(\"All\")}>Allxz\r\n {_targets.map(({ id, emtity_name }) => (\r\n setTarget(id)}>\r\n {emtity_name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {displayRequestType()}\r\n \r\n \r\n setRequestType(\"http\")}>\r\n http://\r\n \r\n setRequestType(\"https\")}>\r\n https://\r\n \r\n \r\n \r\n setUrl(e.target.value)}\r\n style={{ borderRadius: 0, paddingLeft: 10 }}\r\n />\r\n setHeaderOpen((headerOpen) => !headerOpen)}\r\n >\r\n {headerOpen ? : }\r\n \r\n \r\n {headerOpen ? \"hide header panel\" : \"configure request headers\"}\r\n \r\n \r\n \r\n {displayTarget(true)}\r\n \r\n \r\n setType(0)}>License\r\n setType(1)}>Attack\r\n \r\n \r\n {!data && (\r\n \r\n {saving && (\r\n \r\n )}\r\n Add\r\n \r\n )}\r\n \r\n \r\n Request headers\r\n
\r\n {Object.entries(header).map(([k, v]) => (\r\n \r\n \r\n \r\n handleRemoveHeader(k)}\r\n style={{\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n }}\r\n >\r\n \r\n \r\n \r\n ))}\r\n\r\n
\r\n \r\n setKey(e.target.value)}\r\n />\r\n setValue(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {data && (\r\n \r\n \r\n
\r\n \r\n Cancel\r\n \r\n \r\n {saving && (\r\n \r\n )}\r\n Update\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default EditHook;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n Container,\r\n Card,\r\n ListGroupItem,\r\n ListGroup,\r\n Spinner,\r\n Collapse\r\n} from \"reactstrap\";\r\nimport _ from \"lodash\";\r\nimport API from \"services/WebAPI\";\r\nimport EditHook from \"./edit\";\r\n\r\nconst ListItem = ({ data, update }) => {\r\n const [open, setOpen] = useState(false)\r\n return \r\n\r\n \r\n setOpen(false)} update={update} />\r\n \r\n {!open && \r\n {data.Url}\r\n \r\n }\r\n \r\n}\r\n\r\nconst WebHooks = () => {\r\n const history = useHistory();\r\n\r\n const [hooks, setHooks] = useState([]);\r\n const [hookLoading, setHookLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n loadWebHooks();\r\n }, []);\r\n\r\n const loadWebHooks = async () => {\r\n setHookLoading(true);\r\n try {\r\n const res = await API.get(\"Event/FetchAllPortalEvents/\");\r\n if(res.data.status){\r\n setHooks(res.data.result)\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setHookLoading(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(\"-1\")}\r\n >\r\n \r\n \r\n Web Hooks\r\n
\r\n \r\n \r\n \r\n \r\n Configured hooks\r\n \r\n {hookLoading && (\r\n \r\n \r\n \r\n ) || hooks.map((h) => ())}\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default WebHooks;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Container, Row, Popover } from \"reactstrap\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Legend,\r\n Tooltip,\r\n BarChart,\r\n Bar,\r\n YAxis,\r\n LineChart,\r\n XAxis,\r\n Cell,\r\n Line,\r\n CartesianGrid,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\nimport moment from \"moment\";\r\n\r\nconst COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({\r\n cx,\r\n cy,\r\n midAngle,\r\n innerRadius,\r\n outerRadius,\r\n percent,\r\n index,\r\n}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst ActiveLicense = (props) => {\r\n const [data, setdata] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n setdata(props.data);\r\n }, [props]);\r\n\r\n const data01 = [\r\n {\r\n name: \"Desktop\",\r\n value:\r\n data.map((i) => i?.DesktopLicenses).reduce((a, b) => a + b, 0) || 0,\r\n },\r\n {\r\n name: \"Server\",\r\n value: data.map((i) => i?.ServerLicense).reduce((a, b) => a + b, 0) || 0,\r\n },\r\n ];\r\n\r\n /* const data02 = data\r\n .map((i) => i.timeStamp)\r\n .map((i) => {\r\n const t = moment(i).seconds(0).milliseconds(0).toISOString();\r\n console.log(\"t\", t);\r\n const _data = {\r\n name: moment(i).format(\"DD MMM YYYY\"),\r\n endpoint: data.filter(\r\n (row) =>\r\n moment(row?.timeStamp).seconds(0).milliseconds(0).toISOString() ===\r\n t\r\n ).length,\r\n amt: data.length,\r\n };\r\n console.log(\"_data\", _data);\r\n return _data;\r\n }); */\r\n\r\n const data03 = [...new Set(data.map((i) => i?.version))].map((i) => {\r\n const _data = {\r\n name: i,\r\n Desktop:\r\n data\r\n .filter((row) => row?.version === i)\r\n .map((row) => row?.DesktopLicenses)\r\n .reduce((a, b) => a + b, 0) || 0,\r\n Server:\r\n data\r\n .filter((row) => row?.version === i)\r\n .map((row) => row?.ServerLicense)\r\n .reduce((a, b) => a + b, 0) || 0,\r\n };\r\n\r\n return _data;\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Ratio of Active Desktop to Server

\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n {data01.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Active license endpoints

\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\nexport default ActiveLicense;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, {\r\n Search,\r\n CSVExport,\r\n} from \"react-bootstrap-table2-toolkit\";\r\n\r\nimport { useSelector } from \"react-redux\";\r\nimport store from \"store\";\r\nimport _ from \"lodash\";\r\nimport semver from \"semver\";\r\n\r\n/* import EndpointFilter from \"./popover\";\r\nimport fetchFilteredEndpoints from \"./helper\"; */\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport Popover from \"react-bootstrap/Popover\";\r\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\r\nconst semverSort = require(\"semver/functions/sort\");\r\n\r\nconst { SearchBar } = Search;\r\n\r\nexport default function ReportingTable(props) {\r\n const [filterPopover, toggleFilterPopover] = useState(false);\r\n const [Filters, setFilters] = useState({\r\n version: [],\r\n activation: [],\r\n deviceType: [],\r\n status: [],\r\n license: [],\r\n });\r\n\r\n const [rowData, setRowData] = useState([]);\r\n const { ExportCSVButton } = CSVExport;\r\n\r\n useEffect(() => {\r\n const { endpoints } = props;\r\n setRowData(endpoints);\r\n }, [props]);\r\n\r\n const { theme } = useSelector((state) => state.authentication.user) || {\r\n theme: \"white\",\r\n };\r\n const user = useSelector((s) => s.authentication.user);\r\n\r\n const columns = [\r\n {\r\n dataField: \"deviceId\",\r\n text: \"ID\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: \"70px\", padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"companyName\",\r\n text: \"Company\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"hostName\",\r\n text: \"Hostname\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"type\",\r\n text: \"Type\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"version\",\r\n text: \"Version\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n sortFunc: (a, b, order) => {\r\n a = a === \"\" ? \"0.0.0\" : a;\r\n b = b === \"\" ? \"0.0.0\" : b;\r\n if (order === \"asc\") {\r\n return semver.compare(a, b) === 1 ? 1 : -1;\r\n } else {\r\n return semver.compare(a, b) === 1 ? -1 : 1;\r\n // desc\r\n }\r\n },\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"timeStamp\",\r\n text: \"Last Contact\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n searchable: false,\r\n style: { whiteSpace: \"normal\" },\r\n formatter: function (cell, row) {\r\n return new Date(cell).toLocaleString();\r\n },\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"PartnerName\",\r\n hidden: true,\r\n csvExport:false\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData?.length,\r\n };\r\n\r\n const { loading } = props;\r\n\r\n const filter_applied = !_.values(Filters).every(_.isEmpty);\r\n\r\n return (\r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n \r\n \r\n \r\n Export as CSV\r\n \r\n \r\n \r\n \r\n : \"No Data\"\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\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","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Container, Row, Popover } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport ReportingTable from \"./table\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Legend,\r\n Tooltip,\r\n BarChart,\r\n Bar,\r\n YAxis,\r\n LineChart,\r\n XAxis,\r\n Cell,\r\n Line,\r\n CartesianGrid,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\nimport moment from \"moment\";\r\nimport semver from \"semver\";\r\n\r\nconst COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({\r\n cx,\r\n cy,\r\n midAngle,\r\n innerRadius,\r\n outerRadius,\r\n percent,\r\n index,\r\n}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst Reporting = () => {\r\n const [desktop, setDesktop] = useState([]);\r\n const [server, setServer] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchdata();\r\n }, []);\r\n const fetchdata = async () => {\r\n setLoading(true);\r\n try {\r\n const resp = await WebAPI.get(\r\n \"/Report/FetchOfflineDesktopEndpointsReport\"\r\n );\r\n const resp2 = await WebAPI.get(\r\n \"/Report/FetchOfflineServerEndpointsReport\"\r\n );\r\n if (resp.data.status) {\r\n const data = [];\r\n resp.data?.result.forEach((i) => {\r\n data.push({ ...i, type: \"desktop\" });\r\n });\r\n setDesktop(data);\r\n }\r\n\r\n if (resp2.data.status) {\r\n const data = [];\r\n resp2.data?.result.forEach((i) => {\r\n data.push({ ...i, type: \"server\" });\r\n });\r\n setServer(data);\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const data01 = [\r\n { name: \"Desktop\", value: desktop.length || 0 },\r\n { name: \"Server\", value: server.length || 0 },\r\n ];\r\n\r\n /* const data02 = [...desktop, ...server]\r\n .map((i) => i.timeStamp)\r\n .map((i) => {\r\n const data = {\r\n name: moment(i).format(\"YYYY-MM-DD\"),\r\n server: server.filter((row) => row.timeStamp === i).length,\r\n desktop: desktop.filter((row) => row.timeStamp === i).length,\r\n amt: [...server, ...desktop].length,\r\n };\r\n return data;\r\n }); */\r\n\r\n const data03 = [...new Set([...desktop, ...server].map((i) => i.version))]\r\n .sort((a, b) => {\r\n return semver.compare(a || \"0.0.0\", b || \"0.0.0\") === 1 ? 1 : -1;\r\n })\r\n .map((i) => {\r\n const data = {\r\n name: i,\r\n server: server.filter((row) => row.version === i).length,\r\n desktop: desktop.filter((row) => row.version === i).length,\r\n };\r\n\r\n return data;\r\n });\r\n\r\n return (\r\n <>\r\n \r\n
Agent Offline Report
\r\n {!loading && (\r\n \r\n
\r\n \r\n
\r\n
\r\n
Ratio of Offline Desktop & Servers
\r\n \r\n \r\n \r\n \r\n {data01.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Offline Endpoints v/s Versions\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 );\r\n};\r\n\r\nexport default Reporting;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Col, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, {\r\n Search,\r\n CSVExport,\r\n} from \"react-bootstrap-table2-toolkit\";\r\n\r\nimport semver from \"semver\";\r\n\r\n\r\nconst { SearchBar } = Search;\r\n\r\nexport default function ReportingTable(props) {\r\n\r\n const [rowData, setRowData] = useState([]);\r\n const { ExportCSVButton } = CSVExport;\r\n\r\n useEffect(() => {\r\n const { endpoints } = props;\r\n setRowData(endpoints);\r\n }, [props]);\r\n\r\n\r\n const columns = [\r\n {\r\n dataField: \"DeviceId\",\r\n text: \"ID\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: \"70px\", padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"Hostname\",\r\n text: \"Hostname\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"License.Customer.FirstName\",\r\n text: \"Customer\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"License.Customer.CompanyName\",\r\n text: \"Company Name\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"DeviceType\",\r\n text: \"Device Type\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"Version\",\r\n text: \"Version\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n sortFunc: (a, b, order) => {\r\n a = a === \"\" ? \"0.0.0\" : a;\r\n b = b === \"\" ? \"0.0.0\" : b;\r\n if (order === \"asc\") {\r\n return semver.compare(a, b) === 1 ? 1 : -1;\r\n } else {\r\n return semver.compare(a, b) === 1 ? -1 : 1;\r\n // desc\r\n }\r\n },\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData?.length,\r\n };\r\n\r\n const { loading } = props;\r\n\r\n\r\n return (\r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n \r\n \r\n \r\n Export as CSV\r\n \r\n \r\n \r\n \r\n : \"No Data\"\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\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","import { useState, useEffect } from \"react\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport ReportingTable from \"./table\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Legend,\r\n Tooltip,\r\n BarChart,\r\n Bar,\r\n YAxis,\r\n XAxis,\r\n Cell,\r\n CartesianGrid,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\nimport semver from \"semver\";\r\n\r\nconst COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({\r\n cx,\r\n cy,\r\n midAngle,\r\n innerRadius,\r\n outerRadius,\r\n percent,\r\n index,\r\n}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst Reporting = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [endpoints, setEndpoints] = useState([])\r\n\r\n useEffect(() => {\r\n fetchdata();\r\n }, []);\r\n\r\n const fetchdata = async () => {\r\n setLoading(true);\r\n try {\r\n const resp= await WebAPI.get('Report/EndpointServiceNotActivatedReport')\r\n if(resp.data.status)\r\n setEndpoints(resp.data.result)\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const data01 = [\r\n { name: \"Desktop\", value: endpoints.filter(i=>i.DeviceType===\"Desktop\").length || 0 },\r\n { name: \"Server\", value: endpoints.filter(i=>i.DeviceType===\"Server\").length || 0 },\r\n ];\r\n\r\n const data03 = [...new Set(endpoints.map((i) => i.Version))]\r\n .sort((a, b) => {\r\n return semver.compare(a || \"0.0.0\", b || \"0.0.0\") === 1 ? 1 : -1;\r\n })\r\n .map((i) => {\r\n const data = {\r\n name: i,\r\n endpoints: endpoints.filter((row) => row.Version === i).length,\r\n };\r\n\r\n return data;\r\n });\r\n\r\n return (\r\n <>\r\n \r\n {!loading && (
Not-Activated Endpoint Report
)}\r\n {!loading && (\r\n \r\n
\r\n \r\n
\r\n
\r\n
Ratio of Not-Activated Desktop & Servers
\r\n \r\n \r\n \r\n \r\n {data01.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Endpoints v/s Versions\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};\r\n\r\nexport default Reporting;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Col, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, {\r\n Search,\r\n CSVExport,\r\n} from \"react-bootstrap-table2-toolkit\";\r\n\r\nimport _ from \"lodash\";\r\n\r\n\r\nconst { SearchBar } = Search;\r\n\r\nexport default function ReportingTable(props) {\r\n\r\n const [rowData, setRowData] = useState([]);\r\n const { ExportCSVButton } = CSVExport;\r\n\r\n useEffect(() => {\r\n const { endpoints } = props;\r\n setRowData(endpoints);\r\n }, [props]);\r\n\r\n\r\n const columns = [\r\n {\r\n dataField: \"DeviceId\",\r\n text: \"ID\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: \"70px\", padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"LastUpdate\",\r\n text: \"Last Updated\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"TrayIcon\",\r\n text: \"Tray Icon\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"UpdateService\",\r\n text: \"Service Update\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData?.length,\r\n };\r\n\r\n const { loading } = props;\r\n\r\n return (\r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n \r\n \r\n \r\n Export as CSV\r\n \r\n \r\n \r\n \r\n : \"No Data\"\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\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","import { useState, useEffect } from \"react\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport ReportingTable from \"./table\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Legend,\r\n Tooltip,\r\n Cell,\r\n ResponsiveContainer,\r\n} from \"recharts\";\r\n\r\nconst COLORS = [\"#0088FE\", \"#00C49F\", \"#FFBB28\", \"#FF8042\"];\r\nconst COLORS1 = [\"#FF8042\", \"#FFBB28\", \"#00C49F\", \"#0088FE\"];\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({\r\n cx,\r\n cy,\r\n midAngle,\r\n innerRadius,\r\n outerRadius,\r\n percent,\r\n index,\r\n}) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? \"start\" : \"end\"}\r\n dominantBaseline=\"central\"\r\n >\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst Reporting = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [endpoints, setEndpoints] = useState([])\r\n\r\n useEffect(() => {\r\n fetchdata();\r\n }, []);\r\n\r\n const fetchdata = async () => {\r\n setLoading(true);\r\n try {\r\n const resp= await WebAPI.get('Report/EndpointServiceNotRunningReport')\r\n if(resp.data.status)\r\n setEndpoints(resp.data.result)\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const trayIconData = [\r\n { name: \"Available\", value: endpoints.filter(i=>i.TrayIcon!==\"Not available\").length || 0 },\r\n { name: \"Not Available\", value: endpoints.filter(i=>i.TrayIcon===\"Not available\").length || 0 },\r\n ];\r\n\r\n const serviceUpdateData = [\r\n { name: \"Available\", value: endpoints.filter(i=>i.UpdateService!==\"Not available\").length || 0 },\r\n { name: \"Not Available\", value: endpoints.filter(i=>i.UpdateService===\"Not available\").length || 0 },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n {!loading && (
Endpoint Status Report
)}\r\n {!loading && (\r\n \r\n
\r\n \r\n
\r\n
\r\n
Availability of Tray Icon
\r\n \r\n \r\n \r\n \r\n {trayIconData.map((entry, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Availability of Service Updates\r\n
\r\n \r\n \r\n \r\n \r\n {serviceUpdateData.map((entry, index) => (\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\nexport default Reporting;\r\n","import {\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Col,\r\n Input,\r\n Label,\r\n} from \"reactstrap\";\r\n\r\nimport { CSVExport } from \"react-bootstrap-table2-toolkit\";\r\nimport { useState } from \"react\";\r\nimport NotActivatedEnpointReport from \"./notActivated\";\r\nimport ServiceStatusEndpointReport from \"./serviceStatus\";\r\n\r\nexport default function EndpointSettingReport() {\r\n const [reportId, setReportId] = useState(\"SERVICE_STATUS\");\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setReportId(e.target.value)}\r\n value={reportId}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {reportId === \"NOT_ACTIVATED\" && }\r\n {reportId === \"SERVICE_STATUS\" && }\r\n \r\n );\r\n}\r\n","import {\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Col,\r\n Button,\r\n ButtonGroup,\r\n Spinner,\r\n} from \"reactstrap\";\r\n\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport ToolkitProvider, { CSVExport } from \"react-bootstrap-table2-toolkit\";\r\nimport { useEffect, useState } from \"react\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport reportsList from \"./reports.json\";\r\nimport AppConfig from \"config\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\nimport ActiveLicense from \"./visualization/activeLicenseChart\";\r\nimport Reporting from \"./offlineReport\";\r\nimport EndpointSettingReport from \"./endpointSetting\";\r\n\r\nconst { ExportCSVButton } = CSVExport;\r\n\r\nfunction getReportProps(reportId) {\r\n return reportsList[reportId] || { columns: [{}] };\r\n}\r\n\r\nexport default function Reports() {\r\n const [report, setReport] = useState({ columns: [{}] });\r\n\r\n const [reportTitle, setReportTitle] = useState(\"\");\r\n const [reportData, setReportData] = useState([]);\r\n const [reportId, setReportId] = useState(\"\");\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [visitedBtn, setVisited] = useState(\"\");\r\n\r\n const history = useHistory();\r\n const id = useParams();\r\n\r\n const loadReport = (reportId = \"\") => {\r\n setIsLoading(true);\r\n const reportProps = getReportProps(reportId);\r\n\r\n WebAPI({\r\n method: \"get\",\r\n url: `${reportProps.url}`,\r\n baseURL: AppConfig.apiHost,\r\n })\r\n .then((result) => {\r\n setReportData(result.data.data);\r\n setReportTitle(reportProps.title);\r\n })\r\n .finally(() => setIsLoading(false));\r\n setReport(reportProps);\r\n setReportId(reportId);\r\n };\r\n\r\n useEffect(() => {\r\n loadReport(\"OFFLINE_REPORT\");\r\n }, []);\r\n\r\n const { theme = \"white\" } = useSelector((s) => s.authentication.user) || {};\r\n\r\n return (\r\n \r\n \r\n
Reports
\r\n
\r\n history.push(\"/reports/report_settings\")}\r\n >\r\n Report Settings\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n loadReport(\"ACTIVE_LICENSE\")}\r\n >\r\n Active Paid Licenses\r\n \r\n \r\n setReportId(\"OFFLINE_REPORT\")}\r\n >\r\n Agent Offline Report\r\n \r\n\r\n setReportId(\"ENDPOINT_SETTINGS\")}\r\n >\r\n Endpoint Settings Report\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {reportId === \"OFFLINE_REPORT\" && }\r\n {reportId === \"ENDPOINT_SETTINGS\" && }\r\n {reportId === \"ACTIVE_LICENSE\" && (\r\n \r\n
\r\n \r\n {(props) => (\r\n
\r\n \r\n

{reportTitle}

\r\n \r\n Export as CSV\r\n \r\n
\r\n {reportId === \"ACTIVE_LICENSE\" && !isLoading && (\r\n \r\n )}\r\n
\r\n \r\n ) : (\r\n \"No 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 );\r\n}\r\n","import { useSelector } from \"react-redux\";\r\nimport { Container, Row, Col, Card, CardBody, Button, ButtonGroup } from \"reactstrap\";\r\nimport styled from \"styled-components\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Helmet } from \"react-helmet\";\r\n\r\n\r\nconst SettingsBlock = styled.div`\r\nbox-sizing: border-box;\r\nborder-radius: 3px;\r\nborder:1px solid ${props => props.theme === 'dark' ? '#4E5054' : '#E8E8E8'};\r\nbackground-color: ${props => props.theme === 'dark' ? '#2F3032' : '#FFFFFF'};\r\nheight:80px;\r\nmargin-bottom:10px;\r\n`\r\n\r\nconst Settings = ({ button, iconSvg, title, subtitle }) => {\r\n const { theme = 'white' } = useSelector(store => store.authentication.user)\r\n return (\r\n \r\n
\r\n {iconSvg}\r\n
\r\n
\r\n
\r\n {title}\r\n {subtitle}\r\n
\r\n
\r\n
\r\n {button}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default function Integrations() {\r\n\r\n \r\n const history = useHistory()\r\n const { theme = 'white', role } = useSelector(store => store.authentication.user)\r\n return (\r\n \r\n
\r\n Integration\r\n
\r\n \r\n \r\n {\"Integration\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n history.push('/integrations/acronis')}>Configure}\r\n iconSvg={(\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n title=\"Acronis API\"\r\n subtitle=\"Configure Acronis API here\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n\r\n}","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from 'react-redux'\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n CardBody,\r\n Container,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback\r\n} from \"reactstrap\";\r\n\r\nimport { alertActions } from 'redux/_actions/'\r\nimport WebAPI from 'services/WebAPI'\r\nimport AlertMessage from \"components/Alert\";\r\nimport Button from 'components/Inputs/TButton'\r\n\r\nconst CustomerNotificationSettings = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n\r\n const [loading, setLoading] = useState(false)\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (!id)\r\n return\r\n WebAPI\r\n .get('/Customers/GetNotificationSettings/' + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setFormState(res.data)\r\n }\r\n })\r\n }, [id]);\r\n\r\n\r\n const updateSettings = (e) => {\r\n e.preventDefault()\r\n if (loading)\r\n return\r\n\r\n setLoading(true)\r\n\r\n const data = formState\r\n WebAPI\r\n .post('/Customers/SetNotificationSettings/' + id, data)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n dispatch(alertActions.success(res.message))\r\n } else {\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n .catch(() => dispatch(alertActions.error(\"Connection error\")))\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n const [formState, setFormState] = useState({\r\n EmailNotificationActive: true,\r\n NotificationEmails: \"\",\r\n });\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n EmailNotificationActive: false,\r\n NotificationEmails: false,\r\n });\r\n\r\n\r\n const handleFormValueChange = ({ target: { id, value, checked } }) => {\r\n if (id === 'EmailNotificationActive')\r\n value = checked\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Edit Notification Settings\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 Please enter a emails for notification\r\n \r\n \r\n \r\n {''}\r\n \r\n \r\n \r\n \r\n \r\n Save\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\nexport default CustomerNotificationSettings;","import { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n CardBody,\r\n Container,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n} from \"reactstrap\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nconst intial_state = {\r\n serverReportId: 0,\r\n desktopReportId: 0,\r\n reportActive: true,\r\n NotificationEmails: \"\",\r\n serverCycle: \"daily\",\r\n desktopCycle: \"weekly\",\r\n serverWeeklyDay: 1,\r\n desktopWeeklyDay: 1,\r\n serverMonthlydate: 1,\r\n desktopMonthlydate: 1,\r\n reportTime: \"10:00\",\r\n};\r\n\r\nconst CustomerReportSettings = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const { role = \"partner\" } = useSelector(\r\n (state) => state.authentication.user\r\n );\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [dates, setDates] = useState([]);\r\n\r\n const [formState, setFormState] = useState({ ...intial_state });\r\n\r\n useEffect(() => {\r\n Dates();\r\n fetchData();\r\n }, []);\r\n\r\n const fetchData = async () => {\r\n try {\r\n const resp = await WebAPI.get(\r\n // `/Report/FetchPartnerScheduledReports?PartnerId=${id}`\r\n \"/Report/FetchScheduledReports\"\r\n );\r\n if (resp.data.status && resp.data.data.length !== 0) {\r\n const { data: _data } = resp.data;\r\n let data = _data;\r\n if (role === \"admin\") {\r\n data = _data.filter((i) => i.PartnerId === 0);\r\n }\r\n if (data.length !== 0) {\r\n const server = data.filter(\r\n (i) => i.ReportType === \"OfflineServer\"\r\n )[0];\r\n const desktop = data.filter(\r\n (i) => i.ReportType === \"OfflineDesktop\"\r\n )[0];\r\n const newData = {\r\n serverReportId: server?.ReportId,\r\n desktopReportId: desktop?.ReportId,\r\n reportActive: data[0]?.ToggleEmailReport,\r\n NotificationEmails: data[0]?.NotificationEmailList,\r\n serverCycle: server?.Interval,\r\n desktopCycle: desktop?.Interval,\r\n serverWeeklyDay:\r\n server?.Interval === \"weekly\"\r\n ? new Date(server?.DefaultTime).getDay()\r\n : 1,\r\n desktopWeeklyDay:\r\n desktop?.Interval === \"weekly\"\r\n ? new Date(desktop?.DefaultTime).getDay()\r\n : 1,\r\n serverMonthlydate:\r\n server?.Interval === \"monthly\"\r\n ? new Date(server?.DefaultTime).getDate()\r\n : 1,\r\n desktopMonthlydate:\r\n desktop?.Interval === \"monthly\"\r\n ? new Date(desktop?.DefaultTime).getDate()\r\n : 1,\r\n reportTime: `${\r\n (new Date(server?.DefaultTime).getHours() < 10 ? \"0\" : \"\") +\r\n new Date(server?.DefaultTime).getHours()\r\n }:${\r\n (new Date(server?.DefaultTime).getMinutes() < 10 ? \"0\" : \"\") +\r\n new Date(server?.DefaultTime).getMinutes()\r\n }`,\r\n };\r\n setFormState(newData);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n const Dates = () => {\r\n let date = [];\r\n for (let i = 1; i < 29; i += 1) {\r\n date.push(i);\r\n }\r\n setDates(date);\r\n };\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n reportActive: false,\r\n NotificationEmails: false,\r\n });\r\n\r\n const handleFormValueChange = ({ target: { id, value, checked } }) => {\r\n if (id === \"reportActive\") value = checked;\r\n invalidFormState[id] = false;\r\n formState[id] = value;\r\n setFormState({ ...formState });\r\n setInvalidFormState({ ...invalidFormState });\r\n };\r\n\r\n const prepareTime = (type) => {\r\n let time = new Date();\r\n const d = new Date();\r\n d.setDate(d.getDate() - d.getDay());\r\n const t = formState.reportTime.split(\":\");\r\n switch (type) {\r\n case \"server\": {\r\n if (formState.serverCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n break;\r\n } else if (formState.serverCycle === \"weekly\") {\r\n d.setDate(d.getDate() + parseInt(formState.serverWeeklyDay));\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n break;\r\n } else if (formState.serverCycle === \"monthly\") {\r\n time = new Date(\r\n d.getFullYear(),\r\n d.getMonth(),\r\n formState.serverMonthlydate,\r\n t[0],\r\n t[1]\r\n );\r\n }\r\n break;\r\n }\r\n case \"desktop\": {\r\n if (formState.desktopCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n } else if (formState.desktopCycle === \"weekly\") {\r\n d.setDate(d.getDate() + parseInt(formState.desktopWeeklyDay));\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n } else if (formState.desktopCycle === \"monthly\") {\r\n time = new Date(\r\n d.getFullYear(),\r\n d.getMonth(),\r\n formState.desktopMonthlydate,\r\n t[0],\r\n t[1]\r\n );\r\n }\r\n break;\r\n }\r\n default:\r\n return;\r\n }\r\n return time;\r\n };\r\n\r\n const handleSave = async () => {\r\n try {\r\n let serverReq = {\r\n ReportId: formState.serverReportId,\r\n ReportType: \"OfflineServer\",\r\n Interval: formState.serverCycle,\r\n //PartnerId: parseInt(id,10),\r\n DefaultTime: new Date(prepareTime(\"server\")).toISOString(),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n let desktopReq = {\r\n ReportId: formState.desktopReportId,\r\n ReportType: \"OfflineDesktop\",\r\n Interval: formState.desktopCycle,\r\n //PartnerId: parseInt(id,10),\r\n DefaultTime: new Date(prepareTime(\"desktop\")).toISOString(),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n\r\n if (role === \"admin\") {\r\n serverReq = { ...serverReq, ...{ PartnerId: 0 } };\r\n desktopReq = { ...desktopReq, ...{ PartnerId: 0 } };\r\n }\r\n const serverResp = await WebAPI.post(\r\n \"/Report/SaveScheduledReports\",\r\n serverReq\r\n );\r\n\r\n if (serverResp?.data?.status) {\r\n try {\r\n const desktopResp = await WebAPI.post(\r\n \"/Report/SaveScheduledReports\",\r\n desktopReq\r\n );\r\n\r\n if (desktopResp?.data?.status) {\r\n dispatch(alertActions.success(\"Successfully Updated\"));\r\n fetchData();\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n } catch (error) {\r\n console.log(\"errord\", error);\r\n }\r\n }\r\n } catch (err) {\r\n console.log(\"errs\", err);\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 \r\n \r\n \r\n \r\n \r\n \r\n Please enter a emails for reports\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 Please select a cycle period for servers\r\n \r\n \r\n \r\n {formState.serverCycle === \"weekly\" && (\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 Please select a cycle period for servers\r\n \r\n \r\n \r\n )}\r\n {formState.serverCycle === \"monthly\" && (\r\n \r\n \r\n \r\n \r\n {dates.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n Please select a date for server monthly cycle\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 Please select a cycle period for Desktops\r\n \r\n \r\n \r\n {formState.desktopCycle === \"weekly\" && (\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 Please select a day for desktop weekly cycle\r\n \r\n \r\n \r\n )}\r\n {formState.desktopCycle === \"monthly\" && (\r\n \r\n \r\n \r\n \r\n {dates.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n Please select a date for Desktop monthly cycle\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 Save\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\nexport default CustomerReportSettings;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n CardBody,\r\n Container,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n} from \"reactstrap\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport Button from \"components/Inputs/TButton\";\r\n\r\nconst LicenseReport = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [dates, setDates] = useState([]);\r\n\r\n const [formState, setFormState] = useState({\r\n reportId: 0,\r\n reportActive: true,\r\n NotificationEmails: \"\",\r\n serverCycle: \"weekly\",\r\n desktopCycle: \"monthly\",\r\n serverWeeklyDay: 1,\r\n desktopWeeklyDay: 1,\r\n serverMonthlydate: 1,\r\n desktopMonthlydate: 1,\r\n reportTime: \"13:00\",\r\n });\r\n\r\n useEffect(() => {\r\n Dates();\r\n //fetchData()\r\n }, []);\r\n\r\n const fetchData=async()=>{\r\n try {\r\n const resp= await WebAPI.get('/Report/FetchPartnerScheduledReports?partnerId=1')\r\n console.log('resp', resp)\r\n } catch (error) {\r\n console.log('error', error)\r\n }\r\n }\r\n\r\n const Dates = () => {\r\n let date = [];\r\n for (let i = 1; i < 29; i += 1) {\r\n date.push(i);\r\n }\r\n setDates(date);\r\n };\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n reportActive: false,\r\n NotificationEmails: false,\r\n });\r\n\r\n const handleFormValueChange = ({ target: { id, value, checked } }) => {\r\n if (id === \"reportActive\") value = checked;\r\n invalidFormState[id] = false;\r\n formState[id] = value;\r\n setFormState({ ...formState });\r\n setInvalidFormState({ ...invalidFormState });\r\n };\r\n\r\n const prepareTime = (type) => {\r\n let time = new Date();\r\n const d = new Date();console.log('d', d)\r\n d.setDate(d.getDate() - d.getDay());\r\n const t = formState.reportTime.split(\":\");\r\n\r\n switch (type) {\r\n case \"server\":{\r\n if (formState.serverCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n break\r\n }\r\n else if(formState.serverCycle === \"weekly\"){console.log('first', formState.serverWeeklyDay,d, d.getDay())\r\n d.setDate(d.getDate() + formState.serverWeeklyDay);\r\n d.setHours(t[0], t[1]);\r\n time=d\r\n break\r\n }\r\n else if(formState.serverCycle === \"monthly\"){\r\n time= new Date(d.getFullYear(),d.getMonth(),formState.serverMonthlydate, t[0], t[1])\r\n }\r\n break;\r\n }\r\n case \"desktop\":{\r\n if (formState.desktopCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n }\r\n else if(formState.desktopCycle === \"weekly\"){\r\n d.setDate(d.getDate() + formState.desktopWeeklyDay);\r\n d.setHours(t[0], t[1]);\r\n time=d\r\n }\r\n else if(formState.desktopCycle === \"monthly\"){\r\n time= new Date(d.getFullYear(), d.getMonth(), formState.desktopMonthlydate,t[0], t[1])\r\n }\r\n break;\r\n }\r\n default:\r\n return \r\n }\r\n console.log('time', time)\r\n return time;\r\n };\r\n\r\n const handleSave = async () => {\r\n /* try {\r\n const serverReq = {\r\n ReportId: formState.reportId,\r\n ReportType: \"OfflineServer\",\r\n Interval: formState.serverCycle,\r\n PartnerId: 1,\r\n DefaultTime: prepareTime(\"server\"),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n const desktopReq = {\r\n ReportId: formState.reportId,\r\n ReportType: \"OfflineDesktop\",\r\n Interval: formState.desktopCycle,\r\n PartnerId: 1,\r\n DefaultTime: prepareTime(\"desktop\"),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n const serverResp = await WebAPI.post(\"/Report/SaveScheduledReports\", serverReq);\r\n console.log(\"resp\", serverResp);\r\n const desktopResp = await WebAPI.post(\"/Report/SaveScheduledReports\", desktopReq);\r\n console.log(\"desktop resp\", desktopResp);\r\n } catch (err) {\r\n console.log(\"err\", err);\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 \r\n \r\n\r\n \r\n \r\n \r\n \r\n Please enter a emails for reports\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 Please select a cycle period \r\n \r\n \r\n \r\n {formState.desktopCycle === \"weekly\" && (\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 Please select a day \r\n \r\n \r\n \r\n )}\r\n {formState.desktopCycle === \"monthly\" && (\r\n \r\n \r\n \r\n \r\n {dates.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n Please select a date \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 Save\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\nexport default LicenseReport;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n CardBody,\r\n Container,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n} from \"reactstrap\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport Button from \"components/Inputs/TButton\";\r\n\r\nconst EndpointSettingReport = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [dates, setDates] = useState([]);\r\n\r\n const [formState, setFormState] = useState({\r\n reportId: 0,\r\n reportActive: true,\r\n NotificationEmails: \"\",\r\n serverCycle: \"weekly\",\r\n desktopCycle: \"daily\",\r\n serverWeeklyDay: 4,\r\n desktopWeeklyDay: 1,\r\n serverMonthlydate: 1,\r\n desktopMonthlydate: 1,\r\n reportTime: \"02:30\",\r\n });\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n\r\n const toggle = () => setDropdownOpen((prevState) => !prevState);\r\n\r\n useEffect(() => {\r\n Dates();\r\n //fetchData()\r\n }, []);\r\n\r\n const fetchData=async()=>{\r\n try {\r\n const resp= await WebAPI.get('/Report/FetchPartnerScheduledReports?partnerId=1')\r\n console.log('resp', resp)\r\n } catch (error) {\r\n console.log('error', error)\r\n }\r\n }\r\n\r\n const Dates = () => {\r\n let date = [];\r\n for (let i = 1; i < 29; i += 1) {\r\n date.push(i);\r\n }\r\n setDates(date);\r\n };\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n reportActive: false,\r\n NotificationEmails: false,\r\n });\r\n\r\n const handleFormValueChange = ({ target: { id, value, checked } }) => {\r\n if (id === \"reportActive\") value = checked;\r\n invalidFormState[id] = false;\r\n formState[id] = value;\r\n setFormState({ ...formState });\r\n setInvalidFormState({ ...invalidFormState });\r\n };\r\n\r\n const prepareTime = (type) => {\r\n let time = new Date();\r\n const d = new Date();console.log('d', d)\r\n d.setDate(d.getDate() - d.getDay());\r\n const t = formState.reportTime.split(\":\");\r\n\r\n switch (type) {\r\n case \"server\":{\r\n if (formState.serverCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n break\r\n }\r\n else if(formState.serverCycle === \"weekly\"){console.log('first', formState.serverWeeklyDay,d, d.getDay())\r\n d.setDate(d.getDate() + formState.serverWeeklyDay);\r\n d.setHours(t[0], t[1]);\r\n time=d\r\n break\r\n }\r\n else if(formState.serverCycle === \"monthly\"){\r\n time= new Date(d.getFullYear(),d.getMonth(),formState.serverMonthlydate, t[0], t[1])\r\n }\r\n break;\r\n }\r\n case \"desktop\":{\r\n if (formState.desktopCycle === \"daily\") {\r\n d.setHours(t[0], t[1]);\r\n time = d;\r\n }\r\n else if(formState.desktopCycle === \"weekly\"){\r\n d.setDate(d.getDate() + formState.desktopWeeklyDay);\r\n d.setHours(t[0], t[1]);\r\n time=d\r\n }\r\n else if(formState.desktopCycle === \"monthly\"){\r\n time= new Date(d.getFullYear(), d.getMonth(), formState.desktopMonthlydate,t[0], t[1])\r\n }\r\n break;\r\n }\r\n default:\r\n return \r\n }\r\n console.log('time', time)\r\n return time;\r\n };\r\n\r\n const handleSave = async () => {\r\n /* try {\r\n const serverReq = {\r\n ReportId: formState.reportId,\r\n ReportType: \"OfflineServer\",\r\n Interval: formState.serverCycle,\r\n PartnerId: 1,\r\n DefaultTime: prepareTime(\"server\"),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n const desktopReq = {\r\n ReportId: formState.reportId,\r\n ReportType: \"OfflineDesktop\",\r\n Interval: formState.desktopCycle,\r\n PartnerId: 1,\r\n DefaultTime: prepareTime(\"desktop\"),\r\n NotificationEmailList: formState.NotificationEmails,\r\n ToggleEmailReport: formState.reportActive,\r\n };\r\n const serverResp = await WebAPI.post(\"/Report/SaveScheduledReports\", serverReq);\r\n console.log(\"resp\", serverResp);\r\n const desktopResp = await WebAPI.post(\"/Report/SaveScheduledReports\", desktopReq);\r\n console.log(\"desktop resp\", desktopResp);\r\n } catch (err) {\r\n console.log(\"err\", err);\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 \r\n \r\n \r\n \r\n \r\n \r\n Select\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Please enter a emails for reports\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 Please select a cycle period\r\n \r\n \r\n \r\n {formState.desktopCycle === \"weekly\" && (\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 Please select a day\r\n \r\n \r\n \r\n )}\r\n {formState.desktopCycle === \"monthly\" && (\r\n \r\n \r\n \r\n \r\n {dates.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n Please select a date \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 Save\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\nexport default EndpointSettingReport;\r\n","import { Button, Row, Col, Input, Card, CardHeader, CardBody, Modal, FormGroup, Label, UncontrolledTooltip } from \"reactstrap\";\r\n\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport ToolkitProvider from 'react-bootstrap-table2-toolkit';\r\nimport filterFactory, { textFilter } from 'react-bootstrap-table2-filter';\r\nimport { useState } from \"react\";\r\n\r\nimport _ from 'lodash'\r\nimport paginationFactory,\r\n{ PaginationProvider, SizePerPageDropdownStandalone, PaginationListStandalone }\r\n from 'react-bootstrap-table2-paginator';\r\n\r\n\r\nfunction SimpleAddModal(props) {\r\n const [ addValue, setAddValue ] = useState('')\r\n const [ error, setError ] = useState(null)\r\n\r\n const handleAddButton = () => {\r\n if (addValue.length < 2)\r\n setError('Invalid input')\r\n else {\r\n const { onUpdate } = props\r\n if(onUpdate){\r\n onUpdate(addValue) \r\n }\r\n }\r\n }\r\n return (\r\n props.setOpen(false)}\r\n >\r\n
\r\n

\r\n Add path to list\r\n

\r\n props.setOpen(false)}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n setAddValue(value)} />\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nconst ExclusionInfo = ({ type }) => {\r\n switch (type) {\r\n case \"Folder Exclusion\":\r\n return <>\r\n \r\n
\r\n \r\n

Example Folder Exclusions

\r\n
\r\n
\r\n

False Positive Generated

\r\n
    \r\n
  • C:\\Users\\Cashier.runelite\\repository2
  • \r\n
\r\n

Options to deal with false positive

\r\n
    \r\n
  1. \\repository2\\ - Protect any folder named repository2 but exclude all subfolders
  2. \r\n
  3. repository2 – Exclude every folder path containing folder repository2
  4. \r\n
  5. C:\\Users\\Cashier.runelite\\repository2 - exclude only repository2 and all subfolders by exact path
  6. \r\n
\r\n
\r\n \r\n\r\n case \"Process Allow List\":\r\n return <>\r\n \r\n
\r\n \r\n

Example Process Allow list

\r\n
\r\n
\r\n

False Positive Generated

\r\n
    \r\n
  • C:\\Users\\Cashier.runelite\\repository2.exe
  • \r\n
\r\n

Options to deal with false positive

\r\n
    \r\n
  1. repository2 - Exclude the process containing repository2
  2. \r\n
  3. C:\\Users\\Cashier.runelite\\repository2.exe - Exclude process only by exact path
  4. \r\n
\r\n
\r\n \r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default function ListSelector(props) {\r\n\r\n const [modalShown, setModalShown] = useState(false)\r\n\r\n const columns = [\r\n {\r\n dataField: 'path', text: 'Path', style: { whiteSpace: 'normal' }, headerStyle: { padding: \"10px\", display: 'flex', alignItems: 'center', justifyContent:'space-evenly' }, filter: textFilter({\r\n style: {\r\n marginTop: 5,\r\n marginLeft: 10,\r\n width:'100%',\r\n },\r\n placeholder: 'Search'\r\n })\r\n },\r\n ]\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: props.list ? props.list.length : 0,\r\n paginationSize: 3,\r\n };\r\n\r\n let tableRef = null;\r\n\r\n const selectRow = {\r\n mode: 'checkbox',\r\n clickToSelect: true,\r\n headerColumnStyle: {\r\n paddingBottom:25\r\n }\r\n }\r\n\r\n // Methods\r\n const handleDelete = () => {\r\n const selected = tableRef.selectionContext.selected\r\n const list = props.list\r\n const newList = _.difference(list, selected)\r\n if (props.onUpdate)\r\n props.onUpdate(newList)\r\n }\r\n\r\n const handleAdd = (listToAdd = []) => {\r\n const { list } = props\r\n if (!Array.isArray(listToAdd))\r\n listToAdd = [listToAdd,]\r\n const newList = _.union(list, listToAdd)\r\n if (props.onUpdate)\r\n props.onUpdate(newList)\r\n setModalShown(false)\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

{props.title}

\r\n {props.isGlobal && }\r\n \r\n \r\n
\r\n
\r\n \r\n ({ path: r })) || []}\r\n columns={columns}\r\n >\r\n {\r\n props => (\r\n \r\n {\r\n ({\r\n paginationProps,\r\n paginationTableProps\r\n }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n tableRef = n}\r\n selectRow={selectRow}\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n noDataIndication=\"No Data\"\r\n filter={filterFactory()}\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}","import TButton from \"components/Inputs/TButton\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDispatch } from 'react-redux'\r\nimport { Container, Row, Col, CardBody, Card, FormGroup, Input, Label, Spinner, Alert } from \"reactstrap\";\r\n\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport filterFactory, { textFilter } from 'react-bootstrap-table2-filter';\r\n\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport _ from \"lodash\";\r\n\r\nconst ENDPOINT_KEY = 'DeviceId'\r\n\r\nexport default function CopyToEndpoints(props) {\r\n\r\n const [endpoints, setEndpoints] = useState([])\r\n\r\n const columns = [{\r\n dataField: 'HostName',\r\n text: 'Hostname',\r\n style:{whiteSpace:\"normal\"}\r\n }, {\r\n dataField: 'CustomerName',\r\n text: 'Customer',\r\n filter: textFilter(),\r\n style:{whiteSpace:\"normal\"}\r\n },\r\n {\r\n dataField: 'CompanyName',\r\n text: 'Company',\r\n filter: textFilter(),\r\n style:{whiteSpace:\"normal\"}\r\n },\r\n {\r\n dataField: 'DeviceType',\r\n text: 'Type',\r\n style:{whiteSpace:\"normal\"}\r\n }, {\r\n dataField: 'Version',\r\n text: 'Version',\r\n style:{whiteSpace:\"normal\"}\r\n }\r\n ];\r\n\r\n //\r\n const [selectedEndpoint, setSelectedEndpoint] = useState([])\r\n const [filteredEndpoint, setFilteredEndpoints] = useState([])\r\n\r\n const dispatch = useDispatch()\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const endpoint = row[ENDPOINT_KEY]\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, endpoint])\r\n } else {\r\n setSelectedEndpoint(selectedEndpoint.filter(x => x !== row[ENDPOINT_KEY]))\r\n }\r\n }\r\n\r\n const handleSelectAll = (isSelect, rows) => {\r\n const newEP = filteredEndpoint.map(x => x[ENDPOINT_KEY])\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, ...newEP])\r\n } else {\r\n setSelectedEndpoint([])\r\n }\r\n }\r\n\r\n const afterFilter = (result, f) => {\r\n if (_.xor(filteredEndpoint.map(x => x[ENDPOINT_KEY]), result.map(x => x[ENDPOINT_KEY])).length) {\r\n setFilteredEndpoints(result || [])\r\n }\r\n }\r\n\r\n const [scope, setScope] = useState({ Configurations: true, FolderExclustions: true, Whitelist: true })\r\n\r\n const [loading, setLoading] = useState(false)\r\n const [updating, setUpdating] = useState(false)\r\n\r\n useEffect(() => {\r\n if (loading)\r\n return\r\n setLoading(true)\r\n WebAPI\r\n .get('/Endpoints/List?minifed=true')\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setEndpoints(res.data)\r\n setFilteredEndpoints(res.data)\r\n })\r\n .finally(() => setLoading(false))\r\n }, [])\r\n\r\n const handleSave = () => {\r\n if (updating)\r\n return\r\n setUpdating(true)\r\n WebAPI\r\n .post('/Endpoints/CopyToEndpoints',{\r\n scope,\r\n config : props.config,\r\n endpoints : selectedEndpoint,\r\n })\r\n .then(({ data: res }) => {\r\n dispatch(alertActions.success(\"Request processed!\"))\r\n setTimeout(() => {\r\n dispatch(alertActions.clear())\r\n }, 2000);\r\n })\r\n .finally(() => setUpdating(false))\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 \r\n { setScope({ ...scope, Configurations: checked }) }} />\r\n \r\n \r\n \r\n { setScope({ ...scope, FolderExclustions: checked }) }} />\r\n \r\n \r\n \r\n { setScope({ ...scope, Whitelist: checked }) }} />\r\n \r\n \r\n \r\n Endpoint Selected : {selectedEndpoint.length}\r\n Apply\r\n \r\n \r\n \r\n \r\n \r\n : \"No Data\"}\r\n selectRow={{\r\n mode: 'checkbox',\r\n clickToSelect: true,\r\n selected: selectedEndpoint,\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleSelectAll\r\n }}\r\n filter={filterFactory({afterFilter})}\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}","import ListSelector from \"components/Configuration/ListSelector\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport {\r\n CardBody,\r\n Container,\r\n Row,\r\n Card,\r\n Col,\r\n FormGroup,\r\n Label,\r\n Input,\r\n Modal,\r\n Spinner,\r\n Alert,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n} from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport CopyToEndpoints from \"components/Configuration/CopyToEndpoints\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport _ from \"lodash\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\n\r\nexport default function Configuration(props) {\r\n const init = {\r\n Id: 0,\r\n Email: \"\",\r\n FolderExclusion: [],\r\n FolderProtection: [],\r\n WhiteList: [],\r\n UserAutoProtect: false,\r\n AdvancedProtection: false,\r\n ExtMonitor: false,\r\n NativeProtection: false,\r\n AutoProtectShares: false,\r\n DefaultSettingMode: false,\r\n LearningMode: false,\r\n SubFolderAutoProtect: false,\r\n };\r\n const { endpointSettings = false, globalSettings = false } = props;\r\n const [config, setConfig] = useState(init);\r\n const [visible, setVisible] = useState(false);\r\n const [currentConfig, setCurrentConfig] = useState(init);\r\n const [loading, setLoading] = useState(false);\r\n const [unsavedChanges, setUnsavedChanges] = useState(false);\r\n const [channels, setChannels] = useState([]);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n loadSettings();\r\n }, [props.id]);\r\n\r\n const loadSettings = () => {\r\n if (loading) return;\r\n setLoading(true);\r\n\r\n const url = globalSettings\r\n ? \"/Customers/GetGlobalSettings\"\r\n : `/${endpointSettings ? \"Endpoints\" : \"Customers\"}/Settings/${props.id}`;\r\n loadChannels();\r\n WebAPI.get(url)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n const settings = _.cloneDeep(res.data.settings);\r\n const _state = props?.history?.location?.state || {};\r\n\r\n setCurrentConfig(res.data.settings);\r\n if (_state?.FolderExclusion) {\r\n settings.FolderExclusion.push(_state?.FolderExclusion);\r\n }\r\n if (_state?.WhiteList) {\r\n settings.WhiteList.push(_state?.WhiteList);\r\n }\r\n setConfig(settings);\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const loadChannels = () => {\r\n WebAPI.get(\"/UpgradeManager/FetchAllPackageChannels\").then(\r\n ({ data: res }) => {\r\n if (res.status) setChannels(_.orderBy(res.result, \"Priority\", \"desc\"));\r\n }\r\n );\r\n };\r\n\r\n const [updating, setUpdating] = useState(false);\r\n\r\n const setSettings = () => {\r\n if (updating || loading) return;\r\n setUpdating(true);\r\n const url = globalSettings\r\n ? \"/Customers/SetGlobalSettings\"\r\n : `/${endpointSettings ? \"Endpoints\" : \"Customers\"}/SetSettings/${\r\n props.id\r\n }`;\r\n WebAPI.post(url, { settings: config, applyToEndpoints: applyToExisiting })\r\n .then(({ data: res }) => {\r\n setCurrentConfig(config);\r\n dispatch(alertActions.success(\"Settings Updated Successfully.\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 3000);\r\n })\r\n .finally(() => setUpdating(false));\r\n };\r\n\r\n useEffect(() => {\r\n checkAndShowUnsavedChangeWarning();\r\n }, [config, currentConfig]);\r\n\r\n const [applyToExisiting, setApplyToExisiting] = useState(false);\r\n const [copyModal, setCopyModal] = useState(false);\r\n\r\n const updateConfig = (configKey, newValue) => {\r\n const newConfig = { ...config };\r\n newConfig[configKey] = newValue;\r\n setConfig(newConfig);\r\n };\r\n\r\n const checkAndShowUnsavedChangeWarning = () => {\r\n if (!_.isEqual(config, currentConfig)) setUnsavedChanges(true);\r\n else setUnsavedChanges(false);\r\n };\r\n\r\n const { role = \"Partner\", theme = \"white\" } = useSelector(\r\n (state) => state.authentication.user\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!copyModal && }\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n \r\n {(globalSettings && \" \") || (\r\n \r\n \r\n \r\n \r\n \r\n \r\n updateConfig(\"Email\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"PackageChannelType\", e.target.value)\r\n }\r\n >\r\n {![\r\n ...channels.map((i) => i.Channel),\r\n \"inherit\",\r\n ].includes(config.PackageChannelType) && (\r\n \r\n )}\r\n {endpointSettings && (\r\n \r\n )}\r\n {channels.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n Configuration \r\n
\r\n \r\n \r\n updateConfig(\"UserAutoProtect\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"AutoProtectShares\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"DefaultSettingMode\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"SubFolderAutoProtect\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"SupressPopUp\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n {\r\n if (value && config?.LearningMode)\r\n setVisible(true);\r\n else updateConfig(\"SupressEmail\", value);\r\n }}\r\n />\r\n \r\n \r\n {role === \"admin\" && (\r\n <>\r\n \r\n \r\n updateConfig(\"AdvancedProtection\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n\r\n {(role === \"admin\" || role === \"partner\") && (\r\n <>\r\n \r\n \r\n updateConfig(\"LearningMode\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"NativeProtection\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n updateConfig(\"ExtMonitor\", value)\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n {unsavedChanges && (\r\n \r\n \r\n \r\n There are unsaved changes in this page! Please save if\r\n required.\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {(endpointSettings && (\r\n setCopyModal(true)}\r\n >\r\n Copy to Endpoints\r\n \r\n )) ||\r\n (globalSettings && \" \") || (\r\n \r\n \r\n setApplyToExisiting(value)\r\n }\r\n />\r\n \r\n \r\n )}\r\n \r\n Save\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {endpointSettings && (\r\n \r\n updateConfig(\"FolderProtection\", v)}\r\n />\r\n \r\n )}\r\n \r\n updateConfig(\"FolderExclusion\", v)}\r\n isGlobal={globalSettings}\r\n />\r\n \r\n \r\n updateConfig(\"WhiteList\", v)}\r\n isGlobal={globalSettings}\r\n />\r\n \r\n \r\n\r\n setCopyModal(false)}\r\n size=\"xl\"\r\n backdrop=\"static\"\r\n >\r\n
\r\n {\r\n dispatch(alertActions.clear());\r\n setCopyModal(false);\r\n }}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n setVisible(false)}\r\n backdrop=\"static\"\r\n >\r\n Do you want to continue?\r\n \r\n Monitor Mode is enabled, so please exercise caution before checking\r\n the 'Suppress Email' option, as it will prevent you from receiving any\r\n alert emails\r\n \r\n \r\n {\r\n updateConfig(\"SupressEmail\", true);\r\n setVisible(false);\r\n }}\r\n >\r\n Continue\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport _ from \"lodash\";\r\nimport {\r\n Col,\r\n Row,\r\n Form,\r\n Input,\r\n Label,\r\n Button,\r\n PopoverHeader,\r\n PopoverBody,\r\n} from \"reactstrap\";\r\nimport { endpointFilterActions } from \"redux/_actions\";\r\n\r\n\r\nconst EndpointFilter = ({ data, Filters, applyFilter, clearFilter }) => {\r\n const [versionList, setVersionList] = useState([]);\r\n const [activationList, setActivationList] = useState([]);\r\n const [deviceTypeList, setDeviceTypeList] = useState([]);\r\n const [statusList, setStatusList] = useState([]);\r\n const [licenseList, setLicenseList] = useState([]);\r\n const [channelList, setChannelList] = useState([])\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n const newList = {\r\n versionList: _.keys(_.countBy(data, function (rD) { return rD.Version })),\r\n activationList: _.keys(_.countBy(data, function (rD) { return rD.ActivationStatus })),\r\n deviceTypeList: _.keys(_.countBy(data, function (rD) { return rD.DeviceType })),\r\n statusList: _.keys(_.countBy(data, function (rD) { return rD.OnlineStatus })),\r\n channelList: _.keys(_.countBy(data, function (rD) { return rD.UpdateChannel })),\r\n licenseList: _.keys(_.countBy(data, function (rD) { return rD.LicenseType }))\r\n }\r\n setVersionList(newList.versionList)\r\n setActivationList(newList.activationList)\r\n setDeviceTypeList(newList.deviceTypeList)\r\n setStatusList(newList.statusList)\r\n setLicenseList(newList.licenseList)\r\n setChannelList(newList.channelList)\r\n }, [data]);\r\n\r\n const handleChange = ({ target }) => {\r\n const newFilters = Filters\r\n if(target.checked){\r\n newFilters[target.id].push(target.name)\r\n }\r\n else{\r\n newFilters[target.id] = newFilters[target.id].filter(v => v != target.name)\r\n }\r\n applyFilter(newFilters)\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

Filter List

\r\n \r\n \r\n \r\n Clear\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {versionList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n \r\n \r\n
\r\n {activationList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n \r\n \r\n
\r\n {deviceTypeList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {statusList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n \r\n \r\n
\r\n {licenseList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n \r\n \r\n
\r\n {channelList.map(i =>
\r\n {i}\r\n
)}\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default EndpointFilter;","const fetchFilteredEndpoints = (data,filters) => {\r\n let versionList = []\r\n let activationList = []\r\n let deviceTypeList = []\r\n let licenseList = []\r\n let statusList = []\r\n let channelList = []\r\n\r\n versionList = filters.version.length === 0 ? data : []\r\n filters.version.forEach(i => {\r\n versionList.push(...data.filter(el => el.Version === i))\r\n });\r\n \r\n channelList = filters?.channel?.length === 0 ? versionList : []\r\n filters?.channel?.forEach(i => {\r\n channelList.push(...versionList.filter(el => el?.UpdateChannel === i))\r\n });\r\n\r\n activationList = filters.activation.length === 0 ? channelList : []\r\n filters.activation.forEach(i => {\r\n activationList.push(...channelList.filter(el => el.ActivationStatus === i))\r\n });\r\n\r\n deviceTypeList = filters.deviceType.length === 0 ? activationList : []\r\n filters.deviceType.forEach(i => {\r\n deviceTypeList.push(...activationList.filter(el => el.DeviceType === i))\r\n });\r\n \r\n licenseList = filters.license.length === 0 ? deviceTypeList : []\r\n filters.license.forEach(i => {\r\n licenseList.push(...deviceTypeList.filter(el => el.LicenseType === i))\r\n });\r\n\r\n statusList = filters.status.length === 0 ? licenseList : []\r\n filters.status.forEach(i => {\r\n statusList.push(...licenseList.filter(el => el.OnlineStatus === i))\r\n });\r\n return statusList\r\n}\r\n\r\nexport default fetchFilteredEndpoints;","import { useState, useEffect } from \"react\";\r\nimport {\r\n Button,\r\n Col,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n Row,\r\n Spinner,\r\n Form,\r\n FormGroup,\r\n Input,\r\n Label,\r\n} from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, {\r\n Search,\r\n CSVExport,\r\n} from \"react-bootstrap-table2-toolkit\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport store from \"store\";\r\nimport _ from \"lodash\";\r\nimport semver from \"semver\";\r\n\r\nimport EndpointFilter from \"./popover\";\r\nimport fetchFilteredEndpoints from \"./helper\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport \"./style.css\";\r\nimport Popover from \"react-bootstrap/Popover\";\r\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\r\nimport SelectSearch from \"react-select-search\";\r\nconst semverSort = require(\"semver/functions/sort\");\r\n\r\nconst { SearchBar } = Search;\r\nconst { ExportCSVButton } = CSVExport;\r\nconst ENDPOINT_KEY = \"DeviceId\";\r\n\r\nexport default function EndpointsTable(props) {\r\n const [filterPopover, toggleFilterPopover] = useState(false);\r\n const [Filters, setFilters] = useState({\r\n version: [],\r\n activation: [],\r\n deviceType: [],\r\n status: [],\r\n license: [],\r\n channel: [],\r\n });\r\n\r\n const [rowData, setRowData] = useState([]);\r\n const [endPointWholeList, setEndPointList] = useState([]);\r\n const [selectedEndpoint, setSelectedEndpoint] = useState([]);\r\n const [isUninstall, setIsUninstall] = useState(false);\r\n const [uninstall, setUninstall] = useState(true);\r\n const [partner, setPartner] = useState(0);\r\n const [partnerFilter, setPFilter] = useState(\"\");\r\n const [customerFilter, setCFilter] = useState(\"\");\r\n const [move, setMove] = useState(false);\r\n const [moveToCustomer, setMoveToCustomer] = useState(null);\r\n const [isModalOpen, setIsModalOpen] = useState({\r\n open: false,\r\n type: null,\r\n name: null,\r\n });\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [str, setStr] = useState(\"\");\r\n\r\n const { theme } = useSelector((state) => state.authentication.user) || {\r\n theme: \"white\",\r\n };\r\n const user = useSelector((s) => s.authentication.user);\r\n const dispatch = useDispatch();\r\n const { endpoints, intialFilter } = props;\r\n\r\n useEffect(() => {\r\n setEndPointList(endpoints);\r\n let _filters = store.get(`app.endpointFilters.${user.email}`);\r\n if (!intialFilter) {\r\n _filters = Filters;\r\n store.set(`app.endpointFilters.${user.email}`, _filters);\r\n }\r\n if (_filters) {\r\n const newRowData = fetchFilteredEndpoints(endpoints, _filters);\r\n setRowData(newRowData);\r\n setFilters(_filters);\r\n } else {\r\n setRowData(endpoints);\r\n }\r\n }, [endpoints, intialFilter]);\r\n\r\n const history = useHistory();\r\n\r\n const handleConfirm = async () => {\r\n try {\r\n const req = {\r\n UnistallDeviceIdList: selectedEndpoint,\r\n IsUnistall: uninstall,\r\n };\r\n const resp = await WebAPI.post(\"/Endpoints/MassUninstall\", req);\r\n if (resp.data.status) {\r\n dispatch(\r\n alertActions.success(\r\n `Successfully reitred ${uninstall ? \"and uninstalled\" : \"\"}`\r\n )\r\n );\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 2000);\r\n } else dispatch(alertActions.error(resp.data.message));\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n } finally {\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n setIsUninstall(false);\r\n }, 2000);\r\n }\r\n };\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n const endpoint = row[ENDPOINT_KEY];\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, endpoint]);\r\n } else {\r\n setSelectedEndpoint(\r\n selectedEndpoint.filter((x) => x !== row[ENDPOINT_KEY])\r\n );\r\n }\r\n };\r\n\r\n const handleSelectAll = (isSelect, rows) => {\r\n const newEP = rowData\r\n .filter((i) => !selectedEndpoint.includes(i[ENDPOINT_KEY]))\r\n .map((x) => x[ENDPOINT_KEY]);\r\n if (isSelect) {\r\n setSelectedEndpoint([...selectedEndpoint, ...newEP]);\r\n } else {\r\n setSelectedEndpoint([]);\r\n }\r\n };\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n history.push(`/endpoints/endpoint_details/${row.DeviceId}`);\r\n },\r\n };\r\n\r\n const {\r\n dashFilter: { failedUpdates = \"false\" },\r\n } = props;\r\n\r\n const columns = [\r\n {\r\n dataField: \"DeviceId\",\r\n text: \"ID\",\r\n sort: true,\r\n searchable: true,\r\n headerStyle: { width: \"50px\", padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"CustomerName\",\r\n text: \"Customer\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n //csvExport:false,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"CompanyName\",\r\n text: \"Company\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"HostName\",\r\n text: \"Hostname\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"OnlineStatus\",\r\n text: \"Status\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n //csvExport:false,\r\n formatter: function (cell, row) {\r\n return (\r\n \r\n {cell}\r\n \r\n );\r\n },\r\n headerStyle: { padding: \"15px 5px\", width: \"90px\" },\r\n },\r\n {\r\n dataField: \"DeviceType\",\r\n text: \"Type\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\", width: 80 },\r\n },\r\n {\r\n dataField: \"ActivationStatus\",\r\n text: \"Activation\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: function (cell, row) {\r\n return (\r\n \r\n {cell}\r\n \r\n );\r\n },\r\n hidden: failedUpdates === \"true\" ? true : false,\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"UpdateServiceStatus\",\r\n text: \"Failed Updates\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: false,\r\n hidden: failedUpdates === \"true\" ? false : true,\r\n headerStyle: { padding: \"15px 5px\", width: \"300px\" },\r\n },\r\n {\r\n dataField: \"Version\",\r\n text: \"Version\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n sortFunc: (a, b, order) => {\r\n a = a === \"\" ? \"0.0.0\" : a;\r\n b = b === \"\" ? \"0.0.0\" : b;\r\n if (order === \"asc\") {\r\n return semver.compare(a, b) === 1 ? 1 : -1;\r\n } else {\r\n return semver.compare(a, b) === 1 ? -1 : 1;\r\n // desc\r\n }\r\n },\r\n searchable: true,\r\n headerStyle: { padding: \"15px 5px\", width: 100 },\r\n //csvExport:false,\r\n },\r\n {\r\n dataField: \"LicenseType\",\r\n text: \"License\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n searchable: true,\r\n hidden: failedUpdates === \"true\" ? true : false,\r\n //csvExport:false,\r\n headerStyle: { padding: \"15px 5px\", width: 100 },\r\n },\r\n {\r\n dataField: \"LastReportedTime\",\r\n text: \"Last Contact\",\r\n classes: \"common-table-column-style\",\r\n sort: true,\r\n searchable: false,\r\n hidden: failedUpdates === \"true\" ? true : false,\r\n //csvExport:false,\r\n style: { whiteSpace: \"normal\" },\r\n formatter: function (cell, row) {\r\n return new Date(cell).toLocaleString();\r\n },\r\n headerStyle: { padding: \"15px 5px\" },\r\n },\r\n {\r\n dataField: \"PartnerName\",\r\n hidden: true,\r\n searchable: user.role === \"admin\" ? true : false,\r\n csvExport: false,\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData?.length,\r\n };\r\n\r\n const applyFilter = (filters) => {\r\n const newRowData = fetchFilteredEndpoints(endPointWholeList, filters);\r\n setRowData(newRowData || []);\r\n store.set(`app.endpointFilters.${user.email}`, filters);\r\n setFilters(filters);\r\n };\r\n\r\n const clearFilter = () => {\r\n setRowData(endPointWholeList);\r\n const _filter = {\r\n version: [],\r\n activation: [],\r\n deviceType: [],\r\n status: [],\r\n license: [],\r\n };\r\n setFilters(_filter);\r\n store.set(`app.endpointFilters.${user.email}`, _filter);\r\n toggleFilterPopover(false);\r\n document.body.click();\r\n };\r\n\r\n const handleMove = async () => {\r\n const { reload } = props;\r\n const req = {\r\n CustomerId: parseInt(moveToCustomer),\r\n DeviceIdList: selectedEndpoint,\r\n };\r\n WebAPI.post(\"/Customers/SwapCustomerEndpoints\", req)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n dispatch(alertActions.success(\"Sucessfully moved\"));\r\n setMove(false);\r\n reload();\r\n setSelectedEndpoint([]);\r\n setMoveToCustomer(null);\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"err\", err);\r\n });\r\n };\r\n\r\n const handleBulkActions = async (type = \"\", value = undefined) => {\r\n try {\r\n const { reload } = props;\r\n const req = {\r\n endpoints: selectedEndpoint,\r\n action: type,\r\n };\r\n if (\r\n type === \"add_to_excluded_folders\" ||\r\n type === \"add_to_allowed_process\"\r\n )\r\n req.path = value;\r\n else req.toggle = value;\r\n const resp = await WebAPI.post(\"/Endpoints/BulkActions\", req);\r\n if (resp.data.status) {\r\n dispatch(alertActions.success(\"Action Completed!\"));\r\n reload();\r\n } else dispatch(alertActions.error(\"Something Went Wrong\"));\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n alertActions.error(\"Something went wrong\");\r\n }\r\n };\r\n\r\n const doActions = async () => {\r\n try {\r\n setIsLoading(true);\r\n const { type } = isModalOpen;\r\n await handleBulkActions(type, str);\r\n setIsModalOpen({\r\n open: false,\r\n type: null,\r\n name: null,\r\n });\r\n setIsLoading(false);\r\n setStr(\"\");\r\n setTimeout(() => dispatch(alertActions.clear()), 2500);\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n const handleActions = (id, props) => {\r\n switch (id) {\r\n case 1: {\r\n setIsUninstall(true);\r\n break;\r\n }\r\n case 2: {\r\n setMove(true);\r\n break;\r\n }\r\n case 3: {\r\n props.csvProps.onExport();\r\n break;\r\n }\r\n case 4: {\r\n handleBulkActions(\"force_update\");\r\n break;\r\n }\r\n case 5: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"default_protection\",\r\n name: \"Protect Default Volume\",\r\n });\r\n break;\r\n }\r\n case 6: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"protect_shares\",\r\n name: \"Protect Share\",\r\n });\r\n break;\r\n }\r\n case 7: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"protect_user_folders\",\r\n name: \"Protect User Profiles\",\r\n });\r\n break;\r\n }\r\n case 8: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"monitor_mode\",\r\n name: \"Monitor Mode\",\r\n });\r\n break;\r\n }\r\n case 9: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"auto_folder_protection\",\r\n name: \"Auto New Subfolders\",\r\n });\r\n break;\r\n }\r\n case 10: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"native_file_monitoring\",\r\n name: \"Native File Monitoring\",\r\n });\r\n break;\r\n }\r\n case 11: {\r\n setStr(false);\r\n setIsModalOpen({\r\n open: true,\r\n type: \"ext_monitoring\",\r\n name: \"Extension Change Monitoring\",\r\n });\r\n break;\r\n }\r\n case 12: {\r\n setStr(\"\");\r\n setIsModalOpen({\r\n open: true,\r\n type: \"add_to_excluded_folders\",\r\n name: \"Folder Exclusion\",\r\n });\r\n break;\r\n }\r\n case 13: {\r\n setStr(\"\");\r\n setIsModalOpen({\r\n open: true,\r\n type: \"add_to_allowed_process\",\r\n name: \"Process Whitelist\",\r\n });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const { loading, customerList } = props;\r\n\r\n const popover = (\r\n \r\n \r\n \r\n );\r\n\r\n const filter_applied = !_.values(Filters).every(_.isEmpty);\r\n\r\n return (\r\n
\r\n \r\n \r\n (partner !== 0 && i.PartnerName === partner) ||\r\n (partner === 0 && i)\r\n ) || []\r\n }\r\n columns={columns}\r\n search\r\n remote\r\n exportCSV={{\r\n fileName: \"endpoint_list.csv\",\r\n exportAll: selectedEndpoint.length > 0 ? false : true,\r\n onlyExportSelection: selectedEndpoint.length > 0 ? true : false,\r\n }}\r\n >\r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n toggleFilterPopover(!filterPopover)}\r\n outline\r\n className={filter_applied ? \"filter-focus\" : \"\"}\r\n >\r\n \r\n \r\n \r\n \r\n handleActions(parseInt(e.target.value), props)\r\n }\r\n >\r\n \r\n \r\n \r\n Uninstall Endpoint(s)\r\n \r\n \r\n Move Endpoints\r\n \r\n \r\n Force Update\r\n \r\n \r\n Protect Default Volume\r\n \r\n \r\n Protect Shares\r\n \r\n \r\n Protect User Profiles\r\n \r\n \r\n Monitor Mode\r\n \r\n \r\n Auto New Subfolders\r\n \r\n \r\n Native File Monitoring\r\n \r\n \r\n Extension Change Monitoring\r\n \r\n \r\n Exclude Folder\r\n \r\n \r\n Allow Process\r\n \r\n \r\n \r\n \r\n {user.role === \"admin\" && (\r\n
\r\n i?.PartnerName))]\r\n .filter(\r\n (i) =>\r\n (partnerFilter &&\r\n i\r\n .toLowerCase()\r\n .includes(partnerFilter.toLowerCase())) ||\r\n (!partnerFilter && i)\r\n )\r\n .map((r) => {\r\n return { name: r, value: r };\r\n }),\r\n ]}\r\n value={partner}\r\n name=\"Partner\"\r\n placeholder=\"Choose Partner\"\r\n search\r\n getOptions={(val) => setPFilter(val)}\r\n onChange={(e) => setPartner(e)}\r\n />\r\n
\r\n )}\r\n \r\n \r\n
\r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n selectRow={{\r\n mode: \"checkbox\",\r\n clickToSelect: true,\r\n selected: selectedEndpoint,\r\n onSelect: handleOnSelect,\r\n onSelectAll: handleSelectAll,\r\n }}\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={\r\n {\r\n //backgroundColor: '#fff',\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 setIsUninstall(false)}>\r\n setIsUninstall(false)}\r\n >\r\n Are you sure to delete this endpoint?\r\n \r\n \r\n {selectedEndpoint.length !== 0\r\n ? `As a result of this action, ${selectedEndpoint.length} endpoint(s) will be uninstalled.`\r\n : \"Select atleast one endpoint!\"}\r\n
\r\n \r\n setUninstall(!uninstall)}\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Continue\r\n \r\n \r\n \r\n
\r\n {\r\n setMove(false);\r\n setMoveToCustomer(null);\r\n }}\r\n >\r\n Move Endpoints To:\r\n \r\n {loading && }\r\n {!loading && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n i.CompanyName.toLowerCase().includes(\r\n customerFilter.toLowerCase()\r\n )\r\n )\r\n .map((i) => ({ name: i.CompanyName, value: i.Id })),\r\n ]}\r\n value={moveToCustomer}\r\n name=\"Company\"\r\n placeholder=\"Choose Company\"\r\n search\r\n getOptions={(val) => setCFilter(val)}\r\n onChange={(e) => setMoveToCustomer(parseInt(e))}\r\n />\r\n \r\n \r\n \r\n Move\r\n \r\n \r\n )}\r\n \r\n \r\n {\r\n setIsModalOpen({ open: false, type: null, name: null });\r\n setStr(\"\");\r\n }}\r\n >\r\n {isModalOpen?.name || \"\"}\r\n \r\n {isLoading && }\r\n {!isLoading && (\r\n \r\n \r\n {(isModalOpen.type === \"add_to_excluded_folders\" ||\r\n isModalOpen.type === \"add_to_allowed_process\") && (\r\n <>\r\n \r\n \r\n \r\n \r\n setStr(e.target.value)}\r\n />\r\n \r\n \r\n )}\r\n {!(\r\n isModalOpen.type === \"add_to_excluded_folders\" ||\r\n isModalOpen.type === \"add_to_allowed_process\"\r\n ) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n setStr(e.target.checked)}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n Continue\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import { useState, useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport EndpointsTable from \"./EndpointTable\";\r\n\r\nconst EndpointList = () => {\r\n const search = useLocation().search;\r\n const device = new URLSearchParams(search).get(\"device\");\r\n const version = new URLSearchParams(search).get(\"version\")?.split(\",\");\r\n const status = new URLSearchParams(search).get(\"status\");\r\n const firewall = new URLSearchParams(search).get(\"firewall\");\r\n const health = new URLSearchParams(search).get(\"health\");\r\n const failedUpdates = new URLSearchParams(search).get(\"failedUpdates\");\r\n const [endPointWholeList, setEndPointList] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [checkFilter, setCheckFilter] = useState(true);\r\n const [customerList, setCustomerList] = useState([]);\r\n\r\n useEffect(() => {\r\n loadEndpoints();\r\n loadCustomers();\r\n }, []);\r\n\r\n const loadEndpoints = () => {\r\n setLoading(true);\r\n WebAPI.get(\"/Endpoints/List\")\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setEndPointList(res.data);\r\n }\r\n })\r\n .catch((err) => console.log(\"error\", err))\r\n .finally(() => setLoading(false));\r\n };\r\n \r\n const loadCustomers = () => {\r\n setCustomerList([]);\r\n WebAPI.get(`/Customers/List?active=true`)\r\n .then(({ data: res }) => {\r\n if (res.status) setCustomerList(res.data);\r\n })\r\n .catch((err)=>console.log('err', err))\r\n };\r\n\r\n useEffect(() => {\r\n if (device || version || status || firewall || health || failedUpdates)\r\n setCheckFilter(false);\r\n else setCheckFilter(true);\r\n }, [device, failedUpdates, firewall, health, status, version]);\r\n\r\n return (\r\n <>\r\n \r\n
Endpoints
\r\n \r\n
\r\n (device && i.DeviceType === device) || (!device && i)\r\n )\r\n .filter(\r\n (i) =>\r\n (status && i.OnlineStatus === status) ||\r\n (version && version?.includes(i.Version)) ||\r\n (firewall &&\r\n i.FirewallStatus ===\r\n (firewall === \"true\" ? true : false)) ||\r\n (health &&\r\n i.HealthStatus === (health === \"true\" ? true : false)) ||\r\n (failedUpdates === \"true\" &&\r\n (i.UpdateServiceStatus === \"Not Available\" ||\r\n i.UpdateServiceStatus.includes(\r\n \"Update failed while updating from\"\r\n ))) ||\r\n (!version &&\r\n !status &&\r\n !firewall &&\r\n !health &&\r\n !failedUpdates &&\r\n i)\r\n )}\r\n loading={loading}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EndpointList;\r\n","import React, { useState } from \"react\";\r\nimport { Modal, Button, UncontrolledTooltip, Input } from \"reactstrap\";\r\nimport _ from \"lodash\";\r\nimport moment from \"moment\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst FormRow = ({ title, children }) => (\r\n
\r\n

{title}

\r\n

:

\r\n

{children}

\r\n
\r\n);\r\n\r\nfunction AttackView({ attack, onClose }) {\r\n const [str, setStr] = useState(\"\");\r\n const [isWhitelist, setWhitelist] = useState(false);\r\n const [isExclude, setIsExclude] = useState(false);\r\n const [type, setType] = useState(\"customer\");\r\n\r\n const history = useHistory();\r\n\r\n const handleExclude = (mode) => {\r\n const requestData = {};\r\n requestData[mode] = str;\r\n if (type === \"customer\") {\r\n history.push({\r\n pathname: `/customers/customer_settings/${_.get(\r\n attack,\r\n \"Device.License.CustomerId\"\r\n )}`,\r\n state: requestData,\r\n });\r\n }\r\n if (type === \"endpoint\") {\r\n history.push({\r\n pathname: `/endpoints/endpoint_settings/${_.get(\r\n attack,\r\n \"Device.DeviceId\"\r\n )}`,\r\n state: requestData,\r\n });\r\n }\r\n };\r\n\r\n const prepareFolderPath = (val) => {\r\n try {\r\n const splitVal = val.split(\"\\\\\");\r\n splitVal.pop();\r\n setStr(splitVal.join(\"\\\\\") + \"\\\\\");\r\n } catch (error) {\r\n console.log(\"error fetching process path\", error);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n onClose()}>\r\n
\r\n Alert Details\r\n {\r\n onClose();\r\n }}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n {attack\r\n ? moment(\r\n _.get(attack, \"Attack.Time\") +\r\n (_.get(attack, \"Attack.Time\")[\r\n _.get(attack, \"Attack.Time\").length - 1\r\n ] === \"Z\"\r\n ? \"\"\r\n : \"Z\")\r\n ).format(\"YYYY-MM-DD, h:mm:ss a\")\r\n : \"\"}\r\n \r\n \r\n \r\n {_.get(attack, \"Attack.ProcessName\")}\r\n
\r\n \r\n \r\n {_.get(attack, \"Attack.ProcessId\")}\r\n \r\n \r\n {_.get(attack, \"Attack.LastFileName\")}\r\n \r\n \r\n \r\n {_.get(attack, \"Device.Hostname\")}\r\n \r\n \r\n \r\n {_.get(attack, \"Attack.IpAddress\")}\r\n \r\n {_.get(attack, \"Attack.User\")}\r\n {/* \r\n {_.get(attack, \"Customer.CompanyName\")}\r\n */}\r\n \r\n {_.get(attack, \"Attack.LearningModeStatus\") ? (\r\n ON\r\n ) : (\r\n OFF\r\n )}\r\n \r\n \r\n {_.get(attack, \"Attack.SupressEmail\") ? (\r\n ON\r\n ) : (\r\n OFF\r\n )}\r\n \r\n
\r\n \r\n window.open(\r\n `/#/customers/customer_details/${_.get(\r\n attack,\r\n \"Device.License.CustomerId\"\r\n )}`\r\n )\r\n }\r\n >\r\n \r\n \r\n View Customer\r\n \r\n \r\n {\r\n setWhitelist(true);\r\n setStr(_.get(attack, \"Attack.ProcessName\") || \"\");\r\n }}\r\n >\r\n \r\n \r\n Whitelist Process\r\n \r\n \r\n {\r\n setIsExclude(true);\r\n prepareFolderPath(_.get(attack, \"Attack.LastFileName\") || \"\");\r\n }}\r\n >\r\n \r\n \r\n Exclude Folder\r\n \r\n \r\n
\r\n
\r\n \r\n setIsExclude(false)}>\r\n
\r\n Exclude Folder\r\n setIsExclude(false)}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n setStr(e.target.value)}\r\n />\r\n \r\n \r\n setType(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n handleExclude(\"FolderExclusion\")}\r\n >\r\n Continue\r\n \r\n {\r\n setStr(\"\");\r\n setIsExclude(false);\r\n }}\r\n >\r\n Cancel\r\n \r\n
\r\n
\r\n setWhitelist(false)}>\r\n
\r\n Whitelist Process\r\n setWhitelist(false)}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n setStr(e.target.value)}\r\n />\r\n \r\n \r\n setType(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n setStr(\"\");\r\n setWhitelist(false);\r\n }}\r\n >\r\n Cancel\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default AttackView;\r\n","import { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n Col,\r\n Container,\r\n Row,\r\n Spinner,\r\n UncontrolledDropdown,\r\n DropdownMenu,\r\n DropdownItem,\r\n DropdownToggle,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n} from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n PaginationListStandalone,\r\n PaginationTotalStandalone,\r\n SizePerPageDropdownStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport _ from \"lodash\";\r\nimport AttackView from \"./view\";\r\nimport SelectSearch from \"react-select-search\";\r\nimport \"./style.css\"\r\nimport moment from \"moment\";\r\n\r\nconst AttackList = () => {\r\n const [attackWholeList, setAttackList] = useState([]);\r\n const [selected, setSelected] = useState(null);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [size, setSize] = useState(10);\r\n const [total, setTotal] = useState(0);\r\n const [page, setPage] = useState(1);\r\n const [device, setDevice] = useState(0);\r\n const [customer, setCustomer] = useState(0);\r\n const [customerFilter, setCFilter]= useState('')\r\n const [endpointFilter, setEFilter] = useState('')\r\n const [devices, setDevices] = useState([]);\r\n const [customers, setCustomers] = useState([]);\r\n\r\n const { role = \"Partner\" } = useSelector(\r\n (state) => state.authentication.user\r\n );\r\n useEffect(() => {\r\n const loadCustomers = async () => {\r\n WebAPI.get(`/Customers/List?active=true`).then(({ data: res }) => {\r\n if (res.status) {\r\n setCustomers(res.data);\r\n }\r\n });\r\n };\r\n\r\n const loadDevices = async () => {\r\n setLoading(true);\r\n WebAPI.get(\"/Endpoints/List\").then(({ data: res }) => {\r\n if (res.status) {\r\n setDevices(res.data);\r\n }\r\n });\r\n };\r\n loadDevices();\r\n loadCustomers();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const loadAttacks = async () => {\r\n setLoading(true);\r\n setAttackList([]);\r\n WebAPI.post(\"/Attack/FetchAttacks\", {\r\n PageSize: size,\r\n PageNumber: page,\r\n CustomerId: customer,\r\n DeviceId: device,\r\n })\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setTotal(res.result.TotalAttackList);\r\n setAttackList(res.result.filteredAttackList);\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n loadAttacks();\r\n }, [size, page, device, customer]);\r\n\r\n const onTableChange = (type, { page, sizePerPage }) => {\r\n setPage(page);\r\n setSize(sizePerPage);\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"Attack.Time\",\r\n text: \"Time\",\r\n classes: \"common-table-column-style\",\r\n formatter: function (cell, row) {\r\n return {moment(cell+(cell[cell.length-1]===\"Z\"?\"\":\"Z\")).format(\"YYYY-MM-DD, hh:mm:ss a\")};\r\n },\r\n headerStyle: { padding: \"15px\", minWidth: 150 },\r\n },\r\n {\r\n dataField: \"Attack.ProcessName\",\r\n text: \"Process\",\r\n classes: \"common-table-column-style\",\r\n headerStyle: { padding: \"15px\", width: 450 },\r\n },\r\n !device && {\r\n dataField: \"Device.Hostname\",\r\n text: \"Hostname\",\r\n classes: \"common-table-column-style\",\r\n headerStyle: { padding: \"15px\" },\r\n },\r\n {\r\n dataField: \"Attack.User\",\r\n text: \"User\",\r\n classes: \"common-table-column-style\",\r\n style: { whiteSpace: \"normal\" },\r\n headerStyle: { padding: \"15px\" },\r\n },\r\n role !== \"customer\" &&\r\n !customer && {\r\n dataField: \"Customer.CompanyName\",\r\n text: \"Customer\",\r\n classes: \"common-table-column-style\",\r\n style: { whiteSpace: \"normal\" },\r\n headerStyle: { padding: \"15px\" },\r\n },\r\n ];\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n setSelected(row);\r\n },\r\n };\r\n\r\n const displayTarget = (type) => {\r\n let _customer = customers?.find((c) => c?.Id === customer);\r\n switch (type) {\r\n case \"customer\":\r\n return customer === 0\r\n ? \"Customers\"\r\n : `${_customer?.FirstName} ${_customer?.LastName}`;\r\n\r\n default:\r\n return device === 0\r\n ? \"Endpoints\"\r\n : devices?.find((c) => c?.DeviceId === device)?.HostName;\r\n }\r\n };\r\n\r\n console.log(\"device\", device, customer);\r\n\r\n return (\r\n <>\r\n \r\n
Alerts
\r\n \r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n {role !== \"customer\" && (\r\n
\r\n \r\n (customerFilter &&\r\n `${i.FirstName} ${i.LastName} - ${i.CompanyName}`\r\n .toLowerCase()\r\n .includes(\r\n customerFilter.toLowerCase()\r\n )) ||\r\n (!customerFilter && i)\r\n )\r\n .map((r) => {\r\n return {\r\n name: `${r.FirstName} ${r.LastName} - ${r.CompanyName}`,\r\n value: r.Id,\r\n };\r\n }),\r\n ]}\r\n value={customer}\r\n name=\"Customer\"\r\n placeholder=\"Choose Customer\"\r\n search\r\n getOptions={(val) => setCFilter(val)}\r\n onChange={(e) => {\r\n setCustomer(parseInt(e));\r\n setDevice(0);\r\n }}\r\n />\r\n
\r\n )}\r\n {(customer !== 0 || role === \"customer\") && (\r\n
\r\n \r\n (customer\r\n ? i?.CustomerId === customer\r\n : true) &&\r\n ((endpointFilter &&\r\n i.HostName\r\n .toLowerCase()\r\n .includes(\r\n endpointFilter.toLowerCase()\r\n )) ||\r\n (!endpointFilter && i))\r\n )\r\n .map((r) => {\r\n return {\r\n name: r.HostName,\r\n value: r.DeviceId,\r\n };\r\n }),\r\n ]}\r\n value={device}\r\n name=\"Endpoint\"\r\n placeholder=\"Choose Endpoint\"\r\n search\r\n getOptions={(val) => setEFilter(val)}\r\n onChange={(e) => {\r\n setDevice(parseInt(e))\r\n }}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n rowEvents={rowEvents}\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...paginationTableProps}\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 setSelected(null)} />\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AttackList;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Container, Row, Popover } from \"reactstrap\";\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\nimport WebAPI from 'services/WebAPI'\r\nimport EndpointsTable from \"./EndpointTable\";\r\n\r\n\r\nconst EndpointListByCustomer = () => {\r\n\r\n const { id } = useParams();\r\n\r\n const [endPointWholeList, setEndPointList] = useState([]);\r\n const [loading, setLoading] = useState(false)\r\n const [customerList, setCustomerList] = useState([])\r\n\r\n useEffect(() => {\r\n loadEndpoints()\r\n loadCustomers()\r\n }, []);\r\n\r\n const loadEndpoints=()=>{\r\n setLoading(true)\r\n WebAPI\r\n .get('/Endpoints/ListFromCustomer/' + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setEndPointList(res.data)\r\n }\r\n })\r\n .catch((err)=>console.log('err', err))\r\n .finally(()=>setLoading(false))\r\n }\r\n\r\n const loadCustomers = () => {\r\n setCustomerList([]);\r\n WebAPI.get(`/Customers/List?active=true`)\r\n .then(({ data: res }) => {\r\n if (res.status) setCustomerList(res.data);\r\n })\r\n .catch((err)=>console.log('err', err))\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
Endpoints of Customer
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EndpointListByCustomer;","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Container, Row, Popover } from \"reactstrap\";\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport EndpointsTable from \"./EndpointTable\";\r\n\r\nconst EndpointListByLicensse = () => {\r\n const { id } = useParams();\r\n\r\n const [endPointWholeList, setEndPointList] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [customerList, setCustomerList] = useState([]);\r\n\r\n useEffect(() => {\r\n loadCustomers();\r\n loadEndpoints();\r\n }, []);\r\n\r\n const loadEndpoints = () => {\r\n setLoading(true);\r\n WebAPI.get(\"/Endpoints/ListFromLicense/\" + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setEndPointList(res.data);\r\n }\r\n })\r\n .catch((err) => console.log(\"err\", err))\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const loadCustomers = () => {\r\n setCustomerList([]);\r\n WebAPI.get(`/Customers/List?active=true`)\r\n .then(({ data: res }) => {\r\n if (res.status) setCustomerList(res.data);\r\n })\r\n .catch((err) => console.log(\"err\", err))\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
Endpoints with License
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EndpointListByLicensse;\r\n","import { useState, useEffect } from \"react\";\r\nimport { Button, Col, Container, Row, Popover } from \"reactstrap\";\r\nimport { useParams, useHistory, Link } from \"react-router-dom\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport EndpointsTable from \"./EndpointTable\";\r\n\r\nconst EndpointListByPartner = () => {\r\n const { id } = useParams();\r\n\r\n const [endPointWholeList, setEndPointList] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [customerList, setCustomerList] = useState([]);\r\n\r\n useEffect(() => {\r\n loadCustomers();\r\n loadEndpoints();\r\n }, []);\r\n\r\n const loadEndpoints = () => {\r\n setLoading(true);\r\n WebAPI.get(\"/Endpoints/ListFromPartner/\" + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setEndPointList(res.data);\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const loadCustomers = () => {\r\n setCustomerList([]);\r\n WebAPI.get(`/Customers/List?active=true`)\r\n .then(({ data: res }) => {\r\n if (res.status) setCustomerList(res.data);\r\n })\r\n .catch((err) => console.log(\"err\", err))\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
Endpoints under Partner
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default EndpointListByPartner;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n Modal,\r\n ModalBody,\r\n Spinner,\r\n} from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport filterFactory, { textFilter } from \"react-bootstrap-table2-filter\";\r\n\r\nimport { alertActions } from \"redux/_actions/\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport TButton from \"components/Inputs/TButton\";\r\nimport AlertMessage from \"components/Alert\";\r\n\r\nconst moment = require(\"moment\");\r\n\r\nexport default function Logs({ isOnline, Log }) {\r\n const [isLog, setLog] = useState(false);\r\n const [isUpdate, setUpdate] = useState(false);\r\n const [logLoading, setLogloading] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [logData, setlogData] = useState([]);\r\n\r\n const dispatch = useDispatch();\r\n const { id } = useParams();\r\n\r\n useEffect(() => {\r\n Log(!isLog)\r\n if (isLog) loadLogData();\r\n }, [isLog]);\r\n\r\n useEffect(() => {\r\n let interval;\r\n if (isUpdate) {\r\n const fetchLogdata = async () => {\r\n if (!logData) setLogloading(true);\r\n\r\n try {\r\n const res = await WebAPI.get(\r\n `Logging/FetchDeviceLogs?deviceId=${id}`\r\n );\r\n if (res.data.status)\r\n if (res.data.data && res.data.data.files) {\r\n if (logData !== res.data.data.files) setUpdate(false);\r\n setlogData(res.data.data.files?.sort((a,b)=>{return new Date(b.LastModified)-new Date(a.LastModified)}));\r\n setLogloading(false);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n fetchLogdata();\r\n interval = setInterval(() => {\r\n fetchLogdata();\r\n }, 10000);\r\n }\r\n\r\n return () => clearInterval(interval);\r\n }, [isUpdate]);\r\n\r\n const handleForceFetch = async () => {\r\n setLoading(true)\r\n if (isOnline === \"Offline\") {\r\n dispatch(\r\n alertActions.error(\r\n \"This action cannot be done, this device is Offline...\"\r\n )\r\n );\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n setLoading(false)\r\n }, [5000]);\r\n return;\r\n }\r\n try {\r\n const resp = await WebAPI.get(\r\n `Logging/UpdateClientDeviceLogs?deviceId=${id}&isForced=${true}`\r\n );\r\n if (resp.data.status) {\r\n await timeout(30000)\r\n dispatch(alertActions.success(\"Force Updated!\"));\r\n setLoading(false)\r\n setUpdate(true);\r\n } else dispatch(alertActions.error(\"Something Went Wrong\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 3000);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false)\r\n }\r\n };\r\n\r\n function timeout(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n const handleUpdate = async () => {\r\n if (isOnline === \"Offline\") {\r\n dispatch(\r\n alertActions.error(\r\n \"This action cannot be done, this device is Offline...\"\r\n )\r\n );\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, [5000]);\r\n return;\r\n }\r\n try {\r\n const resp = await WebAPI.get(\r\n `Logging/UpdateClientDeviceLogs?deviceId=${id}&isForced=${false}`\r\n );\r\n if (resp.data.status) {\r\n dispatch(alertActions.success(\"Updated!\"));\r\n setUpdate(true);\r\n } else dispatch(alertActions.error(\"Something Went Wrong\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 3000);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n const loadLogData = () => {\r\n setLogloading(true);\r\n WebAPI.get(`Logging/FetchDeviceLogs?deviceId=${id}`).then(\r\n ({ data: res }) => {\r\n if (res.status) {\r\n if (res.data && res.data.files) setlogData(res.data.files?.sort((a,b)=>{return new Date(b.LastModified)-new Date(a.LastModified)}));\r\n setLogloading(false);\r\n }\r\n }\r\n );\r\n };\r\n\r\n const rowEvents = {\r\n onClick: async (e, row, rowIndex) => {\r\n try {\r\n const req = {\r\n DeviceId: parseInt(id),\r\n FileName: row.Name,\r\n };\r\n const resp = await WebAPI.post(`Logging/FetchLogs`, req);\r\n if (resp.data.status) window.open(resp.data.url);\r\n } catch (error) {\r\n console.log(error);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 3000);\r\n }\r\n },\r\n };\r\n\r\n const columns = [\r\n { dataField: \"Name\", text: \"File\", sort:true },\r\n {\r\n text: \"Last Modified\",\r\n sort:true,\r\n formatter: (cell, row) => {\r\n return moment(row.LastModified)\r\n .format(\"YYYY-MM-DD, h:mm:ss a\")\r\n .toLocaleString();\r\n },\r\n sortFunc: (a, b, order, dataField, rowA, rowB) => {\r\n if (order === 'desc') {\r\n if (new Date(rowA.LastModified) < new Date(rowB.LastModified)) return 1\r\n if (new Date(rowA.LastModified) > new Date(rowB.LastModified)) return -1;\r\n return 0\r\n }\r\n else {\r\n if (new Date(rowA.LastModified) < new Date(rowB.LastModified)) return -1\r\n if (new Date(rowA.LastModified) > new Date(rowB.LastModified)) return 1;\r\n return 0\r\n }\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n setLog(true)}\r\n >\r\n Log\r\n \r\n\r\n setLog(!isLog)}>\r\n
\r\n
\r\n setLog(false)}\r\n >\r\n ×\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {loading && ()}\r\n Force Fetch\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n ) : (\r\n \"No Data. Please Update...\"\r\n )\r\n }\r\n bodyClasses=\"clickable-table-row\"\r\n pagination={paginationFactory({\r\n sizePerPage: 5,\r\n hideSizePerPage: true,\r\n })}\r\n filter={filterFactory()}\r\n />\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import AlertMessage from \"components/Alert\";\r\nimport TButton from \"components/Inputs/TButton\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {useSelector} from \"react-redux\";\r\nimport {\r\n Container,\r\n Button,\r\n Col,\r\n Row,\r\n CardBody,\r\n Card,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Spinner, Form,FormGroup, Input,Label,\r\n} from \"reactstrap\";\r\n\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\n\r\nimport { alertActions } from \"redux/_actions/\";\r\n\r\nimport WebAPI from \"services/WebAPI\";\r\nimport filterFactory, { textFilter } from \"react-bootstrap-table2-filter\";\r\nimport Logs from \"./logs\";\r\nimport moment from \"moment\";\r\n\r\nfunction DetailsRow({ title, value }) {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {value}\r\n \r\n );\r\n}\r\n\r\nfunction FolderProtectionList({ id = 0 }) {\r\n const [list, setList] = useState([]);\r\n const [isLoading, setLoading] = useState(false);\r\n useEffect(() => {\r\n setLoading(true);\r\n WebAPI.get(`Endpoints/FolderList/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status) setList(res.data);\r\n })\r\n .finally(() => setLoading(false));\r\n }, []);\r\n\r\n return (\r\n <>\r\n {(isLoading && (\r\n
\r\n \r\n
\r\n )) || (\r\n
\r\n \r\n Total : {list.length}\r\n \r\n \r\n \r\n ({ path: i }))}\r\n pagination={paginationFactory({\r\n sizePerPage: 5,\r\n hideSizePerPage: true,\r\n })}\r\n filter={filterFactory()}\r\n />\r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nconst PopConfirm = ({ onOk, inProgress }) => {\r\n const [modal, SetModal] = useState(false);\r\n const [uninstall, setUninstall]= useState(true)\r\n const handleConfirm = () =>{\r\n //add new api for uninstall\r\n if (onOk) onOk(uninstall)\r\n SetModal(false)\r\n }\r\n\r\n return (\r\n <>\r\n SetModal(!modal)}\r\n >\r\n Retire\r\n \r\n SetModal(false)}>\r\n SetModal(false)}\r\n >\r\n Are you sure to continue?\r\n \r\n \r\n The endpoint will be retired as a result of this action.\r\n \r\n
\r\n \r\n setUninstall(!uninstall)}/>\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\nconst PopUpdate = ({ onOk, inProgress }) => {\r\n const [isUpdate, SetUpdate] = useState(false);\r\n\r\nconst handleConfirm = () =>{\r\n if (onOk) onOk()\r\n SetUpdate(false)\r\n}\r\n\r\nreturn (\r\n <>\r\n SetUpdate(!isUpdate)}>Force Update\r\n SetUpdate(false)}>\r\n SetUpdate(false)}\r\n >\r\n Are you sure to continue?\r\n \r\n \r\n The endpoint will be force updated as a result of this action.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n};\r\n\r\nexport default function Details() {\r\n const { id } = useParams();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [details, setDetails] = useState({});\r\n const [isLog, setLog] = useState(false);\r\n\r\n const [folderProtectionModal, setFolderProtectionModel] = useState(false);\r\n\r\n const [loadingDetails, setLoadingDetails] = useState(false);\r\n\r\n const user = useSelector(store => store.authentication.user) \r\n \r\n useEffect(() => {\r\n getDetails();\r\n }, []);\r\n\r\n const getDetails = () => {\r\n dispatch(alertActions.clear());\r\n\r\n if (loadingDetails) return;\r\n setLoadingDetails(true);\r\n WebAPI.get(`/Endpoints/Details/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status) setDetails(res.data);\r\n else dispatch(alertActions.error(res.message));\r\n })\r\n .finally(() => setLoadingDetails(false));\r\n };\r\n\r\n const [refreshing, setRefreshing] = useState(false);\r\n const handleRefresh = () => {\r\n dispatch(alertActions.clear());\r\n if (refreshing) return;\r\n setRefreshing(true);\r\n WebAPI.post(`/Endpoints/Refresh/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status) getDetails();\r\n else dispatch(alertActions.error(\"Device not available\"));\r\n })\r\n .finally(() => setRefreshing(false));\r\n };\r\n\r\n const [isRetireProgress, setRetireProgress] = useState(false)\r\n const [isUpdateProgress, setUpdateProgress] = useState(false)\r\n\r\n const handleRetire = (uninstall) => {\r\n dispatch(alertActions.clear())\r\n if(isRetireProgress)\r\n return\r\n setRetireProgress(true)\r\n WebAPI\r\n .post(`/Endpoints/Retire/${id}?uninstall=${uninstall}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n history.go(-1)\r\n else\r\n dispatch(alertActions.error('Device not available'))\r\n })\r\n .finally(() => setRetireProgress(false))\r\n }\r\n\r\n const handleUpdate = () => {\r\n dispatch(alertActions.clear())\r\n if(isUpdateProgress)\r\n return\r\n setUpdateProgress(true)\r\n WebAPI\r\n .get(`UpgradeManager/TriggerForceUpdateClient?deviceId=${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n dispatch(alertActions.success('Force updated Sucessfully'))\r\n else\r\n dispatch(alertActions.error('Device not available'))\r\n setTimeout(() => {\r\n dispatch(alertActions.clear())\r\n }, 2500);\r\n })\r\n .finally(() => setUpdateProgress(false))\r\n }\r\n\r\n\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Endpoint Details\r\n
\r\n \r\n \r\n {isLog && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n

Summary

\r\n \r\n \r\n
\r\n \r\n {(user.role === \"partner\" || user.role === \"admin\") && (\r\n setLog(log)}\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 \r\n \r\n \r\n \r\n

Running Services

\r\n \r\n \r\n \r\n Refresh\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

Agent Settings

\r\n \r\n \r\n \r\n history.push(`/endpoints/endpoint_settings/${id}`)\r\n }\r\n >\r\n Change\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 setFolderProtectionModel(true)}\r\n >\r\n Show\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n setFolderProtectionModel(false)}\r\n UnmountOnClose\r\n >\r\n
\r\n setFolderProtectionModel(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","import { useEffect, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n Container,\r\n Card,\r\n Row,\r\n Col,\r\n CardBody,\r\n} from \"reactstrap\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport Alert from \"components/Alert\";\r\nimport Client from \"services/WebAPI\";\r\nimport moment from \"moment\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nconst Billing = (props) => {\r\n const [formState, setFormState] = useState({\r\n commitment: \"\",\r\n billingDate: \"\",\r\n billingCycle: \"\",\r\n stripe: \"\",\r\n xero: \"\",\r\n amount: \"\",\r\n });\r\n const { id, type } = useParams();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const fetchData = async () => {\r\n try {\r\n let resp = {}\r\n if(type===\"partner\"){\r\n resp = await Client.get(\r\n `/Billing/FetchPartnerBilling?partnerId=${parseInt(id)}`\r\n );\r\n }\r\n if(type===\"customer\"){\r\n resp = await Client.get(\r\n `/Billing/FetchCustomerBilling?Id=${parseInt(id)}`\r\n );\r\n }\r\n\r\n if (resp.data.status) {\r\n const data = resp.data.result;\r\n const _data = {\r\n commitment: data.MinimumCommitment,\r\n billingDate: moment(data.BillingDate || data.SignUpDate).format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n billingCycle: data.BillingCycle || \"monthly\",\r\n stripe: data.StripeID,\r\n xero: data.XeroContactID,\r\n amount: data.Price,\r\n signupDate: moment(data?.SignUpDate).format(\"YYYY-MM-DD\"),\r\n };\r\n setFormState(_data);\r\n }\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n };\r\n\r\n const handleSave = async (e) => {\r\n e.preventDefault();\r\n const req = {\r\n XeroContactId: formState.xero,\r\n StripeId: formState.stripe,\r\n MinimumCommitment: parseInt(formState.commitment),\r\n BillingDate: moment(formState.billingDate, \"YYYY-MM-DD\").format(),\r\n BillingCycle: formState.billingCycle,\r\n Price: parseFloat(formState.amount),\r\n };\r\n try {\r\n let resp\r\n if(type===\"partner\"){\r\n req.PartnerId=parseInt(id)\r\n resp = await Client.post(\"/Billing/UpdatePartnerBilling\", req);\r\n }\r\n if(type===\"customer\"){\r\n req.CustomerId=parseInt(id)\r\n resp = await Client.post(\"/Billing/UpdateCustomerBilling\", req);\r\n }\r\n if (resp.data.status) {\r\n fetchData();\r\n dispatch(alertActions.success(\"Sucessfully Updated\"));\r\n } else dispatch(alertActions.error(\"Failed to update\"));\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n }\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n };\r\n\r\n const editField = ({ target: { id, value } }) => {\r\n formState[id] = value;\r\n setFormState({ ...formState });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Manage {type==\"partner\"? \"Partner\" : \"Customer\"} Billing\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 Please enter a minimum commitment\r\n \r\n \r\n \r\n \r\n \r\n Please enter a unit price\r\n \r\n \r\n \r\n \r\n Billing Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n Please select a billing cycle\r\n \r\n \r\n \r\n \r\n Please enter a stripe ID\r\n \r\n \r\n \r\n \r\n Please enter a Xero ID\r\n \r\n\r\n \r\n history.push(`/billing/history/${type}/${id}`)}\r\n >\r\n Invoice History\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\nexport default Billing;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Container,\r\n Spinner,\r\n Row,\r\n Col,\r\n UncontrolledTooltip,\r\n Modal,\r\n Input,\r\n Label,\r\n FormGroup,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, { Search } from \"react-bootstrap-table2-toolkit\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport Client from \"../../../../services/WebAPI\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\nconst { SearchBar } = Search;\r\n\r\nconst PopConfirm = ({ onOk }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n if (onOk) onOk();\r\n SetModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n SetModal(false)}>\r\n SetModal(false)}\r\n >\r\n Are you sure to delete this Tier?\r\n \r\n \r\n As a result of this action, this tier will be deleted from the system.\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default function Tier() {\r\n const [rowData, setRowData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [tierData, setTierData] = useState({\r\n tier: null,\r\n price: null,\r\n productId: \"\",\r\n });\r\n const [addTier, setAddTier] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n fetchTier();\r\n }, []);\r\n\r\n const fetchTier = async () => {\r\n setLoading(true);\r\n try {\r\n const resp = await Client.get(\"/Billing/BillingTiers\");\r\n if (resp.data.status && resp.data.result) setRowData(resp.data.result);\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const addTierSubmit = async () => {\r\n try {\r\n const { tier, productId, price } = tierData;\r\n if (!tier || !productId || !price) {\r\n dispatch(alertActions.error(\"Field Missing!\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n return;\r\n }\r\n const req = {\r\n Tier: parseInt(tier),\r\n ProductID: productId,\r\n Price: parseFloat(price),\r\n };\r\n const resp = await Client.post(\"/Billing/AddBillingTier\", req);\r\n if (resp.data.status) {\r\n fetchTier();\r\n setAddTier(false);\r\n setTierData({\r\n tier: null,\r\n price: null,\r\n productId: \"\",\r\n });\r\n dispatch(alertActions.success(\"Added new tier\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n };\r\n\r\n const deleteTier = async (id) => {\r\n try {\r\n const resp = await Client.delete(`/Billing/DeleteBillingTiers?id=${id}`);\r\n if (resp.data.status) {\r\n fetchTier();\r\n dispatch(alertActions.success(\"Tier Deleted!\"));\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n const handleData = (i, val) => {\r\n const data = { ...tierData };\r\n data[i] = val;\r\n setTierData(data);\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"Tier\",\r\n text: \"Tier\",\r\n sort: true,\r\n searchable: true,\r\n },\r\n {\r\n dataField: \"Price\",\r\n text: \"Price\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: (cell, row) => ${cell},\r\n },\r\n {\r\n dataField: \"ProductID\",\r\n text: \"Product ID\",\r\n sort: true,\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n },\r\n {\r\n text: \"Actions\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: (cell, row) => (\r\n \r\n deleteTier(row.Id)} />\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData.length,\r\n };\r\n return (\r\n
\r\n \r\n {!addTier && }\r\n \r\n
\r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n \r\n Add Tier\r\n \r\n setAddTier(true)}\r\n >\r\n +\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\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 setAddTier(false);\r\n setTierData({\r\n tier: null,\r\n price: null,\r\n productId: \"\",\r\n });\r\n }}\r\n >\r\n Add Tier\r\n \r\n \r\n \r\n \r\n handleData(\"tier\", e.target.value)}\r\n type=\"number\"\r\n />\r\n \r\n \r\n \r\n handleData(\"price\", e.target.value)}\r\n type=\"number\"\r\n />\r\n \r\n \r\n \r\n handleData(\"productId\", e.target.value)}\r\n type=\"text\"\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setAddTier(false);\r\n setTierData({\r\n tier: null,\r\n price: null,\r\n productId: \"\",\r\n });\r\n }}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Container,\r\n Spinner,\r\n Row,\r\n Col,\r\n UncontrolledTooltip,\r\n Modal,\r\n Input,\r\n Label,\r\n FormGroup,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n} from \"reactstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationTotalStandalone,\r\n PaginationListStandalone,\r\n} from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, { Search } from \"react-bootstrap-table2-toolkit\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport Client from \"services/WebAPI\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getList } from \"screens/partner/service\";\r\nimport moment from \"moment\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport Tier from \"./tier\";\r\nconst { SearchBar } = Search;\r\n\r\nconst PopConfirm = ({ onOk }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n if (onOk) onOk();\r\n SetModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n Ammend\r\n SetModal(!modal)}\r\n size=\"sm\"\r\n color=\"primary\"\r\n outline\r\n >\r\n X\r\n \r\n SetModal(false)}>\r\n SetModal(false)}\r\n >\r\n Are you sure to ammend this invoice?\r\n \r\n \r\n As a result of this action, this invoice will be ammended from the\r\n system.\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default function BillingHistory() {\r\n const [rowData, setRowData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [markPaid, setMarkPaid] = useState(false);\r\n const [showTier, setShowTier] = useState(false);\r\n const [referenceId, setReferenceId] = useState(null);\r\n const [invoiceID, setInvoiceID] = useState(null);\r\n const [fnLoading, setFnLoading] = useState(false);\r\n const history = useHistory();\r\n const { id, type } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n fetchHistory();\r\n }, [id]);\r\n\r\n const fetchHistory = async () => {\r\n setLoading(true);\r\n try {\r\n const resp = await Client.get(\r\n `/Billing/FetchInvocieHistory${\r\n id != 0\r\n ? `?${type === \"partner\" ? \"partnerId\" : \"customerId\"}=${parseInt(\r\n id\r\n )}`\r\n : \"\"\r\n }`\r\n );\r\n if (resp.data.status && resp.data.result) setRowData(resp.data.result);\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const handleConfirm = async (id) => {\r\n try {\r\n setFnLoading(true);\r\n const req = {\r\n InvoiceId: invoiceID,\r\n Reference: referenceId,\r\n };\r\n const resp = await Client.post(\"/Billing/MarkInvoiceAsPaid\", req);\r\n if (resp.data.status) {\r\n setInvoiceID(null);\r\n setMarkPaid(false);\r\n setReferenceId(null);\r\n dispatch(alertActions.success(\"Successfully Updated!\"));\r\n fetchHistory();\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n }\r\n setFnLoading(false);\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n };\r\n\r\n const handleAmmend = async (r) => {\r\n try {\r\n setFnLoading(true);\r\n const resp = await Client.get(\r\n `/Billing/ExecuteAmmendForInvoice?invoiceNumber=${r?.XeroInvoiceId}`\r\n );\r\n if (resp.data.status) {\r\n fetchHistory();\r\n dispatch(alertActions.success(\"Successfully ammended\"));\r\n } else dispatch(alertActions.error(\"Something went wrong\"));\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n }\r\n setFnLoading(false);\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"InvoiceNumber\",\r\n text: \"Invoice\",\r\n searchable: true,\r\n },\r\n {\r\n dataField: \"InvoiceDate\",\r\n text: \"Invoice Date\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: (cell, row) => (\r\n {moment(cell).format(\"YYYY-MM-DD\")}\r\n ),\r\n },\r\n {\r\n dataField: \"DueDate\",\r\n text: \"Due Date\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: (cell, row) => (\r\n {moment(cell).format(\"YYYY-MM-DD\")}\r\n ),\r\n },\r\n {\r\n text: \"Bill To\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: function (cell, row) {\r\n let partnerA = \"\";\r\n if (row.PartnerId && row.Partner?.FirstName && row.Partner?.LastName)\r\n partnerA = row.Partner?.FirstName + \" \" + row.Partner?.LastName;\r\n if (row.CustomerId && row.Customer?.FirstName && row.Customer?.LastName)\r\n partnerA = row.Customer?.FirstName + \" \" + row.Customer?.LastName;\r\n return {partnerA};\r\n },\r\n },\r\n {\r\n text: \"Bill Type\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: function (cell, row) {\r\n let partnerA = row?.CustomerId ? \"Customer\" : \"Partner\";\r\n return {partnerA};\r\n },\r\n },\r\n {\r\n dataField: \"Quanitity\",\r\n text: \"Quantity\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n },\r\n {\r\n dataField: \"Amount\",\r\n text: \"Amount\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n },\r\n {\r\n dataField: \"PaymentStatus\",\r\n text: \"Status\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n formatter: (cell, row) => (\r\n \r\n {cell}\r\n \r\n ),\r\n },\r\n {\r\n text: \"Actions\",\r\n classes: \"common-table-column-style\",\r\n searchable: true,\r\n headerStyle: { width: \"240px\" },\r\n formatter: (cell, row) => (\r\n
\r\n {row.PaymentStatus != \"Paid\" && (\r\n
\r\n \r\n Mark as paid\r\n \r\n {\r\n setMarkPaid(true);\r\n setInvoiceID(row.Id);\r\n }}\r\n >\r\n \r\n \r\n handleAmmend(row)} />\r\n
\r\n )}\r\n {row?.StripeIntentId && (\r\n
\r\n \r\n Go to payment intend\r\n \r\n \r\n window.open(\r\n `https://dashboard.stripe.com/test/payments/${row?.StripeIntentId}`\r\n )\r\n }\r\n >\r\n \r\n \r\n
\r\n )}\r\n {row?.XeroInvoiceId && (\r\n
\r\n \r\n Go to Xero Invoice\r\n \r\n \r\n window.open(\r\n `https://go.xero.com/AccountsReceivable/View.aspx?InvoiceID=${row?.XeroInvoiceId}`\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 const paginationOptions = {\r\n custom: true,\r\n withFirstAndLast: true,\r\n totalSize: rowData.length,\r\n };\r\n return (\r\n
\r\n {\" \"}\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Manage Billing\r\n
\r\n \r\n {\"Billing\"}\r\n \r\n {!showTier && }\r\n \r\n
\r\n \r\n {(props) => (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n \r\n \r\n \r\n Tier Management\r\n \r\n {\r\n setShowTier(true);\r\n }}\r\n >\r\n Tiers\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \"No Data\"\r\n )\r\n }\r\n headerWrapperClasses=\"table-header-light\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\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 setShowTier(false);\r\n }}\r\n >\r\n Tier Management\r\n \r\n \r\n \r\n \r\n {\r\n setMarkPaid(false);\r\n setReferenceId(null);\r\n setInvoiceID(null);\r\n }}\r\n >\r\n Mark As Paid\r\n \r\n \r\n \r\n setReferenceId(e.target.value)}\r\n type=\"text\"\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setMarkPaid(false);\r\n setReferenceId(null);\r\n setInvoiceID(null);\r\n }}\r\n >\r\n 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}\r\n","import { useEffect, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback,\r\n Spinner,\r\n} from \"reactstrap\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport Alert from \"components/Alert\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport Client from \"services/WebAPI\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nconst PartnerForm = (props) => {\r\n const d = new Date();\r\n\r\n const [formState, setFormState] = useState({\r\n invoiceDate: moment(d).format(\"YYYY-MM-DD\"),\r\n dueDate: moment(new Date(d.setDate(d.getDate() + 15))).format(\"YYYY-MM-DD\"),\r\n productId: 0,\r\n quantity: 0,\r\n amount: 0,\r\n });\r\n const [tier, setTier] = useState([]);\r\n const [units, setUnit] = useState(0);\r\n const [loading, setLoading] = useState(false);\r\n const [generateLoading, setGLoading] = useState(false);\r\n const { id, type } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n fetchTier();\r\n fetchEndpoints();\r\n }, [props.partner]);\r\n\r\n useEffect(() => {\r\n formState.quantity = units || 0;\r\n setFormState(formState);\r\n }, [units]);\r\n\r\n useEffect(() => {\r\n formState.amount =\r\n tier.filter((i) => i.ProductID === formState.productId)[0]?.Price || 0;\r\n setFormState({ ...formState });\r\n }, [formState.productId]);\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n invoiceDate: false,\r\n dueDate: false,\r\n productId: false,\r\n quantity: false,\r\n amount: false,\r\n });\r\n\r\n const fetchEndpoints = async () => {\r\n try {\r\n setLoading(true);\r\n const resp = await Client.get(`/Endpoints/${type===\"partner\" ? \"ListFromPartner\" : \"ListFromCustomer\"}/` + id);\r\n if (resp.data.status) {\r\n setUnit(\r\n resp.data.data.filter((i) => i.ActivationStatus === \"Activated\")\r\n ?.length\r\n );\r\n }\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const fetchTier = async () => {\r\n try {\r\n const resp = await Client.get(\"/Billing/BillingTiers\");\r\n if (resp.data.status && resp.data.result) setTier(resp.data.result);\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n }\r\n };\r\n\r\n const handleSave = async (e) => {\r\n try {\r\n e.preventDefault();\r\n setGLoading(true);\r\n const { dueDate, productId, quantity, amount } = formState;\r\n const req = {\r\n Price: parseFloat(amount),\r\n ProductId: productId,\r\n Quantity: parseInt(quantity),\r\n DueDate: dueDate,\r\n };\r\n if(type===\"partner\") req.PartnerId=parseInt(id)\r\n if(type===\"customer\") req.CustomerId=parseInt(id)\r\n const resp = await Client.post(\"/Billing/ExecuteManualBilling\", req);\r\n if (resp.data.status) {\r\n dispatch(alertActions.success(\"Invoice generated!\"));\r\n setFormState({\r\n invoiceDate: moment(d).format(\"YYYY-MM-DD\"),\r\n dueDate: moment(new Date(d.setDate(d.getDate() + 15))).format(\r\n \"YYYY-MM-DD\"\r\n ),\r\n productId: 0,\r\n quantity: 0,\r\n amount: 0,\r\n });\r\n } else dispatch(alertActions.error(\"Failed to Generate\"));\r\n } catch (err) {\r\n console.log(\"err\", err);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n }\r\n setGLoading(false);\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, [2500]);\r\n };\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n invalidFormState[id] = false;\r\n formState[id] = value;\r\n setFormState({ ...formState });\r\n setInvalidFormState({ ...invalidFormState });\r\n };\r\n\r\n return loading ? (\r\n \r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Please enter a invoice date\r\n \r\n \r\n \r\n \r\n Please enter a due date\r\n \r\n \r\n \r\n \r\n \r\n {tier.map((i) => (\r\n \r\n ))}\r\n \r\n Please select a product id\r\n \r\n \r\n \r\n \r\n Please enter Quantity\r\n \r\n \r\n \r\n \r\n Please enter unit price\r\n \r\n
\r\n \r\n
\r\n Net amount excluding taxes\r\n
\r\n \r\n ${parseInt(formState.quantity) * parseFloat(formState.amount)}\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\nexport default PartnerForm;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container,\r\n Spinner,\r\n} from \"reactstrap\";\r\n\r\nimport AlertMessage from \"components/Alert\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport WebAPI from \"services/WebAPI\";\r\nimport InvoiceForm from \"./form\";\r\nimport { getPartner } from \"screens/partner/service\";\r\n\r\nconst PartnerEdit = () => {\r\n let history = useHistory();\r\n const { id, type } = useParams();\r\n const [customer, setCustomer] = useState(null);\r\n const [partner, setPartner] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (type === \"customer\") fetchCustomerDetails();\r\n if (type === \"partner\") fetchPartner();\r\n }, [id]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const fetchCustomerDetails = () => {\r\n setLoading(true)\r\n WebAPI.get(`/Customers/Details/${id}`).then(({ data: res }) => {\r\n if (res.status) {\r\n setCustomer(res.data);\r\n } else {\r\n dispatch(\r\n alertActions.error(\r\n res.message === \"Not allowed\" ? \"Customer not found\" : res.message\r\n )\r\n );\r\n setCustomer({});\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n }\r\n });\r\n setLoading(false)\r\n };\r\n\r\n const fetchPartner = () => {\r\n setLoading(true);\r\n getPartner(id)\r\n .then((result) => {\r\n if (result) {\r\n setPartner(result);\r\n } else {\r\n dispatch(alertActions.error(\"Partner not found\"));\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"err\", err);\r\n dispatch(alertActions.error(\"Something went wrong\"));\r\n });\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n setLoading(false);\r\n };\r\n\r\n if (loading) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Generate Invoice For {type===\"partner\" ? partner?.EntityName : customer?.FirstName}\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\nexport default PartnerEdit;\r\n","import { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button, Col, Container, Row, Spinner } from \"reactstrap\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory,\r\n{ PaginationProvider, SizePerPageDropdownStandalone, PaginationTotalStandalone, PaginationListStandalone }\r\n from 'react-bootstrap-table2-paginator';\r\nimport ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';\r\n\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nconst { SearchBar } = Search;\r\n\r\nconst UserList = () => {\r\n const [rowData, setRowData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n let history = useHistory();\r\n\r\n useEffect(() => {\r\n if (loading)\r\n return\r\n setLoading(true)\r\n WebAPI\r\n .get('/Users/GetUsers')\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setRowData(res.data.map(row => ({\r\n ...row,\r\n Type: row.Customer === null ? row.Partner === null ? \"Admin\" : 'Partner' : 'Customer'\r\n })))\r\n })\r\n .finally(() => setLoading(false))\r\n }, []);\r\n\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n history.push(`/users/user_details/${row.Id}`)\r\n },\r\n };\r\n\r\n\r\n const columns = [{\r\n text: 'Type',\r\n sort: true,\r\n searchable: true,\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '120px' },\r\n dataField:'Type'\r\n }, {\r\n dataField: 'Email',\r\n text: 'Contact Email',\r\n classes: 'common-table-column-style',\r\n headerStyle: { width: '240px' },\r\n sort: true,\r\n searchable: true\r\n }, {\r\n text: 'Customer',\r\n dataField: 'Customer.FirstName',\r\n classes: 'common-table-column-style',\r\n formatter: (cellContent, row) => (\r\n \r\n ),\r\n sort: true,\r\n searchable: true\r\n }, {\r\n text: 'Partner',\r\n dataField: 'Partner.EntityName',\r\n classes: 'common-table-column-style',\r\n sort: true,\r\n searchable: true\r\n }, {\r\n dataField: 'TwoFactorEnabled',\r\n text: '2FA Enabled',\r\n classes: 'common-table-column-style',\r\n formatter: (cellContent, row) => (\r\n
\r\n \r\n
\r\n )\r\n }, {\r\n dataField: 'LockoutEnabled',\r\n text: 'Lockout Enabled',\r\n classes: 'common-table-column-style',\r\n formatter: (cellContent, row) => (\r\n
\r\n \r\n
\r\n )\r\n }, {\r\n dataField: 'AccessFailedCount',\r\n text: 'Failed Logins',\r\n classes: 'common-table-column-style',\r\n }];\r\n\r\n const paginationOptions = {\r\n custom: true,\r\n totalSize: rowData.length\r\n };\r\n\r\n return (\r\n \r\n
Users
\r\n \r\n
\r\n \r\n {props => (\r\n \r\n {\r\n ({\r\n paginationProps,\r\n paginationTableProps\r\n }) => (\r\n
\r\n \r\n \r\n Entries per page :\r\n \r\n\r\n \r\n \r\n \r\n history.push(\"/users/add_user/\")}\r\n >\r\n Add New User\r\n \r\n \r\n \r\n : \"No Data\"}\r\n headerWrapperClasses=\"table-header-light common-table-column-style\"\r\n bodyClasses=\"clickable-table-row\"\r\n {...props.baseProps}\r\n {...paginationTableProps}\r\n rowStyle={{\r\n //backgroundColor: '#fff',\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\nexport default UserList;","import { useState, useEffect } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { Card, Col, Container, Row } from \"reactstrap\";\r\nimport { useDispatch } from 'react-redux'\r\nimport Button from 'components/Inputs/TButton'\r\nimport { alertActions } from 'redux/_actions/'\r\nimport AlertMessage from \"components/Alert\";\r\nimport WebAPI from 'services/WebAPI'\r\n\r\n\r\nconst UserDetails = () => {\r\n const [user, setUser] = useState({});\r\n\r\n let history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const { id } = useParams()\r\n\r\n useEffect(() => {\r\n getUser(id)\r\n }, [id]);\r\n\r\n const getUser = (id) => {\r\n WebAPI\r\n .get(`/Users/GetDetails/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setUser(res.data)\r\n else {\r\n setUser({})\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n }\r\n\r\n const getUserType = (user) => {\r\n if (!user.Customer && !user.Partner)\r\n return 'Administrator'\r\n if (!user.Customer)\r\n return 'Partner'\r\n return 'Customer'\r\n }\r\n const [locking, setLocking] = useState(false);\r\n const [deleting, setDeleting] = useState(false);\r\n const [mfaSwitching, setMFASwitching] = useState(false);\r\n const handleLock = () => {\r\n if (locking)\r\n return;\r\n setLocking(true)\r\n WebAPI\r\n .post(`/Users/ToggleLock/${id}`)\r\n .then(() => getUser(id))\r\n .finally(() => setLocking(false))\r\n }\r\n\r\n const handleDelete = () => {\r\n if (deleting)\r\n return;\r\n setDeleting(true)\r\n WebAPI\r\n .post(`/Users/Delete/${id}`)\r\n .then(({ data: res }) => {\r\n if(res.status)\r\n history.push('/users')\r\n })\r\n .finally(() => setDeleting(false))\r\n }\r\n\r\n const handleMFASwitch = () => {\r\n if (mfaSwitching)\r\n return;\r\n setMFASwitching(true)\r\n WebAPI\r\n .post(`/Users/DisableMFA/${id}`)\r\n .then(() => getUser(id))\r\n .finally(() => setMFASwitching(false))\r\n }\r\n\r\n return (\r\n \r\n
\r\n history.push('/users')}\r\n >\r\n \r\n \r\n {user.Email}\r\n
\r\n \r\n \r\n
\r\n User Details\r\n
\r\n \r\n \r\n history.push(`/users/edit_user/${id}`)}\r\n >\r\n Edit Details\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Email

\r\n \r\n \r\n

{user.Email}

\r\n \r\n
\r\n \r\n \r\n

Type

\r\n \r\n \r\n

{getUserType(user)}

\r\n \r\n
\r\n {getUserType(user) === \"Partner\" && (\r\n \r\n \r\n

Partner Name

\r\n \r\n \r\n

\r\n {!user.Partner ? \"\" : user.Partner?.EntityName}\r\n

\r\n \r\n
\r\n )}\r\n\r\n {getUserType(user) === \"Customer\" && (\r\n \r\n \r\n

Customer Name

\r\n \r\n \r\n

\r\n {user.Customer?.FirstName} {user.Customer?.LastName}\r\n

\r\n \r\n
\r\n )}\r\n\r\n \r\n \r\n

Two Factor Enabled

\r\n \r\n \r\n

{user.TwoFactorEnabled ? \"Yes\" : \"No\"}

\r\n \r\n
\r\n \r\n \r\n

Access Failed Count

\r\n \r\n \r\n

{user.AccessFailedCount}

\r\n \r\n
\r\n \r\n \r\n

Lockout Status

\r\n \r\n \r\n

{!user.LockoutEnabled ? \"No\" : \"Locked\"}

\r\n \r\n
\r\n
\r\n handleLock()}\r\n isLoading= {locking}\r\n >\r\n {user.LockoutEnabled ? \"Unlock\" : 'Lock'}\r\n \r\n handleDelete()}\r\n isLoading= {deleting}\r\n >\r\n Delete\r\n \r\n handleMFASwitch()}\r\n isLoading= {mfaSwitching}\r\n >\r\n Remove MFA\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserDetails;","import { useEffect, useState } from \"react\";\r\nimport {\r\n Col,\r\n Row,\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback\r\n} from \"reactstrap\";\r\nimport validator from 'validator';\r\n\r\nimport Button from 'components/Inputs/TButton'\r\nimport AlertMessage from \"components/Alert\";\r\n\r\nimport WebAPI from 'services/WebAPI'\r\n\r\nconst getUserType = (user) => {\r\n if (!user.Customer && !user.Partner)\r\n return 'Administrator'\r\n if (!user.Customer)\r\n return 'Partner'\r\n return 'Customer'\r\n}\r\n\r\nconst UserForm = (props) => {\r\n const [allowed, setAllowed] = useState({ roles: [], customers: [], partners: [] })\r\n\r\n const [passwordScore, setPasswordScore] = useState(0)\r\n const [isVissible, setIsVissible] = useState(false)\r\n\r\n useEffect(() => {\r\n WebAPI.get('/Users/GetAllowedEntities')\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n setAllowed({ ...res.data })\r\n }\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (props.editMode) {\r\n const { user } = props\r\n setFormState({\r\n Role: getUserType(user),\r\n PartnerId: user.Partner?.PartnerId || null,\r\n CustomerId: user.Customer?.CustomerId || null,\r\n UserEmail: user.Email\r\n })\r\n }\r\n }, [props.user])\r\n const [formState, setFormState] = useState({\r\n Role: \"\",\r\n PartnerId: \"\",\r\n CustomerId: \"\",\r\n UserEmail: \"\",\r\n Password: \"\"\r\n });\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n Role: false,\r\n PartnerId: false,\r\n CustomerId: false,\r\n UserEmail: false,\r\n Password: false\r\n });\r\n\r\n const handleSave = (e) => {\r\n let flag = 0\r\n e.preventDefault();\r\n if (!validator.isEmail(formState.UserEmail)) {\r\n invalidFormState['UserEmail'] = true;\r\n flag = 1\r\n }\r\n if (validator.isEmpty(formState.Role)) {\r\n invalidFormState['Role'] = true;\r\n flag = 1\r\n }\r\n if (!props.editMode && validator.isEmpty(formState.Password)) {\r\n invalidFormState['Password'] = true;\r\n flag = 1\r\n }\r\n if (formState.Role === 'Partner' && !formState.PartnerId){\r\n invalidFormState['PartnerId'] = true;\r\n flag = 1\r\n }\r\n\r\n if (formState.Role === 'Customer' && !formState.CustomerId){\r\n flag = 1\r\n invalidFormState['CustomerId'] = true;\r\n }\r\n\r\n setInvalidFormState({ ...invalidFormState })\r\n if (flag === 0) {\r\n formState.CustomerId = parseInt(formState.CustomerId) || null\r\n formState.PartnerId = parseInt(formState.PartnerId) || null\r\n props.shareFormData(formState)\r\n }\r\n\r\n }\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\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 {allowed.roles.map(r => )}\r\n \r\n Please select a user Role\r\n \r\n {formState.Role === \"Partner\" && (\r\n \r\n \r\n \r\n \r\n {allowed.partners.map(r => )}\r\n \r\n Please select a PartnerId\r\n \r\n )}\r\n\r\n {formState.Role === \"Customer\" && (\r\n\r\n \r\n \r\n \r\n \r\n {allowed.customers.map(r => )}\r\n \r\n Please select a CustomerId\r\n \r\n )}\r\n \r\n \r\n \r\n Please enter a valid UserEmail\r\n \r\n {\r\n props.editMode ? null :\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Please enter a strong Password. Current Score {passwordScore}\r\n
\r\n }\r\n \r\n \r\n {props.editMode ? \"Save\" : \"Create\"}\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default UserForm;","import { useEffect, useState } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { useDispatch } from 'react-redux'\r\nimport { alertActions } from 'redux/_actions/'\r\nimport WebAPI from 'services/WebAPI'\r\nimport { \r\n Col, \r\n Row, \r\n Card, \r\n Button,\r\n CardBody, \r\n Container\r\n} from \"reactstrap\";\r\nimport UserForm from \"./form\";\r\n\r\nconst UserAdd = () => {\r\n let history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const saveUser = (data) => {\r\n\r\n if (loading)\r\n return\r\n setLoading(true)\r\n if(data.PartnerId === null)\r\n delete(data.PartnerId)\r\n if(data.CustomerId === null)\r\n delete(data.CustomerId)\r\n WebAPI\r\n .post(`/Users/Create`, data)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n history.push('/users/user_details/' + res.data.Id)\r\n } else {\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n\r\n return(\r\n <>\r\n \r\n
\r\n history.push('/users')}\r\n >\r\n \r\n \r\n Add User\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\nexport default UserAdd;","import { useEffect, useState } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { useDispatch } from 'react-redux'\r\nimport { alertActions } from 'redux/_actions/'\r\n\r\nimport WebAPI from 'services/WebAPI'\r\nimport {\r\n Col,\r\n Row,\r\n Card,\r\n Button,\r\n CardBody,\r\n Container\r\n} from \"reactstrap\";\r\nimport UserForm from \"./form\";\r\n\r\nconst UserEdit = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n const [user, setUser] = useState({});\r\n const [loading, setLoading] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n getUser(id)\r\n }, [id]);\r\n\r\n const getUser = (id) => {\r\n WebAPI\r\n .get(`/Users/GetDetails/${id}`)\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setUser(res.data)\r\n else{\r\n setUser({})\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n }\r\n const saveUser = (data) => {\r\n\r\n if (loading)\r\n return\r\n setLoading(true)\r\n if(data.PartnerId === null)\r\n delete(data.PartnerId)\r\n if(data.CustomerId === null)\r\n delete(data.CustomerId)\r\n WebAPI\r\n .post(`/Users/Edit/${id}`, data)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n history.push('/users/user_details/' + id)\r\n } else {\r\n dispatch(alertActions.error(res.message))\r\n }\r\n })\r\n .finally(() => setLoading(false))\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.push(`/users/user_details/${id}`)}\r\n >\r\n \r\n \r\n Edit User\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\nexport default UserEdit;","import { useState, useEffect } from \"react\";\r\nimport { Container, FormGroup, Input, Label } from \"reactstrap\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport validator from \"validator\";\r\n\r\nimport WebAPI from 'services/WebAPI'\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nexport default function Upload(props) {\r\n\r\n const [formData, setFormData] = useState({ type: 'alpha', version: '' })\r\n const [process, setProcess] = useState(false)\r\n\r\n const [channel, setChannel] = useState([])\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n loadChannels();\r\n }, []);\r\n\r\n const loadChannels = () => {\r\n WebAPI.get(\"/UpgradeManager/FetchAllPackageChannels\")\r\n .then(({ data: res }) => {\r\n if (res.status) setChannel(res.result);\r\n })\r\n };\r\n\r\n\r\n const formChanged = (key, value) => {\r\n setFormData({ ...formData, [key]: value })\r\n }\r\n\r\n const formSubmit = (e) => {\r\n e.preventDefault()\r\n dispatch(alertActions.clear())\r\n\r\n if (process)\r\n return\r\n\r\n if (!validator.isSemVer(formData.version)) {\r\n dispatch(alertActions.error(\"Invalid version\"))\r\n return\r\n }\r\n if (validator.isEmpty(formData.type)) {\r\n dispatch(alertActions.error(\"Invalid Type\"))\r\n return\r\n }\r\n if (!formData.file) {\r\n dispatch(alertActions.error(\"Select valid file\"))\r\n return\r\n }\r\n\r\n setProcess(true)\r\n const data = new FormData()\r\n data.append('file', formData.file)\r\n data.append('version', formData.version)\r\n data.append('packageType', formData.type)\r\n\r\n WebAPI\r\n .post('/UpgradeManager/Create', data, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(({ data: res }) => {\r\n if (res.status){\r\n props.reload()\r\n }\r\n else\r\n dispatch(alertActions.error(res.message))\r\n })\r\n .finally(() => setProcess(false))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n formChanged('file', e.target.files[0])}\r\n />\r\n \r\n \r\n \r\n formChanged('version', e.target.value)}\r\n />\r\n \r\n \r\n \r\n formChanged('type', e.target.value)}\r\n >\r\n {channel.map(i => )}\r\n \r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n )\r\n}","import _ from \"lodash\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport {\r\n Modal,\r\n ModalHeader,\r\n Label,\r\n Input,\r\n Button,\r\n Table,\r\n ModalBody,\r\n} from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\n\r\nexport default function Channel({ open, OnClose }) {\r\n const [row, setRow] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [name, setName] = useState(\"\");\r\n const [prio, setPrio] = useState(null)\r\n const [isAdd, setAdd] = useState(false);\r\n\r\n useEffect(() => {\r\n loadChannels();\r\n }, []);\r\n\r\n const loadChannels = () => {\r\n setLoading(true);\r\n WebAPI.get(\"/UpgradeManager/FetchAllPackageChannels\")\r\n .then(({ data: res }) => {\r\n if (res.status) setRow(_.orderBy(res.result, 'Priority', 'desc'));\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n const addChannel = () => {\r\n setLoading(true);\r\n WebAPI.post(\"/UpgradeManager/AddorUpdatePackageChannel\", { Channel: name, Priority: parseInt(prio, 10) })\r\n .then(({ data: res }) => {\r\n if (res.status) loadChannels();\r\n })\r\n .finally(() => setLoading(false));\r\n setName(\"\");\r\n setPrio(null)\r\n };\r\n\r\n const deleteChannel = ({ PackageChannelId }) => {\r\n setLoading(true);\r\n WebAPI.post(\r\n \"/UpgradeManager/DeletePackageChannel?channelId=\" + PackageChannelId\r\n )\r\n .then(({ data: res }) => {\r\n if (res.status) loadChannels();\r\n })\r\n .finally(() => setLoading(false));\r\n };\r\n\r\n return (\r\n
\r\n \r\n Rollout Channels\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Channel NamePriorityActions
{i.Channel}{i.Priority}\r\n {i.Channel!==\"stable\" && (\r\n deleteChannel(i)}\r\n >\r\n \r\n \r\n )} \r\n
\r\n {loading ? (\r\n \r\n ) : (\r\n
\r\n setAdd(!isAdd)}\r\n >\r\n {isAdd ? : }\r\n \r\n {isAdd && <>\r\n setName(e.target.value)}\r\n />\r\n setPrio(e.target.value)}\r\n />\r\n `${r.Priority}`).includes(prio)}\r\n onClick={addChannel}\r\n >\r\n \r\n \r\n }\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import _ from \"lodash\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {\r\n Modal,\r\n ModalHeader,\r\n Label,\r\n Input,\r\n Button,\r\n FormGroup,\r\n Form,\r\n} from \"reactstrap\";\r\nimport WebAPI from \"services/WebAPI\";\r\n\r\nexport default function ChangeChannel({ open, OnClose, handleSave }) {\r\n const [row, setRow] = useState([]);\r\n const [channel, setChannel]= useState('')\r\n\r\n useEffect(() => {\r\n if(open){\r\n loadChannels();\r\n }\r\n }, [open]);\r\n\r\n const loadChannels = () => {\r\n WebAPI.get(\"/UpgradeManager/FetchAllPackageChannels\").then(\r\n ({ data: res }) => {\r\n if (res.status) setRow(_.sortBy(res.result,'Priority'));\r\n }\r\n );\r\n };\r\n\r\n const _handleSave = () => {\r\n if(open.Id && channel){\r\n handleSave(open.Id, channel)\r\n OnClose()\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n Change Channel\r\n
\r\n \r\n \r\n setChannel(e.target.value)} style={{width:250}} type=\"select\" name=\"select\" id=\"exampleSelect\">\r\n {row.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n Button,\r\n InputGroup,\r\n Input,\r\n Modal,\r\n ModalHeader,\r\n ModalFooter,\r\n} from \"reactstrap\";\r\nimport _ from \"lodash\";\r\n\r\nconst PopConfirm = ({ onOk }) => {\r\n const [modal, SetModal] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n if (onOk) onOk();\r\n SetModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n SetModal(!modal)}\r\n size=\"sm\"\r\n >\r\n Delete\r\n \r\n SetModal(false)}>\r\n \r\n Are you sure to delete this path?\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction EditHook({ data, index = \"new\", open, onClose, update }) {\r\n const [path, setPath] = useState(\"\");\r\n const [saving, setSaving] = useState(false);\r\n\r\n useEffect(() => {\r\n setPath(data);\r\n }, [open]);\r\n\r\n const handleSave = async () => {\r\n if (!path) return;\r\n try {\r\n setSaving(true);\r\n await update(index, \"add\", path);\r\n onCancel();\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setSaving(false);\r\n };\r\n\r\n const handleDelete = async (id = data.Id) => {\r\n try {\r\n update(index, \"delete\");\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n };\r\n\r\n // closing edit tab\r\n const onCancel = () => {\r\n setPath(\"\");\r\n if (onClose) onClose();\r\n };\r\n\r\n return (\r\n
\r\n \r\n setPath(e.target.value)}\r\n style={{ borderRadius: 0, paddingLeft: 10 }}\r\n />\r\n\r\n {!data && (\r\n \r\n {saving && (\r\n \r\n )}\r\n Add\r\n \r\n )}\r\n \r\n\r\n {data && (\r\n \r\n \r\n
\r\n \r\n Cancel\r\n \r\n \r\n {saving && (\r\n \r\n )}\r\n Update\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default EditHook;\r\n","import { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Button,\r\n Container,\r\n Card,\r\n ListGroupItem,\r\n ListGroup,\r\n Spinner,\r\n Collapse,\r\n} from \"reactstrap\";\r\nimport _ from \"lodash\";\r\nimport API from \"services/WebAPI\";\r\nimport EditPath from \"./edit\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\nimport AlertMessage from \"components/Alert\";\r\n\r\nconst ListItem = ({ data, update, index }) => {\r\n const [open, setOpen] = useState(false);\r\n return (\r\n \r\n \r\n setOpen(false)}\r\n update={update}\r\n />\r\n \r\n {!open && (\r\n \r\n {data}\r\n setOpen(!open)}\r\n size=\"sm\"\r\n outline\r\n color=\"secondary\"\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst ProcessRestiction = () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [rowData, setRowData] = useState([]);\r\n const [loading, setloading] = useState(false);\r\n\r\n useEffect(() => {\r\n loadExceptions();\r\n }, []);\r\n\r\n const loadExceptions = async () => {\r\n setloading(true);\r\n try {\r\n const res = await API.get(\"/Settings/GetProhibittedAllowedProcesses\");\r\n if (res.data.status) {\r\n setRowData(res.data?.result?.patterns || []);\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setloading(false);\r\n };\r\n\r\n const updateException = async (index, type, data) => {\r\n try {\r\n const _data = [...rowData];\r\n switch (type) {\r\n case \"add\": {\r\n if (index === \"new\") _data.push(data);\r\n else _data.splice(index, 1, data);\r\n break;\r\n }\r\n case \"delete\": {\r\n _data.splice(index, 1);\r\n }\r\n }\r\n const req = { patterns: _data };\r\n const res = await API.post(\r\n \"/Settings/SetProhibittedAllowedProcesses\",\r\n req\r\n );\r\n if (res.data?.status) {\r\n dispatch(alertActions.success(\"Updated the list successfully!\"));\r\n loadExceptions();\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n }\r\n setTimeout(() => {\r\n dispatch(alertActions.clear());\r\n }, 2500);\r\n return true;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.go(\"-1\")}\r\n >\r\n \r\n \r\n Process Whitelist Exception\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Restricted paths\r\n \r\n {(loading && (\r\n \r\n \r\n \r\n )) ||\r\n rowData.map((h, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProcessRestiction;\r\n","import Dashboard from \"screens/dashboard\";\r\nimport PartnerList from \"screens/partner/list\";\r\nimport PartnerAdd from \"screens/partner/add\";\r\nimport PartnerEdit from \"screens/partner/edit\";\r\nimport PartnerCustomers from \"screens/partner/customers\";\r\nimport CustomerList from \"screens/customer/list\";\r\nimport CustomerListByPartner from \"screens/customer/list_partner\";\r\nimport CustomerAdd from \"screens/customer/add\";\r\nimport CustomerEdit from \"screens/customer/edit\";\r\nimport Login from \"screens/login\";\r\nimport ForegetPass from 'screens/login/forgot_password';\r\nimport Reset from 'screens/login/reset';\r\nimport ChangePartner from \"screens/partner/changePartner\";\r\nimport CustomerDetails from \"screens/customer/view\";\r\nimport LicenseAdd from \"screens/customer/license/add\";\r\nimport Preferences from \"screens/preferences\";\r\nimport ChangePassword from \"screens/preferences/change_password\";\r\nimport LogoUpload from \"screens/preferences/logo_upload\";\r\nimport AcronisApiGen from \"screens/preferences/acronis\";\r\nimport { TwoFactorSettings } from \"screens/preferences/two_factor\";\r\nimport WebHooks from \"screens/preferences/WebHooks/\";\r\nimport Reports from \"screens/reports\";\r\nimport Integrations from \"screens/integration\"\r\n\r\nimport Notification from 'screens/customer/notification'\r\nimport ReportSettings from 'screens/reports/reports/index'\r\nimport CustomerSettings from 'screens/customer/settings'\r\n\r\n\r\nimport EndpointList from \"screens/endpoints/list\";\r\nimport AttackList from \"screens/attacks\";\r\nimport EndpointListC from \"screens/endpoints/list_by_customer\";\r\nimport EndpointListL from \"screens/endpoints/list_by_license\";\r\nimport EndpointListP from \"screens/endpoints/list_by_partner\";\r\nimport EndpointDetails from \"screens/endpoints/Details\"\r\nimport { EndpointSettings } from \"screens/endpoints/Settings\";\r\nimport Landing from \"screens/Landing\";\r\n\r\nimport Billing from \"screens/billing/form\"\r\nimport BillingHistory from \"screens/billing/history\";\r\nimport Invoice from \"screens/billing/invoice\";\r\n///\r\n\r\nimport UserList from \"screens/users/list\";\r\nimport UserDetails from \"screens/users/view\";\r\nimport UserAdd from \"screens/users/add\";\r\nimport UserEdit from \"screens/users/edit\";\r\nimport Version from \"screens/upgrades/Versions\";\r\nimport GlobalSettings from \"screens/others/global_settings\";\r\nimport ProcessRestriction from \"screens/preferences/processRestriction\";\r\n//import Reporing from \"screens/reporting\";\r\n\r\nvar routes = [\r\n {\r\n path: \"/login\",\r\n component: Login,\r\n layout: \"/auth\",\r\n },\r\n {\r\n path: \"/forget_pass\",\r\n component: ForegetPass,\r\n layout: \"/auth\"\r\n },\r\n {\r\n path: \"/reset\",\r\n component: Reset,\r\n layout: \"/auth\"\r\n },\r\n\r\n // dashboard\r\n {\r\n path: \"/dashboard\",\r\n component: Dashboard,\r\n layout: \"/admin\",\r\n parent: \"Dashboard\",\r\n roles: [ \"admin\" ],\r\n },\r\n \r\n // partners\r\n {\r\n path: \"/partners/\",\r\n component: PartnerList,\r\n layout: \"/admin\",\r\n // parent is for active left menu item\r\n parent: \"Partners\",\r\n // roles is for managing rbac of each page\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/partners/edit_partner/:id\",\r\n component: PartnerEdit,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/partners/add_partner\",\r\n component: PartnerAdd,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n // ==>Validate following page<==\r\n {\r\n path: \"/Partner/PartnerCustomers\",\r\n component: PartnerCustomers,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n // ==>Validate following page<==\r\n {\r\n path: \"/Partner/PartnerChange/:id\",\r\n component: ChangePartner,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/partners/list_customers/:id\",\r\n component: CustomerListByPartner,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n //Billing\r\n {\r\n path: \"/billing/:type/:id\",\r\n component: Billing,\r\n layout: \"/admin\",\r\n parent: \"Billings\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/billing/history/:type/:id\",\r\n component: BillingHistory,\r\n layout: \"/admin\",\r\n parent: \"Billings\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/billing/invoice/:type/:id\",\r\n component: Invoice,\r\n layout: \"/admin\",\r\n parent: \"Billings\",\r\n roles: [\"admin\"],\r\n },\r\n // Customer\r\n {\r\n path: \"/customers\",\r\n component: CustomerList,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/customer_details/:id\",\r\n component: CustomerDetails,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/new_license/:id\",\r\n component: LicenseAdd,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/add_customer\",\r\n component: CustomerAdd,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/edit_customer/:id\",\r\n component: CustomerEdit,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/notification_settings/:id\",\r\n component: Notification,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/customer_settings/:id\",\r\n component: CustomerSettings,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/global_agent_settings\",\r\n component: GlobalSettings,\r\n layout: \"/admin\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/customers/list_endpoints/:id\",\r\n component: EndpointListC,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/customers/endpoints_under_license/:id\",\r\n component: EndpointListL,\r\n layout: \"/admin\",\r\n parent: \"Customers\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n\r\n // Endpoints\r\n {\r\n path: \"/endpoints\",\r\n component: EndpointList,\r\n layout: \"/admin\",\r\n parent: \"Endpoints\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/endpoints/endpoint_details/:id\",\r\n component: EndpointDetails,\r\n layout: \"/admin\",\r\n parent: \"Endpoints\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/endpoints/endpoint_settings/:id\",\r\n component: EndpointSettings,\r\n layout: \"/admin\",\r\n parent: \"Endpoints\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n // ==>Validate following page<==\r\n {\r\n path: \"/Endpoints/ListFromPartner/:id\",\r\n component: EndpointListP,\r\n layout: \"/admin\",\r\n parent: \"Partners\",\r\n roles: [\"admin\"],\r\n },\r\n\r\n // Profile\r\n {\r\n path: \"/preferences/change_password\",\r\n component: ChangePassword,\r\n layout: \"/admin\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/preferences/process_restriction\",\r\n component: ProcessRestriction,\r\n layout: \"/admin\",\r\n roles: [\"admin\"],\r\n },\r\n {\r\n path: \"/preferences/change_2FA\",\r\n component: TwoFactorSettings,\r\n layout: '/admin',\r\n roles: [\"admin\", \"partner\", \"customer\"]\r\n },\r\n {\r\n path: '/preferences/logo_upload',\r\n component: LogoUpload,\r\n layout: '/admin',\r\n roles: [\"admin\", \"partner\"]\r\n },\r\n {\r\n path: '/preferences',\r\n component: Preferences,\r\n layout: \"/admin\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: '/preferences/webhooks',\r\n component: WebHooks,\r\n layout: '/admin',\r\n roles: [\"admin\"]\r\n },\r\n\r\n // Reports\r\n {\r\n path: \"/reports\",\r\n component: Reports,\r\n layout: \"/admin\",\r\n parent: \"Reports\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n {\r\n path: \"/reports/report_settings\",\r\n component: ReportSettings,\r\n layout: \"/admin\",\r\n parent: \"Reports\",\r\n roles: [\"admin\", \"partner\"],\r\n },\r\n\r\n // Reporting\r\n/* {\r\n path: \"/reporting\",\r\n component: Reporing,\r\n layout: \"/admin\",\r\n parent: \"Reporting\",\r\n roles: [\"admin\", \"partner\"],\r\n }, */\r\n\r\n // Users\r\n\r\n {\r\n path: \"/users/user_details/:id\",\r\n component: UserDetails,\r\n layout: \"/admin\",\r\n parent: \"Users\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/users/add_user\",\r\n component: UserAdd,\r\n layout: \"/admin\",\r\n parent: \"Users\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/users/edit_user/:id\",\r\n component: UserEdit,\r\n layout: \"/admin\",\r\n parent: \"Users\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n {\r\n path: \"/users\",\r\n component: UserList,\r\n layout: \"/admin\",\r\n parent: \"Users\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n\r\n // Upgrades\r\n {\r\n path: \"/upgrade_manager\",\r\n component: Version,\r\n layout: \"/admin\",\r\n roles: [\"admin\"],\r\n },\r\n\r\n // Handle Landig\r\n {\r\n path: \"/\",\r\n component: Landing,\r\n layout: \"/admin\",\r\n },\r\n // Alerts\r\n {\r\n path: \"/alerts\",\r\n component: AttackList,\r\n layout: \"/admin\",\r\n parent: \"Alerts\",\r\n roles: [\"admin\", \"partner\", \"customer\"],\r\n },\r\n //Integrations\r\n {\r\n path: \"/integrations\",\r\n component: Integrations,\r\n layout: \"/admin\",\r\n roles: [ \"partner\" ],\r\n },\r\n {\r\n path: '/integrations/acronis',\r\n component: AcronisApiGen,\r\n layout: '/admin',\r\n parent: \"Integration\",\r\n roles: [ \"partner\" ]\r\n }\r\n];\r\n\r\nexport default routes;\r\n","\r\nimport Configuration from 'components/Configuration'\r\nimport { useParams, useHistory } from 'react-router-dom'\r\n\r\nimport { Container,Button } from 'reactstrap'\r\n\r\nexport default function CustomerSettings() {\r\n const { id } = useParams()\r\n const history = useHistory()\r\n\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Agent Default Settings\r\n
\r\n \r\n
\r\n )\r\n\r\n}","import Configuration from 'components/Configuration'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nimport { Container, Button } from 'reactstrap'\r\n\r\nexport default function GlobalSettings() {\r\n const history = useHistory()\r\n\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Global Agent Settings\r\n
\r\n \r\n
\r\n )\r\n}","\r\nimport Configuration from 'components/Configuration'\r\nimport { useParams, useHistory } from 'react-router-dom'\r\n\r\nimport { Container,Button } from 'reactstrap'\r\n\r\nexport function EndpointSettings() {\r\n const { id } = useParams()\r\n const history = useHistory()\r\n\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Endpoint Settings\r\n
\r\n \r\n
\r\n )\r\n\r\n}","import { useState } from \"react\";\r\nimport validator from \"validator\";\r\nimport AlertMessage from \"components/Alert\";\r\nimport { Container, Row, Col, Card, CardBody } from \"reactstrap\";\r\nimport WebAPI from 'services/WebAPI'\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Label,\r\n FormGroup,\r\n FormFeedback\r\n} from \"reactstrap\";\r\nimport Button from \"components/Inputs/TButton\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { alertActions } from \"redux/_actions\";\r\n\r\nexport default function ChangePassword() {\r\n\r\n const dispatch = useDispatch()\r\n\r\n const [formState, setFormState] = useState({\r\n OldPassword: \"\",\r\n NewPassword: \"\",\r\n ConfirmPassword: \"\",\r\n })\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const [invalidFormState, setInvalidFormState] = useState({\r\n OldPassword: false,\r\n NewPassword: false,\r\n ConfirmPassword: false,\r\n })\r\n\r\n const handleFormValueChange = ({ target: { id, value } }) => {\r\n invalidFormState[id] = false\r\n formState[id] = value\r\n setFormState({ ...formState })\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n const handleSave = (e) => {\r\n e.preventDefault()\r\n let flag = false\r\n Object.entries(formState).forEach(([a, b]) => {\r\n if (validator.isEmpty(b)) {\r\n flag = true\r\n invalidFormState[a] = true\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n })\r\n\r\n if (formState['ConfirmPassword'] !== formState['NewPassword']) {\r\n flag = true\r\n invalidFormState['ConfirmPassword'] = true\r\n setInvalidFormState({ ...invalidFormState })\r\n }\r\n\r\n if (!flag) {\r\n setIsLoading(true)\r\n WebAPI\r\n .post('Preferences/ChangePassword', formState)\r\n .then(result => {\r\n const { status, message } = result.data\r\n if (status)\r\n dispatch(alertActions.success(message))\r\n else\r\n dispatch(alertActions.error(message))\r\n })\r\n .catch(() => dispatch(alertActions.error('Error sending request.')))\r\n .finally(() => setIsLoading(false))\r\n }\r\n\r\n }\r\n\r\n return (\r\n \r\n
\r\n Change Password\r\n
\r\n \r\n \r\n {\"Change Password\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Please enter a current password\r\n \r\n \r\n \r\n \r\n Please enter a password\r\n \r\n \r\n \r\n \r\n Password not matching\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}","import { Container, Row, Col, CardBody, Card, FormGroup, Input } from 'reactstrap'\r\nimport AlertMessage from 'components/Alert'\r\nimport Button from 'components/Inputs/TButton'\r\nimport { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport QRCode from 'qrcode'\r\nimport WebAPI from 'services/WebAPI'\r\nimport { useDispatch } from 'react-redux'\r\nimport { Helmet } from 'react-helmet'\r\nimport { alertActions, userActions } from 'redux/_actions'\r\nimport { Spin } from \"antd\";\r\n\r\n\r\nexport function TwoFactorSettings() {\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const [enabled, setEnabled] = useState(false)\r\n const [verificationCode, setVerificationCode] = useState('')\r\n const [QRCodeURL, setQRCode] = useState('')\r\n\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n useEffect(() => {\r\n loadTwoFactorStatus()\r\n }, [])\r\n\r\n const loadTwoFactorStatus = () => {\r\n WebAPI\r\n .get('Preferences/GetTwoFactor')\r\n .then(result => {\r\n const { data: { status, data } } = result\r\n const { twoFactorStatus, qrCode } = data\r\n QRCode.toDataURL(qrCode).then(r => setQRCode(r))\r\n setEnabled(twoFactorStatus);\r\n })\r\n }\r\n\r\n const UpdateQrCode = () => {\r\n setQRCode('');\r\n WebAPI.get(\"Preferences/GetTwoFactor\").then((result) => {\r\n const {\r\n data: { status, data },\r\n } = result;\r\n const { qrCode } = data;\r\n QRCode.toDataURL(qrCode).then((r) => setQRCode(r));\r\n \r\n });\r\n };\r\n\r\n const onSubmit = () => {\r\n const submitModel = { Enabled: enabled, VerificationCode: verificationCode }\r\n setIsLoading(true)\r\n WebAPI.post('Preferences/SetTwoFactor', submitModel)\r\n .then(result => {\r\n const { data: { status, message } } = result\r\n if(status){\r\n dispatch(alertActions.success(message))\r\n userActions.getAndSetUser(dispatch) \r\n setTimeout(()=>{\r\n dispatch(alertActions.clear())\r\n history.push('/')\r\n },2000)\r\n }\r\n else\r\n dispatch(alertActions.error(message))\r\n })\r\n .catch(() => dispatch(alertActions.error('Network error')))\r\n .finally(()=>setIsLoading(false))\r\n }\r\n\r\n return (\r\n \r\n
Configure Multi-Factor Authenticator
\r\n \r\n {\"Two-Factor Authentication\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {enabled && (\r\n
\r\n

\r\n \r\n To use an authenticator app go through the following\r\n steps:\r\n \r\n

\r\n
    \r\n
  1. \r\n

    \r\n Download a two-factor authenticator app like Microsoft\r\n Authenticator for\r\n \r\n Android\r\n {\" \"}\r\n and\r\n \r\n iOS\r\n {\" \"}\r\n or Google Authenticator for\r\n \r\n Android\r\n {\" \"}\r\n and\r\n \r\n iOS\r\n \r\n .\r\n

    \r\n
  2. \r\n
  3. \r\n

    \r\n Scan the QR Code into your two factor authenticator app.\r\n Spaces and casing do not matter.\r\n

    \r\n {QRCodeURL ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
  4. \r\n
  5. \r\n

    \r\n Once you have scanned the QR code or input the key\r\n above, your two factor authentication app will provide\r\n you with a unique code. Enter the code in the\r\n confirmation box below.\r\n

    \r\n \r\n \r\n setVerificationCode(value)\r\n }\r\n />\r\n \r\n
  6. \r\n
\r\n
\r\n )}\r\n \r\n \r\n Update\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Container,\r\n Row,\r\n Card,\r\n CardBody,\r\n Col,\r\n Button,\r\n ButtonGroup,\r\n Spinner,\r\n} from \"reactstrap\";\r\n\r\nimport CustomerReportSettings from './offlineReport'\r\nimport LicenseReport from \"./licenseReport\";\r\nimport EndpointSettingReport from \"./endpointSetting\";\r\n\r\nexport default function Reports() {\r\n const [offlineReport, setOfflinereport] = useState(true);\r\n const [endpointSettings, setEndpointSettings] = useState(false);\r\n const [licenseReport, setLicenseReport] = useState(false);\r\n\r\n const history= useHistory()\r\n\r\n const clearData = () => {\r\n setOfflinereport(false);\r\n setEndpointSettings(false);\r\n setLicenseReport(false);\r\n };\r\n return (\r\n \r\n
\r\n history.go(-1)}\r\n >\r\n \r\n \r\n Report Settings\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n clearData();\r\n setOfflinereport(true);\r\n }}\r\n >\r\n Endpoint Offline report\r\n \r\n {/* {\r\n clearData();\r\n setLicenseReport(true);\r\n }}\r\n >\r\n License Report\r\n \r\n {\r\n clearData();\r\n setEndpointSettings(true);\r\n }}\r\n >\r\n Endpoint Settings and Issues Report\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {offlineReport&&(\r\n \r\n )}\r\n {licenseReport&&(\r\n \r\n )}\r\n {endpointSettings&&(\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import { Container, Row, Col, Spinner, Popover } from \"reactstrap\"\r\nimport Button from \"components/Inputs/TButton\";\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport { useEffect, useState } from \"react\";\r\nimport WebAPI from 'services/WebAPI'\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Upload from './Upload'\r\nimport Channel from './channel'\r\nimport ChangeChannel from \"./changeChannel\";\r\n\r\n\r\nexport default function Version() {\r\n const history = useHistory()\r\n\r\n const [versions, setVersions] = useState([])\r\n const [isChange, setChange] =useState(null)\r\n const [loading, setLoading] = useState(false)\r\n useEffect(() => {\r\n loadVersions()\r\n }, [])\r\n\r\n const loadVersions = () => {\r\n setLoading(true)\r\n WebAPI.get('/UpgradeManager/Versions')\r\n .then(({ data: res }) => {\r\n if (res.status)\r\n setVersions(res.data)\r\n })\r\n .finally(() => setLoading(false))\r\n }\r\n const columns = (currentItem, deleting) => [\r\n {\r\n dataField: 'Version',\r\n text: 'Version',\r\n classes: 'common-table-column-style',\r\n },\r\n {\r\n dataField: 'Type',\r\n text: 'Channel',\r\n classes: 'common-table-column-style',\r\n formatter: (cell) => cell ? cell.charAt(0).toUpperCase() + cell.slice(1) : cell\r\n },\r\n {\r\n dataField: 'Id',\r\n isDummyField: true,\r\n formatter: (cell, row, rowId) => (\r\n
\r\n {setChange(row)}}\r\n isLoading={currentItem === row.Id && updating}\r\n >\r\n Change Channel\r\n \r\n handleDelete(row.Id)}\r\n isLoading={currentItem === row.Id && deleting}\r\n >\r\n Remove\r\n \r\n
\r\n )\r\n }\r\n ]\r\n\r\n\r\n const [uploadOpen, setUploadOpen] = useState(false)\r\n const [channelOpen, setChannelOpen] = useState(false)\r\n\r\n const [currentItem, setCurrentItem] = useState(0)\r\n const [deleting, setDeleting] = useState(false)\r\n\r\n const reload = () => {\r\n setUploadOpen(false)\r\n setCurrentItem(0)\r\n setVersions([])\r\n loadVersions()\r\n }\r\n const handleDelete = (id) => {\r\n if (deleting)\r\n return\r\n setDeleting(true)\r\n setCurrentItem(id)\r\n WebAPI\r\n .post('/UpgradeManager/Delete/' + id)\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n reload()\r\n }\r\n })\r\n .finally(() => setDeleting(false))\r\n }\r\n\r\n const [updating,setUpdating] = useState(false)\r\n const handleChange = (id, state) => {\r\n if (updating)\r\n return\r\n setUpdating(true)\r\n setCurrentItem(id)\r\n WebAPI\r\n .post('/UpgradeManager/ChangeState/' + id, { type : state})\r\n .then(({ data: res }) => {\r\n if (res.status) {\r\n reload()\r\n }\r\n })\r\n .finally(() => setUpdating(false))\r\n }\r\n\r\n\r\n return (\r\n \r\n
Versions
\r\n \r\n \r\n \r\n \r\n
\r\n setChannelOpen(true)}\r\n outline\r\n >\r\n Channels\r\n \r\n setUploadOpen(true)}\r\n color=\"primary\"\r\n >\r\n Upload\r\n \r\n
\r\n \r\n
\r\n \r\n : \"No Data\"}\r\n />\r\n \r\n \r\n
\r\n setUploadOpen(!uploadOpen)}\r\n >\r\n \r\n \r\n setChannelOpen(!channelOpen)} />\r\n {setChange(null)}} />\r\n
\r\n )\r\n}","import { useSelector } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nexport default function Landing() {\r\n const user = useSelector(store => store.authentication.user) || {}\r\n const { role } = user;\r\n switch (role) {\r\n case 'admin': return \r\n case 'parter': return \r\n default: return \r\n }\r\n}","import React from \"react\";\r\nimport { Col, Container, Row } from \"reactstrap\";\r\nimport AcronisApiGen from \"./generate\";\r\nimport AcronisApiInput from \"./api\";\r\n\r\nexport default function Acronis() {\r\n return (\r\n \r\n
Acronis API
\r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n );\r\n}\r\n","/*eslint-disable*/\r\nimport { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { NavLink as NavLinkRRD, Link } from \"react-router-dom\";\r\n// nodejs library to set properties for components\r\nimport { PropTypes } from \"prop-types\";\r\nimport _ from 'lodash'\r\nimport { Helmet } from \"react-helmet\";\r\n\r\n// reactstrap components\r\nimport {\r\n DropdownMenu,\r\n DropdownItem,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n Media,\r\n NavbarBrand,\r\n Navbar,\r\n NavItem,\r\n NavLink,\r\n Nav,\r\n Container,\r\n Button\r\n} from \"reactstrap\";\r\n\r\nimport { getSideBarClass } from \"../../utils/getGlobalStyles\";\r\nimport menuBarItems from \"utils/getMenuBar\";\r\n\r\nimport routes from \"routes.js\";\r\n\r\n\r\nconst Sidebar = (props) => {\r\n const [collapseOpen, setCollapseOpen] = useState(localStorage.getItem('menuCollapse') === 'true' ? true : false);\r\n\r\n const { theme, role } = useSelector(state => state.authentication.user) || { theme: \"white\" }\r\n const [activeItem, setActive] = useState(null)\r\n const [title,setTitle]= useState('Canauri Portal')\r\n\r\n const { location } = props\r\n useEffect(()=>{\r\n getCurrentActive()\r\n },[location])\r\n\r\n const handleToggle = () => {\r\n setCollapseOpen(!collapseOpen)\r\n localStorage.setItem('menuCollapse', !collapseOpen ? 'true' : 'false')\r\n }\r\n\r\n const LinksForMenu = (routes) => {\r\n const children = []\r\n children.push(\r\n \r\n {\r\n e.preventDefault()\r\n handleToggle()\r\n }\r\n }\r\n style={{ cursor: 'pointer' }}\r\n >\r\n \r\n \r\n \r\n \r\n {collapseOpen ? \"Collapse\" : \"\"}\r\n \r\n \r\n )\r\n children.push(...createLinks(routes))\r\n children.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n {collapseOpen ? \"Resources\" : \"\"}\r\n \r\n \r\n )\r\n\r\n return children\r\n }\r\n\r\n // creates the links that appear in the left menu / Sidebar\r\n const createLinks = (routes) => {\r\n return routes.map((prop, key) => {\r\n return (
\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n setTitle(prop.name)}\r\n >\r\n {prop.icon}\r\n {collapseOpen ? prop.name : \"\"}\r\n \r\n \r\n
\r\n );\r\n });\r\n };\r\n \r\n /* need to change this logic - (added parent field in routes page) */\r\n\r\n const getCurrentActive = () => {\r\n const { location: { pathname } } = props\r\n const all_matches = []\r\n routes.forEach(({ path, parent }) => {\r\n if (pathname.includes(path.split(':')[0])) {\r\n all_matches.push({ path, parent })\r\n }\r\n });\r\n\r\n if (all_matches.length) {\r\n const best_match = _.maxBy(all_matches, (({ path }) => path.length))\r\n setActive(best_match.parent ? best_match.parent : null)\r\n }\r\n else {\r\n setActive(null)\r\n }\r\n }\r\n\r\n /* -------------------------- */\r\n\r\n const { bgColor, routes, logo } = props;\r\n let navbarBrandProps;\r\n if (logo && logo.innerLink) {\r\n navbarBrandProps = {\r\n to: logo.innerLink,\r\n tag: Link,\r\n };\r\n } else if (logo && logo.outterLink) {\r\n navbarBrandProps = {\r\n href: logo.outterLink,\r\n target: \"_blank\",\r\n };\r\n }\r\n\r\n return (\r\n \r\n \r\n {/* Brand */}\r\n {logo ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSidebar.defaultProps = {\r\n routes: [{}],\r\n};\r\n\r\nSidebar.propTypes = {\r\n // links that will be displayed inside the component\r\n routes: PropTypes.arrayOf(PropTypes.object),\r\n logo: PropTypes.shape({\r\n // innerLink is for links that will direct the user within the app\r\n // it will be rendered as ... tag\r\n innerLink: PropTypes.string,\r\n // outterLink is for links that will direct the user outside the app\r\n // it will be rendered as simple ... tag\r\n outterLink: PropTypes.string,\r\n // the image src of the logo\r\n imgSrc: PropTypes.string.isRequired,\r\n // the alt for the img\r\n imgAlt: PropTypes.string.isRequired,\r\n }),\r\n};\r\n\r\nexport default Sidebar;\r\n","import React from \"react\";\r\nimport { Breadcrumb, BreadcrumbItem } from \"reactstrap\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport styles from \"./styles.module.scss\";\r\n\r\nfunction BreadCrumbNavigation() {\r\n const { pathname } = useLocation();\r\n const _path = pathname.split(\"/\").splice(1);\r\n\r\n // filtering id from url\r\n const special = [\r\n /^add_/,\r\n /^edit_/,\r\n /^list_/,\r\n /^new_/,\r\n /_details$/,\r\n /_settings$/,\r\n /endpoints_under_license/,\r\n ];\r\n const to_render = [];\r\n _path.every((path, i) => {\r\n to_render.push(path);\r\n return !special.map((r) => path.match(r)).filter((n) => n).length;\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n Home\r\n \r\n {to_render.map((path, i) => (\r\n \r\n {path.replace(/_/g, \" \")}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default BreadCrumbNavigation;\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLocation, Route, Switch, Redirect } from \"react-router-dom\";\r\nimport Helmet from \"react-helmet\";\r\n// core components\r\nimport AdminNavbar from \"components/Navbars/AdminNavbar.js\";\r\nimport Sidebar from \"components/Sidebar/Sidebar.js\";\r\nimport { Alert } from \"reactstrap\";\r\n\r\nimport routes from \"routes.js\";\r\nimport BreadCrumbNavigation from \"components/Breadcrumb\";\r\n\r\nconst Admin = (props) => {\r\n const mainContent = React.useRef(null);\r\n const location = useLocation();\r\n\r\n React.useEffect(() => {\r\n document.documentElement.scrollTop = 0;\r\n document.scrollingElement.scrollTop = 0;\r\n mainContent.current.scrollTop = 0;\r\n }, [location]);\r\n\r\n const {\r\n theme = \"white\",\r\n twoFactorActive,\r\n role = \"customer\",\r\n } = useSelector((state) => state.authentication.user) || {\r\n theme: \"white\",\r\n role: \"customer\",\r\n };\r\n\r\n const getRoutes = (routes) => {\r\n return routes.map((prop, key) => {\r\n if (\r\n prop.layout === \"/admin\" &&\r\n ((prop.roles && prop.roles.includes(role)) || !prop.roles)\r\n ) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n });\r\n };\r\n\r\n const getBrandText = (path) => {\r\n for (let i = 0; i < routes.length; i++) {\r\n if (\r\n props.location.pathname.indexOf(routes[i].layout + routes[i].path) !==\r\n -1\r\n ) {\r\n return routes[i].name;\r\n }\r\n }\r\n return \"Brand\";\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 {!twoFactorActive && (\r\n
\r\n \r\n You have not enabled multi-factor authentication for your\r\n account. Please enable the 2FA to access the portal\r\n \r\n
\r\n )}\r\n
\r\n \r\n {getRoutes(routes)}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Admin;\r\n","export default __webpack_public_path__ + \"static/media/dark.32abdf63.png\";","import React, { useEffect, useState } from \"react\";\r\nimport { Redirect, Route, Switch, useLocation } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport routes from \"routes.js\";\r\nimport { Spinner } from \"reactstrap\";\r\n\r\nimport Logo from '../assets/img/brand/dark.png'\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst LoginContainer = styled.div`\r\n width: 360px;\r\n margin: 7% auto;\r\n background: #fff;\r\n padding: 20px;\r\n border-top: 0;\r\n color: #666;\r\n`\r\n\r\n\r\nconst Auth = (props) => {\r\n\r\n const [partnerFavicon, setPIcon] = useState(\"\")\r\n\r\n useEffect(()=>{\r\n prepareFavicon()\r\n },[])\r\n\r\n const authStore = useSelector(store => store.authentication)\r\n\r\n const isAuthenticated = authStore.loggedIn\r\n\r\n const location = useLocation()\r\n if (isAuthenticated) {\r\n const next_url = new URLSearchParams(location.search).get('next_url') || '/'\r\n return \r\n }\r\n\r\n const getRoutes = (routes) => {\r\n const _routes = [];\r\n routes.forEach((prop, key) => {\r\n if (prop.layout === \"/auth\")\r\n _routes.push(\r\n \r\n );\r\n });\r\n return _routes;\r\n };\r\n\r\n const prepareFavicon= async()=>{\r\n await fetch(\r\n require(\"assets/img/brand/favicon.ico\").default\r\n ).then((res) => {\r\n setPIcon(res.url);\r\n })\r\n .catch((err)=>console.log('err', err))\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 {authStore.firstLoad && (\r\n
\r\n \r\n
\r\n ) || (\r\n \r\n {getRoutes(routes)}\r\n \r\n )}\r\n
\r\n\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Auth;\r\n","import { Redirect, useHistory } from \"react-router-dom\"\r\n\r\nimport { useSelector } from 'react-redux'\r\n\r\nfunction RequireAuth({ children }) {\r\n const isAuthenticated = useSelector(store => store.authentication.loggedIn)\r\n const history = useHistory()\r\n const nextUrl = encodeURIComponent(history.location.pathname + history.location.search)\r\n return isAuthenticated === true\r\n ? children : ;\r\n}\r\n\r\nexport default RequireAuth","\r\nimport Configuration from \"components/Configuration\"\r\n\r\nimport WebAPI from 'services/WebAPI'\r\nimport { useEffect } from 'react'\r\n\r\n\r\nexport default function TestPage(props) {\r\n\r\n useEffect(() => {\r\n WebAPI\r\n .get('/Users/GetUsers')\r\n .then(r=>console.log(r.data))\r\n }, [])\r\n\r\n return (\r\n \"Testing\"\r\n )\r\n}","import { Redirect, useHistory } from \"react-router-dom\"\r\n\r\nimport { useSelector } from 'react-redux'\r\n\r\nfunction Require2FA({ children }) {\r\n const { twoFactorActive } = useSelector(store => store.authentication.user)\r\n const history = useHistory()\r\n return twoFactorActive || history.location.pathname === '/preferences/change_2FA'\r\n ? children : ;\r\n}\r\n\r\nexport default Require2FA","import React, { useEffect } from 'react';\r\nimport { HashRouter as Router, Route, Switch } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { createBrowserHistory } from 'history';\r\n\r\nimport { IntercomProvider, useIntercom } from 'react-use-intercom';\r\n\r\nimport AdminLayout from 'layouts/Admin'\r\nimport AuthLayout from 'layouts/Auth'\r\nimport { alertActions, userActions } from './redux/_actions';\r\nimport RequireAuth from 'helpers/requireauth';\r\nimport TestPage from 'screens/test';\r\nimport Require2FA from 'helpers/Require2FA';\r\n\r\n\r\nconst INTERCOM_APP_ID = 'lf2jzawl';\r\n\r\nconst IntercomMask = ({ children }) => {\r\n const { boot, shutdown } = useIntercom()\r\n const user = useSelector(store => store.authentication.user)\r\n\r\n useEffect(() => {\r\n bootOrClose()\r\n }, [user])\r\n\r\n const bootOrClose = () => {\r\n if (user) {\r\n boot({\r\n appId: INTERCOM_APP_ID,\r\n email: user.email\r\n })\r\n } else {\r\n shutdown()\r\n }\r\n\r\n }\r\n\r\n return children\r\n}\r\n\r\nconst IntercomWrapper = ({ children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\n\r\n\r\nconst history = createBrowserHistory()\r\n\r\nfunction App() {\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n history.listen((location, action) => {\r\n dispatch(alertActions.clear());\r\n });\r\n }, [dispatch])\r\n\r\n useEffect(() => {\r\n userActions.getAndSetUser(dispatch)\r\n /*\r\n setInterval(() => {\r\n userActions.getAndSetUser(dispatch)\r\n }, 5 * 1000);\r\n */\r\n }, [dispatch])\r\n return (\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\nexport { App };","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Provider } from 'react-redux';\r\n\r\nimport { createStore, applyMiddleware } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { createLogger } from 'redux-logger';\r\nimport rootReducer from './redux/_reducers';\r\n\r\nimport { App } from \"./app\";\r\n\r\nimport \"assets/plugins/nucleo/css/nucleo.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\r\nimport \"bootstrap-icons/font/bootstrap-icons.css\";\r\nimport \"assets/scss/argon-dashboard-react.scss\";\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\n\r\nconst loggerMiddleware = createLogger();\r\n\r\nexport const store = createStore(\r\n rootReducer,\r\n applyMiddleware(\r\n thunkMiddleware,\r\n loggerMiddleware\r\n )\r\n);\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}