{"version":3,"sources":["../node_modules/codemirror/mode lazy /^/.//.*/.js$/ groupOptions: {} namespace object","frameworkStyle.jsx","theme.js","components/Appsearch.jsx","components/PaperComponent.jsx","components/Dropzone.js","views/Apps.jsx","components/ConfigureWorkflow.jsx","components/Oauth2Auth.jsx","components/AuthenticationNormal.jsx","components/AppsearchPopout.jsx","components/UsecaseSearch.jsx","components/SuggestedWorkflows.jsx","components/LandingpageUsecases.jsx","components/AppFramework.jsx","components/EditWorkflow.jsx","views/Workflows.jsx","views/GettingStarted.jsx","assets/img/webhook.png","defaultCytoscapeStyle.js","components/ShuffleCodeEditor.jsx","components/ParsedAction.jsx","views/AngularWorkflow.jsx","components/ExtraApps.jsx","components/Searchfield.js","components/Header.js","views/AppCreator.jsx","components/Workflowsearch.jsx","components/WorkflowPaper.jsx","components/WelcomeForm2.jsx","views/Welcome.jsx","views/Dashboard.jsx","views/DashboardViews.jsx","views/AdminSetup.jsx","components/Countries.jsx","views/HandlePayment.js","components/OrgHeader.jsx","views/Admin.jsx","views/Docs.jsx","views/Introduction.jsx","views/SetAuthentication.jsx","views/SetAuthenticationSSO.jsx","components/AppGrid.jsx","components/WorkflowPaperNew.jsx","components/WorkflowGrid.jsx","components/CreatorGrid.jsx","components/DocsGrid.jsx","views/Search.jsx","views/LandingpageNew.jsx","views/LoginPage.jsx","views/SettingsPage.jsx","views/KeepAlive.jsx","assets/img/mobile.svg","assets/img/bag.svg","assets/img/book.svg","views/FrameworkWrapper.jsx","components/ScrollToTop.jsx","components/AlertTemplate.js","views/TempDashboard.jsx","App.jsx","serviceWorker.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","t","keys","Object","module","exports","data","selector","css","style","theme","createMuiTheme","palette","primary","main","secondary","text","type","surfaceColor","inputColor","platformColor","borderRadius","defaultBorder","jsonTheme","reactJsonStyle","border","padding","textFieldStyle","backgroundColor","innerTextfieldStyle","color","minHeight","marginLeft","maxWidth","fontSize","tooltip","boxShadow","defaultImage","typography","fontFamily","useNextVariants","h1","h4","fontWeight","h6","body1","overrides","MuiMenu","list","MuiCssBaseline","searchClient","algoliasearch","Appsearch","props","maxRows","parsedXs","showName","showSuggestion","isMobile","globalUrl","newSelectedApp","setNewSelectedApp","defaultSearch","ConfiguredHits","showSearch","userdata","isCloud","cy","window","location","host","rowHandler","undefined","xs","useTheme","React","useState","title","InputHits","hits","mouseHoverIndex","setMouseHoverIndex","counted","Grid","container","spacing","maxHeight","overflowY","overflowX","index","paperStyle","objectID","textAlign","cursor","position","overflow","width","parsedname","name","valueOf","charAt","toUpperCase","substring","replaceAll","Paper","elevation","onMouseOver","onMouseOut","onClick","ReactGA","event","category","action","label","aa","appId","apiKey","transporter","headers","timestamp","Date","getTime","eventType","eventName","objectIDs","queryID","userToken","console","log","display","alt","src","image_url","minWidth","Typography","variant","marginTop","CustomSearchBox","connectSearchBox","currentRefinement","refine","isSearchStalled","useEffect","noValidate","role","TextField","fullWidth","InputProps","height","startAdornment","InputAdornment","autoComplete","defaultValue","placeholder","onChange","currentTarget","value","limit","CustomHits","connectHits","InstantSearch","indexName","margin","hitsPerPage","PaperComponent","handle","cancel","dragOverStyle","zIndex","alignItems","justifyContent","Dropzone","children","onDrop","dropzoneRef","useRef","dragging","setDragging","dragCounter","handleDragOver","preventDefault","stopPropagation","handleDragEnter","dataTransfer","items","length","handleDragLeave","handleDrop","files","clearData","current","addEventListener","removeEventListener","ref","chipStyle","marginRight","paddingLeft","paddingRight","FindJsonPath","path","inputdata","keysplit","split","startsWith","includes","prototype","toString","call","join","entries","key","newkey","toLowerCase","GetParsedPaths","basekey","splitkey","parsedValues","extra","basekeyname","isNaN","push","autocomplete","returnValues","subkey","Array","isArray","Apps","isLoggedIn","isLoaded","alert","useAlert","navigate","useNavigate","selectedApp","setSelectedApp","firstrequest","setFirstrequest","apps","setApps","filteredApps","setFilteredApps","validation","setValidation","isLoading","setIsLoading","appSearchLoading","selectedAction","setSelectedAction","searchableApps","openApi","setOpenApi","openApiData","setOpenApiData","appValidation","setAppValidation","loadAppsModalOpen","setLoadAppsModalOpen","deleteModalOpen","setDeleteModalOpen","openApiModal","setOpenApiModal","openApiError","setOpenApiError","field1","setField1","field2","setField2","cursearch","setCursearch","sharingConfiguration","setSharingConfiguration","downloadBranch","setDownloadBranch","isDropzone","setIsDropzone","upload","firstLoad","viewWidth","useInterval","duration","startImmediate","callback","getApps","start","stop","document","paperAppStyle","marginBottom","fetch","method","Accept","credentials","response","status","json","responseJson","privateapps","valid","invalid","app","is_valid","activated","generated","private_id","actions","catch","error","downloadApp","info","pathname","success","basedata","atob","openapi","JSON","parse","body","newpaths","forEach","paths","replace","editing","YAML","stringify","blob","Blob","url","URL","createObjectURL","link","createElement","setAttribute","createEvent","initMouseEvent","dispatchEvent","AppPaper","boxWidth","boxColor","imageline","large_image","onLoad","newAppname","sharing","description","app_version","square","flex","ButtonBase","flexDirection","item","tags","tag","Chip","handleSearchChange","searchfield","getElementById","Tooltip","CloudDownload","dividerColor","uploadViewPaperStyle","UploadView","editUrl","activateUrl","downloadButton","Button","component","editButton","to","textDecoration","Edit","editNewButton","owner","ForkRight","activateButton","Delete","deleteButton","downloaded","GetAppExample","returns","showResult","example","jsonvalid","tmp","String","MenuItem","userRoles","canEditApp","admin","active_org","reference_org","baseInfo","versions","Select","target","newversion","find","tmpApp","version","getApp","top","right","SelectDisplayProps","rel","href","IconButton","OpenInNew","float","updateAppField","privateId","Divider","paddingTop","paddingBottom","newActionname","parameters","itemColor","required","configuration","placement","LockOpen","Publish","search","newapps","filter","tmpapps","uploadFile","reader","FileReader","content","result","readAsText","validateOpenApi","redirectOpenApi","appDelay","appView","Breadcrumbs","separator","disabled","hotloadApps","CircularProgress","size","Cached","Zoom","in","transitionDelay","mode","reason","setApp","loop_versions","app_id","fieldname","fieldvalue","openApidata","newApidata","apidata","parsed","escapeApiData","handleGithubValidation","forceUpdate","parsedData","branch","getSpecificApps","deleteModal","Dialog","open","onClose","PaperProps","DialogTitle","DialogContent","setTimeout","circularLoader","appsModalLoad","DialogActions","errorText","modalView","FormControl","endAdornment","helperText","hidden","accept","multiple","click","ConfigureWorkflow","workflow","appAuthentication","setAuthenticationModalOpen","setConfigureWorkflowModalOpen","saveWorkflow","newWebhook","submitSchedule","referenceUrl","setAuthenticationType","showTriggers","workflowExecutions","getWorkflowExecution","requiredActions","setRequiredActions","requiredVariables","setRequiredVariables","requiredTriggers","setRequiredTriggers","previousAuth","setPreviousAuth","itemChanged","setItemChanged","setFirstLoad","showFinalizeAnimation","setShowFinalizeAnimation","checkStarted","setCheckStarted","paramkey","newactions","newaction","app_name","activation_done","must_activate","must_authenticate","auth_done","action_ids","update_version","steps","show_steps","subapp","authentication_id","authentication","filled","errors","authenticationOptions","auth","active","authenticationId","tmpaction","workflow_variables","variable","triggers","trigger","trigger_type","app_association","findapp","foundindex","findIndex","tmpsteps","actionkey","TriggerSection","ListItem","ListItemAvatar","Avatar","ListItemText","VariableSection","FavoriteBorder","onBlur","AppSection","textTransform","redirect_uri","token_uri","scope","activateApp","BoxHighlight","appname","appinfo","activeStep","setActiveStep","finished","hovered","setHovered","isOpen","setIsOpen","webhook","param","borderTop","CheckCircleRounded","copyText","navigator","clipboard","writeText","select","setSelectionRange","execCommand","AppWrapper","parentindex","clicked","firstRun","setFirstRun","finishCount","setFinishCount","step","exec","execution_argument","execution_source","background","List","ButtonGroup","reload","MenuProps","ITEM_HEIGHT","scrollX","getContentAnchorEl","registeredApps","AuthenticationOauth2","authenticationType","getAppAuthentication","setNewAppAuth","autoAuth","client_id","client_secret","defaultConfigSet","clientId","setClientId","clientSecret","setClientSecret","oauthUrl","setOauthUrl","buttonClicked","setButtonClicked","offlineAccess","setOfflineAccess","allscopes","selectedScopes","setSelectedScopes","manuallyConfigure","setManuallyConfigure","fields","usage","workflow_id","uuidv4","authenticationOption","startOauth2Request","admin_consent","handleOauth2Request","oauth_url","scopes","trim","resources","authentication_url","redirectUri","protocol","state","refresh_uri","newwin","timer","setInterval","closed","clearInterval","SupervisorAccount","schema","handleScopeChange","input","Input","renderValue","selected","Checkbox","checked","indexOf","AuthenticationData","setAuthenticationOptions","handleSubmitCheck","selectedAuthentication","appAuthData","newAuthOption","newFields","disableScrollLock","AppSearchPopout","paperTitle","setPaperTitle","selectionOpen","setSelectionOpen","discoveryData","setDiscoveryData","setDefaultSearch","left","elements","unselect","Close","usecaseTypes","triggerlist","midflows","subflows","UsecaseSearch","appFramework","showTitle","canExpand","setFoundWorkflowId","getFramework","usecaseSearch","setUsecaseSearch","autotry","setCloseWindow","allusecases","setAllUsecases","searchType","setSearchType","usecaseIndex","setUsecaseIndex","setUpdate","isUploading","setIsUploading","configureWorkflowModalOpen","setConfigureWorkflowAuth","setWorkflow","setAppAuthentication","authenticationModalOpen","firstRequest","setFirstRequest","foundusecase","selectedusecase","foundSubcase","usecase","newitem","itemname","source","midflow","middle","subflow","destination","Math","random","rerunWorkflowCheck","usecases","imagestyle","getType","inputtype","updateAction","authenticationModal","hideBackdrop","disableEnforceFocus","disableBackdropClick","pointerEvents","reference_info","github_url","AuthenticationNormal","borderLeft","documentation","setNewWorkflow","defaultReturnValue","editingWorkflow","redirect","currentUsecases","inputblogpost","inputstatus","extraData","workflowdata","new_url","mergeWorkflowUsecases","usecasedata","crossDomain","withCredentials","changed","added_auth","auth_required","default_return_value","first_save","previously_saved","image","srctype","dsttype","srcinfo","destinfo","midcase","midtype","midinfo","configureWorkflowModal","createWorkflowFromTemplate","middleItem","ShowBox","miditem","subindex","expanded","setexpanded","setFrameworkItem","appid","discoveredtype","submitValue","changeAppType","looplist","hasError","borderColor","AppsearchPopout","Description","ExpandLess","ExpandMore","subdata","curindex","innerdata","innerindex","AddCircleOutline","SuggestedWorkflows","usecaseSuggestions","frameworkData","setUsecaseSuggestions","inputSearch","usecaseSearchType","setUsecaseSearchType","finishedUsecases","setFinishedUsecases","previousUsecase","setPreviousUsecase","closeWindow","foundZindex","IndividualUsecase","hovering","setHovering","usecasename","bordercolor","srcimage","dstimage","selectedIcon","Done","AutoFixHigh","securityFramework","d","cytoscape","edgehandles","svgSize","encodeURI","AppFramework","showOptions","selectedOption","rolling","setFrameworkData","inputUsecase","discoveryWrapper","setDiscoveryWrapper","inputUsecases","setInputUsecases","setCy","edgesStarted","setEdgesStarted","graphDone","setGraphDone","cyDone","setCyDone","frameworkSuggestions","setFrameworkSuggestions","animationStarted","setAnimationStarted","changedApp","setChangedApp","usecaseType","selectedUsecase","setSelectedUsecase","scale","nodes","jsons","node","newSearchName","tmpnode","foundelement","alternativeChanged","showusecases","potential","matches","itemtype","apptype","app_type","usecase_references","foundUsecase","usecaseKey","usecaseCategory","subUsecaseKey","loopUsecase","showRecommendations","parsedFrameworkData","cases","Cases","siem","SIEM","assets","Assets","intel","Intel","communication","Comms","network","Network","iam","IAM","edr","changeUsecase","handleNodes","el","isNode","preview","toggleOffOnLeave","loopAllowed","edges","allEdges","newedge","remove","parsedType","newedges","parseInt","add","group","animationDuration","fit","on","onEdgeSelect","onNodeSelect","animate","onNodeUnselect","cytoscapeElement","onNodeHover","onNodeHoverOut","shiftradius","baselocationX","baselocationY","shiftmodifier","defaultSize","iconSize","textMarginDefault","textMarginImage","boxwidth","boxheight","font_size","isValid","text_margin_y","margin_x","margin_y","renderedPosition","x","y","middle_node","invisible","lock","process","bgColor","getOwnPropertyNames","minZoom","maxZoom","stylesheet","frameworkStyle","boxSelectionEnabled","panningEnabled","userPanningEnabled","showGrid","incy","bottom","parsedUsecase","edge","setUsecaseItem","EditWorkflow","modalOpen","setModalOpen","showUpload","isEditing","submitLoading","showMoreClicked","setShowMoreClicked","innerWorkflow","setInnerWorkflow","newWorkflowTags","setNewWorkflowTags","usecase_ids","selectedUsecases","setSelectedUsecases","foundWorkflowId","setName","setDescription","blogpost","branches","comments","execution_variables","newWorkflow","total_count","autoFocus","multiline","onAdd","chip","onDelete","splice","InputLabel","htmlFor","ListSubheader","subcase","itemIndex","FormLabel","RadioGroup","row","workflow_type","FormControlLabel","control","Radio","rows","video","useStyles","makeStyles","datagrid","borderRight","borderBottom","GetIconInfo","iconList","values","selectedKey","actionname","found","defaultColor","selectedItem","cache_add","icon","iconColor","iconBackgroundColor","originalIcon","fillGradient","cache_get","repeat","Add","edit","merge","compare","Compare","extract","Maximize","inflate","Minimize","Toc","execute","PlayArrow","delete","close","send","Send","download","GetApp","iconBackground","svg_pin","viewBox","xmlns","fill","validateJson","newstr","inside_result","newres","Workflows","classes","workflows","setWorkflows","filteredWorkflows","setFilteredWorkflows","selectedWorkflow","setSelectedWorkflow","workflowDone","setWorkflowDone","selectedWorkflowId","setSelectedWorkflowId","downloadUrl","setDownloadUrl","loadWorkflowsModalOpen","setLoadWorkflowsModalOpen","exportModalOpen","setExportModalOpen","exportData","setExportData","setIsEditing","newWorkflowName","setNewWorkflowName","newWorkflowDescription","setNewWorkflowDescription","setDefaultReturnValue","setBlogpost","setStatus","publishModalOpen","setPublishModalOpen","setEditingWorkflow","importLoading","setImportLoading","view","setView","filters","setFilters","setSubmitLoading","actionImageList","setActionImageList","setUsecases","setAppFramework","drawerOpen","setDrawerOpen","videoViewOpen","setVideoViewOpen","gettingStartedItems","setGettingStartedItems","drawerWidth","sidebarKey","tutorials","activeFiltered","newfiltered","done","doneFiltered","sidebar","localStorage","getItem","setItem","findWorkflow","newWorkflows","curWorkflow","workflowKey","every","v","newfilter","org_id","addFilter","removeFilter","newfilters","exportVerifyModal","exportWorkflow","publishModal","publishWorkflow","deleteWorkflow","getAvailableWorkflows","newarray","wf","public","fetchUsecases","setProdFilter","actionnamelist","parsedactionlist","categorydata","newcategories","subcategorykey","subcategory","workflowkey","usecasekey","handleKeysetting","tmpView","viewStyle","paperAppContainer","flexWrap","alignContent","boxSizing","gridContainer","workflowActionStyle","deduplicateIds","newId","branchkey","source_id","destination_id","environment","sanitizeWorkflow","sanitize","exportFileDefaultName","dataStr","dataUri","encodeURIComponent","linkElement","handleChipClick","innerHTML","NewWorkflowPaper","hover","setHover","innerColor","setupPaperStyle","AddCircle","getWorkflowAppgroup","appsFound","parsedAction","WorkflowPaper","setOpen","anchorEl","setAnchorEl","parsedName","appGroup","getWorkflowMeta","workflowMenuButtons","Menu","keepMounted","ReactDOM","unstable_batchedUpdates","CloudUpload","copyWorkflow","FileCopy","newSubflows","parsedworkflows","foundWorkflow","orgName","orgId","orgs","foundOrg","org","imageStyle","creator_org","selectedCategory","oldcolor","styl","arrow","minHeigth","AvatarGroup","max","BubbleChart","Restore","MoreVert","WorkflowListView","workflowData","columns","field","headerName","sortable","renderCell","params","record","imagesize","disableClickEventBubbling","DataGrid","className","pageSize","checkboxSelection","autoHeight","density","components","Toolbar","GridToolbar","viewSize","workflowViewStyle","workflowButtons","GridOn","file","allWorkflows","i","exportAllWorkflows","WorkflowView","workflowDelay","_","returnData","Badge","badgeContent","imgSize","field_3","importWorkflowsFromUrl","workflowDownloadModalOpen","percentDone","GettingStartedItem","setClicked","doneIcon","CheckCircle","RadioButtonUnchecked","gettingStartedDrawer","Drawer","anchor","resize","ArrowRight","LinearProgress","videoView","frameborder","allow","allowfullscreen","loadedCheck","innerWidth","ArrowLeft","GettingStarted","textType","html","tutorial","ele","focus","borderWidth","tutorialFound","foundTutorial","tmpworkflow","published_id","username","Check","shape","liquidFilters","mathFilters","pythonFilters","CodeEditor","fieldCount","actionlist","setFieldCount","changeActionParameterCodeMirror","expansionModalOpen","setExpansionModalOpen","codedata","setcodedata","isFileEditor","runUpdateText","localcodedata","setlocalcodedata","expOutput","setExpOutput","linewrap","codeTheme","setEditorPopupOpen","setCurrentCharacter","setCurrentLine","setCurrentLocation","setCurrentVariable","anchorEl2","setAnchorEl2","anchorEl3","setAnchorEl3","setMainVariables","availableVariables","setAvailableVariables","menuPosition","setMenuPosition","setShowAutocomplete","executionResult","setExecutionResult","executing","setExecuting","liquidOpen","Boolean","mathOpen","pythonOpen","allVariables","tmpVariables","parsedPaths","fullpath","fixVariable","inputvariable","itemsplit","tmpitem","handleItemClick","toComplete","endsWith","handleClick","Extension","autoFormat","MenuListProps","pageY","pageX","anchorReference","anchorPosition","handleExecArgumentHover","inside","exec_text_field","coverColor","menuPosition1","parentMenuOpen","pathdata","Circle","indentation_count","match","namesplit","newname","SquareFoot","marginleft","onCursorActivity","getCursor","ch","line","loc","code_line","dollar_occurences","dollar_occurences_len","variable_ranges","popup","variable_occurences","occ","temp_arr","occ_len","occ1","Infinity","code_lines","current_code_line","variable_occurence","new_occurences","dollar_occurence","dollar_occurence_len","fixedVariable","markText","highlight_variables","getValue","valuefound","j","shouldbreak","k","new_input","tmpValidation","expectedOutput","prevInput","options","styleSelectedText","keyMap","lineWrapping","actiondata","validate","executeSingleAction","minheight","collapsed","enableClipboard","copy","displayDataTypes","onSelect","whiteSpace","notchedOutline","root","inputRoot","openApiFieldDesc","ParsedAction","setAction","appActionArguments","setSelectedResult","setSelectedTrigger","setSelectedEdge","setCurrentView","setCodeModalOpen","setVariablesModalOpen","selectedNameChange","rightsidebarStyle","showEnvironment","selectedActionEnvironment","environments","setNewSelectedAction","appApiViewStyle","setSelectedActionEnvironment","requiresAuthentication","hideExtraTypes","scrollConfig","setScrollConfig","actionDelayChange","getParents","setLastSaved","lastSaved","setShowVideo","hideBody","setHideBody","activateHidingBodyButton","setActivateHidingBodyButton","hiddenDescription","setHiddenDescription","paramcheck","AppActionArguments","selectedActionParameters","setSelectedActionParameters","selectedVariableParameter","setSelectedVariableParameter","setActionlist","jsonList","setJsonList","showDropdown","setShowDropdown","showDropdownNumber","setShowDropdownNumber","showAutocomplete","highlight","parents","exampledata","results","foundResult","itemlabelComplete","actionvalue","calculateHelpertext","input_data","looperText","foundSlice","changeActionParameter","count","toReplace","subparamindex","curstring","actionItem","autocompleted","parsedvalue","splitparsed","returnHelperText","authWritten","template","matching_actions","Autocomplete","autoHighlight","ListboxProps","getOptionLabel","option","newValue","renderOption","useIcon","renderInput","inputProps","prefixes","auth_not_required","fileFound","openApiHelperText","hideBodyButton","hideBodyButtonValue","tabIndex","currentItem","field_active","specKey","skip","innerkey","action_field","skip_multicheck","clickedFieldId","shufflecode","ShuffleCodeEditor","baseHelperText","datafield","orientation","tmpheaders","splitdata","foundnewline","allValues","splitvalue","splitKeys","findHeaders","oldkey","oldval","tmpsplit","valsplit","add_empty","newarr","newval","namespaces","parsedoptions","split_data","viewed_data","ActionlistWrapper","addClass","removeClass","handleActionHover","actionId","baseIndent","tooltipDescription","buttonTitle","hasAutocomplete","labelId","iconStyle","baselabel","oldstartnode","foundname","HelpOutline","parsedapp","foundAction","foundParam","parsedBaseLabel","conditions","condition","sourceparam","destinationparam","cnt","previous","extralength","execution_delay","Name","env","a","archived","execution_variable","filterOptions","lowercaseValue","inputValue","sortByKey","newActiondescription","extraDescription","extraUrl","descSplit","urlsplit","array","sort","b","reverse","removeParam","sourceURL","rtn","params_arr","queryString","undoRedo","cxtmenu","splitter","AngularWorkflow","defaultprops","useParams","green","yellow","to_be_copied","cytoscapestyle","cystyle","currentView","triggerAuthentication","setTriggerAuthentication","triggerFolders","setTriggerFolders","setShowEnvironment","editWorkflowDetails","setEditWorkflowDetails","setUserSettings","subworkflow","setSubworkflow","subworkflowStartnode","setSubworkflowStartnode","leftViewOpen","setLeftViewOpen","leftBarSize","setLeftBarSize","creatorProfile","setCreatorProfile","setFiles","setAppGroup","triggerGroup","setTriggerGroup","executionText","setExecutionText","executionRequestStarted","setExecutionRequestStarted","history","setHistory","historyIndex","setHistoryIndex","variableInfo","setVariableInfo","variablesModalOpen","executionVariablesModalOpen","setExecutionVariablesModalOpen","conditionsModalOpen","setConditionsModalOpen","authLoaded","setAuthLoaded","localFirstrequest","setLocalFirstrequest","setRequiresAuthentication","rightSideBarOpen","setRightSideBarOpen","showSkippedActions","setShowSkippedActions","lastExecution","setLastExecution","curpath","savingState","setSavingState","selectedResult","codeModalOpen","variableAnchorEl","setVariableAnchorEl","sourceValue","setSourceValue","destinationValue","setDestinationValue","conditionValue","setConditionValue","selectedComment","setSelectedComment","selectedTrigger","selectedTriggerIndex","setSelectedTriggerIndex","selectedEdge","selectedEdgeIndex","setSelectedEdgeIndex","visited","setVisited","prioritizedApps","setPrioritizedApps","setEnvironments","established","setEstablished","setupSent","setSetupSent","graphSetup","setGraphSetup","executionRequest","setExecutionRequest","executionRunning","setExecutionRunning","executionModalOpen","setExecutionModalOpen","executionModalView","setExecutionModalView","executionData","setExecutionData","appsLoaded","setAppsLoaded","showVideo","editWorkflowModalOpen","setEditWorkflowModalOpen","userediting","setUserediting","setWorkflowExecutions","defaultEnvironmentIndex","setDefaultEnvironmentIndex","cloudSyncEnabled","cloud_sync","appBarSize","triggerEnvironments","setSize","useLayoutEffect","updateSize","innerHeight","useWindowSize","bodyWidth","bodyHeight","cytoscapeWidth","setElements","fetchUpdates","trigger_index","baseSubflow","sub","getSettings","apikey","execution_id","newkeys","URLSearchParams","get","execution","authorization","cur_execution","handleUpdateResults","abortExecution","currentnode","outgoingEdges","outgoers","incomingEdges","incomers","targetnode","curelements","sendStreamRequest","curworkflow","executionArgument","startNode","useworkflow","cyelements","newActions","newTriggers","newBranches","newVBranches","newComments","parsedElement","decorator","curworkflowAction","newparams","cyelement","elementid","thisitem","curworkflowTrigger","canConnect","curworkflowComment","parsedHeight","parsedWidth","user_editing","visual_branches","cyImageData","png","output","new_id","executeWorkflow","hasSaved","firstnode","isStartNode","monitorUpdates","internalIds","reset","newauth","defined","removeListener","appUpdates","tmpAuth","latest","newfields","filterkey","edited","pretend_apps","tmpFiltered","getFiles","getWorkflow","sourcenode","rerun","getEnvironments","nodefound","target_id","_id","source_workflow","insertedNodes","concat","hasErrors","has_errors","onNodeAdded","onEdgeAdded","destinationId","curaction","styledElements","originalLocation","onNodeDragStop","nodedata","connected","connectedEdges","destinationnode","edgeCurve","calculateEdgeCurve","currentedge","distance","weight","curElement","original_border","paramname","idnumber","idsplit","GetExampleResult","foundresult","GetParamMatch","allNodes","currentNode","attachedTo","isDescriptor","iconInfo","svgpin_Url","offset","decoratorNode","locked","imageColor","unselectify","onNodeDrag","buttonType","parentNode","onMouseUpdate","elementMouseIsOver","elementFromPoint","newBorder","useBeforeunload","handleKeyDown","handlePaste","newAppAuth","isButton","removeNode","newNodeData","sourcebranches","foundbranch","destinationbranches","newbranch","curapp","requiresAuth","findAuthId","tmpapp","envs","refresh","selectedsynonyms","email","toreturn","selectedkey","subitem","RunAutocompleter","dstdata","parentlabel","readded","alledges","targetedge","eventTarget","newEdgeUuid","edgeToBeAdded","newsource","newdst","id_","fillstyle","newparameters","newparam","keyCode","ctrlKey","shiftKey","localName","cydata","$","originalEvent","clipboardData","getData","parsedjson","Type","showEnvCnt","default","buttonColor","buttonBackgroundColor","addCopyButton","px","py","circleId","newNodeId","isSuggestion","addDeleteButton","addStartnodeButton","parsedStyle","typeIds","idkey","sourcenodePosition","destinationnodePosition","xParsed","yParsed","costheta","sqrt","alpha","nodeId","selectedNode","triggerindex","stopSchedule","deleteWebhook","stopMailSub","decoratorNodes","comment","visualedges","sourcecheck","destcheck","setupGraph","gridGuide","gridSpacing","guidelinesStyle","strokeStyle","geometricGuidelineRange","range","minDistRange","distGuidelineOffset","horizontalDistColor","verticalDistColor","initPosAlignmentColor","lineDash","horizontalDistLine","verticalDistLine","initPosAlignmentLine","onUnselect","onNodeRemoved","curnode","newdata","onEdgeRemoved","onEdgeHover","removeStyle","onEdgeHoverOut","valu","animation","zoom","center","eles","play","promise","onCtxTap","mappedStartnode","frequency","appViewStyle","paperVariableStyle","VariablesView","menuClick","variableScrollStyle","variableIndex","handleSetTab","HandleLeftView","thisview","AppView","allApps","extraApps","TriggersView","tabStyle","Tabs","indicatorColor","Tab","direction","Schedule","long_description","appScrollStyle","onDrag","handleTriggerDrag","onStop","handleDragStop","parsedApp","cycontainer","offsetLeft","offsetWidth","offsetTop","offsetHeight","triggerLabel","getNextActionName","newposition","nodeToBeAdded","_id_","newAppData","apply","innerapp","visibleApps","setVisibleApps","ParsedAppPaper","newAppStyle","pixelSize","actionLabel","parsedEnvironments","run_magic_output","categories","handleAppDrag","userDrag","userSelect","appsearchValue","CustomAppHits","positionInfo","activeElement","getBoundingClientRect","baseImage","LibraryBooks","Folder","hit","innerlistitemStyle","filename","secondaryText","avatar","__queryID","onKeyPress","blur","newApps","searchvalue","runSearch","extraMessage","Index","appName","highest","allitems","number","parsedNumber","selectedTriggerChange","allkeys","handled","iterations","setTriggerCronWrapper","setTriggerOptionsWrapper","splitItems","AppConditionHandler","tmpdata","setMultiline","destAction","changeActionVariable","menuItemStyle","conditionsModal","setData","curedgeindex","EdgeSidebar","ConditionHandler","conditionIndex","newEdge","newUuid","duplicateCondition","injectedData","conditionId","EmailSidebar","setGmailFolders","displayName","setOutlookFolders","gmailButton","startnode","outlookButton","triggerInfo","sx","native","l","fixedValue","setTriggerFolderWrapperMulti","folder","folderItem","childFolderCount","argumentView","drift","api","startInteraction","interactionId","startMailSub","SubflowSidebar","VpnKey","FormatListNumbered","newvalue","getOptionSelected","handleWorkflowSelectionUpdate","branchId","foundIndex","currentEdge","cybranch","handleSubflowStartnodeSelection","isParent","parent","CommentSidebar","backgroundcolor","backgroundimage","WebhookSidebar","newUrl","trigger_header_auth","tmpvalue","newurl","urlpath","origin","ContentCopy","requesttype","folders","splitItem","curfolder","hookname","customRespParam","custom_response","UserinputSidebar","FormGroup","ScheduleSidebar","cytoscapeViewWidths","bottomBarStyle","topBarStyle","TopCytoscapeBar","Polymer","WorkflowMenu","newAnchor","showShuffleMenu","setShowShuffleMenu","Switch","skip_notifications","exit_on_error","start_from_top","BottomCytoscapeBar","boxSize","executionButton","Pause","searchParams","Save","AspectRatio","currentitem","handleHistoryUndo","Undo","DirectionsRun","addCommentNode","AddComment","RightSideBar","defaultReturn","iOS","test","userAgent","SwipeableDrawer","disableBackdropTransition","disableDiscovery","disableSwipeToOpen","ModalProps","Fade","leftView","github_avatar","github_username","frameBorder","webkitallowfullscreen","mozallowFullscreen","allowFullScreen","public_username","KeyboardArrowRight","executionPaperStyle","getExecutionSourceImage","execution_parent","handleReactJsonClipboard","elementName","namespace","stringified","HandleJsonCopy","base","base_node_name","nonskippedResults","newSkipped","executionDelay","executionModal","BackdropProps","statusColor","resultsLength","started_at","toLocaleString","calculatedResult","ArrowBack","completed_at","parsedExecutionArgument","imgsize","imgSrc","actionimg","parsedImage","imgStyle","similarActionsView","similar_actions","matching_executions","hasOwnProperty","similarity","parsed_url","Preview","sub_action","AppResultVariable","showVariable","codePopoutModal","executionIndex","Visibility","newView","timeout","wheelSensitivity","autounselectify","ac","oldaction","newSelectedAction","fileid_found","newParamIndex","paramdata","foundnode","foundActionIndex","editWorkflowModal","ExecutionVariableModal","newVariableName","setNewVariableName","VariablesModal","newVariableDescription","setNewVariableDescription","newVariableValue","setNewVariableValue","escapeHtml","renderers","heading","element","level","rightSideActionView","selectedField","scrollTop","tmpExec","SearchField","serverside","searchOpen","setSearchOpen","oldPath","setOldPath","Card","parsedUrl","queryParameters","positions","__position","CustomWorkflowHits","action_references","itemAlign","CustomDocHits","extraHash","url_hash","Configure","clickAnalytics","hoverColor","hoverOutColor","Header","setNotifications","notifications","removeCookie","homePage","cookies","HomeHoverColor","setHomeHoverColor","SoarHoverColor","setSoarHoverColor","LoginHoverColor","setLoginHoverColor","DocsHoverColor","setDocsHoverColor","HelpHoverColor","setHelpHoverColor","anchorElAvatar","setAnchorElAvatar","hrefStyle","handleClose","handleHomeHover","handleHelpHover","handleHelpHoverOut","handleSoarHover","handleSoarHoverOut","handleHomeHoverOut","NotificationItem","reference_url","read","alert_id","newNotifications","notificationMenu","Notifications","avatarMenu","Analytics","Lightbulb","MeetingRoom","loginTextBrowser","flexDirect","chat_disabled","handleClickChangeOrg","skipOrg","child_orgs","childorg","newindex","fixed","parsedTitle","loginTextMobile","Home","bodyDivStyle","actionListStyle","boxStyle","dividerStyle","appIconStyle","AppCreator","actionNonBodyRequest","actionBodyRequest","apikeySelection","contact","setContact","setFile","fileBase64","setFileBase64","isAppLoaded","setIsAppLoaded","updater","setUpdater","baseUrl","setBaseUrl","actionsModalOpen","setActionsModalOpen","setAuthenticationRequired","setAuthenticationOption","newWorkflowCategories","setNewWorkflowCategories","parameterName","setParameterName","parameterLocation","setParameterLocation","refreshUrl","setRefreshUrl","oauth2Scopes","setOauth2Scopes","projectCategories","setProjectCategories","setSelectedCategory","urlPath","setUrlPath","urlPathQueries","setUrlPathQueries","setBasedata","setActions","filteredActions","setFilteredActions","errorCode","setErrorCode","appBuilding","setAppBuilding","extraBodyFields","setExtraBodyFields","fileUploadEnabled","setFileUploadEnabled","fileDownloadEnabled","actionAmount","setActionAmount","defaultAuth","extraAuth","setExtraAuth","currentActionMethod","setCurrentActionMethod","file_field","queries","example_response","currentAction","setCurrentAction","handleEditApp","checkQuery","parseIncomingOpenapiData","urlParams","has","handleGetRef","parameter","paramsplit","tmpparam","str","parsedDecoded","decodeURIComponent","c","charCodeAt","newtags","securitySchemes","securityDefinitions","allowedfunctions","wordlist","all_categories","pathvalue","methodvalue","tmpname","summary","operationId","RegExp","pathsplit","$ref","tmpobject","prop","retRef","newbody","propkey","properties","parsedkey","schemas","subvalue","responses","selectedReturn","selectedExample","selectedComponent","newpath","newpathsplit","pathitem","curname","subpath","searchactions","servers","firstUrl","variables","foundVar","optionset","scheme","flowkey","flow","authorizationCode","authorizationUrl","tokenUrl","newscopes","scopekey","increaseAmount","bearerAuth","textDecoriation","basicAuth","extraKeys","Remove","jwtAuth","oauth2Auth","tmpstring","newtmp","loopQueries","requiredColor","flipRequired","deletePathQuery","loopActions","ErrorOutline","hasFile","findBodyParams","AttachFile","newAction","duplicateAction","deleteAction","setActionField","HandleIndividualChip","chipData","chipRequired","setChipRequired","SetExtraBodyField","bodyInfo","minRows","exampleResponse","getCurrentPaths","tmpWord","query","UrlPathParameters","tmpQueries","tmpquery","newActionModal","parsedurl","request","s","args","reduce","rewrite","words","out","header","arg","isURL","parseField","btoa","parseCurl","Method","decodeURI","parsedurlsplit","datasplit","actualkey","foundPath","actionIndex","addActionToView","errormessage","getActionErrors","tagView","actionView","foundActions","editHeaderImage","actualFile","fileObject","img","canvas","ctx","getContext","onload","drawImage","canvasUrl","toDataURL","editor","imageUploadError","setImageUploadError","openImageModal","setOpenImageModal","setScale","rotate","setRotatation","disableImageUpload","setDisableImageUpload","imageData","croppedData","imageInfo","crossOrigin","objectFit","alternateImg","AddPhotoAlternate","onCancelSaveAppIcon","imageUploadModalView","imgEditor","onImageChange","onLoadSuccess","AddAPhotoOutlined","ZoomInOutlined","ZoomOutOutlined","Loop","getImageScaledToCanvas","onSaveAppIcon","landingpageDataBrowser","splitBase","schemes","basePath","handledPaths","pathjoin","requestBody","format","assign","querynames","querykey","queryitem","methodname","headersSplit","headersplit","newparamName","bearerFormat","curauth","submitApp","creator_info","creator","creatorname","responsive","WelcomeForm","skipped","setSkipped","handleSetSearch","usecaseButtons","usecaseItems","setOrgName","setRole","orgType","setOrgType","finishedApps","setFinishedApps","thumbIndex","setThumbIndex","thumbAnimation","clickdiff","setclickdiff","urlSearchParams","foundTab","fromEntries","handleNext","orgname","company_type","priority","sendOrgUpdate","userId","sendUserUpdate","Set","prevActiveStep","handleBack","sizing","buttonStyle","startIcon","activeIndex","infiniteLoop","mouseTracking","controlsStrategy","autoPlay","infinite","animationType","disableButtonsControls","disableDotsControls","getStepContent","Welcome","newColor","mini","showWelcome","setShowWelcome","orgupdate","paperObject","actionObject","Stepper","stepProps","completed","Step","StepLabel","WelcomeForm2","CardActionArea","UsecaseListComponent","expandedIndex","setExpandedIndex","expandedItem","setExpandedItem","setInputUsecase","setEditing","setVideo","selectedWorkflows","setSelectedWorkflows","mitreTags","setMitreTags","extra_buttons","itemBorder","fixedName","escape","scrollTo","behavior","getUsecase","mitre","filtered","CheckBoxOutlineBlank","checkedIcon","CheckBox","baseTypeInfo","lineHeight","DoneAll","TreeChart","margins","series","colorScheme","wrap","rect","animated","RadialChart","axis","interpolation","colorInput","isRadial","onValueEnter","followCursor","modifiers","Dashboard","dayAmount","stats","setStats","setChangeme","statsRan","setStatsRan","setKeys","treeKeys","setTreeKeys","selectedUsecaseCategory","setSelectedUsecaseCategory","foundQuery","foundQuery2","queryName","foundItem","checkSelectedParams","allCategories","treeCategories","fetchdata","stats_id","runUpdate","newDayGraphLabels","newDayGraphData","enddate","setDate","setHours","startdate","endtime","starttime","autoUpdate","total","LineChartWrapper","marginBotton","symbols","show","metadata","widgetData","setWidgetData","getWidget","dashboard","widget","foundWidget","AdminAccount","setUsername","password","setPassword","loginLoading","setLoginLoading","loginInfo","setLoginInfo","onSubmit","countries","phone","suggested","HandlePayment","OrgHeader","selectedOrganization","setSelectedOrganization","defaultBranch","orgDescription","setOrgDescription","defaults","app_download_repo","appDownloadUrl","setAppDownloadUrl","app_download_branch","appDownloadBranch","setAppDownloadBranch","workflow_download_repo","workflowDownloadUrl","setWorkflowDownloadUrl","workflow_download_branch","workflowDownloadBranch","setWorkflowDownloadBranch","sso_config","sso_entrypoint","ssoEntrypoint","setSsoEntrypoint","sso_certificate","ssoCertificate","setSsoCertificate","notification_workflow","notificationWorkflow","setNotificationWorkflow","documentation_reference","documentationReference","setDocumentationReference","openidClientId","setOpenidClientId","openidClientSecret","setOpenidClientSecret","openid_authorization","openidAuthorization","setOpenidAuthorization","openid_token","openidToken","setOpenidToken","setExpanded","orgSaveButton","handleEditOrg","textalign","manager_orgs","Admin","orgRequest","setOrgRequest","modalUser","setModalUser","cloudSyncModalOpen","setCloudSyncModalOpen","cloudSyncApikey","setCloudSyncApikey","loading","setLoading","selectedDealModalOpen","setSelectedDealModalOpen","setOrganizationFeatures","curTab","setCurTab","users","setUsers","orgSyncResponse","setOrgSyncResponse","userSettings","matchingOrganizations","setMatchingOrganizations","setAuthentication","schedules","setSchedules","selectedNamespace","setSelectedNamespace","fileNamespaces","setFileNamespaces","selectedUser","setSelectedUser","newUsername","setNewUsername","newPassword","setNewPassword","selectedUserModalOpen","setSelectedUserModalOpen","setSelectedAuthentication","selectedAuthenticationModalOpen","setSelectedAuthenticationModalOpen","authenticationFields","setAuthenticationFields","showArchived","setShowArchived","image2FA","setImage2FA","value2FA","setValue2FA","secret2FA","setSecret2FA","show2faSetup","setShow2faSetup","dealName","setDealName","dealAddress","setDealAddress","dealType","setDealType","dealCountry","setDealCountry","dealValue","setDealValue","dealerror","setDealerror","dealList","setDealList","fileContent","setFileContent","openEditor","setOpenEditor","renderTextBox","setRenderTextBox","openFileId","setOpenFileId","allowedFileTypes","enableCloudSync","organization","disableSync","disable","getOrgs","handleGetOrg","handleGetDeals","readon","sync_features","partner_info","reseller","features","sync","inactive","handleCreateFile","file_id","handleFileUpload","getSchedules","getUsers","views","setConfig","changeModalData","setUser","user_id","editAuthenticationModal","textfield","saveAuthentication","userOrgEdit","m","OutlinedInput","addDealModal","Box","mr","flexShrink","srcSet","submitDeal","editUserModal","newpassword","onPasswordChange","deleteUser","user","generateApikey","run2FASetup","mfa_info","maxLength","handleVerify2FA","GridItem","primaryIcon","secondaryIcon","syncList","Business","cloudSyncModal","reseller_org","address","country","organizationView","cloud_sync_active","sync_config","interval","griditem","data_collection","deal","discount","created","toISOString","subscriptions","recurrence","subscription_id","cancelSubscriptions","reference","cancellationdate","stripeKey","Username","inviteUser","Password","submitUser","currentOrgId","createSubOrg","submitEnvironment","usersView","login_type","subfound","uploadFiles","filedata","FormData","append","filesView","isDisabledButton","filesize","created_at","md5_sum","respdata","responseData","readFileData","downloadFile","deleteFile","schedulesView","schedule","seconds","argument","deleteSchedule","appCategoryView","authenticationView","workflow_count","updateAppAuthentication","editAuthenticationConfig","SelectAll","deleteAuthentication","environmentView","running_ip","commandData","newEnv","setDefaultEnvironment","deleteEnvironment","abortEnvironmentWorkflows","organizationsTab","isSelected","hybridTab","textColor","AccessibilityNew","Lock","Eco","Body","hrefStyle2","innerHrefStyle","Docs","selectedDoc","serverMobile","mobile","setMobile","setList","setListLoaded","read_time","selectedMeta","setSelectedMeta","tocLines","setTocLines","SidebarPaperStyle","fetchDocs","docId","meta","innerTocLines","parsedline","hash","getElementsByTagName","lenth","scrollIntoView","parseElementScroll","markdownStyle","OuterLink","Img","CodeHandler","Heading","extraInfo","vAlign","contributors","CustomButton","headerStyle","mainpageInfo","postDataBrowser","listStyle","itemMatching","postDataMobile","curView","setCurView","selectedItems","setSelectedItems","viewdata1","subitems","subtitle","viewitem","cardContentStyle","view1","setSelected","baseStyle","CardContent","HandleSelection","view2","baseView","SetAuthentication","setFinished","setResponse","failed","setFailed","session_state","externalData","handleExternal","foundScope","reference_workflow","errorDesc","maringTop","AppGrid","formMail","setFormMail","message","setMessage","formMessage","setFormMessage","insights","character","appUrl","CloudQueue","Code","errorMessage","submitContact","itemSize","backgroundImage","alternativeView","WorkflowPaperNew","CreatorGrid","creatorUrl","verified","VerifiedUser","specialized_apps","DocsGrid","Search","hidemargins","extraQ","surfacColor","EmojiObjects","WorkflowGrid","LandingPage","GridLayout","listitems","secondaryColor","secondaryItemList","primaryText","setImage","backgroundSize","backgroundRepeat","CardMedia","landingpageDataMobile","landingSite","LoginDialog","setIsLoggedIn","setCookie","register","checkLogin","loginViewLoading","setLoginViewLoading","ssoUrl","setSSOUrl","MFAField","setMFAField","MFAValue","setMFAValue","checkAdmin","sso_url","formtitle","baseurl","ssoBtn","Settings","setUserData","firstname","setFirstname","lastname","setLastname","currentPassword","setCurrentPassword","newPassword2","setNewPassword2","loadedValidationWorkflows","selfOwnedWorkflows","passwordFormMessage","setPasswordFormMessage","checkOwner","currentOwner","eth_info","account","top_ownerships","ParsedWorkflowView","innerPaperStyle","collection","runFlex","parsed_balance","landingpageData","currentpassword","newpassword2","handleGithubConnection","toFixed","KeepAlive","onChunkedResponseComplete","onChunkedResponseError","err","processChunkedResponse","getReader","decoder","TextDecoder","appendChunks","chunk","decode","Uint8Array","stream","readChunk","getWorkflowStream","Framework","frameworkLoaded","setFrameworkLoaded","ScrollToTop","getUserNotifications","setCurpath","useLocation","scroll","alertStyle","AlertTemplate","useStyles1","formControl","selectEmpty","table","bullet","transform","pos","createData","calories","fat","carbs","protein","DashboardPage","classes1","setAge","Container","xl","gutterBottom","md","TableContainer","Table","TableHead","TableRow","TableCell","align","TableBody","port","App","useCookies","dataset","setDataset","setIsLoaded","cors","userInfo","BOTTOM_LEFT","includedData","exact","render","attributes","eventHandlers","function","LoginPage","SettingsPage","AdminSetup","FrameworkWrapper","Introduction","SetAuthenticationSSO","CookiesProvider","hostname","serviceWorker","ready","registration","unregister"],"mappings":";+GAAA,IAAIA,EAAM,CACT,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,mBAAoB,CACnB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,mBAAoB,CACnB,IACA,GAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iCAAkC,CACjC,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,eAAgB,CACf,IACA,GAED,qBAAsB,CACrB,IACA,IAED,WAAY,CACX,IACA,IAED,iBAAkB,CACjB,IACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,eAAgB,CACf,IACA,IAED,eAAgB,CACf,IACA,EACA,IAED,uBAAwB,CACvB,IACA,IAED,aAAc,CACb,IACA,IAED,qBAAsB,CACrB,IACA,IAED,iBAAkB,CACjB,IACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,IAED,yCAA0C,CACzC,IACA,IAED,uBAAwB,CACvB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,iCAAkC,CACjC,IACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,GAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,EACA,IAED,mBAAoB,CACnB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,eAAgB,CACf,IACA,IAED,yBAA0B,CACzB,IACA,GAED,+BAAgC,CAC/B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,YAAa,CACZ,KAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,aAAc,CACb,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,EACA,IAED,eAAgB,CACf,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,GAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,WAAY,CACX,IACA,IAED,WAAY,CACX,IACA,IAED,eAAgB,CACf,IACA,IAED,eAAgB,CACf,IACA,IAED,iBAAkB,CACjB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,IAED,iBAAkB,CACjB,IACA,EACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,eAAgB,CACf,IACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,IAED,+BAAgC,CAC/B,IACA,KAED,eAAgB,CACf,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,GAED,mBAAoB,CACnB,IACA,KAED,eAAgB,CACf,IACA,KAED,uBAAwB,CACvB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,IAED,mBAAoB,CACnB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,IAED,aAAc,CACb,IACA,KAED,yBAA0B,CACzB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,eAAgB,CACf,IACA,EACA,EACA,EACA,EACA,GAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,KAED,eAAgB,CACf,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,yCAA0C,CACzC,IACA,IAED,iBAAkB,CACjB,IACA,KAED,eAAgB,CACf,IACA,MAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,CACP,IAGD,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAON,QAAQQ,IAAIF,EAAIG,MAAM,GAAGd,IAAIG,EAAoBK,IAAID,MAAK,WAChE,OAAOJ,EAAoBY,EAAEH,EAAI,EAClC,GACD,CACAX,EAAoBe,KAAO,WAC1B,OAAOC,OAAOD,KAAKhB,EACpB,EACAC,EAAoBW,GAAK,IACzBM,EAAOC,QAAUlB,C,+LCxaFmB,EA/GF,CAAC,CACXC,SAAU,OACVC,IAAK,CACJ,MAAS,cACT,cAAe,SACf,cAAe,4DACf,cAAe,UACf,YAAa,kBACb,aAAc,SACd,eAAgB,MAChB,eAAgB,UAChB,MAAS,UACT,gBAAiB,MACjB,gBAAiB,sBACjB,mBAAoB,UACpB,mBAAoB,oBACpB,wBAAyB,iBACzB,wBAAyB,iBACzB,kBAAmB,OACnB,mBAAoB,cACpB,oBAAqB,cACrB,MAAS,iBACT,OAAU,oBAGZ,CACCD,SAAU,OACVC,IAAK,CACJ,qBAAsB,WACtB,qBAAsB,UACtB,cAAe,SACf,MAAS,cACT,YAAa,OACb,iBAAkB,QAClB,MAAS,wBACT,aAAc,SACd,YAAa,kBACb,+BAAgC,CAAC,MAAO,OACxC,4BAA6B,CAAC,UAAW,WACzC,MAAS,MACT,mBAAoB,MACpB,YAAa,SAGf,CACCD,SAAS,kBACTC,IAAK,CACJ,OAAU,OACV,MAAS,OACT,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,QAGlB,CACCD,SAAS,eACTC,IAAK,CACJ,qBAAsB,UACtB,aAAc,QACd,+BAAgC,CAAC,MAAO,OACxC,4BAA6B,CAAC,UAAW,aAG3C,CACCD,SAAS,qBACTC,IAAK,CACJ,mBAAoB,2BACpB,OAAU,cACV,MAAS,eACT,mBAAoB,cACpB,oBAAqB,eACrB,wBAAyB,MACzB,wBAAyB,MACzB,eAAgB,QAGlB,CACCD,SAAS,mBACTC,IAAK,CACJ,OAAU,MACV,MAAS,OACT,wBAAyB,MACzB,wBAAyB,MACzB,eAAgB,MAChB,YAAa,QAGf,CACCD,SAAS,mBACTC,IAAK,CACJ,YAAa,oBAGf,CACCD,SAAU,8BACVE,MAAO,CACN,mBAAoB,UACpB,aAAc,UACd,qBAAsB,UACtB,qBAAsB,YAGvB,CACAF,SAAU,gBACVC,IAAK,CACJ,eAAgB,UAChB,eAAgB,S,mBCLLE,EAlGDC,YAAe,CAC3BC,QAAS,CACPC,QAAS,CACPC,KAAM,WAERC,UAAW,CACTD,KAAM,WAERE,KAAM,CACJD,UAAW,yBAEbE,KAAM,OACNC,aAAc,UACdC,WAAY,UACZC,cAAe,UACfC,aAAc,EACdC,cAAe,kCACjBC,UAAW,SACXC,eAAgB,CACfH,aAAc,EACdI,OAAQ,kCACRC,QAAS,GAERC,eAAgB,CACdC,gBAAiB,UACjBP,aAAc,GAEhBQ,oBAAqB,CACnBC,MAAO,QACPC,UAAW,GACXC,WAAY,MACZC,SAAU,MACVC,SAAU,MACVb,aAAc,GAEhBc,QAAS,CACPP,gBAAiB,QACjBE,MAAO,sBACPM,UAAW,EACXF,SAAU,IAEZG,aACE,s7qBAEJC,WAAY,CACVC,WAAW,6CACXC,iBAAiB,EACjBC,GAAI,CACFP,SAAU,IAEZQ,GAAI,CACFR,SAAU,GACVS,WAAY,KAEdC,GAAI,CACFV,SAAU,IAEZW,MAAO,CACLX,SAAU,KAGdY,UAAW,CACTC,QAAS,CACPC,KAAM,CACJpB,gBAAiB,YAGrBqB,eAAgB,CACd,UAAW,CACb,M,kJC1DEC,EAAeC,IAAc,aAAc,oCAsOlCC,EArOG,SAAAC,GACjB,IAAQC,EAAmKD,EAAnKC,QAAwDC,GAA2GF,EAA1JG,SAA0JH,EAAhJI,eAAgJJ,EAAhIK,SAAgIL,EAAtHM,UAAsHN,EAA3GE,UAAUK,EAAiGP,EAAjGO,eAAgBC,EAAiFR,EAAjFQ,kBAAmBC,EAA8DT,EAA9DS,cAA2BC,GAAmCV,EAA/CW,WAA+CX,EAAnCU,gBAAgBE,EAAmBZ,EAAnBY,SAEjJC,GAFoKb,EAATc,GAExH,mBAAzBC,OAAOC,SAASC,MAAsD,gBAAzBF,OAAOC,SAASC,MAExEC,OAAyBC,IAAZlB,GAAqC,OAAZA,EAAmB,GAAKA,EAC9DmB,OAAkBD,IAAbjB,GAAuC,OAAbA,EAAoB,GAAKA,EACxD7C,EAAQgE,cAGd,EAAgCC,IAAMC,SAAS,IAAG,mBAClD,GADe,KAAa,KACED,IAAMC,SAAS,KAAG,mBAChD,GADc,KAAY,KACYD,IAAMC,SAAS,KAAG,mBACxD,GADkB,KAAgB,KACID,IAAMC,SAAS,CAAC,IAAE,mBAAtC,KAAgB,KAMlCR,OAAOS,MAAQ,gDAEf,IA2LMC,OAA+BN,IAAnBT,EA1GL,SAAH,GAAkB,IAAZgB,EAAI,EAAJA,KACf,EAA8CH,oBAAU,GAAE,mBAAnDI,EAAe,KAAEC,EAAkB,KACtCC,EAAU,EAEd,OACC,cAACC,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAACgB,OAAQ,kCAAmC6D,UAAW,IAAKvD,UAAW,IAAKwD,UAAW,OAAQC,UAAW,UAAY,SACvJT,EAAK7F,KAAI,SAACoB,EAAMmF,GAChB,IAAMC,EAAa,CAClB9D,gBAAiB6D,IAAUT,EAAkB,wBAA0BtE,EAAME,QAAQO,WACrFW,MAAO2D,IAAUT,EAAkBtE,EAAME,QAAQO,WAAa,wBAC9DM,OAAQmC,EAAe+B,WAAarF,EAAKqF,SAAQ,kCAAuC,oBACxFC,UAAW,OACXlE,QAAS,GACTmE,OAAQ,UACRC,SAAU,WACVC,SAAU,SACVC,MAAO,OACPjE,UAAW,GACXuD,UAAW,IAGZ,GAAIJ,IAAY,GAAGT,EAAGF,EACrB,OAAO,KAGRW,GAAW,EACX,IAAIe,EAAa3F,EAAK4F,KAAKC,UAgB3B,OAFAF,GAAcA,EAAWG,OAAO,GAAGC,cAAcJ,EAAWK,UAAU,IAAIC,WAAW,IAAK,KAGzF,cAACC,EAAA,EAAK,CAAaC,UAAW,EAAGhG,MAAOiF,EAAYgB,YAAa,WAChEzB,EAAmBQ,EAQpB,EAAGkB,WAAY,WACd1B,GAAoB,EACrB,EAAG2B,QAAS,gBACepC,IAAtBX,GACHA,EAAkBvD,GAGf4D,GACH2C,IAAQC,MAAM,CACbC,SAAU,aACVC,OAAO,OAAD,OAASf,EAAU,YAAI3F,EAAKR,GAAE,sBACpCmH,MAAO,KAOR,IACCC,IAAG,OAAQ,CACVC,MAAOjE,EAAaiE,MACpBC,OAAQlE,EAAamE,YAAYC,QAAQ,uBAG1C,IAAMC,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,aACXC,UAAW,2BACXlC,MAAO,YACPmC,UAAW,CAACtH,EAAKqF,UACjB4B,UAAWA,EACXM,QAjBY,GAkBZC,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,KAKtH,CAFE,MAAOJ,GACRqI,QAAQC,IAAI,iCAAkCtI,EAC/C,CAEF,EAAE,SACD,sBAAKe,MAAO,CAACwH,QAAS,QAAQ,UAC7B,qBAAKC,IAAK5H,EAAK4F,KAAMiC,IAAK7H,EAAK8H,UAAW3H,MAAO,CAACuF,MAAO,OAAQ/D,SAAU,GAAIoG,SAAU,GAAItG,UAAW,GAAIuD,UAAW,GAAI2C,QAAS,WACpI,cAACK,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,EAAGxG,WAAY,IAAM,SAClEiE,QArDQR,EA0Dd,KAGH,EAEwD1B,EAClD0E,EAAkBC,aArJN,SAAH,GAAsB,EAAjBC,kBAAkD,IAA/BC,EAAM,EAANA,OAAuB,EAAfC,gBAQ9C,OAPAC,qBAAU,gBAEatE,IAAlBV,GAAiD,OAAlBA,GAClC8E,EAAO9E,EAET,GAAG,IAGD,sBAAMiF,YAAU,EAAC/B,OAAO,GAAGgC,KAAK,SAAQ,SACxC,cAACC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aAtDlC,EAsD8D2E,MAAO,QACtFmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,IAETC,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,KACbtI,KAAK,SACLa,MAAM,UACN0H,aAAc1F,EACd2F,YAAW,eAAU3F,EAAa,YAClChE,GAAG,gCACH4J,SAAU,SAAC5C,GACV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAMX,IA8GMC,EAAaC,YAAYjF,GAE/B,OACC,qBAAKrE,MAAO,CAACuF,MAAO,OAAQJ,UAAW,SAAUE,SAAU,WAAYsD,OAAQ,QAAS,SACvF,eAACY,EAAA,EAAa,CAAC9G,aAAcA,EAAc+G,UAAU,YAAW,UAM/D,qBAAKxJ,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,QAAU,SAC7C,cAACzB,EAAe,MAEjB,cAACqB,EAAU,CAACK,YAAa,QAI7B,E,kBChOeC,EAXQ,SAAC/G,GACtB,OACE,cAAC,IAAS,CACRgH,OAAO,0BACPC,OAAQ,mCAAmC,SAE3C,cAAC9D,EAAA,EAAK,eAAKnD,KAGjB,E,iaCZMkH,GAAgB,CACpB3I,gBAAiB,kBACjBH,OAAQ,mBACRJ,aAAc,MACd2E,MAAO,OACPoD,OAAQ,OACRtD,SAAU,WACVC,SAAU,SACVyE,OAAQ,IACRvC,QAAS,OACTwC,WAAY,SACZC,eAAgB,UAoEHC,GAjEE,SAAH,GAAqC,IAA/BC,EAAQ,EAARA,SAAUnK,EAAK,EAALA,MAAOoK,EAAM,EAANA,OAC7BC,EAAcC,iBAAO,MAC3B,EAAgCnG,oBAAS,GAAM,mBAAxCoG,EAAQ,KAAEC,EAAW,KAExBC,EAAc,EAEZC,EAAiB,SAACzL,GACtBA,EAAE0L,iBACF1L,EAAE2L,iBACJ,EAEMC,EAAkB,SAAC5L,GACvBA,EAAE0L,iBACF1L,EAAE2L,kBACFH,IACIxL,EAAE6L,aAAaC,OAAS9L,EAAE6L,aAAaC,MAAMC,OAAS,GACxDR,GAAY,EAChB,EAEMS,EAAkB,SAAChM,GACvBA,EAAE0L,iBACF1L,EAAE2L,kBAEkB,MADpBH,GACuBD,GAAY,EACrC,EAEMU,EAAa,SAACjM,GAClBA,EAAE0L,iBACF1L,EAAE2L,kBACFJ,GAAY,GACRvL,EAAE6L,aAAaK,OAASlM,EAAE6L,aAAaK,MAAMH,OAAS,IACxDZ,EAAOnL,GACPA,EAAE6L,aAAaM,YACfX,EAAc,EAElB,EAkBA,OAhBApC,qBAAU,WACR,GAAKgC,EAAYgB,QAOjB,OALAhB,EAAYgB,QAAQC,iBAAiB,WAAYZ,GACjDL,EAAYgB,QAAQC,iBAAiB,YAAaT,GAClDR,EAAYgB,QAAQC,iBAAiB,YAAaL,GAClDZ,EAAYgB,QAAQC,iBAAiB,OAAQJ,GAEtC,WACLb,EAAYgB,QAAQE,oBAAoB,WAAYb,GACpDL,EAAYgB,QAAQE,oBAAoB,YAAaV,GACrDR,EAAYgB,QAAQE,oBAAoB,YAAaN,GACrDZ,EAAYgB,QAAQE,oBAAoB,OAAQL,EAClD,CACF,GAAG,CAACb,IAGF,sBAAKmB,IAAKnB,EAAarK,MAAK,aAAIqF,SAAU,YAAerF,GAAQ,UAC9DuK,GACC,qBAAKvK,MAAO8J,GAAc,SACxB,cAAC,KAAU,CAACrI,SAAS,YAGxB0I,IAGP,EC7BM1J,GAAe,UACfC,GAAa,UAEb+K,IAAS,GACbtK,gBAAiB,UACjBwH,OAAQ,GACR+C,YAAa,EACbC,YAAa,EACbC,aAAc,GAAC,uBACP,IAAE,uBACF,WAAS,4BACJ,WAAS,sBACf,SAAO,GAcHC,GAAe,SAAfA,EAAgBC,EAAMC,GAIlC,QAAkBhI,IAAdgI,GAAyC,OAAdA,EAE9B,OADAzE,QAAQC,IAAI,YAAawE,EAAW,gBAC7BA,EAGR,GAAyB,kBAAdA,EAEV,OADAzE,QAAQC,IAAI,sCACLwE,EAGR,IAAIC,EAAWF,EAAKG,MAbH,KAkBjB,GAJIH,EAAKI,WAAW,MAAQF,EAAShB,OAAS,IAC7CgB,EAAWA,EAASzM,MAAM,IAGH,IAApByM,EAAShB,OAEZ,OADA1D,QAAQC,IAAI,gDACLwE,EAKR,GAAIC,EAAS,GAAGG,SAAS,KACxB,MAAkD,mBAA9CzM,OAAO0M,UAAUC,SAASC,KAAKP,GACT,IAArBA,EAAUf,OACN,GAIiB,IAApBgB,EAAShB,OACLe,EAAU,GAGVF,EADaG,EAASzM,MAAM,GAAIgN,KAAK,KACXR,EAAU,IAItC,GAKT,IADA,IACA,MAA2BrM,OAAO8M,QAAQT,GAAU,eAAE,CAAjD,0BAAOU,EAAG,KAAEtD,EAAK,KACfuD,EAASD,EAAI/G,UAAUiH,cAAc7G,WAAW,IAAK,KAC3D,GAAI2G,IAAQT,EAAS,IAAMU,IAAWV,EAAS,GAK9C,OAJQ,EAIgB,IAApBA,EAAShB,OACL7B,EAGA0C,EADaG,EAASzM,MAAM,GAAIgN,KAAK,KACXpD,EAKpC,CAEA,OAAO4C,CACR,EAIaa,GAAiB,SAAjBA,EAAkBb,EAAWc,GACxC,IAAMC,EAAW,IACbC,EAAe,GACnB,QAAkBhJ,IAAdgI,GAAyC,OAAdA,EAC7B,OAAOgB,EAGT,GAAyB,kBAAdhB,EACT,OAAOgB,EAGT,cAA2BrN,OAAO8M,QAAQT,GAAU,eAAE,CAAjD,0BAAOU,EAAG,KAAEtD,EAAK,KAEd6D,EAAQH,EAAQ7B,OAAS,EAAI8B,EAAW,GACxCG,EAAW,UAAMJ,EACpBtN,MAAM,EAAGsN,EAAQ7B,QACjBiB,MAAM,KACNM,KAAKO,IAAS,OAAGE,GAAK,OAAGP,GAG5B,IAAKS,MAAMT,IAAoB,KAAZI,EAAgB,CACjCE,EAAaI,KAAK,CAChB3M,KAAM,SACNiF,KAAM,OACN2H,aAAa,GAAD,OAAKP,EAAQ/G,WAAW,IAAK,QAS3CiH,EAAaI,KAAK,CAChB3M,KAAM,OACNiF,KAAK,GAAD,OAAKqH,EAAQ,QACjBM,aAAa,GAAD,OAAKP,EAAQ/G,WAAW,IAAK,KAAI,QAE/C,IAAMuH,EAAeT,EAAezD,EAAM,GAAD,OAAK0D,EAAO,OACrD,IAAK,IAAIS,KAAUD,EACjBN,EAAaI,KAAKE,EAAaC,IAGjC,OAAOP,CACT,CAGA,GAAqB,kBAAV5D,EACT,GAAIoE,MAAMC,QAAQrE,GAqBhB,IAAK,IAAImE,KAnBTP,EAAaI,KAAK,CAChB3M,KAAM,SACNiF,KAAMwH,EACNG,aAAa,GAAD,OAAKP,EAAO,YAAIJ,EAAI3G,WAAW,IAAK,QASlDiH,EAAaI,KAAK,CAChB3M,KAAM,OACNiF,KAAK,GAAD,OAAKwH,GAAW,OAAGH,EAAQ,QAC/BM,aAAa,GAAD,OAAKP,EAAO,YAAIJ,EAAI3G,WAAW,IAAK,KAAI,QAInCqD,EAAO,CACxB,GAAqB,kBAAVA,EAAoB,CAC7B,IAAMkE,EAAeT,EACnBzD,EAAMmE,GAAQ,GAAD,OACVT,EAAO,YAAIJ,EAAG,OAEnB,IAAK,IAAIa,KAAUD,EACjBN,EAAaI,KAAKE,EAAaC,GAEnC,CAIA,KACF,KAEK,CACLP,EAAaI,KAAK,CAChB3M,KAAM,SACNiF,KAAMwH,EACNG,aAAa,GAAD,OAAKP,EAAO,YAAIJ,EAAI3G,WAAW,IAAK,QAElD,IAAMuH,EAAeT,EAAezD,EAAM,GAAD,OAAK0D,EAAO,YAAIJ,IACzD,IAAK,IAAIa,KAAUD,EACjBN,EAAaI,KAAKE,EAAaC,GAEnC,MAEAP,EAAaI,KAAK,CAChB3M,KAAM,QACNiF,KAAMwH,EACNG,aAAa,GAAD,OAAKP,EAAO,YAAIJ,EAAI3G,WAAW,IAAK,MAChDqD,MAAOA,GAGb,CAEA,OAAO4D,CACT,EAmmEeU,GAjmEF,SAAC7K,GACZ,IAAQM,EAA8CN,EAA9CM,UAAWwK,EAAmC9K,EAAnC8K,WAAYC,EAAuB/K,EAAvB+K,SAAUnK,EAAaZ,EAAbY,SAGnCvD,EAAQgE,cAER2J,EAAQC,cACXC,EAAWC,cAEd,EAAsC7J,IAAMC,SAAS,CAAC,GAAE,mBAAjD6J,EAAW,KAAEC,EAAc,KAClC,EAAwC/J,IAAMC,UAAS,GAAK,mBAArD+J,EAAY,KAAEC,EAAe,KACpC,EAAwBjK,IAAMC,SAAS,IAAG,mBAAnCiK,EAAI,KAAEC,EAAO,KACpB,EAAwCnK,IAAMC,SAAS,IAAG,mBAAnDmK,EAAY,KAAEC,EAAe,KACpC,EAAoCrK,IAAMC,UAAS,GAAM,mBAAlDqK,EAAU,KAAEC,EAAa,KAChC,EAAkCvK,IAAMC,UAAS,GAAK,mBAA/CuK,EAAS,KAAEC,EAAY,KAC9B,EAAgDzK,IAAMC,UAAS,GAAM,mBAA9DyK,EAAgB,KACvB,GAD4C,KACA1K,IAAMC,SAAS,CAAC,IAAE,mBAAvD0K,EAAc,KAAEC,GAAiB,KACxC,GAA0C5K,IAAMC,UAAS,GAAM,qBAC/D,IADoB,MAAkB,MACMD,IAAMC,SAAS,KAAG,qBAAvD4K,GAAc,MAErB,IAFwC,MAEV7K,IAAMC,SAAS,KAAG,qBAAzC6K,GAAO,MAAEC,GAAU,MAC1B,GAAsC/K,IAAMC,SAAS,IAAG,qBAAjD+K,GAAW,MAAEC,GAAc,MAClC,GAA0CjL,IAAMC,SAAS,IAAG,qBAArDiL,GAAa,MAAEC,GAAgB,MACtC,GAAkDnL,IAAMC,UAAS,GAAM,qBAAhEmL,GAAiB,MAAEC,GAAoB,MAC9C,GAA8CrL,IAAMC,UAAS,GAAM,qBAA5DqL,GAAe,MAAEC,GAAkB,MAC1C,GAAwCvL,IAAMC,UAAS,GAAM,qBAAtDuL,GAAY,MAAEC,GAAe,MACpC,GAAgDzL,IAAMC,SAAS,IAAG,qBAClE,IADuB,MAAqB,MACJD,IAAMC,SAAS,KAAG,qBAAnDyL,GAAY,MAAEC,GAAe,MACpC,GAA4B3L,IAAMC,SAAS,IAAG,qBAAvC2L,GAAM,MAAEC,GAAS,MACxB,GAA4B7L,IAAMC,SAAS,IAAG,qBAAvC6L,GAAM,MAAEC,GAAS,MACxB,GAAkC/L,IAAMC,SAAS,IAAG,qBAA7C+L,GAAS,MAAEC,GAAY,MAC9B,GAAwDjM,IAAMC,SAAS,OAAM,qBAAtEiM,GAAoB,MAAEC,GAAuB,MACpD,GAA4CnM,IAAMC,SAAS,UAAS,qBAA7DmM,GAAc,MAAEC,GAAiB,MAExC,GAAoCrM,IAAMC,UAAS,GAAM,qBAAlDqM,GAAU,MAAEC,GAAa,MAC1BC,GAASxM,IAAMoG,OAAO,MAC5B,GAAkCpG,IAAMC,UAAS,GAAK,qBAA/CwM,GAAS,MACVlN,IADwB,MAEH,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,MAIZ+M,GAAY,IAElB,GAAwBC,YAAY,CAClCC,SAAU,IACVC,gBAAgB,EAChBC,SAAU,WACRC,IACF,IALW,GAALC,MAAW,GAAJC,KAQf9I,qBAAU,WACJ+F,EAAKpD,QAAU,GAAKkD,IACtBkD,SAAShN,MAAQ,kBAEZsJ,GAAcC,GAEhBG,EADDrK,GACU,mBAEA,UAIZ0K,GAAgB,GAChB8C,KAEJ,IAsBA,IAOMI,GAAgB,CACpB/P,UAAW,IACXuD,UAAW,IACX+C,SAAU,OACVpG,SAAU,MACV8P,aAAc,EACd1Q,aAAc,EACdS,MAAO,QACPF,gBAAiBV,GACjB2E,OAAQ,UACRoC,QAAS,QAGLyJ,GAAU,WACdM,MAAMrO,EAAY,eAAgB,CAChCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAUL,OATAhD,GAAa,GACW,MAApBgD,EAASC,QACXtK,QAAQC,IAAI,+BAOPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAML,IAAIC,EAAc,GACdC,EAAQ,GACRC,EAAU,GACd,IAAK,IAAIxF,KAAOqF,EAAc,CAC5B,IAAMI,EAAMJ,EAAarF,IACrByF,EAAIC,WAAeD,EAAIE,WAAaF,EAAIG,eAGvBtO,IAAnBmO,EAAII,YACJJ,EAAII,WAAWtH,OAAS,EAExBgH,EAAM7E,KAAK+E,GAEXD,EAAQ9E,KAAK+E,GAPbH,EAAY5E,KAAK+E,EASrB,CAOAH,EAAY5E,KAAI,MAAhB4E,EAAoBC,GACpBD,EAAY5E,KAAI,MAAhB4E,EAAoBE,GAEpB5D,EAAQ0D,GACR5B,GAAa,IAIb5B,EAAgBwD,GACZA,EAAY/G,OAAS,SACAjH,IAAnBiK,EAAY3O,IAAuC,OAAnB2O,EAAY3O,IAC9C4O,EAAe8D,EAAY,IAIA,OAA3BA,EAAY,GAAGQ,SACfR,EAAY,GAAGQ,QAAQvH,OAAS,EAEhC8D,GAAkBiD,EAAY,GAAGQ,QAAQ,IAEzCzD,GAAkB,CAAC,GAOzB,IACC0D,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,YAClBsC,GAAa,EACf,GACJ,EAEM+D,GAAc,SAAC3G,GACnB,IAAM1M,EAAK0M,EAAU1M,GAErBuO,EAAM+E,KAAK,iBACXpB,MAAMrO,EAAY,gBAAkB7D,EAAK,UAAW,CAClDmS,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,SACXjO,OAAOC,SAASgP,SAAW,SAGtBjB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,GAAKA,EAAae,QAEX,CACLvL,QAAQC,IAAIuK,GACZ,IAAMgB,EAAWC,KAAKjB,EAAakB,SACnC1L,QAAQC,IAAI,SAAUuL,GACtB,IAAI/G,EAAYkH,KAAKC,MAAMJ,GAC3BxL,QAAQC,IAAI,eAAgBwE,GAC5BA,EAAYkH,KAAKC,MAAMnH,EAAUoH,MAEjC,IAAMC,EAAW,CAAC,OACSrP,IAAvBgI,EAAiB,OACnBrM,OAAOD,KAAKsM,EAAiB,OAAGsH,SAAQ,SAAU5G,GAChD2G,EAAS3G,EAAIR,MAAM,KAAK,IAAMF,EAAUuH,MAAM7G,EAChD,IAGFV,EAAUuH,MAAQF,EAClB9L,QAAQC,IAAI,UAAWwE,GACvB,IAAItG,EAAOsG,EAAU4G,KAAKvO,MAE1BqB,GADAA,EAAOA,EAAK8N,QAAQ,KAAM,KAAM,IACpB5G,qBAELZ,EAAU1M,UACV0M,EAAUyH,QAEjB,IAAM3T,EAAO4T,KAAKC,UAAU3H,GACxB4H,EAAO,IAAIC,KAAK,CAAC/T,GAAO,CAC1BW,KAAM,6BAGJqT,EAAMC,IAAIC,gBAAgBJ,GAC1BK,EAAO5C,SAAS6C,cAAc,KAClCD,EAAKE,aAAa,OAAQL,GAC1BG,EAAKE,aAAa,WAAW,GAAD,OAAKzO,EAAI,UACrC,IAAIY,EAAQ+K,SAAS+C,YAAY,eACjC9N,EAAM+N,eACJ,SACA,GACA,EACAzQ,OACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,MAEFqQ,EAAKK,cAAchO,EAErB,MAtDEuH,EAAM6E,MAAM,0BAuDhB,IACCD,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,GACZ7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAGMiI,GAAW,SAAC1R,GAClB,IACM/C,EADU+C,EAARsP,IAGN,GAAkB,KAAdrS,EAAK4F,MAA2B,KAAZ5F,EAAKR,GAC3B,OAAO,KAGT,IAAIkV,EAAW,MACXvG,EAAY3O,KAAOQ,EAAKR,KAC1BkV,EAAW,OAGb,IAAIC,EAAW,SACX3U,EAAKsS,WACPqC,EAAW,UAGR3U,EAAKuS,WAAavS,EAAKwS,YAC1BmC,EAAW,UAGT3U,EAAKoS,UACPuC,EAAW,OAKb,IAAIC,OACmB1Q,IAArBlE,EAAK6U,aAAyD,IAA5B7U,EAAK6U,YAAY1J,OACjD,qBACEvD,IAAK5H,EAAKuE,MACVpE,MAAO,CACLY,aA5QW,EA6QX2E,MAAO,IACPoD,OAAQ,IACRxH,gBAAiBlB,EAAME,QAAQO,cAInC,qBACE+G,IAAK5H,EAAKuE,MACVsD,IAAK7H,EAAK6U,YACV1U,MAAO,CACLY,aAvRW,EAwRXY,SAAU,IACVoG,SAAU,IACV/C,UAAW,OACX2C,QAAS,QACTiC,OAAQ,UAEVkL,OAAQ,SAACtO,GACP,IAKJuO,EAAa/U,EAAK4F,KAEpBmP,OADiB7Q,IAAf6Q,EACW,aAEbA,EAAaA,EAAWjP,OAAO,GAAGC,cAAgBgP,EAAW/O,UAAU,IAC/CC,WAAW,IAAK,KAIrCjG,EAAKgV,QAKLhV,EAAKmS,WAISjO,IAAjBlE,EAAK0S,SAA0C,OAAjB1S,EAAK0S,UACtC1S,EAAK0S,QAAU,SAGDxO,IAATlE,QAAuCkE,IAAjBlE,EAAK0S,SAA0C,OAAjB1S,EAAK0S,SAAoB1S,EAAK0S,QAAQvH,OAI9F,IAAI8J,EAAcjV,EAAKiV,YAEnBA,EAAY9J,OADG,KAEjB8J,EAAcjV,EAAKiV,YAAYvV,MAAM,EAFpB,IAEqC,OAGxCM,EAAKkV,YACrB,OACE,eAAChP,EAAA,EAAK,CACJiP,QAAM,EAENhV,MAAOqR,GACPlL,QAAS,WACH6H,EAAY3O,KAAOQ,EAAKR,KAC1BQ,EAAK4F,KAAOmP,EACZ3G,EAAepO,QAGIkE,IAAjBlE,EAAK0S,SACY,OAAjB1S,EAAK0S,SACL1S,EAAK0S,QAAQvH,OAAS,EAEtB8D,GAAkBjP,EAAK0S,QAAQ,IAE/BzD,GAAkB,CAAC,GAGjBjP,EAAKgV,SACPxE,GAAwB5M,GAAU,SAAW,YAGnD,EAAE,UAEF,eAACiB,EAAA,EAAI,CACHC,WAAS,EACT3E,MAAO,CAAEyJ,OAAQ,GAAIwL,KAAM,KAAMpQ,UAAW,IAAKS,SAAU,UAAW,UAEtE,cAAC4P,GAAA,EAAU,CACTlV,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BoE,UAAW,IACXkD,UAAW,GACX,SAED0M,IAEH,qBACEzU,MAAO,CACLuB,WAAY,OACZwG,UAAW,EACXuJ,aAAc,EACd/L,MAAOgP,EACPpT,gBAAiBqT,KAGrB,cAAC9P,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAEyJ,OAAQ,oBAAqBwL,KAAM,KAAM,SAChE,eAACvQ,EAAA,EAAI,CAAC1E,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,UAAW,UACxD,cAACzQ,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEiV,KAAM,KAAM,SAC9B,cAACpN,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,MAAOvJ,UAAW,GAAI,SAE5C6M,MAGL,qBAAK5U,MAAO,CAAEwH,QAAS,OAAQyN,KAAM,IAAKlN,UAAW,GAAI,SACvD,cAACrD,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAK,aACHiV,KAAM,EACNhL,eAAgB,SAChB3E,SAAU,SACVT,UAAW,IAAE,WACH,UACV,SAEF,cAACgD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9CyT,QAIP,cAACpQ,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CAAEiV,KAAM,EAAGhL,eAAgB,SAAUlC,UAAW,GAAI,SAE5C,OAAdlI,EAAKwV,WAA+BtR,IAAdlE,EAAKwV,KACxB,KACAxV,EAAKwV,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAClB,OAAIA,GAAS,EACJ,KAIP,cAACuQ,GAAA,EAAI,CAEHvV,MAAOyL,GACPjF,MAAO8O,EACPxN,QAAQ,WACRzG,MAAM,UACN8E,QAAS,WAEPqP,GAAmBF,GACnBnF,GAAamF,GAEb,IAAMG,EACJrE,SAASsE,eAAe,oBAER,OAAhBD,QACgB1R,IAAhB0R,IAEAnO,QAAQC,IAAI,gBAAiBkO,GAC7BA,EAAYtM,MAAQmM,EAExB,GAnBKtQ,EAsBX,cAMXnF,EAAKuS,gBACcrO,IAApBlE,EAAKyS,YACLzS,EAAKyS,WAAWtH,OAAS,GACzBnL,EAAKwS,UACH,cAAC3N,EAAA,EAAI,CACHC,WAAS,EACT3E,MAAO,CAAEyJ,OAAQ,sBAAuBwL,KAAM,KAC9C9O,QAAS,WACPuM,GAAY7S,EACd,EAAE,SAEF,cAAC8V,GAAA,EAAO,CACNvR,MAAO,mBACPpE,MAAO,CAAE+H,UAAW,OAAQxC,MAAO,QACnC,aAAY1F,EAAK4F,KAAK,SAEtB,cAACmQ,GAAA,EAAiB,QAGpB,OAnIC/V,EAAKR,GAsIhB,EAEMwW,GAAe,qBACfC,GAAuB,CAC3BlO,SAAUgJ,GACVpP,SAAUoP,GACVvP,MAAO,QACPT,aAAc,EACdO,gBAAiBV,GAEjB6Q,aAAc,GACdhM,SAAU,UAGNyQ,GAAa,WAAO,IAAD,IAMnBnB,EAAa5G,EAAYvI,KAG3BmP,OAFiB7Q,IAAf6Q,GAA4BA,EAAW5J,OAAS,GAClD4J,EAAaA,EAAW9O,WAAW,IAAK,MAChBH,OAAO,GAAGC,cAAgBgP,EAAW/O,UAAU,GAE1D,GAGf,IAAIiP,EAAc9G,EAAY8G,YAExBkB,EAAU,cAAgBhI,EAAY3O,GACtC4W,EAAc,gBAAkBjI,EAAY3O,GAE9C6W,EACFlI,EAAYoE,gBACerO,IAA3BiK,EAAYsE,YACZtE,EAAYsE,WAAWtH,OAAS,GAChCgD,EAAYqE,UACV,cAACsD,GAAA,EAAO,CAACvR,MAAO,mBAAmB,SACjC,cAAC+R,EAAA,EAAM,CACLhQ,QAAS,WACPuM,GAAY1E,EACd,EACAlG,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAE+H,UAAW,GAAI2D,YAAa,GAAI,SAEzC,cAACkK,GAAA,EAAiB,QAGpB,KAMJS,EACArI,EAAYoE,gBACerO,IAA3BiK,EAAYsE,YACZtE,EAAYsE,WAAWtH,OAAS,GAChCgD,EAAYqE,UACV,cAAC,IAAI,CAACiE,GAAIN,EAAShW,MAAO,CAAEuW,eAAgB,QAAS,SACnD,cAACZ,GAAA,EAAO,CAACvR,MAAO,mBAAmB,SACjC,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,YACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAE+H,UAAW,GAAI2D,YAAa,IAAK,SAE1C,cAAC8K,GAAA,EAAQ,UAIb,KAGFC,EAAgBzI,EAAYqE,WAAarE,EAAYoE,WAAaxP,EAAMY,SAASnE,KAAO2O,EAAY0I,OAASjT,GAChH,cAAC,IAAI,CAAC6S,GAAIL,EAAajW,MAAO,CAAEuW,eAAgB,QAAS,SACxD,cAACZ,GAAA,EAAO,CAACvR,MAAO,+CAA+C,SAC9D,cAAC+R,EAAA,EAAM,CACNrO,QAAQ,YACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAE+H,UAAW,GAAI2D,YAAa,IAAK,SAE1C,cAACiL,GAAA,EAAa,UAIjB,KAEKC,EACJ5I,EAAYqE,YAAcrE,EAAYoE,UACpC,gCACE,cAAC,IAAI,CAACkE,GAAIL,EAAajW,MAAO,CAAEuW,eAAgB,QAAS,SACvD,cAACJ,EAAA,EAAM,CACLrO,QAAQ,YACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAE+H,UAAW,IAAK,4BAK7B,cAAC4N,GAAA,EAAO,CAACvR,MAAO,aAAa,SAC3B,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAEuB,WAAY,EAAGwG,UAAW,IACnC5B,QAAS,WACPsJ,IAAmB,EACrB,EAAE,SAEF,cAACoH,GAAA,EAAU,WAIf,KAEAC,QACyB/S,IAA3BiK,EAAYsE,YACZtE,EAAYsE,WAAWtH,OAAS,GAChCgD,EAAYqE,gBACgBtO,IAA3BiK,EAAY+I,YAAsD,GAA1B/I,EAAY+I,aACpD/I,EAAYqE,YACI,OAAnBuE,EACE,cAACjB,GAAA,EAAO,CAACvR,MAAO,aAAa,SAC3B,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAEuB,WAAY,EAAGwG,UAAW,IACnC5B,QAAS,WACPsJ,IAAmB,EACrB,EAAE,SAEF,cAACoH,GAAA,EAAU,QAGb,KAEFpC,OAC0B1Q,IAA5BiK,EAAY0G,aACuB,IAAnC1G,EAAY0G,YAAY1J,OACtB,qBACEvD,IAAKuG,EAAY5J,MACjBpE,MAAO,CACLY,aAnmBW,EAomBX2E,MAAO,IACPoD,OAAQ,IACRxH,gBAAiBlB,EAAME,QAAQO,cAInC,qBACE+G,IAAKuG,EAAY5J,MACjBsD,IAAKsG,EAAY0G,YACjB1U,MAAO,CACLY,aA9mBW,EA+mBXY,SAAU,IACVmH,OAAQ,OACRxH,gBAAiBlB,EAAME,QAAQO,cAKjCsW,EAAgB,WACpB,QAA+BjT,IAA3B8K,EAAeoI,QACjB,OAAO,KAGT,IAAIC,EAAarI,EAAeoI,QAAQE,QACxC,QACiBpT,IAAfmT,GACe,OAAfA,GACsB,IAAtBA,EAAWlM,OAEX,OAAO,KAGT,IAAIoM,GAAY,EAChB,IACE,IAAMC,EAAMC,OAAOrE,KAAKC,MAAMgE,IACzBG,EAAIlL,SAAS,MAASkL,EAAIlL,SAAS,OACtCiL,GAAY,EAIhB,CAFE,MAAOnY,GACPmY,GAAY,CACd,CAGA,GAAIA,EAAW,CACb,IAAM9D,EAAQ1G,GAAeqG,KAAKC,MAAMgE,GAAa,IAGrD,OAFA5P,QAAQC,IAAI,UAAW+L,GAGrB,8BACGA,EAAM7U,KAAI,SAACoB,EAAMmF,GAEhB,OACE,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EACPsG,QAAS,kBAAMmB,QAAQC,IAAI1H,EAAKuN,aAAa,EAAC,SAE7CvN,EAAK4F,MALDT,EAQX,KAGN,CAEA,OACE,sBAAKhF,MAAO,CAAE+H,UAAW,IAAK,UAC5B,+CACA,wBACC8G,EAAeoI,QAAQE,UAG9B,EAEMK,EAAY,CAAC,MAAO/T,GAAU,SAAW,YAI3CgU,OAA0B1T,IAAbP,IAA8C,SAAnBA,EAASkU,OAAoBlU,EAASnE,KAAO2O,EAAY0I,OAA+B,KAAtB1I,EAAY0I,OAAoC,SAAnBlT,EAASkU,OAAoBlU,EAASmU,WAAWtY,KAAO2O,EAAY4J,iBAAoB5J,EAAYqE,UAG3OwF,EACFjD,EAAW5J,OAAS,EAClB,sBAAKhL,MAAO,CAAEqF,SAAU,YAAa,UACnC,sBAAKrF,MAAO,CAAEwH,QAAS,QAAS,UAC9B,qBACExH,MAAO,CACL0L,YAAa,GACb3D,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQM,cAC/B,SAEDgU,IAEH,sBAAKzU,MAAO,CAAEwB,SAAU,MAAO8D,SAAU,UAAW,UAClD,cAACuC,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAAEsR,aAAc,GAAI,SACjDsD,IAEH,eAAC/M,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,qBACtC2M,EAAY+G,eAEvB,cAAClN,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CACL+H,UAAW,EACXuJ,aAAc,EACdzM,UAAW,IACXC,UAAW,OACXC,UAAW,UACX,SAED+P,UAImB,OAAzB9G,EAAY8J,eACY/T,IAAzBiK,EAAY8J,UACZ9J,EAAY8J,SAAS9M,OAAS,EAC5B,cAAC+M,GAAA,EAAM,CACLhP,aAAciF,EAAY+G,YAC1B9L,SAAU,SAAC5C,GACTiB,QAAQC,IAAI,6BAA+BlB,EAAM2R,OAAO7O,OACxD,IAAM8O,EAAajK,EAAY8J,SAASI,MACtC,SAACC,GAAM,OAAKA,EAAOC,SAAW/R,EAAM2R,OAAO7O,KAAK,IAElD7B,QAAQC,IAAI,gBAAiB0Q,GAC7BjK,EAAY+G,YAAc/G,EAAY+G,YACtC9G,EAAeD,QAEIjK,IAAfkU,GAA2C,OAAfA,GAC9BI,GAAOJ,EAAW5Y,IAAI,EAE1B,EACAW,OAAK,GACHqF,SAAU,WACViT,KAAM,GACNC,MAAO9U,GAAU,GAAK,EACtBtC,gBAAiBlB,EAAME,QAAQM,cAAY,gCAC1BC,IAAU,sBACpB,SAAO,uBACN,IAAE,2BACE,IAAE,GAEhB8X,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAEd,SAEDyM,EAAY8J,SAASrZ,KAAI,SAACoB,EAAMmF,GAC/B,OACE,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAKuY,QAAQ,SAEnBvY,EAAKuY,SAJDvY,EAAKuY,QAOhB,MAEA,KACH3U,GACC,mBACEgV,IAAI,sBACJC,KAAM,4BAA8B1K,EAAY3O,GAChDW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,SAEf,cAACW,GAAA,EAAU,CACT3Y,MAAO,CACLsY,KAAM,GACNC,MAAO,EACPlT,SAAU,WACVhE,MAAO,WACP,SAEF,cAACuX,GAAA,EAAa,CAAC5Y,MAAO,CAAC,QAGzB,KAEH4W,EAIAa,EACC,gCACGpB,EACAH,EACAY,KAGT,8BACML,SAGoB1S,IAArBiK,EAAYqH,MAA2C,OAArBrH,EAAYqH,KAC7C,qBACErV,MAAO,CACLwH,QAAS,eACTjG,WAAY,GACZsX,MAAO,SACP,SAED7K,EAAYqH,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAC1B,OAAIA,GAAS,EACJ,KAIP,cAACuQ,GAAA,EAAI,CAEHvV,MAAOyL,GACP3D,QAAQ,WACRtB,MAAO8O,EACPjU,MAAM,WAJD2D,EAOX,MAEA,KACRyS,EAEM,sBAAKzX,MAAO,CAAE+H,UAAW,IAAK,UAE5B,mBAAG/H,MAAO,CAAE0L,YAAa,IAAK,sBAC9B,cAACqM,GAAA,EAAM,CACL5O,MAAOiH,GACPnH,SAAU,SAAC5C,GACTuH,EAAM+E,KAAK,uBAAyBtM,EAAM2R,OAAO7O,OAEjDkH,GAAwBhK,EAAM2R,OAAO7O,OAEV,QAAvB9C,EAAM2R,OAAO7O,MACf2P,GAAe9K,EAAY3O,GAAI,WAAW,GAEnB,aAAvBgH,EAAM2R,OAAO7O,OACU,WAAvB9C,EAAM2R,OAAO7O,MAEb2P,GAAe9K,EAAY3O,GAAI,WAAW,GAE1CiI,QAAQC,IACN,mCACAlB,EAAM2R,OAAO7O,MAGnB,EACAnJ,OAAK,GACHuF,MAAO,IACPpE,gBAAiBlB,EAAME,QAAQM,cAAY,gCAC1BC,IAAU,sBACpB,SAAO,uBACN,IAAE,2BACE,IAAE,GAEhB8X,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAEd,SAEDiW,EAAU/Y,KAAI,SAACoB,GACd,OACE,cAAC0X,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJIA,EAOX,SAGF,UAEuBkE,IAA1BiK,EAAY+K,WACb/K,EAAY+K,UAAU/N,OAAS,EAC7B,8BACE,2CAAiB,IAAEgD,EAAY+K,aAE/B,KACJ,cAACC,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,GACdvJ,UAAW,GACX5G,gBAAiB0U,MAGrB,sBAAK7V,MAAO,CAAEiZ,WAAY,GAAIC,cAAe,IAAK,UAC/ClL,EAAYgG,KAAKhJ,OAAS,EACzB,8BACE,qCAAW,IAAEgD,EAAYgG,QAEzB,KACJ,sBAAKhU,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,wCACyB,OAAxBtD,EAAYuE,SACbvE,EAAYuE,QAAQvH,OAAS,EAC3B,cAAC+M,GAAA,EAAM,CACLtP,WAAS,EACTU,MAAO0F,EACP5F,SAAU,SAAC5C,GACTyI,GAAkBzI,EAAM2R,OAAO7O,MACjC,EACAnJ,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,QACPsH,OAAQ,QAEV6P,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAEd,SAEDyM,EAAYuE,QAAQ9T,KAAI,SAACoB,GACxB,IAAIsZ,OACapV,IAAflE,EAAK2G,OAAuB3G,EAAK2G,MAAMwE,OAAS,EAC5CnL,EAAK2G,MACL3G,EAAK4F,KAKX,OAHA0T,GADAA,EAAgBA,EAAcrT,WAAW,IAAK,MAE9BH,OAAO,GAAGC,cACxBuT,EAActT,UAAU,GAExB,cAAC0R,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXsZ,GAJItZ,EAAK4F,KAOhB,MAGF,qBAAKzF,MAAO,CAAE+H,UAAW,IAAK,gEAMHhE,IAA9B8K,EAAeuK,YACc,OAA9BvK,EAAeuK,WACb,sBAAKpZ,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,2CACCzC,EAAeuK,WAAW3a,KAAI,SAACoB,GAAU,IAAD,EACnCwZ,EAAY,UACXxZ,EAAKyZ,WACRD,EAAY,WAId,OACE,eAAC9B,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,WAEY,IAAvBA,EAAK0Z,cACJ,cAAC5D,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,uBAAkB4J,EAAYvI,MACnC+T,UAAU,MAAK,SAEf,cAACC,GAAA,EAAY,CACXzZ,MAAO,CACLoF,OAAQ,UACRG,MAAO,GACPoD,OAAQ,GACR+C,YAAa,QAKnB,qBACE1L,OAAK,GACHuF,MAAO,GACPoD,OAAQ,GACR/H,aAAc,IACdO,gBAAiBkY,EACjB3N,YAAa,GACb3D,UAAW,GAAC,0BACD,QAAM,6BACH,QAAM,KAIzBlI,EAAK4F,OAjCD5F,EAAK4F,KAoChB,OAEA,UAC4B1B,IAA/B8K,EAAeiG,aACe,OAA/BjG,EAAeiG,aACfjG,EAAeiG,YAAY9J,OAAS,EAClC,gCACE,mDACA,wBACC6D,EAAeiG,eAEhB,KACJ,cAACkC,EAAa,UAGhB,KAEN,OACE,sBAAKhX,MAAO,CAAC,EAAE,UACb,cAAC+F,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAO8V,GAAqB,SACxC,sBAAK9V,MAAO,CAAEyJ,OAAQ,IAAK,UACzB,6CACA,mBACEgP,IAAI,sBACJC,KAAK,gCACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,0BAGb,QACI,IACR,mBACES,IAAI,sBACJC,KAAK,8CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,4BAGb,QACI,IACR,mBACES,IAAI,sBACJC,KAAK,gEACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,+BAGb,QACI,IACR,mBACES,IAAI,sBACJC,KAAK,6BACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,+BAIjB,wBACA,cAACnQ,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,yPAMjD,wBACA,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACL2I,OAAQ,EACRxH,gBAAiB0U,GACjB9N,UAAW,GACXuJ,aAAc,MAGlB,sBAAKtR,MAAO,CAAC,EAAE,UACb,eAACmW,EAAA,EAAM,CACLrO,QAAQ,YACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAE0L,YAAa,IACtBvF,QAAS,WACPwJ,IAAgB,EAClB,EAAE,UAEF,cAAC+J,GAAA,EAAW,CAAC1Z,MAAO,CAAE0L,YAAa,KAAO,0BACnC,aAET,cAAC,IAAI,CACH4K,GAAG,YACHtW,MAAO,CACLuB,WAAY,EACZgV,eAAgB,OAChBlV,MAAO,WACP,SAEF,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAC,EAAE,2CAQpB,cAAC+F,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAO8V,GAAqB,SACxC,qBAAK9V,MAAO,CAAEyJ,OAAQ,IAAK,SAAEoO,QAIrC,EAEMrC,GAAqB,SAACmE,GAC1B,QAAa5V,IAATqK,GAA+B,OAATA,GAAiC,IAAhBA,EAAKpD,OAAhD,CAIA,IAAMyK,EAAckE,EAAOhN,cACvBiN,EAAUxL,EAAKyL,QACjB,SAACha,GAAI,OACHA,EAAK4F,KAAKkH,cAAcR,SAASsJ,IACjC5V,EAAKiV,YAAYnI,cAAcR,SAASsJ,IACzB,OAAd5V,EAAKwV,MAAiBxV,EAAKwV,KAAKlJ,SAASwN,EAAQ,IAElDG,EAAU/K,GAAe8K,QAC3B,SAACha,GAAI,OACHA,EAAK4F,KAAKkH,cAAcR,SAASsJ,IACjC5V,EAAKiV,YAAYnI,cAAcR,SAASsJ,IACzB,OAAd5V,EAAKwV,MAAiBxV,EAAKwV,KAAKlJ,SAASwN,EAAQ,IAEtDC,EAAQzM,KAAI,MAAZyM,EAAO,aAASE,IAGhBvL,EAAgBqL,EAlBhB,CAyBF,EAEMG,GAAa,SAAC9a,GAClB,IAAMuR,OACezM,IAAnB9E,EAAE6L,cAAqC7L,EAAE6L,aAAaK,MAAMH,OAAS,EACjEG,EAAQqF,EAAavR,EAAE6L,aAAaK,MAAQlM,EAAE+Y,OAAO7M,MAErD6O,EAAS,IAAIC,WAEnB,IACED,EAAO1O,iBAAiB,QAAQ,SAACrM,GAC/B,IAAMib,EAAUjb,EAAE+Y,OAAOmC,OACzBhL,GAAe+K,GACfzJ,GAAcD,GACdb,IAAgB,EAClB,GAGF,CAFE,MAAO1Q,GACPqI,QAAQC,IAAI,sBAAuBtI,EACrC,CAEA,IACE+a,EAAOI,WAAWjP,EAAM,GAG1B,CAFE,MAAOsH,GACP7E,EAAM6E,MAAM,sBACd,CACF,EAEApK,qBAAU,WACJ6G,GAAYlE,OAAS,IACvB6E,GAAgB,IAChBwK,GAAgBnL,IAEpB,GAAG,CAACA,KAEJ7G,qBAAU,WACJ+G,IAAiBoB,KACnB8J,KACA7J,IAAc,GAElB,GAAG,CAACrB,GAAeoB,KAEpB,IAAI+J,IAAY,GAETC,GAAU9M,EACd,cAAC,GAAQ,CACP1N,MAAO,CAAEuF,MAAOqL,KAAoBnH,OAAQ,OAAQxI,QAAS,IAC7DmJ,OAAQ2P,GAAW,SAEnB,sBAAK/Z,MA5nCY,CACnBqB,MAAO,UACPkE,MAAO,OACPiC,QAAS,OACTiC,OAAQ,QAwnCmB,UACvB,sBAAKzJ,MAAO,CAAEiV,KAAM,EAAGzT,SAAUoP,GAAWlF,YAAa,IAAK,UAC5D,eAAC+O,GAAA,EAAW,CACV,aAAW,aACXC,UAAU,SACV1a,MAAO,CAAEqB,MAAO,SAAU,UAE1B,cAAC,IAAI,CACHiV,GAAG,QACHtW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,eAACwG,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEqB,MAAO,yBAA0B,UAE1C,cAAC,KAAQ,CAACrB,MAAO,CAAE0L,YAAa,MAAQ,kBAI3CsC,EAAYoE,gBACcrO,IAA3BiK,EAAYsE,YACZtE,EAAYsE,WAAWtH,OAAS,GAChCgD,EAAYqE,UACV,cAAC,IAAI,CACHiE,GAAE,qBAAgBtI,EAAY3O,IAC9BW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,cAACwG,EAAA,EAAU,CAACC,QAAQ,KAAI,SAAEkG,EAAYvI,SAEtC,QAEN,qBAAKzF,MAAO,CAAE+H,UAAW,MACzB,cAACgO,GAAU,OAEb,sBAAK/V,MAAO,CAAEiV,KAAM,EAAG1T,WAAY,GAAIC,SAAUoP,IAAY,UAC3D,sBAAK5Q,MAAO,CAAEwH,QAAS,QAAS,UAC9B,qBAAKxH,MAAO,CAAEiV,KAAM,EAAG3D,aAAc,IAAK,SACxC,eAACzJ,EAAA,EAAU,CAACC,QAAQ,KAAI,6BACLsG,EAAKpD,OAAS+D,GAAe/D,OAAM,SAGvDvH,GAAU,KACT,sCACgBM,IAAbP,GAAuC,OAAbA,GAAqBkL,EAAY,KAC1D,cAACiH,GAAA,EAAO,CACNvR,MAAO,sBACPpE,MAAO,CAAE+H,UAAW,OAAQxC,MAAO,QACnC,aAAY,SAAS,SAErB,cAAC4Q,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAEyJ,OAAQ,EAAG5E,UAAW,GAAIkD,UAAW,IAC9C4S,SAAUjM,EACVvI,QAAS,WACPyU,IACF,EAAE,SAEDlM,EACC,cAACmM,EAAA,EAAgB,CAACC,KAAM,KAExB,cAACC,GAAA,EAAU,aAMLhX,IAAbP,GAAuC,OAAbA,GAAwC,UAAnBA,EAASkU,MAAoB,KACpF,cAAC/B,GAAA,EAAO,CACPvR,MAAO,uBACPpE,MAAO,CAAE+H,UAAW,OAAQxC,MAAO,QACnC,aAAY,SAAS,SAErB,cAAC4Q,EAAA,EAAM,CACNrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAO,CAAEyJ,OAAQ,EAAG5E,UAAW,GAAIkD,UAAW,IAC9C4S,SAAUjM,EACVvI,QAAS,WACR8I,GAlyCa,0CAmyCbM,IAAqB,EACtB,EAAE,SAEDb,EACA,cAACmM,EAAA,EAAgB,CAACC,KAAM,KAExB,cAAClF,GAAA,EAAiB,cAQpB,qBAAK5V,MAAO,CAAE2I,OAAQ,IAAK,SACzB,cAACH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,GAAYE,aAAc,GACpD8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,OACXC,WAAY,MACZC,SAAU,MACVC,SAAU,MACVb,aAAc,IAGlB+Z,cACW5W,IAATqK,GAA+B,OAATA,GAAiC,IAAhBA,EAAKpD,OAE9CvC,WAAS,EACTpH,MAAM,UACNhC,GAAG,mBACH2J,YAAa,mBACbC,SAAU,SAAC5C,GACTmP,GAAmBnP,EAAM2R,OAAO7O,OAChCgH,GAAa9J,EAAM2R,OAAO7O,MAC5B,MAGJ,qBAAKnJ,MAAO,CAAE+H,UAAW,IAAK,SAC3BqG,EAAKpD,OAAS,EACbsD,EAAatD,OAAS,EACpB,sBAAKhL,MAAO,CAAE2I,OAAQ,OAAQ7D,UAAW,QAAS,UAC/CwJ,EAAa7P,KAAI,SAACyT,EAAKlN,GAChC,OAAI2L,IACH4J,IAAY,GAOZ,cAACS,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKX,GAAQ,OAAO,SACvE,+BACC,cAACjG,GAAQ,CAACpC,IAAKA,OAFNlN,IAJM,cAACsP,GAAQ,CAACpC,IAAKA,GAUzB,IACChC,GAAUlF,OAAS,EAChB,KACA+D,GAAetQ,KAAI,SAACyT,EAAKlN,GACvB,OACX,cAACsP,GAAQ,CAACpC,IAAKA,GAEN,OAGN,eAACnM,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAO8V,GAAqB,UACxC,cAACjO,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,IAAK,SAChC,iCACE,mBACEgP,IAAI,sBACJC,KAAM,6BACN1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,wBAGZ,IAAG,yDAIZ,wBAECpJ,EACC,cAACiM,EAAA,EAAgB,CACfxZ,MAAM,UACNrB,MAAO,CAAEyJ,OAAQ,UAEjB,QAGNiF,EACF,cAACmM,EAAA,EAAgB,CACf7a,MAAO,CAAEuF,MAAO,GAAIoD,OAAQ,GAAIc,OAAQ,UAG1C,eAAC1D,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAO8V,GAAqB,UACxC,cAACjO,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAEyJ,OAAQ,IAAK,+KAMxB,eAAC5B,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAEyJ,OAAQ,IAAK,wEAEsC,IAC5D,mBACEiP,KACE,iEAEF1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxC2W,OAAO,SAAQ,qEAW7B,KA8DE4C,GAAc,WAClBhN,EAAM+E,KAAK,yCACXhE,GAAa,GACb4C,MAAMrO,EAAY,2BAA4B,CAC5CiY,KAAM,OACNtU,QAAS,CACP4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANAhD,GAAa,GACW,MAApBgD,EAASC,QAEXX,KAGKU,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACwB,IAAzBA,EAAae,QACfjF,EAAM+E,KAAK,iCAEX/E,EAAM6E,MAAM,mBAAoBX,EAAasJ,OAGjD,IACC5I,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA0BMgM,GAAS,SAAC3R,EAAO2U,GACrB9J,MAAMrO,EAAY,gBAAkBwD,EAAQ,wBAAyB,CACnEG,QAAS,CACP4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANwB,MAApBA,EAASC,QAGXhE,EAAM6E,MAAM,sBAGPd,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAIuK,GAERuJ,SAEyBtX,IAAzBiK,EAAY8J,UACa,OAAzB9J,EAAY8J,WAEZhG,EAAagG,SAAW9J,EAAY8J,eAIN/T,IAA9BiK,EAAYsN,eACkB,OAA9BtN,EAAYsN,gBAEZxJ,EAAawJ,cAAgBtN,EAAYsN,oBAKhBvX,IAAzB+N,EAAaS,SACY,OAAzBT,EAAaS,SACbT,EAAaS,QAAQvH,OAAS,EAE9B8D,GAAkBgD,EAAaS,QAAQ,IAEvCzD,GAAkB,CAAC,GAErBb,EAAe6D,GAEnB,IACCU,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA0BMyM,GAAiB,SAACyC,EAAQC,EAAWC,GACzC,IAAM5b,EAAO,CAAC,EACdA,EAAK2b,GAAaC,EAElBnU,QAAQC,IAAI,SAAU1H,GAEtB0R,MAAMrO,EAAY,gBAAkBqY,EAAQ,CAC1C/J,OAAQ,QACR3K,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAEL,OAAOA,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAGDA,EAAae,QACfjF,EAAMiF,QAAQ,+CAES9O,IAAxB+N,EAAasJ,QAAgD,OAAxBtJ,EAAasJ,OAChDxN,EAAM6E,MAAM,UAAUX,EAAasJ,QAEnCxN,EAAM6E,MAAM,mCAGjB,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA8FMgO,GAAkB,SAACqB,GACvB,IAAIC,EAvBgB,SAACC,GAErB,IACE,OAAO3I,KAAKS,UAAUT,KAAKC,MAAM0I,GAGnC,CAFE,MAAOnJ,GACPnL,QAAQC,IAAI,+BACd,CAEA,IACE,IAAMsU,EAASpI,KAAKP,MAAMO,KAAKC,UAAUkI,IAEzC,OAAOnI,KAAKC,UAAUmI,EAIxB,CAHE,MAAOpJ,GACPnL,QAAQC,IAAI,4CAA8CkL,GAC1D5C,GAAgB,gBAAkB4C,EAAMpG,WAC1C,CAEA,MAAO,EACT,CAKmByP,CAAcJ,GACZ,KAAfC,GAQJlN,GAAc,GACd8C,MAAMrO,EAAY,2BAA4B,CAC5CsO,OAAQ,OACR3K,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMuI,EACNhK,YAAa,YAEZ1S,MAAK,SAAC2S,GAEL,OADAlD,GAAc,GACPkD,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACDA,EAAae,QACfxD,GAAiByC,EAAazS,UAEF0E,IAAxB+N,EAAasJ,QACfvL,GAAgBiC,EAAasJ,QAE/BxN,EAAM6E,MAAM,qCAEhB,IACCD,OAAM,SAACC,GACNhE,GAAc,GACdb,EAAM6E,MAAMA,EAAMpG,YAClBwD,GAAgB4C,EAAMpG,WACxB,KAjCAsP,EAAaD,CAkCjB,EAEMpB,GAAkB,WACtBxM,EAAS,gBAAD,OAAiBsB,IAC3B,EAEM2M,GAAyB,SAACC,IA3WR,SAACnI,EAAKmI,GAC5BvN,GAAc,GAEdE,GAAa,GAGb,IAAMsN,EAAa,CACjBpI,IAAKA,EACLqI,OAAQ5L,IAAkB,UAGxBR,GAAO9E,OAAS,IAClBiR,EAAoB,QAAInM,IAGtBE,GAAOhF,OAAS,IAClBiR,EAAoB,QAAIjM,IAG1BiM,EAAyB,aAAID,EAE7BpO,EAAMiF,QAAQ,wCAEdtB,MAAMrO,EAAY,4BAA6B,CAC7CsO,OAAQ,OACR2J,KAAM,OACNtU,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUuI,GACrBvK,YAAa,YAEZ1S,MAAK,SAAC2S,GAQL,OAPwB,MAApBA,EAASC,QACXhE,EAAMiF,QAAQ,yBAIhBlE,GAAa,GACbF,GAAc,GACPkD,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,SAAUuK,QACM/N,IAAxB+N,EAAasJ,QACfxN,EAAM6E,MAAM,mBAAqBX,EAAasJ,OAElD,IACC5I,OAAM,SAACC,GACNnL,QAAQC,IAAI,UAAWkL,EAAMpG,YAC7BuB,EAAM6E,MAAMA,EAAMpG,YAGlBsC,GAAa,GACbF,GAAc,EAChB,GACJ,CAoTE0N,CAAgBnN,GAASgN,GACzBzM,IAAqB,EACvB,EAEM6M,GAAc5M,GAClB,eAAC6M,GAAA,EAAM,CACLC,KAAM9M,GACN+M,QAAS,WACP9M,IAAmB,EACrB,EACA+M,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,MAEZ,UAEF,cAAC6U,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,2BACpD,wBAAO,wCAIzB,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,cAACgR,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WAlOC,IAACO,IAmOCsH,EAAY3O,GAlO9BuO,EAAM+E,KAAK,4BACXpB,MAAMrO,EAAY,gBAAkBwD,EAAO,CACzC8K,OAAQ,SACR3K,QAAS,CACP4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACmB,MAApBA,EAASC,QACXhE,EAAMiF,QAAQ,4BACd8J,YAAW,WACT1L,IACF,GAAG,MAEHrD,EAAM6E,MAAM,4CAEhB,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,IA+MMoD,IAAmB,EACrB,EACApO,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAC,EACRmG,QAAS,WACPsJ,IAAmB,EACrB,EACApO,MAAM,UAAS,sBAMnB,KAEEub,GAAiBpO,EACrB,cAACqM,EAAA,EAAgB,CAACxZ,MAAM,YACtB,KACEwb,GAAgBvN,GACpB,eAAC+M,GAAA,EAAM,CACLC,KAAMhN,GACNiN,QAAS,WACPtN,GAAW,IACXM,IAAqB,GACrBQ,GAAU,IACVE,GAAU,GACZ,EACAuM,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,qBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,qCAIjD,eAACqb,GAAA,EAAa,CAAC1c,MAAO,CAAEqB,MAAO,0BAA2B,8DAExD,cAACmH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAc,yCACdL,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKgQ,GAAWhQ,EAAE+Y,OAAO7O,MAAM,EAC3CH,YAAY,yCACZP,WAAS,IAEX,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,iDAG/B,qBAAK/H,MAAO,CAAEwH,QAAS,QAAS,SAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAcuH,GACd5H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKsR,GAAkBtR,EAAE+Y,OAAO7O,MAAM,EAClDH,YAAY,SACZP,WAAS,MAGb,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,4DAG/B,sBAAK/H,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAK8Q,GAAU9Q,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,+BACZP,WAAS,IAEX,cAACD,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKgR,GAAUhR,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,sBACZP,WAAS,UAIf,eAACqU,GAAA,EAAa,WACXF,GACD,cAACzG,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAAMoJ,IAAqB,EAAM,EAC1ClO,MAAM,UAAS,oBAIhBoC,GAAU,KACT,cAAC0S,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvB+Z,SAA6B,IAAnB3L,GAAQhE,SAAiBgE,GAAQ7C,SAAS,QACpDhG,QAAS,WACP4V,IAAuB,EACzB,EACA1a,MAAM,UAAS,0BAKnB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAE6Y,MAAO,OAAQjY,aAAc,OACtC+Z,SAA6B,IAAnB3L,GAAQhE,SAAiBgE,GAAQ7C,SAAS,QACpDhG,QAAS,WACP4V,IAAuB,EACzB,EACA1a,MAAM,UAAS,0BAMnB,KAEE0b,GACJnN,GAAa5E,OAAS,EACpB,sBAAKhL,MAAO,CAAE+H,UAAW,IAAK,oBAAS6H,MACrC,KACAoN,GAAYtN,GAChB,cAAC2M,GAAA,EAAM,CACLC,KAAM5M,GACN6M,QAAS,WACP5M,IAAgB,EAClB,EACA6M,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,SAEF,eAAC2b,GAAA,EAAW,WACV,cAACR,GAAA,EAAW,UACV,qBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,gCAIjD,eAACqb,GAAA,EAAa,CAAC1c,MAAO,CAAEqB,MAAO,0BAA2B,6CAExD,cAACmH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,OAEZyb,aACE,cAAC/G,EAAA,EAAM,CACLnW,MAAO,CACLY,aAAc,MACdmH,UAAW,MACXY,OAAQ,QAEVb,QAAQ,YACR6S,SAA6B,IAAnB3L,GAAQhE,QAAgBoE,GAAcpE,OAAS,EACzD3J,MAAM,UACN8E,QAAS,WACP0J,GAAgB,IAvVhCpB,GAAc,GAEd8C,MAAMrO,EAAY,0BAA2B,CAC3CsO,OAAQ,OACR3K,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU1E,IACrB0C,YAAa,YAEZ1S,MAAK,SAAC2S,GAEL,OADAlD,GAAc,GACU,MAApBkD,EAASC,OACJD,EAASE,OAGXF,EAASpR,MAClB,IACCvB,MAAK,SAAC8S,GACL,GAA4B,kBAAjBA,IAA8BA,EAAae,QAOpD,OANAvL,QAAQC,IAAIuK,EAAasJ,kBACGrX,IAAxB+N,EAAasJ,OACfvL,GAAgBiC,EAAasJ,QAE7BvL,GAAgB,4CAKpBvI,QAAQC,IAAI,wBACZ8S,GAAgBvI,EAClB,IACCU,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,YAClBwD,GAAgB4C,EAAMpG,WACxB,GAsTY,EAAE,uBAMRpD,SAAU,SAAChK,GACTgQ,GAAWhQ,EAAE+Y,OAAO7O,MACtB,EACAgU,WACE,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,mEAIvDtI,YAAY,cACZP,WAAS,IAQX,uEACA,uBACE2U,QAAM,EACN5c,KAAK,OACLgL,IAAKkF,GACL2M,OAAO,uGACPC,UAAU,EACVrU,SAAU8Q,KAEZ,cAAC5D,EAAA,EAAM,CACLrO,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAMuK,GAAOrF,QAAQkS,OAAO,EAAC,oBAIvCR,MAEH,eAACD,GAAA,EAAa,WACXF,GACD,cAACzG,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPwJ,IAAgB,GAChBN,GAAiB,IACjBQ,GAAgB,IAChBZ,GAAW,IACXE,GAAe,GACjB,EACA9N,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEY,aAAc,OACvB+Z,SAAmC,IAAzBvL,GAAcpE,OACxB7E,QAAS,WACPmU,IACF,EACAjZ,MAAM,UAAS,8BAOrB,KAeJ,OAZEsM,IAAaO,EACX,gCACGsM,GACAwC,GACAH,GACAT,MAGH,uBAKN,EChxCeoB,GA9iCW,SAAC5a,GACzB,IACAY,EAqBIZ,EArBJY,SACEN,EAoBEN,EApBFM,UACAjD,EAmBE2C,EAnBF3C,MACAwd,EAkBE7a,EAlBF6a,SACAC,EAiBE9a,EAjBF8a,kBACA5O,EAgBElM,EAhBFkM,kBACA6O,EAeE/a,EAfF+a,2BACA1P,EAcErL,EAdFqL,eACAG,EAaExL,EAbFwL,KAEAwP,GAWEhb,EAZFiM,eAYEjM,EAXFgb,+BACAC,EAUEjb,EAVFib,aACAC,EASElb,EATFkb,WACAC,EAQEnb,EARFmb,eACAC,EAOEpb,EAPFob,aACAva,EAMEb,EANFa,QACAwa,EAKErb,EALFqb,sBACArQ,EAIEhL,EAJFgL,MACFsQ,EAGItb,EAHJsb,aACAC,EAEIvb,EAFJub,mBACAC,EACIxb,EADJwb,qBAEA,EAA8Cla,IAAMC,SAAS,IAAG,mBAAzDka,EAAe,KAAEC,EAAkB,KAC1C,EAAkDpa,IAAMC,SAAS,IAAG,mBAA7Doa,EAAiB,KAAEC,EAAoB,KAC9C,EAAgDta,IAAMC,SAAS,IAAG,mBAA3Dsa,EAAgB,KAAEC,EAAmB,KAC5C,EAAwCxa,IAAMC,SAASuZ,GAAkB,mBAAlEiB,EAAY,KAAEC,EAAe,KACpC,GAAsC1a,IAAMC,UAAS,GAAM,qBAApD0a,GAAW,MAAEC,GAAc,MAClC,GAAkC5a,IAAMC,SAAS,IAAG,qBAA7CwM,GAAS,MAAEoO,GAAY,MAC9B,GAA0D7a,IAAMC,UAAS,GAAM,qBAAxE6a,GAAqB,MAAEC,GAAwB,MAEvD,GAAwC/a,IAAMC,UAAS,GAAM,qBAAtD+a,GAAY,MAAEC,GAAe,MAEpC,GAAwBtO,YAAY,CACnCC,SAAU,IACVC,gBAAgB,EAChBC,SAAU,WACT,QAA6BjN,IAAzBqa,QAA6Dra,IAAvBoa,EAAkC,CAC3E,IAAMiB,EAAW3B,EAASpe,GAC1B+e,EAAqBgB,EACtB,MACC9X,QAAQC,IAAI,kDAEd,IAVO2J,GAAK,GAALA,MAAOC,GAAI,GAAJA,KAcd,QAAiBpN,IAAb0Z,GAAuC,OAAbA,EAC5B,OAAO,KAGT,QAAa1Z,IAATqK,GAA+B,OAATA,EACxB,OAAO,KAGT,QAA0BrK,IAAtB2Z,GAAyD,OAAtBA,EACrC,OAAO,KAgCT,GAAyB,IAArB/M,GAAU3F,QAAgB2F,KAAc8M,EAASpe,GAAI,CACvD,QAAa0E,IAATqK,GAA+B,OAATA,GAAiC,IAAhBA,EAAKpD,OAG9C,OAFA1D,QAAQC,IAAI,mBAAoB6G,GAChCwP,GAA8B,GACvB,KAGTmB,GAAatB,EAASpe,IACtB,IAAMggB,GAAa,GAAG,cAEpB,IAAM9Y,EAASkX,EAASlL,QAAQ9F,IAC5B6S,GAAY,CACd5K,YAAanO,EAAOmO,YACpB6K,SAAUhZ,EAAOgZ,SACjBxK,YAAaxO,EAAOwO,YACpByK,iBAAiB,EACjBC,eAAe,EACfC,mBAAmB,EACnBC,WAAW,EACXC,WAAY,GACZrZ,OAAQA,EACZsZ,eAAgBtZ,EAAOwO,YACnB7C,IAAK,CAAC,EACV4N,MAAO,GACPC,YAAY,GAGV,IAAM7N,EAAM9D,EAAK8J,MACf,SAAChG,GAAG,OACFA,EAAIzM,OAASc,EAAOgZ,WACnBrN,EAAI6C,cAAgBxO,EAAOwO,aACH,OAAtB7C,EAAIoJ,eACHpJ,EAAIoJ,cAAcnP,SAAS5F,EAAOwO,aAAc,IAIxD,QAAYhR,IAARmO,GAA6B,OAARA,EAAc,CACtC,IAAM8N,EAAS5R,EAAK8J,MAAK,SAAAhG,GAAG,OAAIA,EAAIzM,OAASc,EAAOgZ,QAAQ,SAChDxb,IAAXic,GAAmC,OAAXA,IAC3BV,GAAUO,eAAiB,SAGxBP,GAAUG,eAAgB,EAC9BH,GAAUQ,MAAM3S,KAAK,CACpB,MAAS,eACT,KAAQ,WACR,UAAY,GAEX,KAAO,CACL,GAC+B,KAA7B5G,EAAO0Z,oBACyB,IAAhC/N,EAAIgO,eAAe5G,SACnB,CAGA,IAAS7M,MADL0T,IAAS,EACG5Z,EAAO6S,WACrB,GAAI7S,EAAO6S,WAAW3M,IAAK8M,gBAGU,OAAjChT,EAAO6S,WAAW3M,IAAKtD,OACiB,IAAxC5C,EAAO6S,WAAW3M,IAAKtD,MAAM6B,QAC7B,CACAmV,IAAS,EACT,KACF,CAITb,GAAUQ,MAAM3S,KAAK,CACpB,MAAS,mBACT,KAAQ,eACR,UAAY,IAGHgT,KACHb,GAAUI,mBAAoB,EAC9BJ,GAAUM,WAAWzS,KAAK5G,EAAOlH,IAErC,KAAwC,KAA7BkH,EAAO0Z,oBAA4D,IAAhC/N,EAAIgO,eAAe5G,UACpEhS,QAAQC,IAAI,mCAAoChB,EAAO0Z,mBAIpDX,GAAUpN,IAAMA,CAClB,CAUA,QAPoBnO,IAAlBwC,EAAO6Z,QACW,OAAlB7Z,EAAO6Z,QACP7Z,EAAO6Z,OAAOpV,OAKZsU,GAAUI,kBAAmB,CAE/B,IAASjT,MADL4T,GAAwB,GACZ3C,EAAmB,CACjC,IAAM4C,EAAO5C,EAAkBjR,IAC/B,GAAI6T,EAAKpO,IAAIzM,OAASyM,EAAIzM,MAAQ6a,EAAKC,OAAQ,CAE7CF,GAAsBlT,KAAKmT,GAC3BhB,GAAUkB,iBAAmBF,EAAKjhB,GAClC,KACF,CACF,CAGiC,OAA/BigB,GAAUkB,uBACqBzc,IAA/Bub,GAAUkB,kBAC4B,KAAtClB,GAAUkB,iBAAiBxV,YASnBjH,IAJNsb,GAAWnH,MACT,SAACuI,GAAS,OACRA,EAAUlF,SAAW+D,GAAU/D,QAC/BkF,EAAUlB,WAAaD,GAAUC,QAAQ,KAK7CF,GAAWlS,KAAKmS,KAIlBA,GAAUY,eAAiBG,GAC3B5C,EAASlL,QAAQ9F,IAAO6S,GAE5B,MAAWA,GAAUG,qBAMX1b,IAJNsb,GAAWnH,MACT,SAACuI,GAAS,OACRA,EAAUlF,SAAW+D,GAAU/D,QAC/BkF,EAAUlB,WAAaD,GAAUC,QAAQ,IAG7CjY,QAAQC,IAAI,yBAEZ8X,GAAWlS,KAAKmS,IAEnB,EApIH,IAAK,IAAI7S,MAAOgR,EAASlL,QAAS,CAAC,IA6CzB4N,GAyCFE,GACQ,IA8ChB,CAEA,IAAK,IAAI5T,MAAOgR,EAASiD,mBAAoB,CAC3C,IAAMC,GAAWlD,EAASiD,mBAAmBjU,UAExB1I,IAAnB4c,GAASxX,YACUpF,IAAnB4c,GAASxX,OACTwX,GAASxX,MAAM6B,OAAS,KAExB2V,GAASxX,MAAQ,GACjBwX,GAAS3b,MAAQyH,GACjB8R,EAAkBpR,KAAKwT,IAE3B,CAEA,IAAK,IAAIlU,MAAOgR,EAASmD,SAAU,CACjC,IAqBStT,GArBLuT,GAAUpD,EAASmD,SAASnU,IAGnC,GAFGoU,GAAQ7b,MAAQyH,GAEU,YAAzBoU,GAAQC,aAEX,GADAxZ,QAAQC,IAAI,kBAAmBsZ,SACC9c,IAA5B8c,GAAQE,iBAAkE,OAAjCF,GAAQE,gBAAgBtb,MAAkD,KAAjCob,GAAQE,gBAAgBtb,KA0B5G,gBAVe,WAfhB6B,QAAQC,IAAI,YAAa8X,IACzB,IAAM2B,EAAUH,GAAQE,gBAAgBtb,KAAKkH,cACvCsU,EAAa5B,GAAW6B,WAAU,SAAA3a,GAAM,OAAIA,EAAOgZ,SAAS5S,gBAAkBqU,CAAO,IAG3F,GAAIC,GAAc,EAAG,CACpB,IAAME,EAAW9B,GAAW4B,GAAYnB,MASxC,IAASxS,MART+R,GAAW4B,GAAYnB,MAAQ,CAC9B,CACC,MAAS,oBACT,KAAQ,UACR,UAAY,IAIKqB,EAClB9B,GAAW4B,GAAYnB,MAAM3S,KAAKgU,EAAS7T,KAQ5C,OALA+R,GAAW4B,GAAYlB,YAAa,EAEpCzY,QAAQC,IAAI,mBAAoB8X,GAAW4B,IAG3C,UACD,CAAC,CAVe,GASf,SAKuB,YAAnBJ,GAAQjP,SAKe,YAAzBiP,GAAQC,cACiB,cAAzBD,GAAQC,cAKVrC,EAAiBtR,KAAK0T,IACxB,CAG8B,IAA5BpC,EAAiBzT,QACY,IAA7BuT,EAAkBvT,QACI,IAAtBqU,GAAWrU,QAEX4S,GAA8B,GAGhCc,EAAoBD,GACpBD,EAAqBD,GACrBD,EAAmBe,GACtB,CAEC,GAAI3B,EAAkB1S,SAAW2T,EAAa3T,OAAQ,CACpD,IAAIqU,GAAa,GACjB,IAAK,IAAI+B,MAAa/C,EAAiB,CACrC,IAAIiB,GACEpN,IADFoN,GAAYjB,EAAgB+C,KACVlP,IAEtB,IAAK,IAAIzF,MAAOiR,EAAmB,CACjC,IAAM4C,GAAO5C,EAAkBjR,IAG/B,GAAI6T,GAAKpO,IAAIzM,OAASyM,GAAIzM,OAAwB,IAAhB6a,GAAKC,OAAiB,CACtDjB,GAAUK,WAAY,EACtB,KACF,CACF,CAEAN,GAAWlS,KAAKmS,GAClB,CAEAhB,EAAmBe,IACnBT,EAAgBlB,EAGlB,CAEA,IAAM2D,GAAiB,SAACze,GACtB,IAAQie,EAAYje,EAAZie,QAER,OACE,eAACS,EAAA,EAAQ,WACP,cAACC,EAAA,EAAc,UACb,cAACC,EAAA,EAAM,CAAC1Z,QAAQ,UAAS,SACvB,qBACEL,IAAKoZ,EAAQra,MACbkB,IAAKmZ,EAAQnM,YACb1U,MAAO,CAAEuF,MAAO,UAItB,cAACkc,EAAA,EAAY,CACXrhB,QAASygB,EAAQpb,KACjBnF,UAAWugB,EAAQ/L,YACnB9U,MAAO,CAAC,IAEgB,YAAzB6gB,EAAQC,cAAiD,YAAnBD,EAAQjP,OAC7C,cAACuE,EAAA,EAAM,CACLwE,SAA6B,YAAnBkG,EAAQjP,OAClBvQ,MAAM,UACNyG,QAAQ,YACR3B,QAAS,WACPsX,EAASmD,SAASC,EAAQ7b,OAAO4M,OAAS,UACU,OAAhD6L,EAASmD,SAASC,EAAQ7b,OAAOoU,aACnCqE,EAASmD,SAASC,EAAQ7b,OAAOoU,WAAa,CAC5C,CACE3T,KAAM,MACN0D,MAAO6U,EAAe,WAAa6C,EAAQxhB,IAE7C,CAAEoG,KAAM,MAAO0D,MAAO,WAAa0X,EAAQxhB,MAI/Cye,EAAWL,EAASmD,SAASC,EAAQ7b,QACrC6Y,EAAaJ,GACbqB,IAAe,EACjB,EAAE,SAEkB,YAAnB+B,EAAQjP,OAAuB,QAAU,YAEjB,aAAzBiP,EAAQC,cACS,YAAnBD,EAAQjP,OACR,cAACuE,EAAA,EAAM,CACLwE,SAA6B,YAAnBkG,EAAQjP,OAClBvQ,MAAM,UACNyG,QAAQ,YACR3B,QAAS,WACPsX,EAASmD,SAASC,EAAQ7b,OAAO4M,OAAS,UACU,OAAhD6L,EAASmD,SAASC,EAAQ7b,OAAOoU,aACnCqE,EAASmD,SAASC,EAAQ7b,OAAOoU,WAAa,CAC5C,CAAE3T,KAAM,OAAQ0D,MAAO1F,EAAU,eAAiB,OAClD,CACEgC,KAAM,qBACN0D,MAAO,sCAKb4U,EAAeN,EAASmD,SAASC,EAAQ7b,OAAQ6b,EAAQ7b,OACzD6Y,EAAaJ,GACbqB,IAAe,EACjB,EAAE,SAEkB,YAAnB+B,EAAQjP,OAAuB,QAAU,YAE1C,OAoCV,EAEM8P,GAAkB,SAAC9e,GACvB,IAAQ+d,EAAa/d,EAAb+d,SAGR,OACE,eAACW,EAAA,EAAQ,WACP,cAACC,EAAA,EAAc,UACb,cAACC,EAAA,EAAM,UACL,cAACG,GAAA,EAAkB,QAGvB,cAACF,EAAA,EAAY,CACXrhB,QAASugB,EAASlb,KAClBnF,UAAWqgB,EAAS7L,YACpB9U,MAAO,CAAC,IAEV,cAACyhB,EAAA,EAAY,CACXrhB,QACE,cAACoI,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAc,GAEhB8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,EACZC,SAAU,MACVC,SAAU,OAEZyb,aAAc,cAACrU,EAAA,EAAc,CAACxD,SAAS,SAEzCoD,WAAS,EACTpH,MAAM,UACNb,KAAM,OACNwI,YAAW,wBAAmB2X,EAASlb,MACvCwD,SAAU,SAAC5C,GACTiB,QAAQC,IACN,qBACAoZ,EAAS3b,MACT2b,EAASxX,MAEb,EACAyY,OAAQ,SAACvb,GACPoX,EAASiD,mBAAmBC,EAAS3b,OAAOmE,MAC1C9C,EAAM2R,OAAO7O,KACjB,IAGJnJ,MAAO,CAAC,MAIhB,EA4DM6hB,GAAa,SAACjf,GAClB,IAAQ2D,EAAW3D,EAAX2D,OAER,OACE,eAAC+a,EAAA,EAAQ,WAiBN/a,EAAOmZ,kBACV,eAACvJ,EAAA,EAAM,CACD1N,WAAS,EACTX,QAAQ,YACb6S,SAAUpU,EAAOoZ,UACZ3f,MAAO,CACLiV,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChB9I,gBAAiBoF,EAAOoZ,UAAY1f,EAAME,QAAQM,aAAeR,EAAME,QAAQO,WAC/EW,MAAOkF,EAAOoZ,UAAY,UAAY,UAC5C/e,aAAcX,EAAME,QAAQS,aAC5BgH,SAAU,IACV/C,UAAW,GACXS,SAAU,SACVtE,OAAO,aAAD,OAAef,EAAME,QAAQO,aAE/BW,MAAM,UACN8E,QAAS,WACL8X,EACqC,WAAnC1X,EAAO2L,IAAIgO,eAAe1f,WACmBuD,IAA3CwC,EAAO2L,IAAIgO,eAAe6B,cACiB,OAA3Cxb,EAAO2L,IAAIgO,eAAe6B,aACxB,CACEvhB,KAAM,SACNuhB,aAAcxb,EAAO2L,IAAIgO,eAAe6B,aACxCC,UAAWzb,EAAO2L,IAAIgO,eAAe8B,UACrCC,MAAO1b,EAAO2L,IAAIgO,eAAe+B,OAEnC,CACEzhB,KAAM,KAIdse,IAAe,QAEG/a,IAAtB+K,GACKA,EAAkBvI,EAAOA,aAGXxC,IAAnBkK,GACKA,EAAe1H,EAAO2L,KAGvByL,GAA2B,EAC/B,EAAE,UAER,qBACClW,IAAKlB,EAAOgZ,SACZvf,MAAO,CAAEyJ,OAAQ,EAAGnI,UAAW,GAAIuD,UAAW,GAAIjE,aAAcX,EAAME,QAAQS,cAC9E8G,IAAKnB,EAAOmO,cAEb,cAAC7M,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,IAAMuG,QAAQ,QAAO,SAC/DvB,EAAOoZ,UAAY,gBAAe,uBAAmBpZ,EAAOgZ,SAASzZ,WAAW,IAAK,WAGlF,KACNS,EAAOsZ,iBAAmBtZ,EAAOwO,YAC5B,eAACoB,EAAA,EAAM,CACX1N,WAAS,EACTX,QAAQ,YACR6S,SAAUpU,EAAOoZ,UACjB3f,MAAO,CACNiV,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChB9I,gBAAiBoF,EAAOoZ,UAAY1f,EAAME,QAAQM,aAAeR,EAAME,QAAQO,WAC/EW,MAAOkF,EAAOoZ,UAAY,UAAY,UACtC/e,aAAcX,EAAME,QAAQS,aAC5BgH,SAAU,IACV/C,UAAW,GACXS,SAAU,SACVtE,OAAO,aAAD,OAAef,EAAME,QAAQO,aAEpCW,MAAM,UACN8E,QAAS,SAACE,GAIT,GAHAA,EAAMsE,iBACNrD,QAAQC,IAAI,mBAAoBhB,EAAOsZ,gBAEd,OAArBpC,EAASlL,QAAkB,CAG9B,IAAK,IAAI9F,KADTmB,EAAM+E,KAAK,6BAA6BpM,EAAOsZ,gBAC/BpC,EAASlL,QACpBkL,EAASlL,QAAQ9F,GAAK8S,WAAahZ,EAAOgZ,UAAY9B,EAASlL,QAAQ9F,GAAKsI,cAAgBxO,EAAOwO,cACtG0I,EAASlL,QAAQ9F,GAAKsI,YAAcxO,EAAOsZ,eAEtChB,IACJC,IAAe,IAKlBvY,EAAOkZ,eAAgB,EACvBlZ,EAAOsZ,eAAiBtZ,EAAOwO,WAChC,CACK,EAAE,UAER,qBACCtN,IAAKlB,EAAOgZ,SACZvf,MAAO,CAAEyJ,OAAQ,EAAGnI,UAAW,GAAIuD,UAAW,GAAIjE,aAAcX,EAAME,QAAQS,cAC9E8G,IAAKnB,EAAOmO,cAEb,eAAC7M,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,IAAMuG,QAAQ,QAAO,+BAC7CvB,EAAOsZ,qBAI5BtZ,EAAOkZ,cACN,eAACtJ,EAAA,EAAM,CACL1N,WAAS,EACTX,QAAQ,YACR6S,SAAUpU,EAAOoZ,UACjB3f,MAAO,CACNiV,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChB9I,gBAAiBoF,EAAOoZ,UAAY1f,EAAME,QAAQM,aAAeR,EAAME,QAAQO,WAC/EW,MAAOkF,EAAOoZ,UAAY,UAAY,UACtC/e,aAAcX,EAAME,QAAQS,aAC5BgH,SAAU,IACV/C,UAAW,GACXS,SAAU,SACVtE,OAAO,aAAD,OAAef,EAAME,QAAQO,aAEpCW,MAAM,UACN8E,QAAS,WACRmB,QAAQC,IAAI,WAAYhB,GAhNX,SAACgV,EAAQgE,EAAUxK,GAEvC,QAAWhR,IAAP0C,IAAkB,CACrBA,IAAG,OAAQ,CACTC,MAAO,aACPC,OAAQ,qCAGV,IAAMG,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,aACXC,UAAW,uBACXlC,MAAO,YACPmC,UAAW,CAACoU,GACZzU,UAAWA,EACXO,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,KAGtH,CAEEkS,MAAM,GAAD,OACArO,EAAS,wBAAgBqY,EAAM,8BAAsBgE,EAAQ,wBAAgBxK,GAChF,CACEvD,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAGd1S,MAAK,SAAC2S,GAML,OALIA,EAASC,OAKND,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACwB,IAAzBA,EAAae,aACY9O,IAAxB+N,EAAasJ,OACfxN,EAAM6E,MAAM,+BAA+BX,EAAasJ,QAExDxN,EAAM6E,MAAM,8BAGb7E,EAAMiF,QAAQ,uCAElB,IACCL,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CA2JO6V,CAAY3b,EAAOA,OAAOgV,OAAQhV,EAAOgZ,SAAUhZ,EAAOwO,aAC1D+J,IAAe,EAChB,EAAE,UAEJ,qBACCrX,IAAKlB,EAAOgZ,SACZvf,MAAO,CAAEyJ,OAAQ,EAAGnI,UAAW,GAAIuD,UAAW,GAAIjE,aAAcX,EAAME,QAAQS,cAC9E8G,IAAKnB,EAAOmO,cAEb,cAAC7M,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,IAAMuG,QAAQ,QAAO,yBAKnE,OAIF,EAKKqa,GAAe,SAACvf,GACrB,IAAO/C,EAAwE+C,EAAxE/C,KAAMuiB,EAAkExf,EAAlEwf,QAASC,EAAyDzf,EAAzDyf,QAASrd,EAAgDpC,EAAhDoC,MAAOsd,EAAyC1f,EAAzC0f,WAAYC,EAA6B3f,EAA7B2f,cAAeC,EAAc5f,EAAd4f,SAEjE,EAA8Bre,oBAAS,GAAM,mBAAtCse,EAAO,KAAEC,EAAU,KAC1B,EAA4Bve,oBAAS,GAAM,mBAApCwe,EAAM,KAAEC,EAAS,KACxB,EAAkCze,oBAAS,GAAM,mBAA1CuK,EAAS,KAAEC,EAAY,KAK1BkU,EAAU,CACb,KAAQ,WACR,YAAc,0EAAD,OAA4ET,EAAO,8CAChG,IAAO,IAiBR,GAdA/Z,qBAAU,WACS,YAAdxI,EAAKW,MAAuBgiB,GAC1BtD,KACJC,IAAgB,GACfjO,KAGJ,GAAG,IAOe,YAAdrR,EAAKW,WAA4CuD,IAAtB0Z,EAASmD,UAAgD,OAAtBnD,EAASmD,UAE1E,IAAK,IAAInU,KAAOgR,EAASmD,SACxB,GAA4C,YAAxCnD,EAASmD,SAASnU,GAAKqU,aAI3B,IAAK,IAAIxT,KAAUmQ,EAASmD,SAASnU,GAAK2M,WAAY,CACrD,IAAM0J,EAAQrF,EAASmD,SAASnU,GAAK2M,WAAW9L,GAChD,GAAmB,QAAfwV,EAAMrd,KAAgB,CACzBod,EAAQhP,IAAMiP,EAAM3Z,OAEF,IAAduF,GACHC,GAAa,GAEd,KACD,CACD,OAES9O,EAAKW,KAIhB,OACC,sBAAKR,MAAO,CAACmB,gBAAiBshB,EAAUxiB,EAAME,QAAQO,WAAa,UAAWO,QAAS,sBAAuB8hB,UAAW,oCACxH5c,QAAS,WACRyc,GAAWD,GACXJ,EAAcvd,EACf,EACAiB,YAAa,WACZyc,GAAW,EACZ,EACAxc,WAAY,WACXwc,GAAW,EACZ,EAAE,UAGF,sBAAK1iB,MAAO,CAACwH,QAAS,QAAQ,UAC1B,cAACK,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACiV,KAAM,IAAM,SAAEpV,EAAKuE,QACtDoe,EACA,cAACQ,GAAA,EAAsB,CAAChjB,MAAO,CAACqB,MAAO,UAAW4T,KAAM,KAExD,cAAC,KAAS,CAACjV,MAAO,CAACqB,MAAO,UAAW4T,KAAM,QAI5CqN,IAAetd,EACf,8BACgB,YAAdnF,EAAKW,KACL,sBAAK2F,QAAS,SAACE,GACdA,EAAMsE,iBACNrD,QAAQC,IAAI,mBAEZ,IAAI0b,EAAW7R,SAASsE,eAAe,wBACvC,QAAiB3R,IAAbkf,GAAuC,OAAbA,EAAmB,CAGhD,GAFA3b,QAAQC,IAAI,cAAe2b,gBAETnf,IADAmf,UAAUC,UAG3B,YADAvV,EAAM6E,MAAM,wCAIbyQ,UAAUC,UAAUC,UAAUP,EAAQhP,KACtCoP,EAASI,SACTJ,EAASK,kBACR,EACA,OAIDlS,SAASmS,YAAY,QACrB3V,EAAMiF,QAAQ,qBACf,CACD,EAAE,UACD,cAAChL,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAAEwhB,EAAQ/N,cAE1DpG,IAA0B,IAAb8T,EACb,qBAAKxiB,MAAO,CAACyJ,OAAQ,OAAQlE,MAAO,GAAIoD,OAAQ,GAAIZ,UAAW,GAAK,SACnE,cAAC8S,EAAA,EAAgB,MAGlB,QAIF,cAACgH,GAAU,CAAatb,OAAQ8b,GAAfrd,KAGlB,OAIL,EAEMwe,GAAa,SAAC5gB,GACnB,IAAO/C,EAAqB+C,EAArB/C,KACP,GAD4B+C,EAAf6gB,YACiBtf,oBAAS,IAAK,mBAArCuf,EAAO,KACd,GAD0B,KACIvf,oBAAS,IAAM,mBAAtCse,EAAO,KAAEC,EAAU,KAC1B,EAAoCve,mBAAS,GAAE,mBAAxCme,EAAU,KAAEC,EAAa,KAChC,EAAgCpe,oBAAS,GAAK,mBAAvCwf,EAAQ,KAAEC,EAAW,KAC5B,EAAsCzf,mBAAS,GAAE,mBAA1C0f,EAAW,KAAEC,EAAc,KAElC,OACC,sBAAK9jB,MAAO,CAACmB,gBAAiBshB,EAAUxiB,EAAME,QAAQO,WAAa,UAAWM,OAAQ,kCAAmCJ,aAAcX,EAAME,QAAQS,aAAcwE,OAAQ,WAAa,UAEvL,sBAAKpF,MAAO,CAACwH,QAAS,OAAQjG,WAAY,GAAIwG,UAAW,GAAIuJ,aAAc,IAC1EnL,QAAS,WACR,EAEDF,YAAa,WACZyc,GAAW,EACZ,EACAxc,WAAY,WACXwc,GAAW,EACZ,EAAE,UAEF,cAAClB,EAAA,EAAM,CAAC1Z,QAAQ,UAAU9H,MAAO,CAAC,EAAE,SACnC,qBACCyH,IAAK5H,EAAK2G,MACVkB,IAAK7H,EAAK6U,YACV1U,MAAO,CAAEuF,MAAO,QAGlB,eAACsC,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACuB,WAAY,IAAM,uBACvC1B,EAAK0f,SAASzZ,WAAW,IAAK,YAG9B,IAAZ4d,EACA7jB,EAAKigB,MAAMrhB,KAAI,SAACslB,EAAM/e,GACrB,IAAIwd,GAAW,EAkCf,GAjCkB,aAAduB,EAAKvjB,OACqB,IAAzBX,EAAK2f,kBACRgD,GAAW,EAEPxd,IAAUsd,IAA2B,IAAbqB,GAC3BpB,EAAcD,EAAW,GAGtBqB,GACHG,EAAeD,EAAY,IAKZ,iBAAdE,EAAKvjB,OACR8G,QAAQC,IAAI,cAAewc,IACI,IAA3BlkB,EAAK6f,kBACR8C,GAAW,GAEkB,IAAzB3iB,EAAK2f,kBAA+C,IAAnB3f,EAAK8f,YACzC6C,GAAW,EAEPmB,GACHG,EAAeD,EAAY,GAGxB7e,IAAUsd,IAA2B,IAAbqB,GAC3BpB,EAAcD,EAAW,KAMX,YAAdyB,EAAKvjB,KACR,IAAK,IAAIiM,KAAO0R,EAAoB,CACnC,IAAM6F,EAAO7F,EAAmB1R,GAChC,QAAgC1I,IAA5BigB,EAAKC,oBAAgE,OAA5BD,EAAKC,oBAA+BD,EAAKC,mBAAmBjZ,OAAS,GAA+B,YAA1BgZ,EAAKE,iBAAgC,CAG3J1B,GAAW,EACPxd,IAAUsd,IAA2B,IAAbqB,GAC3BpB,EAAcD,EAAW,GAItBqB,GACHG,EAAeD,EAAY,GAK5B1S,KAMA,KACD,CACD,CAOD,OAJiB,IAAbwS,GAAqB3e,IAAUnF,EAAKigB,MAAM9U,OAAO,GACpD4Y,GAAY,GAIZ,cAACzB,GAAY,CAACE,QAASxiB,EAAMuiB,QAAS,QAAqBviB,KAAMkkB,EAAM/e,MAAOA,EAAOsd,WAAYA,EAAYC,cAAeA,EAAeC,SAAUA,GAAjGxd,EAEtD,IACC,OAGL,EAGC,OACE,gCACD,qBAAKhF,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,OAAQ4e,WAAW,6BAAD,OAHnC,oBAG8E9e,SAAU,cAEvG,sBAAKrF,MAAO,CAACyJ,OAAQ,sBAAuB5E,UAAW,KAAO,UAC1D,cAACgD,EAAA,EAAU,CAACC,QAAQ,KAAI,SAAE2V,EAAShY,OACnC,cAACoC,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,+EAGhDgd,EAAgBrT,OAAS,EACxB,iCACE,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAM,8BAItD,cAACqc,EAAA,EAAI,UACF/F,EAAgB5f,KAAI,SAACoB,EAAMmF,GAC1B,OACN,mCACiBjB,IAAflE,EAAKigB,OAAsC,OAAfjgB,EAAKigB,QAAsC,IAApBjgB,EAAKkgB,WACxD,cAACyD,GAAU,CAAC3jB,KAAMA,EAAM4jB,YAAaze,IAErC,cAAC6c,GAAU,CAAatb,OAAQ1G,GAAfmF,IAIf,SAGF,KAEHuZ,EAAkBvT,OAAS,EAC1B,iCACE,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,uBAGrD,cAACqc,EAAA,EAAI,UACF7F,EAAkB9f,KAAI,SAACoB,EAAMmF,GAC5B,OAAO,cAAC0c,GAAe,CAAaf,SAAU9gB,GAAjBmF,EAC/B,SAGF,KAEHyZ,EAAiBzT,OAAS,IAAsB,IAAjBkT,EAC9B,iCACE,cAACrW,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,sBAGrD,cAACqc,EAAA,EAAI,UACF3F,EAAiBhgB,KAAI,SAACoB,EAAMmF,GAC3B,OAAO,cAACqc,GAAc,CAAaR,QAAShhB,GAAhBmF,EAC9B,SAGF,KAEP,qBAAKhF,MAAO,CAAEmF,UAAW,SAAUqC,QAAS,OAAQO,UAAW,IAAK,SAClEiX,GACA,qBAAK3f,GAAG,eAAeqI,IAAI,uBAAuBD,IAAI,8BAA8BzH,MAAO,CAACuF,MAAO,IAAKkE,OAAQ,QAAUkL,OAAQ,WACjIrN,QAAQC,IAAI,eACZoV,YAAW,WACVrV,QAAQC,IAAI,gBACZqW,GAA8B,EAC/B,GAAG,KAEJ,IAEA,cAACyG,EAAA,EAAW,CAACrkB,MAAO,CAAEyJ,OAAQ,QAAS,SAStC,cAAC0M,EAAA,EAAM,CACN9U,MAAM,gBACNyG,QAAS,WACT9H,MAAO,CAAC,EACRmG,QAAS,WACRgL,KACA8N,IAAyB,GACzBtC,YAAW,WACNkC,SACkB9a,IAAjB8Z,IACHA,EAAaJ,GACb9Z,OAAOC,SAAS0gB,SAKnB,GAAG,IACJ,EAAE,+BAUV,E,2CC/hCMC,GAAY,CAChB/H,WAAY,CACVxc,MAAO,CACL6E,UAAW2f,MACX5c,SAAU,IACVpG,SAAU,IACVijB,QAAS,SAGb3c,QAAS,OACT4c,mBAAoB,MAGhBC,GAAiB,CACtB,QACA,QACA,QACA,YACA,gBACA,oBACA,kBACA,8BACA,UACA,qBACA,0BAowBcC,GAjwBc,SAAChiB,GAcxBA,EAZFib,aAFqC,IAAD,IAGpC7P,EAWEpL,EAXFoL,YACAyP,EAUE7a,EAVF6a,SACA5O,EASEjM,EATFiM,eACAgW,EAQEjiB,EARFiiB,mBACAC,EAOEliB,EAPFkiB,qBAIAnH,GAGE/a,EANF8a,kBAME9a,EALFkM,kBAKElM,EAJFmiB,cAIEniB,EAHF+a,4BACFla,EAEIb,EAFJa,QACAuhB,EACIpiB,EADJoiB,SAIA,EAAgD9gB,IAAMC,cACnBJ,IAAjC8gB,EAAmBI,WACgB,OAAjCJ,EAAmBI,WACnBJ,EAAmBI,UAAUja,OAAS,QACDjH,IAArC8gB,EAAmBK,eACkB,OAArCL,EAAmBK,eACnBL,EAAmBK,cAAcla,OAAS,GAC7C,mBAPMma,EAAgB,KASvB,GAT4C,KASZjhB,IAAMC,SACpCghB,EAAmBN,EAAmBI,UAAY,KACnD,mBAFMG,EAAQ,KAAEC,EAAW,KAG5B,EAAwCnhB,IAAMC,SAC5CghB,EAAmBN,EAAmBK,cAAgB,IACvD,mBAFMI,EAAY,KAAEC,EAAe,KAGpC,EAAgCrhB,IAAMC,SAAS,IAAG,mBAA3CqhB,EAAQ,KAAEC,EAAW,KAC5B,EAA0CvhB,IAAMC,UAAS,GAAM,mBAAxDuhB,EAAa,KAAEC,EAAgB,KAEtC,EAA0CzhB,IAAMC,UAAS,GAAK,mBAAvDyhB,EAAa,KAAEC,EAAgB,KAChCC,OACyB/hB,IAA7B8gB,EAAmB5C,MAAsB4C,EAAmB5C,MAAQ,GAEvE3a,QAAQC,IAAI,cAAeue,GAC1B,MAA4C5hB,IAAMC,SAA8B,IAArB2hB,EAAU9a,OAAe,CAAC8a,EAAU,IAAM,IAAG,mBAAjGC,EAAc,KAAEC,EAAiB,KACxC,EAAkD9hB,IAAMC,UACtDghB,GACD,mBAFMc,EAAiB,KAAEC,GAAoB,KAG9C,GAAyDhiB,IAAMC,SAAS,CACtE+N,IAAKe,KAAKC,MAAMD,KAAKS,UAAU1F,IAC/BmY,OAAQ,CAAC,EACT3f,MAAO,GACP4f,MAAO,CACL,CACEC,YAAa5I,EAASpe,KAG1BA,GAAIinB,cACJ/F,QAAQ,IACR,qBAXKgG,GAAoB,MAA0B,MAoBrD,GAPDle,qBAAU,WACTf,QAAQC,IAAI,qDACK,IAAbyd,QAAqCjhB,IAAhBiK,GACxBwY,IAEF,GAAG,SAEiCziB,IAA/BiK,EAAYkS,eACd,OAAO,KAGV,IAAMsG,GAAqB,SAACC,GAC3Bnf,QAAQC,IAAI,QAASyG,GACiB,iBAAlCA,EAAYvI,KAAKkH,eAAsE,qBAAlCqB,EAAYvI,KAAKkH,cACzE+Z,GAEC,uCACA,GACA,8BACA,CAAC,kBACDD,GAE2C,SAAlCzY,EAAYvI,KAAKkH,cAC3B+Z,GACC,2EACA,GACA,+BACA,CAAC,+CACA,6CACA,+CACA,iDACDD,GAE2C,aAAlCzY,EAAYvI,KAAKkH,cAC3B+Z,GACC,sCACA,GACA,wBACA,CAAC,oBACD,sBACA,sBACA,uBACAD,GAE2C,SAAlCzY,EAAYvI,KAAKkH,cAC3B+Z,GACC,6BACA,GACA,oBACA,CAAC,QAAS,aAAc,UAAW,WAAY,cAAe,kBAAmB,oBACjFD,GAE2C,SAAlCzY,EAAYvI,KAAKkH,cAC3B+Z,GACC,oEACA,GACA,wBACA,CAAC,aACDD,GAESzY,EAAYvI,KAAKkH,cAAcR,SAAS,mBAClDua,GACC,uCACA,GACA,8BACA,CAAC,sBAAuB,0BAA2B,sBAAuB,cAAe,iBAAkB,aAC3GD,GAESzY,EAAYvI,KAAKkH,cAAcR,SAAS,WAClDua,GACC,mCACA,GACA,0BACA,CAAC,YACDD,GAESzY,EAAYvI,KAAKkH,cAAcR,SAAS,sBAClDua,GACC,uCACA,GACA,+BACA,CAAC,mDACDD,GAESzY,EAAYvI,KAAKkH,cAAcR,SAAS,2BAClDua,GACC,uCACA,GACA,8BACA,CAAC,gCACDD,EAGH,EAGOC,GAAsB,SAACzB,EAAWC,EAAeyB,EAAWC,EAAQH,GACxEd,GAAiB,GACjBre,QAAQC,IAAI,WAAYqf,GAE1B3B,EAAYA,EAAU4B,OACtB3B,EAAgBA,EAAc2B,OAC9BF,EAAYA,EAAUE,OAEpB,IAAIC,EAAY,QACD/iB,IAAX6iB,GAAoC,OAAXA,EAAoBA,EAAO5b,OAAS,KAC5C,IAAlB4a,GAA2BgB,EAAOza,SAAS,mBAC1C0Y,EAAmB9C,aAAa5V,SAAS,eAC5C7E,QAAQC,IAAI,4BACZqf,EAAOzZ,KAAK,mBAIX2Z,EAAYF,EAAOra,KAAK,MAI1B,IAAMwa,EAAqBlC,EAAmB7C,UAGxCgF,EAAW,UAAMrjB,OAAOC,SAASqjB,SAAQ,aAAKtjB,OAAOC,SAASC,KAAI,uBACpEqjB,EAAK,wBAAoBzJ,EAASpe,GAAE,oCAA4BwP,EAAe0M,OAAM,yBAAiB1M,EAAe0Q,SAAQ,uBAAe1Q,EAAe0M,OAAM,4BAAoB1M,EAAekG,YAAW,mCAA2BgS,EAAkB,sBAAcD,EAAS,0BAAkB7B,EAAS,8BAAsBC,QACtTnhB,IAAd4iB,GAAyC,OAAdA,GAAsBA,EAAU3b,OAAS,IACtEkc,GAAK,yBAAsBP,GAC3Brf,QAAQC,IAAI,sBAAuB2f,SAIAnjB,IAAnC8gB,EAAmBsC,aACgB,OAAnCtC,EAAmBsC,aACnBtC,EAAmBsC,YAAYnc,OAAS,EAExCkc,GAAK,2BAAwBrC,EAAmBsC,aAEhDD,GAAK,2BAAwBH,GAI/B,IAAIlT,EAAG,UAAMgR,EAAmB9C,aAAY,sBAAckD,EAAS,yBAAiB+B,EAAW,kDAA0CF,EAAS,kBAAUI,EAAK,yBAC7I,IAAlBT,IACHnf,QAAQC,IAAI,qCAEVsM,EAAG,UAAMgR,EAAmB9C,aAAY,sBAAckD,EAAS,yBAAiB+B,EAAW,0DAAkDF,EAAS,kBAAUI,EAAK,yBActK,IACE,IAAIE,EAASzjB,OAAO2Y,KAAKzI,EAAK,GAAI,wBAI5BwT,EAAQC,aAAY,WACpBF,EAAOG,QACdjgB,QAAQC,IAAI,iBAEuBxD,IAA/B4Z,GACHA,GAA2B,GAGvBgI,GAAiB,GACjB6B,cAAcH,GAGdvC,GAAqB,GAAM,IAEhCxd,QAAQC,IAAI,aAEX,GAAG,IAiBL,CALE,MAAOtI,GACP2O,MAAM6E,MACJ,+DAEFkT,GAAiB,EACnB,CAKF,EAIA,IAAK,IAAIlZ,MAFT8Z,GAAqBrU,IAAIK,QAAU,GAEnBvE,EAAYkS,eAAe9G,gBAIjCrV,IAFNwiB,GAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,IAAKhH,QAG7C8gB,GAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,IAAKhH,MACzC,IA4GR,OAPiC,OAA/B8gB,GAAqB/f,YACUzC,IAA/BwiB,GAAqB/f,QAErB+f,GAAqB/f,MAAQwH,EAAYvI,KAAO,mBAKhD,gCACE,cAACgX,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEqB,MAAO,SAAU,gCACT2M,EAAYvI,UAGpC,eAACiX,GAAA,EAAa,WACZ,uBAAM1c,MAAO,CAAC,EAAE,wHAC+F,uEAA6C,IAC1J,oBACEgY,OAAO,SACPS,IAAI,aACJC,KAAK,+CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,UAEnD,IAAG,0CAGN,2BAGLoC,GAAWkhB,GAAexY,SAAS6B,EAAYvI,KAAKkH,eACpD,iCACC,uBAAM3M,MAAO,CAACwH,QAAS,QAAQ,UAC9B,cAAC2O,EAAA,GAAM,GACD1N,WAAS,EACTX,QAAQ,YACR9H,MAAO,CACXsR,aAAc,GACdvJ,UAAW,GACLkN,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChB9I,gBAAiB,UACjBE,MAAO,UACbT,aAAcX,EAAME,QAAQS,aAC5BgH,SAAW,IACXpG,SAAU,IACVqD,UAAW,GACXS,SAAU,SACVtE,OAAO,aAAD,OAAef,EAAME,QAAQO,aAE/BW,MAAM,UACNsZ,SACE2K,EAAata,OAAS,GAAKoa,EAASpa,OAAS,GACnD,uDAEQ,WAGRwb,IACD,IAAC,sBACK,WAAS,yBAEdd,EACA,cAAC7K,EAAA,EAAgB,CAAC7a,MAAO,CAAEqB,MAAO,UAAWkE,MAAO,GAAIoD,OAAQ,GAAIc,OAAQ,UAE5E,uBAAMzJ,MAAO,CAACwH,QAAS,QAAQ,UAC9B,qBACCC,IAAKoH,EAAe0Q,SACpBvf,MAAO,CAAEyJ,OAAQ,EAAGnI,UAAW,GAAIuD,UAAW,GAAIjE,aAAcX,EAAME,QAAQS,cAC9E8G,IAAKmH,EAAe6F,cAErB,cAAC7M,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,GAAIwG,UAAW,GAAKD,QAAQ,QAAO,mCAIhF,IAED4d,EACA,KAEA,cAAC/P,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,sBACPoV,UAAU,MAAK,SAEf,cAACrD,EAAA,GAAM,GACN1N,WAAS,EACTX,QAAQ,WACR9H,MAAO,CACNwB,SAAU,GACV8P,aAAc,GACdvJ,UAAW,GACXlD,UAAW,IAEZxD,MAAM,UACNsZ,SACC2K,EAAata,OAAS,GAAKoa,EAASpa,OAAS,GAC7C,uDAEQ,WAGRwb,IAAmB,EACpB,IAAC,sBACK,WAAS,yBAEf,cAACiB,GAAA,EAAqB,KAAG,SAK7B,cAAC5f,EAAA,EAAU,CAAC7H,MAAO,CAACmF,UAAW,SAAU4C,UAAW,EAAGuJ,aAAc,IAAM,mBAI3E,KAuBI2U,EACA,iCACGjY,EAAYkS,eAAe9G,WAAW3a,KAAI,SAACoB,EAAMmF,GAEhD,MAAkB,cAAdnF,EAAK4F,MAAsC,kBAAd5F,EAAK4F,MAIpB,QAAd5F,EAAK4F,KAHA,MAOe,IAApB+f,EAASxa,QACXya,EAAY5lB,EAAKsJ,OAIjB,sBAAiBnJ,MAAO,CAAE+H,UAAW,IAAK,UACxC,cAAC,KAAY,CAAC/H,MAAO,CAAE0L,YAAa,MACpC,4BAAI7L,EAAK4F,YAEQ1B,IAAhBlE,EAAK6nB,QACU,OAAhB7nB,EAAK6nB,QACgB,SAArB7nB,EAAK6nB,OAAOlnB,KACV,eAACuX,GAAA,EAAM,CACLS,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBwH,aAAc,QACdN,WAAS,EACTQ,SAAU,SAAChK,GACTqI,QAAQC,IAAI,UAAWtI,EAAE+Y,OAAO7O,OAChCod,GAAqBJ,OAAOtmB,EAAK4F,MAAQxG,EAAE+Y,OAAO7O,KACpD,EACAnJ,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPsH,OAAQ,IACR,UAEF,cAAC4O,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,QAAQ,kBALV,SASP,cAACoO,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,OAAO,iBALT,WAWT,cAACX,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTjI,UACmBuD,IAAjBlE,EAAKsX,SACLtX,EAAKsX,QAAQhL,SAAS,OAClB,WACA,OAEN9K,MAAM,UACN0H,kBACiBhF,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,MAC7BtJ,EAAKsJ,MACL,GAENH,YAAanJ,EAAKsX,QAClBlO,SAAU,SAAC5C,GACTkgB,GAAqBJ,OAAOtmB,EAAK4F,MAC/BY,EAAM2R,OAAO7O,MACf7B,QAAQC,IAAI,qBACZke,EAAYpf,EAAM2R,OAAO7O,MAE3B,MAjFInE,GAsFd,IACA,cAACwD,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,MACVkH,OAAQ,SAGZF,WAAS,EACTpH,MAAM,UACN2H,YAAa,YACbC,SAAU,SAAC5C,GACTgf,EAAYhf,EAAM2R,OAAO7O,MAE3B,IAEF,cAACX,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,aACpC0Q,aAAc,IAER5I,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,MACVkH,OAAQ,SAGZF,WAAS,EACTpH,MAAM,UACN2H,YAAa,gBACbC,SAAU,SAAC5C,GACTkf,EAAgBlf,EAAM2R,OAAO7O,MAE/B,IAEoB,IAArB2c,EAAU9a,OAAe,KAC/B,sBAAKhL,MAAO,CAACuF,MAAO,OAAQwC,UAAW,GAAIP,QAAS,QAAQ,UAC3D,0CAEC,cAACuQ,GAAA,EAAM,CACNuF,UAAQ,EACRnU,MAAO4c,EACP/lB,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPJ,QAAS,EACT2G,SAAU,IACVpG,SAAU,KAEXyH,SAAU,SAAChK,IA3TO,SAACoH,GACzB,IACY8C,EACR9C,EADF2R,OAAU7O,MAGZ7B,QAAQC,IAAI,UAAW4B,GAGvB6c,EAAmC,kBAAV7c,EAAqBA,EAAM8C,MAAM,KAAO9C,EACnE,CAmTSwe,CAAkB1oB,EACnB,EACAwJ,WAAS,EACTmf,MAAO,cAACC,GAAA,EAAK,CAACxoB,GAAG,2BACjByoB,YAAa,SAACC,GAAQ,OAAKA,EAASxb,KAAK,KAAK,EAC9CgY,UAAWA,GAAU,SAEpBuB,EAAUrnB,KAAI,SAACoB,EAAMmF,GACrB,OACC,eAACuS,GAAA,EAAQ,CAAapO,MAAOtJ,EAAK,UACjC,cAACmoB,GAAA,EAAQ,CAACC,QAASlC,EAAemC,QAAQroB,IAAS,IACnD,cAAC4hB,EAAA,EAAY,CAACrhB,QAASP,MAFTmF,EAKjB,SAGF,+BACC,cAAC2Q,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,oCACPoV,UAAU,MAAK,SAEf,cAACwO,GAAA,EAAQ,CAAChoB,MAAO,CAACiZ,WAAY,IAAK5X,MAAM,YAAY4mB,QAASrC,EAAezf,QAAS,WACrF0f,GAAkBD,EACnB,cA9LoB,KAqMtB,cAACzP,EAAA,EAAM,CACLnW,MAAO,CACLsR,aAAc,GACdvJ,UAAW,GACXnH,aAAcX,EAAME,QAAQS,cAE9B+Z,SAC0B,IAAxB2K,EAAata,QAAoC,IAApBoa,EAASpa,QAAgB0a,GAA2C,IAA1BK,EAAe/a,OAExFlD,QAAQ,YACRW,WAAS,EACTtC,QAAS,WACPugB,GACEtB,EACAE,EACAE,EACAO,EAEJ,EACA1kB,MAAM,UAAS,SAEdqkB,EACC,cAAC7K,EAAA,EAAgB,CAAC7a,MAAO,CAAEqB,MAAO,WAElC,0BAMH8jB,EACC,uBAAMnlB,MAAO,CAAC,EAAE,mBAEd,cAACmW,EAAA,EAAM,CACLnW,MAAO,CACLuB,WAAY,GACZX,aAAcX,EAAME,QAAQS,cAE9B+Z,SAAkC,IAAxB2K,EAAata,QAAoC,IAApBoa,EAASpa,OAChDlD,QAAQ,OACR3B,QAAS,WACP+f,IAAsBD,GAElBA,GACFZ,EAAYR,EAAmBI,WAC/BM,EAAgBV,EAAmBK,iBAEnCG,EAAY,IACZE,EAAgB,IAEpB,EACAlkB,MAAM,UAAS,SAEd4kB,EACG,kBACA,iCAGN,UAIZ,EC3dekC,GAxVY,SAACvlB,GAC1B,IACAM,EAWIN,EAXJM,UAEE8K,GASEpL,EAVFib,aAUEjb,EATFoL,aACAyP,EAQE7a,EARF6a,SACA5O,EAOEjM,EAPFiM,eAEAiW,GAKEliB,EANFiiB,mBAMEjiB,EALFkiB,sBAEAhW,GAGElM,EAJF8a,kBAIE9a,EAHFkM,mBACA6O,EAEE/a,EAFF+a,2BA4CH,GA1CK/a,EADJa,QA2CwDS,IAAMC,SAAS,CACvE+N,IAAKe,KAAKC,MAAMD,KAAKS,UAAU1F,IAC/BmY,OAAQ,CAAC,EACT3f,MAAO,GACP4f,MAAO,CACN,CACCC,YAAa5I,EAASpe,KAGxBA,GAAIinB,cACJ/F,QAAQ,KACP,mBAXKgG,EAAoB,KAAE6B,EAAwB,KAarD,QACgCrkB,IAA/BiK,EAAYkS,gBAC8B,OAA1ClS,EAAYkS,eAAe9G,iBACerV,IAA1CiK,EAAYkS,eAAe9G,YACsB,IAAjDpL,EAAYkS,eAAe9G,WAAWpO,OAEtC,OACC,cAAC0R,GAAA,EAAa,CAAC1c,MAAO,CAAEmF,UAAW,SAAU4C,UAAW,IAAK,SAC5D,eAACF,EAAA,EAAU,CAACC,QAAQ,KAAKzI,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,UAC5E4I,EAAYvI,KAAI,wCAQrB,IAAK,IAAIgH,KAFT8Z,EAAqBrU,IAAIK,QAAU,GAEnBvE,EAAYkS,eAAe9G,gBAInCrV,IAFNwiB,EAAqBJ,OACpBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,QAG5C8gB,EAAqBJ,OACpBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACxC,IAIN,IAAM4iB,EAAoB,WAQzB,IAAK,IAAI5b,KAPTnF,QAAQC,IAAI,aAAcgf,GACgB,IAAtCA,EAAqB/f,MAAMwE,SAC9Bub,EAAqB/f,MAAK,mBAAewH,EAAYvI,OAKtCuI,EAAYkS,eAAe9G,WAC1C,GAGc,IAFbmN,EAAqBJ,OACpBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MAC1CuF,OAEF,QACsDjH,IAArDiK,EAAYkS,eAAe9G,WAAW3M,GAAKtD,OACU,OAArD6E,EAAYkS,eAAe9G,WAAW3M,GAAKtD,OAC3C6E,EAAYkS,eAAe9G,WAAW3M,GAAKtD,MAAM6B,OAAS,EAE1Dub,EAAqBJ,OACpBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACxCuI,EAAYkS,eAAe9G,WAAW3M,GAAKtD,UACzC,CACN,GAC4D,SAA3D6E,EAAYkS,eAAe9G,WAAW3M,GAAKib,OAAOlnB,KAWlD,YALAoN,MAAM+E,KACL,SACC3E,EAAYkS,eAAe9G,WAAW3M,GAAKhH,KAC3C,mBAPF8gB,EAAqBJ,OACpBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACxC,OASN,CAIF6B,QAAQC,IAAI,WAAYsH,GACxBA,EAAeoR,kBAAoBsG,EAAqBlnB,GACxDwP,EAAeyZ,uBAAyB/B,OAELxiB,IAAlC8K,EAAeqR,gBACmB,OAAlCrR,EAAeqR,eAEfrR,EAAeqR,eAAiB,CAACqG,GAEjC1X,EAAeqR,eAAe/S,KAAKoZ,GAGpCzX,EAAkBD,GAElB,IAzIsB0Z,EAyIlBC,EAAgBvV,KAAKC,MAAMD,KAAKS,UAAU6S,IAC1CkC,EAAY,GAChB,IAAK,IAAMhc,KAAO+b,EAAcrC,OAAQ,CACvC,IAAMhd,EAAQqf,EAAcrC,OAAO1Z,GACnCgc,EAAUtb,KAAK,CACdV,IAAKA,EACLtD,MAAOA,GAET,CAEA7B,QAAQC,IAAI,WAAYkhB,GACxBD,EAAcrC,OAASsC,EApJDF,EAqJRC,EApJZlhB,QAAQC,IAAI,SAAUghB,GACtBhX,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU6U,GACrB7W,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,2CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,cAGQ9O,IAAzB+gB,GACEA,SAG6B/gB,IAA/B4Z,GACHA,GAA2B,IAPvB/P,MAAM6E,MAAM,2BAA6BX,EAAasJ,OAa1D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,mBAAoBkL,EAAMpG,WACxC,GAuHL,EASA,OANgC,OAA/Bka,EAAqB/f,YACUzC,IAA/BwiB,EAAqB/f,QAErB+f,EAAqB/f,MAAQwH,EAAYvI,KAAO,mBAIhD,gCACC,cAACgX,GAAA,EAAW,CAACpd,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,SACjE,sBAAKpF,MAAO,CAAEqB,MAAO,SAAU,gCACV2M,EAAYvI,UAGlC,eAACiX,GAAA,EAAa,WACb,mBACC1E,OAAO,SACPS,IAAI,sBACJC,KAAK,+CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,yCAIrD,wBAAO,qDAC4C2M,EAAYvI,KAC/D,qBAAKzF,MAAO,CAAE+H,UAAW,MACzB,8DACA,cAACS,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE7B8H,WAAY,CACX1I,MAAO,CACNqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGZgH,WAAS,EACTpH,MAAM,UACN2H,YAAa,iBACbD,aAAY,mBAAciF,EAAYvI,MACtCwD,SAAU,SAAC5C,GACVkgB,EAAqB/f,MAAQH,EAAM2R,OAAO7O,KAC3C,IAED,cAAC6P,GAAA,EAAO,CACPhZ,MAAO,CACN+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiB,sBAGnB,wBACC6M,EAAYkS,eAAe9G,WAAW3a,KAAI,SAACoB,EAAMmF,GACjD,OACC,sBAAiBhF,MAAO,CAAE+H,UAAW,IAAK,UACzC,cAAC0R,GAAA,EAAY,CAACzZ,MAAO,CAAE0L,YAAa,MACpC,4BAAI7L,EAAK4F,YAEQ1B,IAAhBlE,EAAK6nB,QACU,OAAhB7nB,EAAK6nB,QACgB,SAArB7nB,EAAK6nB,OAAOlnB,KACX,eAACuX,GAAA,EAAM,CACNwM,UAAW,CACVmE,mBAAmB,GAEpBlQ,mBAAoB,CACnBxY,MAAO,CACNuB,WAAY,KAGdwH,aAAc,QACdN,WAAS,EACTQ,SAAU,SAAChK,GACVqI,QAAQC,IAAI,UAAWtI,EAAE+Y,OAAO7O,OAChCod,EAAqBJ,OAAOtmB,EAAK4F,MAAQxG,EAAE+Y,OAAO7O,KACnD,EACAnJ,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPsH,OAAQ,IACP,UAEF,cAAC4O,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAER8H,MAAO,QAAQ,kBALV,SASN,cAACoO,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAER8H,MAAO,OAAO,iBALT,WAWP,cAACX,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE7B8H,WAAY,CACX1I,MAAO,CACNqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGZgH,WAAS,EACTjI,UACkBuD,IAAjBlE,EAAKsX,SAAyBtX,EAAKsX,QAAQhL,SAAS,OACjD,WACA,OAEJ9K,MAAM,UACN0H,kBACgBhF,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,MAC9BtJ,EAAKsJ,MACL,GAEJH,YAAanJ,EAAKsX,QAClBlO,SAAU,SAAC5C,GACVkgB,EAAqBJ,OAAOtmB,EAAK4F,MAChCY,EAAM2R,OAAO7O,KACf,MAhFOnE,EAqFZ,OAED,eAAC8X,GAAA,EAAa,WACb,cAAC3G,EAAA,EAAM,CACNnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACRwX,GAA2B,EAC5B,EACAtc,MAAM,UAAS,oBAIhB,cAAC8U,EAAA,EAAM,CACNnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACRiiB,EAAyB7B,GACzB8B,GACD,EACAhnB,MAAM,UAAS,yBAOpB,E,WC/KesnB,GAvKS,SAAC/lB,GACvB,IACAc,EAUGd,EAVHc,GACAklB,EASGhmB,EATHgmB,WAEAzlB,GAOGP,EARHimB,cAQGjmB,EAPHO,gBACAC,EAMGR,EANHQ,kBACA0lB,EAKGlmB,EALHkmB,cACAC,EAIGnmB,EAJHmmB,iBACAC,EAGGpmB,EAHHomB,cAEAxlB,GACGZ,EAFHqmB,iBAEGrmB,EADHY,UAGD,EAA0CU,IAAMC,cAAwBJ,IAAf6kB,EAA2BA,EAAa,IAAG,mBAA7FvlB,EAAa,KAAE6lB,EAAgB,KAEtC,OAAsB,IAAlBJ,EACI,KAIP,eAAC/iB,EAAA,EAAK,CAAC/F,MAAO,CAACuF,MAAO,IAAKV,UAAW,IAAKkF,OAAQ,MAAO9I,QAAS,GAAI2K,aAAc,GAAIzK,gBAAiBlB,EAAME,QAAQM,aAAcO,OAAQ,kCAAmCqE,SAAU,WAAYiT,KAAM,GAAI6Q,KAAM,GAAI7jB,SAAU,UAAY,eAC/NvB,IAAf6kB,GAA4BA,EAAW5d,OAAS,EAChD,iCACC,cAACnD,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,UAAU,SACpDyjB,IAEF,cAAC5P,GAAA,EAAO,CAAChZ,MAAO,CAAC+H,UAAW,EAAGuJ,aAAc,QAE7C,KACF,cAACqE,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,MAAO1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC9DpS,QAAS,SAAClH,QAEE8E,IAAPL,GACHA,EAAG0lB,WAAWC,WAGfpqB,EAAE0L,iBACFoe,GAAiB,EAClB,EAAE,SAEF,cAACO,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,QAASsH,OAAQ,GAAIpD,MAAO,UAgDzD,sBAAKvF,MAAO,CAACwH,QAAS,QAAQ,eACLzD,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC/F,qBAAKhL,MAAO,CAACgB,OAAQ,kCAAmCJ,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,GAAIJ,UAAW,SAAUG,SAAU,UAAW,SAE1I,qBAAKmC,IAAKuhB,EAAc3pB,GAAIqI,SAAkC3D,IAA7BZ,EAAewE,WAAwD,OAA7BxE,EAAewE,WAAsBxE,EAAewE,UAAUqD,OAAS,EAAI7H,EAAewE,UAAYqhB,EAActU,YAAa1U,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAIkE,OAAQ,YAGpP,qBAAKhC,IAAKuhB,EAAc3pB,GAAIqI,IAAKshB,EAActU,YAAa1U,MAAO,CAAC2I,OAAQ,MAE7E,cAACd,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,GAAIwG,UAAW,GAAG,cACzChE,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC/Fge,EAAcvjB,UAEU1B,IAAxBZ,EAAesC,MAA8C,OAAxBtC,EAAesC,MAAiBtC,EAAesC,KAAKuF,OAAS,EACjG7H,EAAesC,KAAI,aAEbujB,EAAcxiB,MAAK,oBAI7B,mCACoBzC,IAAlBilB,QAAsDjlB,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC9H,+BACC,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,GAAIuJ,aAAc,GAAIzM,UAAW,GAAIC,UAAW,OAAQC,UAAW,UAAY,SAClJikB,EAAclU,gBAajBgU,EAEC,+BACC,cAACjhB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,IAAI,+CAK1E,eAACoO,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WACR4iB,GAAiB,GACjBG,EAAiBF,EAAcxiB,MAChC,EAAE,oBAEMwiB,EAAcxiB,MAAK,YAI/B,qBAAKxG,MAAO,CAAC+H,UAAW,IAAI,SAC1B+gB,EACA,cAAC,EAAS,CACTzlB,cAAeA,EACfF,eAAgBA,EAChBC,kBAAmBA,EACnBI,SAAUA,IAEV,SAIP,E,kEC7JMuF,GAAe,CAAC,GAAM,GAAI,KAAQ,GACtC,OAAU,CAAC,KAAQ,sBAAuB,MAAS,IACnD,YAAe,CAAC,KAAQ,sBAAuB,MAAS,IACxD,OAAU,IAGCwgB,GAAe,CAAC,CAC5B,KAAQ,aACR,MAAS,CAAC,CACT,KAAQ,wBACR,mBAAsB,CAAC,iBACvB,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,6BACR,SAAY,MACZ,KAAQ,WACN,CACF,KAAQ,kBACR,SAAY,QACZ,KAAQ,aAGV,CACC,KAAQ,wBACR,mBAAsB,CAAC,kBACvB,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,6BACR,SAAY,OACZ,KAAQ,WAET,CACC,KAAQ,kBACR,SAAY,QACZ,KAAQ,aAGV,CACC,KAAQ,mBACR,mBAAsB,CAAC,oBACvB,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,sBACR,SAAY,QACZ,KAAQ,WAET,CACC,KAAQ,kBACR,SAAY,QACZ,KAAQ,eAIX,CACC,KAAQ,WACR,MAAS,CACR,CACC,KAAQ,iBACR,mBAAsB,CAAC,oBACvB,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,sBACR,SAAY,QACZ,KAAQ,WACP,CACD,KAAQ,kBACR,SAAY,QACZ,KAAQ,eAIX,CACA,KAAQ,YACR,MAAS,CACR,CACC,KAAQ,uBACR,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,6BACR,SAAY,OACZ,KAAQ,WAET,CACC,KAAQ,kBACR,SAAY,QACZ,KAAQ,eAIX,CACA,KAAQ,WACR,MAAS,CACR,CACC,KAAQ,qBACR,QAAU,EACV,MAAS,CAAC,CACT,KAAQ,+CACR,SAAY,MACZ,KAAQ,WAET,CACC,KAAQ,mBACR,SAAY,MACZ,KAAQ,gBAMCC,GAAc,CAC1B,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,sBACR,MAAS,GACT,KAAQ,GACR,YAAe,GACf,MAAS,IAEV,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,sBACR,MAAS,GACT,KAAQ,QACR,YAAe,WAEhB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,2BACR,MAAS,GACT,KAAQ,QACR,YAAe,eAEhB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,6BACR,MAAS,GACT,KAAQ,MACR,YAAe,eAEhB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,6BACR,MAAS,GACT,KAAQ,OACR,YAAe,eAEhB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,6BACR,MAAS,GACT,KAAQ,OACR,YAAe,cACf,UAAY,GAEb,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,+CACR,MAAS,GACT,KAAQ,MACR,YAAe,cACf,UAAY,IAIDC,GAAW,CACvB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,SACR,MAAS,GACT,KAAQ,QACR,YAAe,UAEhB,CAEC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,UACR,MAAS,GACT,KAAQ,QACR,YAAe,UACf,UAAY,IAIDC,GAAW,CACvB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,sBACR,MAAS,GACT,KAAQ,GACR,YAAe,GACf,MAAS,IAEV,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,kBACR,MAAS,GACT,KAAQ,QACR,YAAe,eAEhB,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,kBACR,MAAS,GACT,KAAQ,QACR,YAAe,cACf,UAAY,GAGb,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,oBACR,MAAS,GACT,KAAQ,QACR,YAAe,OACf,UAAY,GAGb,CACC,OAAU,GACV,SAAY,GACZ,YAAe,GACf,KAAQ,mBACR,MAAS,GACT,KAAQ,MACR,YAAe,UACf,UAAY,IA+xCCC,GA1xCO,SAAC/mB,GACtB,IAAQS,EAA8KT,EAA9KS,cAAeumB,EAA+JhnB,EAA/JgnB,aAAc1mB,EAAiJN,EAAjJM,UAAW2mB,EAAsIjnB,EAAtIinB,UAAWC,EAA2HlnB,EAA3HknB,UAAW1b,EAAgHxL,EAAhHwL,KAAM2b,EAA0GnnB,EAA1GmnB,mBAAoBC,EAAsFpnB,EAAtFonB,aAAcxmB,EAAwEZ,EAAxEY,SAAUymB,EAA8DrnB,EAA9DqnB,cAAeC,EAA+CtnB,EAA/CsnB,iBAAkBC,EAA6BvnB,EAA7BunB,QAASC,EAAoBxnB,EAApBwnB,eAGjK,EAAsClmB,IAAMC,SAAS,CACrD8O,KAAKC,MAAMD,KAAKS,UAAU3K,OACzB,mBAFMshB,EAAW,KAAEC,EAAc,KAGnC,EAAoCpmB,IAAMC,SAAS,IAAG,mBAA/ComB,EAAU,KAAEC,EAAa,KAChC,EAAwCtmB,IAAMC,SAAS,GAAE,mBAAlDsmB,EAAY,KAAEC,EAAe,KACnC,EAAuBvmB,mBAAS,IAAG,mBAAzBwmB,GAAF,KAAW,MACpB,EAAsCzmB,IAAMC,UAAS,GAAM,mBAApDymB,EAAW,KAAEC,EAAc,KAClC,EAAoE3mB,IAAMC,UAAS,GAAM,mBAAlF2mB,EAA0B,KAAElN,EAA6B,KAChE,EAA0D1Z,IAAMC,SAAS,IAAG,mBAA9C4mB,GAAF,KAA0B,MACrD,EAAgC7mB,IAAMC,SAAS,CAAC,GAAE,mBAA3CsZ,EAAQ,KAAEuN,EAAW,KAC5B,GAAkD9mB,IAAMC,SAAS,IAAG,qBAA7DuZ,GAAiB,MAAEuN,GAAoB,MAC9C,GAAoD/mB,IAAMC,SAAS,IAAG,qBAA/D0gB,GAAkB,MAAE5G,GAAqB,MAChD,GAA8D/Z,IAAMC,UAAS,GAAM,qBAA5E+mB,GAAuB,MAAEvN,GAA0B,MAC1D,GAAsCzZ,IAAMC,SAAS,CAAC,GAAE,qBAAjD6J,GAAW,MAAEC,GAAc,MAClC,GAA4C/J,IAAMC,SAAS,CAAC,GAAE,qBAAvD0K,GAAc,MAAEC,GAAiB,MACxC,GAAwC5K,IAAMC,UAAS,GAAK,qBAArDgnB,GAAY,MAAEC,GAAe,MAE9B3nB,GAAmC,mBAAzBE,OAAOC,SAASC,MAAsD,gBAAzBF,OAAOC,SAASC,KACvE+J,GAAQC,cAEfxF,qBAAU,YAGO,IAAZ8hB,IAAmD,IAA/BW,QAAwD/mB,IAAhB0Z,EAASpe,SAAyC0E,IAArBmmB,IAC5F5iB,QAAQC,IAAI,aACZqG,GAAM+E,KAAK,uFAEY5O,IAAnBqmB,GACHA,GAAe,GAEhBF,EAAiB,IAEnB,GAAG,CAACY,SA0DmB/mB,IAAlBV,GAAiD,OAAlBA,GAA0BA,IAAkBknB,IAC/EjjB,QAAQC,IAAI,wBAAyBlE,GAGrCmnB,EAAcnnB,GACdqnB,EAAgB,GA7DU,SAACrnB,EAAe4mB,GAC1C,IAAMoB,EAAe9B,GAAarR,MAAK,SAAArY,GAAI,OAAIA,EAAK4F,KAAKkH,gBAAkBtJ,EAAcsJ,aAAa,IAItG,QAAsB5I,IAAlBsnB,GAAgD,OAAjBA,GAElC,QAA2BtnB,IAAvBsnB,EAAaliB,OAA8C,OAAvBkiB,EAAaliB,OAAkBkiB,EAAaliB,MAAM6B,OAAS,EAAG,CACrG,IAAIsgB,EAAkBD,EAAaliB,MAAM,GACzC,QAAsBpF,IAAlBkmB,GAAiD,OAAlBA,EAAwB,CAC1D,IAAMsB,EAAeF,EAAaliB,MAAM+O,MAAK,SAAAsT,GAAO,OAAIA,EAAQ/lB,KAAKkH,gBAAkBsd,EAActd,aAAa,SAC7F5I,IAAjBwnB,GAA+C,OAAjBA,IACjCD,EAAkBC,EAEpB,CAEA,IAAIE,EAAUxY,KAAKC,MAAMD,KAAKS,UAAU3K,KAAc,aAIrD,IAAM2iB,EAAWJ,EAAgBvgB,MAAM0B,GAAKhH,KAAKkH,cAC3CkU,EAAU2I,GAAYtR,MAAK,SAAArY,GAAI,OAAIA,EAAKU,KAAKoM,gBAAkB+e,CAAQ,IAC7E,QAAgB3nB,IAAZ8c,GAAqC,OAAZA,EAI5B,OAHA4K,EAAQhmB,KAAO6lB,EAAgB7lB,KAC/BgmB,EAAQE,OAAS9K,EAEjB,WAGD,IAAM+K,EAAUnC,GAASvR,MAAK,SAAArY,GAAI,OAAIA,EAAKU,KAAKoM,gBAAkB+e,CAAQ,IAC1E,QAAgB3nB,IAAZ6nB,GAAqC,OAAZA,EAI5B,OAHAH,EAAQhmB,KAAO6lB,EAAgB7lB,KAC/BgmB,EAAQI,OAAO1e,KAAKye,GAEpB,WAGD,IAAME,EAAUpC,GAASxR,MAAK,SAAArY,GAAI,OAAIA,EAAKU,KAAKoM,gBAAkB+e,CAAQ,IAC1E,YAAgB3nB,IAAZ+nB,GAAqC,OAAZA,GAC5BL,EAAQhmB,KAAO6lB,EAAgB7lB,KAC/BgmB,EAAQM,YAAcD,EAEtB,iBAJD,CAKC,EAzBF,IAAK,IAAIrf,KAAO6e,EAAgBvgB,MAAO,IA4BvCuf,EAAe,CAACmB,IAChBd,EAAUqB,KAAKC,SAChB,OAEA3kB,QAAQC,IAAI,kBAAmBlE,GAC/BinB,EAAe,CAACrX,KAAKC,MAAMD,KAAKS,UAAU3K,OAC1C4hB,EAAUqB,KAAKC,SAEjB,CAQCC,CAAmB7oB,EAAe4mB,IAwDnC,IAAIkC,GAAWlZ,KAAKC,MAAMD,KAAKS,UAAU2W,IAEnC+B,GAAa,CAClBzjB,OAAQ,GACRpD,MAAO,GACP3E,aAAc,GACdI,OAAQ,kCACRoE,OAAQ,WAGHinB,GAAU,SAACC,GAChB,YAAkBvoB,IAAduoB,GAK4B,UAA5BA,EAAU3f,eAAyD,UAA5B2f,EAAU3f,gBACpD2f,EAAY,iBALLA,CAST,EAOOxH,GAAuB,SAACyH,GAC5Bhb,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,mCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACFA,EAAae,SAChBoY,GAAqBnZ,EAAajS,KAEpC,IACC2S,OAAM,SAACC,GACPnL,QAAQC,IAAI,2BAA2BkL,EAAMpG,WAC9C,GACD,EAIMmgB,GAAsBtB,GACzB,eAAC7O,GAAA,EAAM,CACL1S,eAAgBA,EACnB,kBAAgB,yBACb8iB,cAAc,EACdC,qBAAqB,EACxBC,sBAAsB,EACnB3sB,MAAO,CAAE4sB,cAAe,QACxBtQ,KAAM4O,GACN3O,QAAS,WAGP,EAEFC,WAAY,CACVxc,MAAO,CACV4sB,cAAe,OACVzrB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,KACVtG,UAAW,IACXuD,UAAW,IACX5D,QAAS,GACTqE,SAAU,SACVyE,OAAQ,MACb/I,OAAQf,EAAME,QAAQU,gBAEnB,UAEF,qBACEb,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACP5P,OAAQ,GACRpD,MAAO,GACZjE,UAAW,IACXuD,UAAW,KACN,cAE8Bd,IAA/BiK,GAAY6e,gBACkB,OAA/B7e,GAAY6e,qBAC8B9oB,IAA1CiK,GAAY6e,eAAeC,YACe,OAA1C9e,GAAY6e,eAAeC,YACsB,IAAjD9e,GAAY6e,eAAeC,WAAW9hB,OACpC,mBACE0N,KAAM,yCACND,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAE9F,qBACEoG,IAAG,kCAA6BuG,GAAYvI,MAC5CiC,IAAKsG,GAAY0G,YACjB1U,MAAO,CACLuF,MAAO,GACPoD,OAAQ,GACR3H,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BiE,UAAW,GACXrD,SAAU,GACV8D,SAAU,SACV7D,SAAU,OAKhB,mBACEgX,IAAI,sBACJT,OAAO,SACPU,KAAM1K,GAAY6e,eAAeC,WACjC9sB,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,qBACEoG,IAAG,kCAA6BuG,GAAYvI,MAC5CiC,IAAKsG,GAAY0G,YACjB1U,MAAO,CACLuF,MAAO,GACPoD,OAAQ,GACR3H,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BY,SAAU,GACVqD,UAAW,GACXS,SAAU,SACV7D,SAAU,SAMpB,cAACkX,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACPlX,MAAO,QAET8E,QAAS,WACPwX,IAA2B,GACvBmN,GACFhc,GAAkB,CAAC,EAEvB,EAAE,SAEF,cAAC,KAAS,MAEZ,sBAAK9O,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,OAAQ,UACpD,qBACEnV,MAAO,CACLiV,KAAM,EACNhU,QAAS,EACTK,UAAW,IACXuD,UAAW,IACXC,UAAW,OACXC,UAAW,UACX,SAE2B,WAA5B8f,GAAmBrkB,KAClB,cAAC,GAAoB,CACnBqd,kBAAc9Z,EACdghB,mBAAehhB,EACfiK,YAAaA,GACbyP,SAAUA,EACV5O,eAAgBA,GAChBgW,mBAAoBA,GACpBC,qBAAsBA,GACtBpH,kBAAmBA,GACnB5O,kBAAmBA,GACnB6O,2BAA4BA,GACnCla,QAASA,GACTuhB,UAAU,IAGL,cAAC+H,GAAoB,CACnBlP,kBAAc9Z,EACdghB,mBAAehhB,EACfiK,YAAaA,GACbyP,SAAUA,EACV5O,eAAgBA,GAChBgW,mBAAoBA,GACpBC,qBAAsBA,GACtBpH,kBAAmBA,GACnB5O,kBAAmBA,GACnB6O,2BAA4BA,GACnCla,QAASA,GACTyO,IAAKlE,GACL9K,UAAWA,MAIV,qBACElD,MAAO,CACLiV,KAAM,EACN+X,WAAW,aAAD,OAAe/sB,EAAME,QAAQO,YACvCO,QAAS,sBACT4D,UAAW,IACXvD,UAAW,IACXwD,UAAW,OACXC,UAAW,UACX,cAE6BhB,IAA9BiK,GAAYif,eACiB,OAA9Bjf,GAAYif,eACyB,IAArCjf,GAAYif,cAAcjiB,OACxB,uBAAMhL,MAAO,CAAEmF,UAAW,UAAW,UACnC,cAAC0C,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEuB,WAAY,GAAImK,YAAa,IAAK,SAE1CsC,GAAY8G,cAEf,cAACkE,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,cAACmH,EAAA,EAAU,CAACC,QAAQ,KAAI,kFAIxB,eAACD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,qDACV,IACzC,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAK,6BACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,+CAMxD,cAACwG,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAAE+H,UAAW,IAAK,yDAGlBhE,IAA/BiK,GAAY6e,gBACkB,OAA/B7e,GAAY6e,qBAC8B9oB,IAA1CiK,GAAY6e,eAAeC,YACe,OAA1C9e,GAAY6e,eAAeC,YACsB,IAAjD9e,GAAY6e,eAAeC,WAAW9hB,OACpC,+BACE,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,SACnD,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAM,yCACN1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,yCAO1D,+BACE,cAACwG,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,SACnD,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAM1K,GAAY6e,eAAeC,WACjC9sB,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,4CASpE,aAKA,KA0DC6rB,GAAiB,SACpBznB,EACAqP,EACAO,EACA8X,EACAC,EACAC,EACFC,EACAC,EACAC,GAEE,IAAIhc,EAAS,OACTic,EAAY,GACZC,EAAe,CAAC,OAEO3pB,IAAvBqpB,EAAgB/tB,KAClBiI,QAAQC,IAAI,8BACZiK,EAAS,MACTic,EAAY,IAAML,EAAgB/tB,GAAK,kBACvCquB,EAAeN,EAEf9lB,QAAQC,IAAI,kBACZmmB,EAAoB,MAAI,IAI1BA,EAAmB,KAAIjoB,EACvBioB,EAA0B,YAAI5Y,OACjB/Q,IAATsR,IACFqY,EAAmB,KAAIrY,GAE3BqY,EAAuB,SAAIH,EAC3BG,EAAqB,OAAIF,OAEIzpB,IAAvBopB,IACFO,EAAmC,qBAAIP,QAGnBppB,IAApBupB,GAAqD,OAApBA,IACpCI,EAA0B,YAAIJ,GAK/B,IAAMK,EAAO,UAAMzqB,EAAS,4BAAoBuqB,GAC9C,OAAOlc,MAAMoc,EAAS,CACpBnc,OAAQA,EACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUga,GACrBhc,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,mCAKhB,IACCvI,MAAK,SAAC8S,GACT,IAA6B,IAAzBA,EAAae,QAUb,OAAOf,OATkB/N,IAAxB+N,EAAasJ,OAChBxN,GAAM6E,MAAM,2BAA4BX,EAAasJ,QAErDxN,GAAM6E,MAAM,0BAOZ,IACCD,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEKuhB,GAAwB,SAACC,GAG9Btc,MADS,6CACE,CACV4J,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAUma,GACrBnc,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACR,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACdA,EAASE,OAAO7S,MAAK,SAAC8S,GACrB+Y,GAAe,GACf,IAhIkBxE,EAgId2H,GAAU,EAEb,IAA6B,IAAzBlc,EAAae,QAAmB,CAKnC,GAJ4B,OAAxBf,EAAasJ,QAAmBtJ,EAAasJ,OAIrB,KAAxBtJ,EAAa6Z,OAAe,CAE/BkC,EAAYlC,OAAOlZ,WAAwC1O,IAAhC8pB,EAAYlC,OAAOpM,SAAyB,kCAAiC,UAAMsO,EAAYlC,OAAOpM,SAAQ,sEACzIyO,GAAU,CACV,MACCH,EAAYlC,OAAOlZ,MAAQ,GAC3Bub,GAAU,EAWZ,GARiC,KAA7Blc,EAAaia,aAChB8B,EAAY9B,YAAYtZ,WAA6C1O,IAArC8pB,EAAY9B,YAAYxM,SAAyB,yBAAwB,UAAMsO,EAAY9B,YAAYxM,SAAQ,6DAC/IyO,GAAU,IAEVH,EAAY9B,YAAYtZ,MAAQ,GAChCub,GAAU,QAGiBjqB,IAAxB+N,EAAa+Z,OAChB,IAAK,IAAIpf,KAAOqF,EAAa+Z,OAC5B,IAAK,IAAIve,KAAUugB,EAAYhC,OAC9B,GAAI/Z,EAAa+Z,OAAOpf,KAASohB,EAAYhC,OAAOpf,GAAKlM,KAAM,CAC9D+G,QAAQC,IAAI,gBACgCxD,IAAxC8pB,EAAYhC,OAAOve,GAAQiS,UAAkE,KAAxCsO,EAAYhC,OAAOve,GAAQiS,SACnFsO,EAAYhC,OAAOve,GAAQmF,MAAK,UAAMob,EAAYhC,OAAOve,GAAQ9M,KAAI,qDAErEqtB,EAAYhC,OAAOve,GAAQmF,MAAK,UAAMob,EAAYhC,OAAOve,GAAQiS,SAAQ,oDAG1EyO,GAAU,EACV,KACD,CAIJ,MAGMvqB,GAiDMA,KACuB,OAA7BqO,EAAauU,kBAAqDtiB,IAA7B+N,EAAauU,mBACrBtiB,IAA5B+N,EAAamc,YAAwD,OAA5Bnc,EAAamc,YAAuBnc,EAAamc,WAAWjjB,OAAS,GACjH1D,QAAQC,IAAI,uBAAwBuK,EAAamc,YACjDlD,EAAyBjZ,EAAamc,iBAEXlqB,IAAvBgmB,IACHziB,QAAQC,IAAI,0BAA2BuK,EAAauU,aACpD0D,EAAmBjY,EAAauU,cArOpBA,EAwODvU,EAAauU,YAvO9B9U,MAAMrO,EAAY,qBAAuBmjB,EAAa,CACpD7U,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,oCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACNkZ,EAAYlZ,QAEG/N,IAAXJ,QAAyBA,OAAOC,SAAS8U,KAAKvM,SAAS,eAC1DyR,GAA8B,EAEhC,IACCpL,OAAM,SAACC,GAEPnL,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC5C,IA+MOyY,YAE2B/gB,IAAvBgmB,IACHziB,QAAQC,IAAI,0BAA2BuK,EAAauU,aACpD0D,EAAmBjY,EAAauU,cAGjC2E,EAAY,CAAC,GAAMlZ,EAAauU,iBAIC,IAA/BvU,EAAaoc,eAChB5mB,QAAQC,IAAI,4BAxEbD,QAAQC,IAAI,mBACexD,IAAvBgmB,GACHA,EAAmBjY,EAAazS,IAEjC2rB,EAAYlZ,GAEPob,GACEpb,EAAarM,KACbqM,EAAagD,YACbhD,EAAauD,KACbvD,EAAaqc,qBACb,CAAC,EACD,EACN,GACA,GACArc,EAAaF,QAEb5S,MAAK,SAAC2S,QACW5N,IAAb4N,IAEHG,EAAazS,GAAKsS,EAAStS,GAC3ByS,EAAasc,YAAa,EAC1Btc,EAAauc,kBAAmB,EAChCvc,EAAaK,UAAW,EAGxB+a,GACCpb,EAAarM,KACbqM,EAAagD,YACbhD,EAAauD,KACbvD,EAAaqc,qBACbrc,EACA,EACA,GACA,GACAA,EAAaF,QACZ5S,MAAK,SAAC2S,QACU5N,IAAb4N,GACH/D,GAAMiF,QAAQ,0BAA4Bf,EAAarM,KAEzD,IAEF,IACC+M,OAAM,SAACC,GACP7E,GAAM6E,MAAM,mBAAqBA,EAAMpG,WACxC,MAkCc,IAAZ2hB,GACH1D,EAAe,CAACuD,GAEnB,GAAE,IAEFrb,OAAM,SAACC,GACPoY,GAAe,GACfvjB,QAAQC,IAAI,cAAekL,EAAMpG,WAElC,GACD,EAGA,QAAqBtI,IAAjB6lB,QAA2C7lB,IAAbooB,GAEjC,IAAK,IAAI1f,MAAO0f,GAAU,CAEzB,IAAMX,GAAUW,GAAS1f,SACG1I,IAAxBynB,GAAQG,OAAOnrB,MAA+C,KAAzBgrB,GAAQG,OAAO2C,YAAyCvqB,IAAzBynB,GAAQG,OAAO2C,QACtFnC,GAAS1f,IAAKkf,OAAO2C,MAAQruB,EAAME,QAAQyB,mBAGXmC,IAA7BynB,GAAQO,YAAYvrB,MAAoD,KAA9BgrB,GAAQO,YAAYuC,YAA8CvqB,IAA9BynB,GAAQO,YAAYuC,QACrGnC,GAAS1f,IAAKsf,YAAYuC,MAAQruB,EAAME,QAAQyB,cAGjD,IAAM2sB,GAAUlC,GAAQb,GAAQG,OAAOnrB,MACjCguB,GAAUnC,GAAQb,GAAQO,YAAYvrB,MAEtCiuB,GAAU7E,EAAa2E,SACbxqB,IAAZ0qB,SAAiD1qB,IAAxB0qB,GAAQ/Z,aAAqD,KAAxB+Z,GAAQ/Z,kBAAyD3Q,IAAlCooB,GAAS1f,IAAKkf,OAAOpM,UAA4D,KAAlC4M,GAAS1f,IAAKkf,OAAOpM,WACpK4M,GAAS1f,IAAKkf,OAAO2C,MAAQG,GAAQ/Z,YACrCyX,GAAS1f,IAAKkf,OAAOpQ,OAASkT,GAAQpvB,GACtC8sB,GAAS1f,IAAKkf,OAAOpM,SAAWkP,GAAQhpB,MAGzC,IAAMipB,GAAW9E,EAAa4E,IAO9B,QANiBzqB,IAAb2qB,SAAmD3qB,IAAzB2qB,GAASha,aAAsD,KAAzBga,GAASha,kBAA8D3Q,IAAvCooB,GAAS1f,IAAKsf,YAAYxM,UAAiE,KAAvC4M,GAAS1f,IAAKsf,YAAYxM,WACjL4M,GAAS1f,IAAKsf,YAAYuC,MAAQI,GAASha,YAC3CyX,GAAS1f,IAAKsf,YAAYxQ,OAASmT,GAASrvB,GAC5C8sB,GAAS1f,IAAKsf,YAAYxM,SAAWmP,GAASjpB,WAGxB1B,IAAnBynB,GAAQK,QAA2C,OAAnBL,GAAQK,QAAmBL,GAAQK,OAAO7gB,OAAS,EACtF,IAAK,IAAIsC,MAAUke,GAAQK,OAAQ,CAClC,IAAM8C,GAAUnD,GAAQK,OAAOve,IAEzBshB,GAAUvC,GAAQsC,GAAQnuB,MAC1BquB,GAAUjF,EAAagF,SACb7qB,IAAZ8qB,SAAiD9qB,IAAxB8qB,GAAQna,aAAqD,KAAxBma,GAAQna,kBAAiE3Q,IAA1CooB,GAAS1f,IAAKof,OAAOve,IAAQiS,UAAoE,KAA1C4M,GAAS1f,IAAKof,OAAOve,IAAQiS,cAKzIxb,IAAvCooB,GAAS1f,IAAKof,OAAOve,IAAQghB,OAA8D,KAAvCnC,GAAS1f,IAAKof,OAAOve,IAAQghB,QACpFnC,GAAS1f,IAAKof,OAAOve,IAAQghB,MAAUruB,EAAME,QAAQyB,eALtDuqB,GAAS1f,IAAKof,OAAOve,IAAQghB,MAAUO,GAAQna,YAC/CyX,GAAS1f,IAAKof,OAAOve,IAAQiO,OAAUsT,GAAQxvB,GAC/C8sB,GAAS1f,IAAKof,OAAOve,IAAQiS,SAAWsP,GAAQppB,KAMlD,CAEF,CAQA,IAAMqpB,GACJhE,EACE,eAACzO,GAAA,EAAM,CACLC,KAAMwO,EACNtO,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,IAChBtG,UAAW,IACXN,OAAQf,EAAME,QAAQU,gBAElB,UAEF,cAAC8X,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACPlX,MAAO,SAET8E,QAAS,WACPyX,GAA8B,EAChC,EAAE,SAEF,cAAC,KAAS,MAEZ,cAAC,GAAiB,CAChBhQ,MAAOA,GACP3N,MAAOA,EACPiD,UAAWA,EACXua,SAAUA,EACVrP,KAAMA,EACNsP,kBAAmBA,GACnBja,QAASA,GACTma,8BAA+BA,EAC/BK,sBAAuBA,GACvBN,2BAA4BA,GAC5B7O,kBAAmBA,GACnBb,eAAgBA,GACrBiQ,cAAc,OAWX,KAGA6Q,GAA6B,SAAClvB,GAhZd,IAACwmB,OAiZFtiB,IAAhB0Z,EAASpe,IAAoC,OAAhBoe,EAASpe,IAAsC,IAAvBoe,EAASpe,GAAG2L,SACpE1D,QAAQC,IAAI,0BAA2BkW,EAASpe,IAlZ3BgnB,EAmZN5I,EAASpe,GAlZxBkS,MAAMrO,EAAY,qBAAuBmjB,EAAa,CACpD7U,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,oCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACNxK,QAAQC,IAAI,mBACb,IACCiL,OAAM,SAACC,GAEPnL,QAAQC,IAAI,0BAA2BkL,EAAMpG,WAC9C,KAiYCwe,GAAe,GAEf,IAAImD,GAAU,EAWd,GAV6B,KAAzBnuB,EAAK8rB,OAAOpM,WACf1f,EAAK8rB,OAAOlZ,MAAK,WAAO5S,EAAK8rB,OAAOnrB,KAAI,gCACxCwtB,GAAU,GAGuB,KAA9BnuB,EAAKksB,YAAYxM,WACpB1f,EAAKksB,YAAYtZ,MAAK,WAAO5S,EAAKksB,YAAYvrB,KAAI,gCAClDwtB,GAAU,QAGSjqB,IAAhBlE,EAAKgsB,QAAwC,OAAhBhsB,EAAKgsB,QAAmBhsB,EAAKgsB,OAAO7gB,OAAS,EAC7E,IAAK,IAAIyB,KAAO5M,EAAKgsB,OAAQ,CAC5B,IAAMmD,EAAanvB,EAAKgsB,OAAOpf,GACH,KAAxBuiB,EAAWzP,WACd1f,EAAKgsB,OAAOpf,GAAKgG,MAAK,WAAOuc,EAAWxuB,KAAI,gCAG9C,CAGD,GAAIwtB,EAKH,OAJApgB,GAAM6E,MAAM,kFAEZkY,EAAUqB,KAAKC,eACfpB,GAAe,GAWhB+C,GAAsB/tB,EACvB,GAEe,IAAZsqB,IAAqC,IAAjBgB,KACtB7jB,QAAQC,IAAI,0EAA2E4kB,SAEvEpoB,IAAbooB,IAAuC,OAAbA,IAAqBA,GAASnhB,OAAS,GAA0B,KAArBmhB,GAAS,GAAG1mB,OACpF2lB,IAAgB,GACjB2D,GAA2B5C,GAAS,MAMtC,IAAM8C,GAAU,SAACrsB,GAChB,IAAQ/C,EAAyC+C,EAAzC/C,KAAMW,EAAmCoC,EAAnCpC,KAAMwE,EAA6BpC,EAA7BoC,MAAOkqB,EAAsBtsB,EAAtBssB,QAASC,EAAavsB,EAAbusB,SAEpC,EAAgCjrB,IAAMC,UAAS,GAAM,mBAA9CirB,EAAQ,KAAEC,EAAW,KAC5B,EAA4CnrB,IAAMC,SAAS,CAAC,GAAE,mBAAvDhB,EAAc,KAAEC,EAAiB,KACxC,EAAoCc,IAAMC,SAAStE,EAAKW,MAAK,mBAAtDooB,EAAU,KAAEC,EAAa,KAChC,EAA0C3kB,IAAMC,UAAS,GAAM,mBAAxD2kB,EAAa,KAAEC,EAAgB,KACtC,EAA0C7kB,IAAMC,SAAS,CACxD,GAAM,GACN,MAAS,GACT,KAAQ,GACR,YAAe,KACd,mBALK6kB,EAAa,KAAEC,EAAgB,KAqChCqG,EAAmB,SAACzvB,GA7BN,IAAC0vB,EA+Bf9rB,KA/Be8rB,EAgCP1vB,EAAKR,GA/BlBkS,MAAMrO,EAAU,gBAAgBqsB,EAAM,YAAa,CACjD/d,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB,OAAU,oBAEX6K,YAAa,YAEd1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,sBAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAChBjF,GAAM6E,MAAM,6BAId,IACCD,OAAM,SAAAC,GAENnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC3C,KASAkF,MAAMrO,EAAY,sCAAuC,CACxDsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAET0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,iCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,aACY9O,IAAxB+N,EAAasJ,OAChBxN,GAAM6E,MAAM,gCAAkCX,EAAasJ,QAE3DxN,GAAM6E,MAAM,iDAIQ1O,IAAjBimB,GACHA,GAMH,IACCxX,OAAM,SAACC,GACP7E,GAAM6E,MAAMA,EAAMpG,WAEnB,GACF,EA2CA,GAzCAhE,qBAAU,WACT,QAAgCtE,IAA5BZ,EAAe+B,SAAnB,CAIA,IAAIsqB,EAAiB,GACR,WAAThvB,GACH8G,QAAQC,IAAI,wBAAyB4nB,GAErC9E,EAAYrlB,GAAOxE,GAAM2uB,GAAkB,OAAIhsB,EAAe+B,SAC9DmlB,EAAYrlB,GAAOxE,GAAM2uB,GAAoB,SAAIhsB,EAAesC,KAChE4kB,EAAYrlB,GAAOxE,GAAM2uB,GAAuB,YAAIhsB,EAAe4R,YACnEsV,EAAYrlB,GAAOxE,GAAM2uB,GAAiB,MAAIhsB,EAAewE,UAC7D0iB,EAAYrlB,GAAOxE,GAAM2uB,GAAiB,MAAI,GAE9CK,EAAiBnF,EAAYrlB,GAAOxE,GAAM2uB,GAAgB,OAE1D9E,EAAYrlB,GAAOxE,GAAc,OAAI2C,EAAe+B,SACpDmlB,EAAYrlB,GAAOxE,GAAgB,SAAI2C,EAAesC,KACtD4kB,EAAYrlB,GAAOxE,GAAmB,YAAI2C,EAAe4R,YACzDsV,EAAYrlB,GAAOxE,GAAa,MAAI2C,EAAewE,UACnD0iB,EAAYrlB,GAAOxE,GAAa,MAAI,GAEpCgvB,EAAiBnF,EAAYrlB,GAAOxE,GAAY,MAGjDuoB,GAAiB,GACjB4B,EAAUqB,KAAKC,UACf3B,EAAeD,GAEf,IAAMoF,EAAc,CACnB,KAAQD,EACR,KAAQrsB,EAAesC,KACvB,GAAMtC,EAAe+B,SACrB,YAAe/B,EAAewE,UAC9B,YAAexE,EAAe2R,aAG/Bwa,EAAiBG,EAnCjB,CAoCD,GAAG,CAACtsB,SAEcY,IAAdlE,EAAKU,MAAoC,OAAdV,EAAKU,MAAsC,IAArBV,EAAKU,KAAKyK,OAC9D,OAAO,KAGR,IAAM0kB,EAAgB,WACrB3G,GAAiB,EAClB,EAEM4G,EAAoB,WAATnvB,EAAoBgpB,GAAuB,gBAAThpB,EAAyBkpB,GAAWD,GACjFmG,OAA0B7rB,IAAflE,EAAK4S,OAAsC,OAAf5S,EAAK4S,OAAkB5S,EAAK4S,MAAMzH,OAAS,EAClF6kB,EAAcD,EAAW3vB,EAAME,QAAQC,QAAQC,KAAO,wBAE5D,OACC,sBAAKL,MAAO,CAACgB,OAAO,aAAD,OAAe6uB,GAAe1uB,gBAAiBlB,EAAME,QAAQQ,cAAeC,aAAcX,EAAME,QAAQS,aAAc2E,OAAmB,IAAZ2pB,EAAmB,MAAQ,OAAQ3tB,YAAwB,IAAZ2tB,EAAmB,GAAK,GAAK,WAExM,IAAlBpG,EACA,cAACgH,GAAe,CACflH,WAAYA,EACZC,cAAeA,EACf1lB,eAAgBA,EAChBC,kBAAmBA,EACnB0lB,cAAeA,EACfC,iBAAkBA,EAClBC,cAAeA,EACfC,iBAAkBA,EAClBzlB,SAAUA,IAEV,KAEF,sBAAKxD,MAAO,CAACwH,QAAS,OAAQiC,OAAQ,IAAM,UAC3C,sBAAKzJ,MAAO,CAACwH,QAAS,OAAQjC,MAAO,OAAQ,UAC5C,cAACoQ,GAAA,EAAO,CAACvR,MAAOvE,EAAKU,KAAK,SACzB,qBAAKmH,IAAK7H,EAAKyuB,MAAO7mB,IAAK5H,EAAK0f,SAAUvf,MAAOosB,GAAYjmB,QAAS,WAErE,QAAkBpC,IAAdlE,EAAKW,MAAoC,OAAdX,EAAKW,MAA+B,KAAdX,EAAKW,KAGzD,OAFA6uB,GAAY,QACZ/nB,QAAQC,IAAI,kCAIbmoB,GACD,MAED,gCACC,cAAC7nB,EAAA,EAAU,CAACC,QAAQ,KAAKzG,MAAM,gBAAgBrB,MAAO,CAACuB,WAAY,GAAIwG,UAAW6nB,EAAW,EAAI,GAAIpuB,SAAU,IAAK8D,SAAU,UAAY,SACxIzF,EAAKU,OAENqvB,EACA,cAAC/nB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAACqB,MAAOpB,EAAME,QAAQC,QAAQC,KAAMkB,WAAY,GAAI6D,OAAQ,WAAce,QAAS,WAC3I,QAAkBpC,IAAdlE,EAAKW,MAAoC,OAAdX,EAAKW,MAA+B,KAAdX,EAAKW,KAGzD,OAFA6uB,GAAY,QACZ/nB,QAAQC,IAAI,kCAIbmoB,GACD,EAAE,SACA7vB,EAAK4S,QAGR,WAGF,sBAAKzS,MAAO,CAACwH,QAAS,QAAU,UAC/B,cAACmO,GAAA,EAAO,CACPtU,MAAM,YACN+C,MAAK,yDAAoDvE,EAAKU,KAAKoM,cAAa,KAChF6M,UAAU,MAAK,SAEf,+BACC,cAACb,GAAA,EAAU,CACVgC,UAAU,EACVxU,QAAS,WACT,EAAE,SAEF,+BACC,mBACCuS,KAAI,4CAAuC7Y,EAAKU,KAAKoM,eACrD8L,IAAI,aACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,QAAW,SAEpC,cAACwZ,GAAA,EAAe,CAAC/vB,MAAO,CAACqB,MAAO,oBAM3B,WAATb,EACA,cAACmY,GAAA,EAAU,CACVxS,QAAS,WACRkkB,EAAYrlB,GAAOxE,GAAQ,GAE3B8pB,EAAeD,GACfM,EAAUqB,KAAKC,SAChB,EAAE,SAEF,cAAC,KAAU,MAEX,KACF,cAACtW,GAAA,EAAO,CACPtU,MAAM,YACN+C,MAAK,cAASgrB,EAAW,OAAS,OAAM,YACxC5V,UAAU,MAAK,SAEf,+BACC,cAACb,GAAA,EAAU,CACVgC,UAAwB,IAAdmP,EACV3jB,QAAS,WACRkpB,GAAaD,EACd,EAAE,SAEDA,EAAW,cAACY,GAAA,EAAc,IAAM,cAACC,GAAA,EAAc,gBAOpDb,EACAO,EAASlxB,KAAI,SAACyxB,EAASC,GACtB,QAAqBpsB,IAAjB6lB,EACHsG,EAAQ5B,MAAQruB,EAAME,QAAQyB,iBACxB,CACN,IAAM2sB,EAAUlC,GAAQ6D,EAAQ1vB,MAC1BiuB,EAAU7E,EAAa2E,QAEbxqB,IAAZ0qB,QAAiD1qB,IAAxB0qB,EAAQ/Z,aAAqD,KAAxB+Z,EAAQ/Z,kBAA4C3Q,IAArBmsB,EAAQ3Q,UAA+C,KAArB2Q,EAAQ3Q,SAK1I2Q,EAAQ5B,MAAQruB,EAAME,QAAQyB,cAJ9BsuB,EAAQ5B,MAAQG,EAAQ/Z,YACxBwb,EAAQ3U,OAASkT,EAAQpvB,GACzB6wB,EAAQ3Q,SAAWkP,EAAQhpB,KAI7B,CAEA,OACC,sBAAoBzF,MAAO,CAACwH,QAAS,OAAQ3C,UAAW,GAAIvD,UAAW,GAAIyhB,UAAW,mCAAsC5c,QAAS,YAC3G,IAArB+pB,EAAQvV,WAKC,WAATna,EACH6pB,EAAYrlB,GAAOxE,GAAM2uB,GAAYe,EAErC7F,EAAYrlB,GAAOxE,GAAQ0vB,EAG5B5F,EAAeD,GACfM,EAAUqB,KAAKC,UACfoD,GAAY,GACb,EAAE,UACD,qBAAK3nB,IAAKwoB,EAAQ5B,MAAO7mB,IAAKyoB,EAAQ3Q,SAAUvf,MAAO,CACtD2I,OAAQ,GACRpD,MAAO,GACP3E,aAAc,GACdI,OAAQ,kCACRyI,OAAQ,EACRlI,WAAY,GACZ6D,QAA6B,IAArB8qB,EAAQvV,SAAoB,OAAQ,WAC1CxU,QAAS,WACZ,IACA,cAAC0B,EAAA,EAAU,CAACC,QAAQ,QAAQzG,OAA4B,IAArB6uB,EAAQvV,SAAoB,gBAAkB,cAAe3a,MAAO,CAACoF,OAAQ,UAAWqE,OAAQ,EAAG1B,UAAW,IAAK,SACpJmoB,EAAQ3vB,SA3BD4vB,EA+BZ,IAEA,OAIJ,EAIA,OACC,sBAAKnwB,MAAO,CAACwB,SAAU,OAAQoG,SAAU,QAAW,UAC/CknB,GACHtC,IACc,IAAd3C,QAAyC9lB,IAAlBV,EACvB,cAACwE,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACsR,aAAc,GAAInM,UAAW,UAAW,SACxE,8BAAI9B,EAAa,KAAIgnB,EAAYI,GAAchlB,UAE/C,KACD0mB,GAAS1tB,KAAI,SAACoB,EAAMmF,GACpB,OACC,sBAAiBhF,MAAO,CAAC,EAAE,UAC1B,cAACivB,GAAO,CAACpvB,KAAMA,EAAK8rB,OAAQnrB,KAAM,SAAUwE,MAAOA,SAElCjB,IAAhBlE,EAAKgsB,QAAwC,OAAhBhsB,EAAKgsB,QAAmBhsB,EAAKgsB,OAAO7gB,OAAS,EAC1EnL,EAAKgsB,OAAOptB,KAAI,SAAC2xB,EAAWC,GAC3B,OACC,gCACC,qBAAKrwB,MAAO,CAACmB,gBAAiB,uBAAwByG,SAAU,EAAGpG,SAAU,EAAGF,UAAW,GAAIuD,UAAW,GAAI4E,OAAQ,UACtH,cAACwlB,GAAO,CAAkBpvB,KAAMuwB,EAAWlB,SAAS,EAAM1uB,KAAM,SAAUwE,MAAOA,EAAOmqB,SAAUkB,GAApFA,KAFLA,EAKZ,IACC,KAEF,qBAAKrwB,MAAO,CAACmB,gBAAiB,uBAAwByG,SAAU,EAAGpG,SAAU,EAAGF,UAAW,GAAIuD,UAAW,GAAI4E,OAAQ,eACnG1F,IAAlBV,GAAsD,IAAvBxD,EAAKgsB,OAAO7gB,OAC3C,uBAAMhL,MAAO,CAAC,EAAE,UACf,cAAC2Y,GAAA,EAAU,CACV3Y,MAAO,CACNuF,MAAO,GACPoD,OAAQ,GACR1H,QAAS,EACTM,WAAY,SAEb4E,QAAS,WACRmB,QAAQC,IAAI,qBAEZ8iB,EAAYrlB,GAAO6mB,OAAO1e,KAAKsc,GAAS,IACxCa,EAAeD,GACfM,EAAUqB,KAAKC,SAChB,EAAE,SAEF,cAACqE,GAAA,EAAoB,CAACtwB,MAAO,CAACuB,WAAY,OAE3C,qBAAKvB,MAAO,CAACmB,gBAAiB,uBAAwByG,SAAU,EAAGpG,SAAU,EAAGF,UAAW,GAAIuD,UAAW,GAAI4E,OAAQ,aAEtH,KAEF,cAACwlB,GAAO,CAACpvB,KAAMA,EAAKksB,YAAavrB,KAAM,cAAewE,MAAOA,KAC9C,IAAd6kB,QAAuC9lB,IAAhB0Z,EAASpe,GAChC,cAAC8W,EAAA,EAAM,CACN1N,WAAS,EACTzI,MAAO,CAAC+H,UAAW,IACnBD,QAAS,YACTzG,MAAM,UACN8E,QAAS,WACR4oB,GAA2BlvB,EAE5B,EAAE,SAED+qB,EACA,cAAC/P,EAAA,EAAgB,CAAC7a,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAIhE,WAAY,OAAQmK,YAAa,UAElF,+BAGD,UACe3H,IAAhB0Z,EAASpe,SAAsC0E,IAAlBV,EAC7B,KAEA,mBACCqV,KAAI,qBAAgB+E,EAASpe,IAC7BoZ,IAAI,aACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,QAAW,SAEpC,cAACJ,EAAA,EAAM,CAAC1N,WAAS,EAACzI,MAAO,CAAC+H,UAAW,IAAMD,QAAS,YAAazG,MAAM,YAAY8E,QAAS,WAC5F,EAAE,6CAnEKnB,EA0EZ,MAGH,E,sBCh1CeurB,GA7MY,SAAC3tB,GAC1B,IAAQM,EAAsGN,EAAtGM,UAAWM,EAA2FZ,EAA3FY,SAAUgtB,EAAiF5tB,EAAjF4tB,mBAAoBC,EAA6D7tB,EAA7D6tB,cAAeC,EAA8C9tB,EAA9C8tB,sBAAuBC,EAAuB/tB,EAAvB+tB,YAAaviB,EAAUxL,EAAVwL,KAErG,EAA0ClK,IAAMC,SAAS,IAAG,mBAArD8lB,EAAa,KAAEC,EAAgB,KACtC,EAAkDhmB,IAAMC,SAAS,IAAG,mBAA7DysB,EAAiB,KAAEC,EAAoB,KAC9C,EAAgD3sB,IAAMC,SAAS,IAAG,mBAA3D2sB,EAAgB,KAAEC,EAAmB,KAC5C,EAA8C7sB,IAAMC,SAAS,IAAG,mBAAzD6sB,EAAe,KAAEC,EAAkB,KAC1C,EAAsC/sB,IAAMC,UAAS,GAAM,mBAApD+sB,EAAW,KAAE9G,EAAc,KAE3B3mB,EACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAanB,GAVAwE,qBAAU,YACW,IAAhB6oB,IACH5pB,QAAQC,IAAI,iBACZupB,EAAiB3jB,KAAK8c,GACtB8G,EAAoBD,GAEpB1G,GAAe,GAEjB,GAAG,CAAC8G,SAEuBntB,IAAvBysB,GAAkE,IAA9BA,EAAmBxlB,OAC1D,OAAO,KAQR,GALI2lB,IAAgBK,IACnBC,EAAmBN,GACnBI,EAAoB,KAGjBD,EAAiB9lB,SAAWwlB,EAAmBxlB,OAElD,OADA1D,QAAQC,IAAI,+BACL,KAUR,IAAM4pB,EAAclH,EAAcjf,OAAS,GAAK4lB,EAAkB5lB,OAAS,GAAK,EAAI,MAE9EomB,EAAoB,SAACxuB,GAC1B,IAAQ4oB,EAAmB5oB,EAAnB4oB,QAASxmB,EAAUpC,EAAVoC,MACjB,EAAgCd,IAAMC,UAAS,GAAM,mBAA9CktB,EAAQ,KAAEC,EAAW,KAEtBC,EAAc/F,EAAQ/lB,KACtB+rB,OAAgCztB,IAAlBynB,EAAQnqB,MAAsBmqB,EAAQnqB,MAAQ,wBAG5DowB,EAAWjG,EAAQzgB,MAAM,GAAGmH,IAC9Bwf,EAAWlG,EAAQzgB,MAAM,GAAGmH,IAC5BsZ,EAAQzgB,MAAMC,OAAS,IAC1B0mB,EAAWlG,EAAQzgB,MAAM,GAAGmH,KAG7B,IAAMsQ,EAAWsO,EAAiB3kB,SAASolB,GACrCI,EAAenP,EAAW,cAACoP,GAAA,EAAQ,IAAM,cAACC,GAAA,EAAe,IAE/D,OAAIrP,EACI,KAKP,cAAC7M,GAAA,EAAO,CACPvR,MAAK,uBAAkBmtB,EAAW,KAClC/X,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,sBAAiB/J,MAAO,CAACoF,OAAQod,EAAW,OAAS,UAAWza,UAAW,GAAI9G,QAAS,GAAIL,aAAcX,EAAME,QAAQS,aAAcI,OAAO,aAAD,OAAewwB,GAAehqB,QAAS,OAAQrG,iBAA8B,IAAbkwB,EAAoBpxB,EAAME,QAAQO,WAAaT,EAAME,QAAQM,cAAiBwF,YAAa,WACtSqrB,GAAY,EACb,EAAGprB,WAAY,WACdorB,GAAY,EACb,EAAGnrB,QAAS,WACP1C,GACF2C,IAAQC,MAAM,CACbC,SAAU,UACVC,OAAQ,2BACRC,MAAO+qB,IAIVjqB,QAAQC,IAAI,eAAgBgqB,GAC5BV,EAAqBrF,EAAQhrB,MAC7B0pB,EAAiBqH,EAElB,EAAE,UACD,sBAAKvxB,MAAO,CAACiV,KAAM,IAAI,UACtB,cAACpN,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzBypB,IAEF,sBAAKvxB,MAAO,CAACwH,QAAS,OAAQO,UAAW,GAAK,UAC7C,qBAAKN,IAAKgqB,EAAS/c,YAAahN,IAAK+pB,EAAS/c,YAAa1U,MAAO,CAACY,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,GAAImG,YAAa,MACzH,qBAAKjE,IAAKiqB,EAAShd,YAAahN,IAAKgqB,EAAShd,YAAa1U,MAAO,CAACY,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,YAI1G,qBAAKvF,MAAO,CAACiV,KAAM,GAAG,SACpB0c,MA7BO3sB,IAkCb,EAGA,OACC,eAACe,EAAA,EAAK,CAAC/F,MAAO,CAACyJ,OAAQ,OAAQpE,SAAU,WAAYlE,gBAAiBlB,EAAME,QAAQM,aAAcG,aAAcX,EAAME,QAAQS,aAAcmJ,OAAQonB,EAAanwB,OAAQ,kCAAmCsX,IAAK,IAAK6Q,KAAM,IAAK,UAChO,eAAC9M,GAAA,EAAM,CACLC,KAAM2N,EAAcjf,OAAS,GAAK4lB,EAAkB5lB,OAAS,EAC7DuR,QAAS,WACRuU,EAAiB3jB,KAAK8c,GACtB8G,EAAoBD,GAIpB5G,EAAiB,IACjB2G,EAAqB,GACtB,EACArU,WAAY,CACXxc,MAAO,CACN4sB,cAAe,OACfzrB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,IACV3G,QAAS,GACTqE,SAAU,SACVyE,OAAQ,MACR/I,OAAQf,EAAME,QAAQU,gBAEtB,UAEA,cAAC8X,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACPlX,MAAO,QAET8E,QAAS,WACZ2qB,EAAiB3jB,KAAK8c,GACtB8G,EAAoBD,GAEpB5G,EAAiB,IACjB2G,EAAqB,GAClB,EAAE,SAEF,cAAC,KAAS,MAEf,cAAC,GAAa,CACb3tB,UAAWA,EACXG,cAAeutB,EACf3G,cAAeA,EACfL,aAAc6G,EACdjtB,SAAUA,EACV2mB,SAAS,EACTC,eAAgBA,EAChBF,iBAAkBA,EAClB9b,KAAMA,OAGR,sBAAKpO,MAAO,CAAC4H,SAAU,IAAKpG,SAAU,IAAKP,QAAS,GAAIL,aAAcX,EAAME,QAAQS,aAAcyE,SAAU,YAAc,UACzH,eAACwC,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACmF,UAAW,UAAU,kCAClC2rB,EAAiB9lB,OAAM,IAAGwlB,EAAmBxlB,OAAM,OAE1E,cAAC2N,GAAA,EAAU,CACV3Y,MAAO,CACN+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,EACLC,MAAO,EACPlX,MAAO,OACPJ,QAAS,GAEVkF,QAAS,gBACsBpC,IAA1B2sB,GACHA,EAAsB,GAExB,EAAE,SAEF,cAAC,KAAS,CAAC1wB,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,QAEtCirB,EAAmB/xB,KAAI,SAAC+sB,EAASxmB,GAEjC,OACC,cAACosB,EAAiB,CAEjB5F,QAASA,EACTxmB,MAAOA,GAFFA,EAMR,SAIJ,E,WC3Na8sB,GAAoB,CAC/B,CACCxD,MAAO,sBAAMyD,EAAE,42CACfxxB,KAAM,QACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,oqBACRxxB,KAAM,OACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,68BACRxxB,KAAM,SACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,i9FACRxxB,KAAM,MACNuU,YAAa,mBAEd,CACCwZ,MAAQ,sBAAMyD,EAAE,8+BAChBxxB,KAAM,QACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,uZACRxxB,KAAM,QACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,oMACRxxB,KAAM,UACNuU,YAAa,mBAEd,CACCwZ,MACA,sBAAMyD,EAAE,ybACRxxB,KAAM,WACNuU,YAAa,oB,oBChBhBkd,OAAcC,IAGd,IAAMC,GAAU,GAMH/F,IAJHgG,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,k7CACpIC,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,+fAG5H,CACvB,KAAQ,CACP,OAAU,GACV,UAAa,IAEd,SAAY,CACX,OAAU,GACV,UAAa,CACZ,CACC,OAAU,cACV,OAAU,QACV,YAAe,iBACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,SACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,QACV,OAAU,WACV,OAAS,KAGZ,WAAc,CACb,OAAU,GACV,UAAa,CACZ,CACC,OAAU,cACV,OAAU,WACV,YAAe,iBACf,OAAS,GAEV,CACC,OAAU,WACV,OAAU,UACV,YAAe,GACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,WACV,OAAS,EACT,YAAe,WAEhB,CACC,OAAU,UACV,OAAU,MACV,OAAS,EACT,YAAe,gBAEhB,CACC,OAAU,UACV,OAAU,QACV,YAAe,kCACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,wBACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,QACV,OAAU,WACV,YAAe,iBACf,OAAS,KAIZ,SAAY,CACX,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,UACV,YAAe,UACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,OACV,YAAe,YACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,SACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,MACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,QACV,OAAU,WACV,OAAS,KAIZ,mBAAoB,CACnB,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,OACV,YAAe,UACf,OAAS,GAGV,CACC,OAAU,OACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,eACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,UACV,YAAe,WACf,OAAS,KAIZ,cAAe,CACd,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,OACV,YAAe,SACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,YAAe,SACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,SACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,MACV,OAAU,UACV,OAAS,EACT,YAAe,UAEhB,CACC,OAAU,UACV,OAAU,MACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,WACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,WACV,OAAS,KAIZ,iBAAkB,CACjB,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,OACV,YAAe,aACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,OACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,WACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,YAAe,aACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,UACV,YAAe,aACf,OAAS,GAEV,CACC,OAAU,WACV,OAAU,UACV,YAAe,aACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,SACV,OAAU,UACV,YAAe,wBACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,wBACf,OAAS,KAIZ,gBAAmB,CAClB,OAAU,GACV,UAAa,CACZ,CACC,OAAU,YACV,OAAU,SACV,YAAe,WACf,OAAS,GAEV,CACC,OAAU,SACV,OAAU,UACV,YAAe,WACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,eACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,eACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,YAAe,GACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,SACV,YAAe,aACf,OAAS,KAIZ,UAAa,CACZ,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,QACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,mBACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,OAAS,GAEV,CACC,OAAU,UACV,OAAU,SACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,MACV,YAAe,iBACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,OAAS,KAIZ,WAAc,CACb,OAAU,GACV,UAAa,CACZ,CACC,OAAU,WACV,OAAU,QACV,YAAe,eACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,wBACf,OAAS,GAEV,CACC,OAAU,MACV,OAAU,UACV,YAAe,oBACf,OAAS,GAEV,CACC,OAAU,SACV,OAAU,UACV,YAAe,sBACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,YAAe,mBACf,OAAS,GAEV,CACC,OAAU,QACV,OAAU,UACV,YAAe,8BACf,OAAS,GAEV,CACC,OAAU,WACV,OAAU,UACV,YAAe,0BACf,OAAS,GAEV,CACC,OAAU,OACV,OAAU,UACV,YAAe,oCACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,UACV,YAAe,cACf,OAAS,GAEV,CACC,OAAU,UACV,OAAU,QACV,YAAe,GACf,OAAS,KAIZ,KAAQ,CACR,IA8+CcE,GA3+CM,SAACxvB,GACpB,IAAQM,EAA8NN,EAA9NM,UAAqBmvB,GAAyMzvB,EAAnN+K,SAAmN/K,EAAzMyvB,aAAaC,EAA4L1vB,EAA5L0vB,eAAyB7B,GAAmK7tB,EAA5K2vB,QAA4K3vB,EAAnK6tB,eAAe+B,EAAoJ5vB,EAApJ4vB,iBAAkB1X,EAAkIlY,EAAlIkY,KAAM2X,EAA4H7vB,EAA5H6vB,aAAc/kB,EAA8G9K,EAA9G8K,WAAYrM,EAAkGuB,EAAlGvB,MAAOqxB,EAA2F9vB,EAA3F8vB,iBAAkBC,EAAyE/vB,EAAzE+vB,oBAAqBnvB,EAAoDZ,EAApDY,SAAU4K,EAA0CxL,EAA1CwL,KAAMwkB,EAAoChwB,EAApCgwB,cAAeC,EAAqBjwB,EAArBiwB,iBAClN,EAAoB3uB,IAAMC,WAAU,mBAA7BT,EAAE,KAAEovB,EAAK,KAChB,EAAwC5uB,IAAMC,UAAS,GAAM,mBAAtD4uB,EAAY,KAAEC,EAAe,KACpC,EAAkC9uB,IAAMC,UAAS,GAAM,mBAAhD8uB,EAAS,KAAEC,EAAY,KAC9B,EAA4BhvB,IAAMC,UAAS,GAAM,mBAA1CgvB,EAAM,KAAEC,EAAS,KACxB,EAA0ClvB,IAAMC,SAAS,CAAC,GAAE,mBAArD6kB,EAAa,KAAEC,EAAgB,KACtC,EAA0C/kB,IAAMC,UAAS,GAAK,mBAAvD2kB,EAAa,KAAEC,EAAgB,KACtC,EAAwD7kB,IAAMC,SAAS,IAAG,oBAAnEkvB,GAAoB,MAAEC,GAAuB,MACpD,GAA4CpvB,IAAMC,SAAS,CAAC,GAAE,qBAAvDhB,GAAc,MAAEC,GAAiB,MACxC,GAA0Cc,IAAMC,SAAS,IAAG,qBAArDd,GAAa,MAAE6lB,GAAgB,MACtC,GAAgDhlB,IAAMC,UAAS,GAAM,qBAA9DovB,GAAgB,MAAEC,GAAmB,MAC5C,GAAoCtvB,IAAMC,SAAS,IAAG,qBAA/CykB,GAAU,MAAEC,GAAa,MAChC,GAAoC3kB,IAAMC,SAAS,IAAG,qBAA/CsvB,GAAU,MAAEC,GAAa,MAGhC,GAAsCxvB,IAAMC,SAAS,GAAE,qBAAhDwvB,GAAW,MAClB,IADkC,MACYzvB,IAAMC,cAA4BJ,IAAnBuuB,EAA+BA,EAAiB,aAAW,qBAAjHsB,GAAe,MAAEC,GAAkB,MAEpCC,QAAiB/vB,IAAT+W,EAAqB,EAAIA,EAAO,EAAI,EAAIA,EAE/ClN,GAAQC,cA4HfxF,qBAAU,WAET,GADAf,QAAQC,IAAI,mBAAoBmrB,QACP3uB,IAArB2uB,GAA0D,YAAxBA,EAAiBrzB,SAA4C0E,IAAxB2uB,EAAiBrzB,SAA2B0E,IAAPL,EAO/G,OANAulB,EAAiB,CAAC,aAEPllB,IAAPL,GACHA,EAAGqwB,QAAQ1K,YASb,IAAM0K,EAAQrwB,EAAGqwB,QAAQC,QACzB,IAAK,IAAIvnB,KAAOsnB,EAAO,CACtB,IAAME,EAAOF,EAAMtnB,GACfynB,EAAgBxB,EAAiBrzB,GAAGqG,UASxC,GARsB,UAAlBwuB,IACHA,EAAgB,SAGK,gBAAlBA,GAAqD,aAAlBA,IACtCA,EAAgB,YAGbD,EAAKp0B,KAAKR,KAAO60B,EAAe,CACnC,IAAMC,EAAUzwB,EAAGgS,eAAeue,EAAKp0B,KAAKR,SAC5B0E,IAAZowB,GACHA,EAAQ9Q,SAGT6F,GAAiBwJ,EAAiBrzB,IAClCwpB,GAAc6J,EAAiBrzB,GAChC,CACD,CAGD,GAAG,CAACqzB,IAEJ,IAyEMpD,GAAmB,SAACzvB,GA7BL,IAAC0vB,EA8BrBjoB,QAAQC,IAAI,2BAA4B1H,EAAM4D,IACzCA,KA/BgB8rB,EAgCR1vB,EAAKR,GA/BjBkS,MAAMrO,EAAU,gBAAgBqsB,EAAM,YAAa,CACjD/d,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB,OAAU,oBAEX6K,YAAa,YAEd1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,sBAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAChBjF,GAAM6E,MAAM,6BAId,IACCD,OAAM,SAAAC,GAENnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC3C,KASCkF,MAAMrO,EAAY,sCAAuC,CACvDsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,eACY9O,IAAxB+N,EAAasJ,OAChBxN,GAAM6E,MAAM,oBAAsBX,EAAasJ,QAE/CxN,GAAM6E,MAAM,4CAOf,IACID,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WAEpB,GACJ,EAEDhE,qBAAU,WAET,GADAf,QAAQC,IAAI,qBAAsBpE,GAAgB6lB,QAClBjlB,IAA5BZ,GAAe+B,eAAsDnB,IAA5BZ,GAAe+B,UAA8D,IAAnC/B,GAAe+B,SAAS8F,OAA/G,CAWA,QAAyBjH,IAArBilB,EAAc3pB,GAIjB,OAHAiI,QAAQC,IAAI,yCAEZ7D,EAAG0lB,WAAWC,WAIf,IAAMoG,EAAc,CACnB,KAAQzG,EAAc3pB,GACtB,KAAQ8D,GAAesC,KACvB,GAAMtC,GAAe+B,SACrB,YAAe/B,GAAewE,UAC9B,iBAA8C5D,IAA/BZ,GAAe2R,YAA4B,GAAK3R,GAAe2R,aAIzEsf,EAAe1wB,EAAGgS,eAAesT,EAAc3pB,IAUrD,QATqB0E,IAAjBqwB,GAA+C,OAAjBA,IACjCA,EAAav0B,KAAK,cAAesD,GAAewE,WAChDysB,EAAav0B,KAAK,WAAY,OAC9Bu0B,EAAav0B,KAAK,WAAY,OAC9Bu0B,EAAav0B,KAAK,gBAAgB,GAAD,OAAK,GAAGi0B,GAAK,OAC9CM,EAAav0B,KAAK,QAAQ,GAAD,OAAK,GAAGi0B,GAAK,OACtCM,EAAav0B,KAAK,SAAS,GAAD,OAAK,GAAGi0B,GAAK,aAGf/vB,IAArByuB,EAAgC,CAGnC,IADA,IAAI/yB,EAAO,GACX,MAA2BC,OAAO8M,QAAQikB,GAAc,eAAE,CAArD,0BAAOhkB,EAAG,KAAO,KACjBA,EAAIE,gBAAkBqc,EAAc3pB,GAAGsN,eAC1ClN,EAAK0N,KAAKV,EAEZ,CAEA,GAAoB,IAAhBhN,EAAKuL,OACR1D,QAAQC,IAAI,mBAAoByhB,EAAc3pB,GAAI,OAAQoxB,OACpD,CACN,IAAK,IAAIhkB,KAAOhN,EACfgxB,EAAchxB,EAAKgN,IAAQgjB,EAG5BnoB,QAAQC,IAAI,kBAAmBkpB,GAC/B+B,EAAiB/B,QAEiB1sB,IAA9BilB,EAActU,aAA2D,OAA9BsU,EAActU,aAAwBsU,EAActU,YAAYvI,SAAS,0BA/U/F,SAAC6hB,EAASyC,GACrCnpB,QAAQC,IAAI,gCACZmsB,GAAc1F,GAId,IAAIqG,EAAqBrG,EACV,SAAXA,IACHqG,EAAqB,SAWtB,IAAIC,EAAe,GAEnB,IAAK,IAAI7nB,KAAO8c,GACf,IAAK,IAAIjc,KAAUic,GAAa9c,GAAKtD,MAAO,CAC3C,IAAMqiB,EAAUjC,GAAa9c,GAAKtD,MAAMmE,GAExC,IAAuB,IAAnBke,EAAQjL,OAAZ,CAIA,IAAIgU,GAAY,EACZC,EAAU,GACd,IAAK,IAAIC,KAAYjJ,EAAQzgB,MAAO,CACnC,IAAI2pB,EAAUlJ,EAAQzgB,MAAM0pB,GAAUE,SAAShoB,cACjB,UAA1B+nB,EAAQ/nB,eAAuD,UAA1B+nB,EAAQ/nB,eAAyC,kBAAZ+nB,IAC7EA,EAAU,SAKP1G,EAAQrhB,gBAAkB+nB,EAAQ/nB,eAAiBqhB,EAAQrhB,cAAcR,SAASuoB,EAAQ/nB,gBAAkB0nB,EAAmB1nB,gBAAkB+nB,EAAQ/nB,eAAiB0nB,EAAmB1nB,cAAcR,SAASuoB,EAAQ/nB,gBAC/N4nB,GAAY,EACZjtB,QAAQC,IAAI,eAAgBmtB,QAEG3wB,IAA3B0sB,EAAciE,SAA0D3wB,IAAhC0sB,EAAciE,GAASjvB,MAAsD,OAAhCgrB,EAAciE,GAASjvB,MAAiBgrB,EAAciE,GAASjvB,KAAKuF,OAAS,IACrKwgB,EAAQzgB,MAAM0pB,GAAUviB,IAAMue,EAAciE,IAG7CF,EAAQrnB,KAAKqe,EAAQzgB,MAAM0pB,UAGI1wB,IAA3B0sB,EAAciE,QAEmB3wB,IAAhC0sB,EAAciE,GAASjvB,MAAsD,OAAhCgrB,EAAciE,GAASjvB,MAAiBgrB,EAAciE,GAASjvB,KAAKuF,OAAS,IAE7HwgB,EAAQzgB,MAAM0pB,GAAUviB,IAAMue,EAAciE,GAG5CF,EAAQrnB,KAAKqe,EAAQzgB,MAAM0pB,KAK5BntB,QAAQC,IAAI,8BAA+BmtB,EAG9C,CAGA,GAAIH,EAAW,CAEd,QAAsBxwB,IAAlB6uB,QAAoD7uB,IAArB8uB,QAAiE9uB,IAA/BynB,EAAQoJ,oBAAoCpJ,EAAQoJ,mBAAmB5pB,OAAS,EAAG,CACvJ,IAAI6pB,GAAe,EACnB,IAAK,IAAIC,KAAclC,EAAe,CACrC,IAAMmC,EAAkBnC,EAAckC,GACtC,IAAK,IAAIE,KAAiBD,EAAgBxyB,KAAM,CAC/C,IAAM0yB,EAAcF,EAAgBxyB,KAAKyyB,GACzC,QAA4BjxB,IAAxBkxB,EAAYT,SAAiD,OAAxBS,EAAYT,SAAmD,IAA/BS,EAAYT,QAAQxpB,QAKzFwgB,EAAQoJ,mBAAmBzoB,SAAS8oB,EAAYxvB,MAAO,CAC1DovB,GAAe,EACf,KACD,CACD,CAEA,GAAIA,EACH,KAEF,CAEA,GAAKA,EAEE,CACNvtB,QAAQC,IAAI,6BAA8BikB,EAAQoJ,oBAClD,QACD,CAJCttB,QAAQC,IAAI,qBAKd,MACCD,QAAQC,IAAI,kFAGbD,QAAQC,IAAI,YAAaikB,GACrBgJ,EAAQxpB,SAAWwgB,EAAQzgB,MAAMC,SACpCwgB,EAAQnqB,MAAQ,UAChBmqB,EAAQhrB,KAAO+oB,GAAa9c,GAAKhH,KACjC6uB,EAAannB,KAAKqe,GAEpB,CAjFA,CAkFD,CAIDlkB,QAAQC,IAAI,IACZD,QAAQC,IAAI,iBAAkB+sB,GAG1BA,EAAatpB,OAAS,GACzBsoB,GAAwBgB,EAAa/0B,MAAM,EAAE,GAE/C,CAwNI21B,CAAoBlM,EAAc3pB,GAAIoxB,GAEtCnpB,QAAQC,IAAI,2CAEd,CACD,CAEA+nB,GAAiBG,GACjB/rB,EAAG0lB,WAAWC,UA/Dd,CAiED,GAAG,CAAClmB,KAGH,IAAMM,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAGfsxB,QAAwCpxB,IAAlB0sB,EAA8B,CAAC,EAAIA,OAGvC1sB,IAAlB0sB,QACyB1sB,IAAxB0sB,EAAc2E,aACuBrxB,IAApC0sB,EAAc2E,MAAM1gB,aAAiE,OAApC+b,EAAc2E,MAAM1gB,aAA4D,KAApC+b,EAAc2E,MAAM1gB,eACpH+b,EAAc2E,MAAQ,CAAC,GAGxBD,GAAoBE,MAAQ5E,EAAc2E,OAE1CD,GAAoBE,MAAQ,CAAC,OAGHtxB,IAAvB0sB,EAAc6E,YACsBvxB,IAAnC0sB,EAAc6E,KAAK5gB,aAAgE,OAAnC+b,EAAc6E,KAAK5gB,aAA2D,KAAnC+b,EAAc6E,KAAK5gB,eACjH+b,EAAc6E,KAAO,CAAC,GAGvBH,GAAoBI,KAAO9E,EAAc6E,MAEzCH,GAAoBI,KAAO,CAAC,OAGAxxB,IAAzB0sB,EAAc+E,cACwBzxB,IAArC0sB,EAAc+E,OAAO9gB,aAAkE,OAArC+b,EAAc+E,OAAO9gB,aAA6D,KAArC+b,EAAc+E,OAAO9gB,eACvH+b,EAAc+E,OAAS,CAAC,GAGzBL,GAAoBM,OAAShF,EAAc+E,QAE3CL,GAAoBM,OAAS,CAAC,OAGH1xB,IAAxB0sB,EAAciF,aACuB3xB,IAApC0sB,EAAciF,MAAMhhB,aAAiE,OAApC+b,EAAciF,MAAMhhB,aAA4D,KAApC+b,EAAciF,MAAMhhB,eACpH+b,EAAciF,MAAQ,CAAC,GAGxBP,GAAoBQ,MAAQlF,EAAciF,OAE1CP,GAAoBQ,MAAO,CAAC,OAGO5xB,IAAhC0sB,EAAcmF,qBAC+B7xB,IAA5C0sB,EAAcmF,cAAclhB,aAAyE,OAA5C+b,EAAcmF,cAAclhB,aAAoE,KAA5C+b,EAAcmF,cAAclhB,eAC5I+b,EAAcmF,cAAgB,CAAC,GAGhCT,GAAoBU,MAAQpF,EAAcmF,eAE1CT,GAAoBU,MAAQ,CAAC,OAGA9xB,IAA1B0sB,EAAcqF,eACyB/xB,IAAtC0sB,EAAcqF,QAAQphB,aAAmE,OAAtC+b,EAAcqF,QAAQphB,aAA8D,KAAtC+b,EAAcqF,QAAQphB,eAC1H+b,EAAcqF,QAAU,CAAC,GAG1BX,GAAoBY,QAAUtF,EAAcqF,SAE5CX,GAAoBY,QAAU,CAAC,OAGNhyB,IAAtB0sB,EAAcuF,WACqBjyB,IAAlC0sB,EAAcuF,IAAIthB,aAA+D,OAAlC+b,EAAcuF,IAAIthB,aAA0D,KAAlC+b,EAAcuF,IAAIthB,eAC9G+b,EAAcuF,IAAM,CAAC,GAGtBb,GAAoBc,IAAMxF,EAAcuF,KAExCb,GAAoBc,IAAM,CAAC,OAGFlyB,IAAtB0sB,EAAcyF,WACqBnyB,IAAlC0sB,EAAcyF,IAAIxhB,aAA+D,OAAlC+b,EAAcyF,IAAIxhB,aAA0D,KAAlC+b,EAAcyF,IAAIxhB,eAC9G+b,EAAcyF,IAAM,CAAC,GAGtBf,GAAoB,YAAc1E,EAAcyF,KAEhDf,GAAoB,YAAc,CAAC,IAKpCA,GAA2B,MAAI,CAAC,EAChCA,GAA0B,KAAI,CAAC,EAC/BA,GAA4B,OAAI,CAAC,EACjCA,GAAyB,IAAI,CAAC,EAC9BA,GAA2B,MAAI,CAAC,EAChCA,GAA2B,MAAI,CAAC,EAChCA,GAA6B,QAAI,CAAC,EAClCA,GAAoB,YAAc,CAAC,GAOpC,IAIMgB,GAAgB,SAAChtB,EAAO3I,GAEf,SAAV2I,GAAqB4pB,IACxBC,GAAgB,GAChBtvB,EAAGuuB,YAAY,CACdmE,YAAa,SAACC,GACb,SAAIA,EAAGC,UACND,EAAGx2B,KAAK,aACRw2B,EAAGx2B,KAAK,iBACW,YAApBw2B,EAAGx2B,KAAK,QAKT,EACA02B,SAAS,EACTC,kBAAkB,EAClBC,YAAa,SAAUxC,GACtB,OAAO,CACR,KAKFJ,GAAmB1qB,GAEnB,IAAMutB,EAAQhzB,EAAGgzB,QACjB,QAAc3yB,IAAV2yB,EAAqB,CACxB,IAAMC,EAAWD,EAAM1C,QACvB,IAAK,IAAIvnB,KAAOkqB,EAAU,CACzB,IAAMC,EAAUD,EAASlqB,GACnB2nB,EAAe1wB,EAAGgS,eAAekhB,EAAQ/2B,KAAKR,SAC/B0E,IAAjBqwB,GAA+C,OAAjBA,GACjCA,EAAayC,QAEf,CACD,CAEA,IAEIC,EAAsB,IAATt2B,EAAa,SAAW,YACzC,QAAiBuD,IAAbooB,IAAuC,OAAbA,GAA9B,CAIA,IAAM4K,EAAW5K,GAAShjB,GAAO2tB,GACjC,IAAK,IAAIrqB,KAAOsqB,EACfA,EAAStqB,GAAKjG,MAAQwwB,SAASvqB,GAAK,OAEF1I,IAA9BgzB,EAAStqB,GAAKqI,aAA2D,OAA9BiiB,EAAStqB,GAAKqI,aAAwBiiB,EAAStqB,GAAKqI,YAAY9J,OAAS,IACvH+rB,EAAStqB,GAAKjG,MAASwwB,SAASvqB,GAAK,EAAG,IAAIsqB,EAAStqB,GAAKqI,aAG3DpR,EAAGuzB,IAAI,CACNC,MAAO,QACPr3B,KAAMk3B,EAAStqB,KAIjBymB,GAAa,EAhBb,CAiBD,EAEMiE,GAAoB,IAG1B,QAAWpzB,IAAPL,GAAoByvB,IAAWI,GAAkB,CACpD,IAAMa,GAAe1wB,EAAGgS,eAAe,SAEvC,QAAqB3R,IAAjBqwB,IAA+C,OAAjBA,GAAuB,CACxDZ,IAAoB,EAoCrB,CACD,CAkKA,GAnBIP,IAAwB,IAAXE,IACdzvB,EAAG0zB,IAAI,KAAM,KACb1zB,EAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAjBP,SAACoH,GAGtB,GAFAiB,QAAQC,IAAIlB,QAEuBtC,IAA/BsC,EAAM2R,OAAOnY,KAAK,WAAyD,IAA/BwG,EAAM2R,OAAOnY,KAAK,SACjEwG,EAAM2R,OAAOnY,KAAK,SAAS,QACrB,IAAmC,IAA/BwG,EAAM2R,OAAOnY,KAAK,SAE5B,YADGwG,EAAM2R,OAAO6e,SAKjBvvB,QAAQC,IAAI,iBAAkBlB,EAAM2R,OAAOnY,QAC3CwG,EAAM2R,OAAOqR,UACd,CAIkCiO,CAAar4B,EAAE,IAC9CyE,EAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAoB,IAE5CyE,EAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,IA3CL,SAACoH,GACnB,IAAIxG,EAAOwG,EAAM2R,OAAOnY,OAC1ByH,QAAQC,IAAI,SAAU1H,GACN,YAAZA,EAAKR,IAKU,aAAfQ,EAAK2G,QACR3G,EAAK2G,MAAQ,eAGdyiB,EAAiBppB,GACjBkpB,GAAiB,GACjB3lB,GAAkB,CAAC,GAEnB8lB,GAAiBrpB,EAAK2G,MAAMb,OAAO,GAAGC,cAAe/F,EAAK2G,MAAMX,UAAU,GAAI8G,gBAZ7EtG,EAAM2R,OAAOqR,UAaf,CA2BEkO,CAAat4B,EACd,IACEyE,EAAG2zB,GAAG,WAAY,QAAQ,SAACp4B,IA1FP,SAACoH,GACrB,IAAIxG,EAAOwG,EAAM2R,OAAOnY,OAC1ByH,QAAQC,IAAI,aAAc1H,QASLkE,IAAjBsC,EAAM2R,QAAyC,OAAjB3R,EAAM2R,SACvC3R,EAAM2R,OAAOwf,QACZ,CACCx3B,MAVe,CACd,eAAgB,OAChB,iBAAkB,KACrB,eAAgB,YASf,CACC8Q,SAAUqmB,KAIZxa,YAAW,WACVtW,EAAM2R,OAAOwf,QACZ,CACCx3B,MAAO,CACN,eAAgB,QAGlB,CACC8Q,SAAUqmB,IAGb,GAAG,OAIJxE,EAAoB,CAAC,GACrB5J,GAAiB,GACjBG,GAAiB,IACjBL,GAAc,GAGf,CAiDE4O,CAAex4B,EAChB,IAEAyE,EAAG2zB,GAAG,YAAa,QAAQ,SAACp4B,IApJT,SAACoH,GACDA,EAAM2R,OAAOnY,OAA9B,IAGI63B,EAAmBtmB,SAASsE,eAAe,uBACxB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,gBAYZrB,IAAjBsC,EAAM2R,QAAyC,OAAjB3R,EAAM2R,QACvC3R,EAAM2R,OAAOwf,QACZ,CACCx3B,MAZe,CACd,eAAgB,MAChB,iBAAkB,OAYpB,CACC8Q,SAAUqmB,IAId,CAwHoCQ,CAAY14B,EAAE,IAC/CyE,EAAG2zB,GAAG,WAAY,QAAQ,SAACp4B,GAAC,OAvHR,SAACoH,GACJA,EAAM2R,OAAOnY,OAA9B,IAGI63B,EAAmBtmB,SAASsE,eAAe,uBACxB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,WAQ/BiB,EAAM2R,OAAOwf,QACX,CACEx3B,MAPY,CACd,eAAgB,QAQhB,CACE8Q,SAAUqmB,IAGjB,CAiGoCS,CAAe34B,EAAE,IAClDyE,EAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAoB,IAE5Cm0B,GAAU,SAGArvB,IAAPL,GAA6C,IAAzBA,EAAG0lB,WAAWpe,aAAwCjH,IAAxBoxB,GAAmC,CAExF,IAAM0C,GAAc,IAAI/D,GAClBgE,GAAgB,IAAIhE,GACpBiE,GAAgB,GAAGjE,GACnBkE,GAAgB,EAAElE,GAElB5B,GAAO,UAAM,GAAE,MAEfzwB,GAAQ,UAAM,GAAGqyB,GAAK,MACtBmE,GAAW,UAAM,GAAGnE,GAAK,MACzBoE,GAAQ,UAAM,GAAGpE,GAAK,MACtBqE,GAAiB,UAAM,GAAGrE,GAAK,MAC/BsE,GAAe,UAAM,GAAGtE,GAAK,MAC7BC,GAAQ,CACb,CACEmD,MAAO,QACPr3B,KAAM,CACLw4B,SAAUJ,GACVK,UAAWL,GACXM,UAAW92B,GACX0Q,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAAyC1B,IAAnCoxB,GAAoBE,MAAM5vB,KAAqB,GAAK0vB,GAAoBE,MAAM5vB,KACpFqP,iBAAuD/Q,IAA1CoxB,GAAoBE,MAAMvgB,YAA4B,GAAKqgB,GAAoBE,MAAMvgB,YAClGyG,YAAyCxX,IAAjCoxB,GAAoBE,MAAMh2B,GAAmB,GAAK81B,GAAoBE,MAAMh2B,GACpFo5B,mBAAyD10B,IAA1CoxB,GAAoBE,MAAM3gB,YAA4ByjB,GAAoBC,GACzFM,cAAoD30B,IAA1CoxB,GAAoBE,MAAM3gB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MAClF6E,cAAoD50B,IAA1CoxB,GAAoBE,MAAM3gB,YAAyB,UAAM,GAAGof,GAAK,YAC3EvuB,WAAiDxB,IAA1CoxB,GAAoBE,MAAM3gB,YAA4BwjB,GAAWD,GACxEtvB,YAAkD5E,IAA1CoxB,GAAoBE,MAAM3gB,YAA4BwjB,GAAWD,GACzEvjB,iBAAuD3Q,IAA1CoxB,GAAoBE,MAAM3gB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,k9CAE9LiD,GAAoBE,MAAM3gB,YACtClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GACHgB,EAAGf,KAGN,CACEb,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAAuC1B,IAAjCoxB,GAAoBc,IAAIxwB,KAAqB,GAAK0vB,GAAoBc,IAAIxwB,KAChFqP,iBAAqD/Q,IAAxCoxB,GAAoBc,IAAInhB,YAA4B,GAAKqgB,GAAoBc,IAAInhB,YAC9FyG,YAAuCxX,IAA/BoxB,GAAoBc,IAAI52B,GAAmB,GAAK81B,GAAoBc,IAAI52B,GAChFo5B,mBAAuD10B,IAAxCoxB,GAAoBc,IAAIvhB,YAA4ByjB,GAAoBC,GACvFM,cAAkD30B,IAAxCoxB,GAAoBc,IAAIvhB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MAChF6E,cAAkD50B,IAAxCoxB,GAAoBc,IAAIvhB,YAAyB,UAAM,GAAGof,GAAK,YACzEvuB,WAA+CxB,IAAxCoxB,GAAoBc,IAAIvhB,YAA4BwjB,GAAWD,GACtEtvB,YAAgD5E,IAAxCoxB,GAAoBc,IAAIvhB,YAA4BwjB,GAAWD,GACvEvjB,iBAAqD3Q,IAAxCoxB,GAAoBc,IAAIvhB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,wjGAE5LiD,GAAoBc,IAAIvhB,YACpClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAAcD,GAAaA,GAAYG,GAC1Cc,EAAGf,GAAcF,GAAaA,GAAYG,KAG7C,CACEd,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAA0C1B,IAApCoxB,GAAoBM,OAAOhwB,KAAqB,GAAK0vB,GAAoBM,OAAOhwB,KACtFqP,iBAAwD/Q,IAA3CoxB,GAAoBM,OAAO3gB,YAA4B,GAAKqgB,GAAoBM,OAAO3gB,YACpGyG,YAA0CxX,IAAlCoxB,GAAoBM,OAAOp2B,GAAmB,GAAK81B,GAAoBM,OAAOp2B,GACtFo5B,mBAA0D10B,IAA3CoxB,GAAoBM,OAAO/gB,YAA4ByjB,GAAoBC,GAC1FM,cAAqD30B,IAA3CoxB,GAAoBM,OAAO/gB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MACnF6E,cAAqD50B,IAA3CoxB,GAAoBM,OAAO/gB,YAAyB,UAAM,GAAGof,GAAK,YAC5EvuB,WAAkDxB,IAA3CoxB,GAAoBM,OAAO/gB,YAA4BwjB,GAAWD,GACzEtvB,YAAmD5E,IAA3CoxB,GAAoBM,OAAO/gB,YAA4BwjB,GAAWD,GAC1EvjB,iBAAwD3Q,IAA3CoxB,GAAoBM,OAAO/gB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,ojCAE/LiD,GAAoBM,OAAO/gB,YACvClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAA0B,EAAZD,GACjBiB,EAAGf,GAA0B,EAAZF,KAGpB,CACEX,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAAyC1B,IAAnCoxB,GAAoBQ,MAAMlwB,KAAqB,GAAK0vB,GAAoBQ,MAAMlwB,KACpFqP,iBAAuD/Q,IAA1CoxB,GAAoBQ,MAAM7gB,YAA4B,GAAKqgB,GAAoBQ,MAAM7gB,YAClGyG,YAAyCxX,IAAjCoxB,GAAoBQ,MAAMt2B,GAAmB,GAAK81B,GAAoBQ,MAAMt2B,GACpFo5B,mBAAyD10B,IAA1CoxB,GAAoBQ,MAAMjhB,YAA4ByjB,GAAoBC,GACzFM,cAAoD30B,IAA1CoxB,GAAoBQ,MAAMjhB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MAClF6E,cAAoD50B,IAA1CoxB,GAAoBQ,MAAMjhB,YAAyB,UAAM,GAAGof,GAAK,YAC3EvuB,WAAiDxB,IAA1CoxB,GAAoBQ,MAAMjhB,YAA4BwjB,GAAWD,GACxEtvB,YAAkD5E,IAA1CoxB,GAAoBQ,MAAMjhB,YAA4BwjB,GAAWD,GACzEvjB,iBAAuD3Q,IAA1CoxB,GAAoBQ,MAAMjhB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,qlCAE/LiD,GAAoBQ,MAAMjhB,YACrClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAAcD,GAAaA,GAAYG,GAC1Cc,EAAGf,GAA0B,EAAZF,GAAeA,GAAYG,KAG/C,CACEd,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAAyC1B,IAAnCoxB,GAAoBU,MAAMpwB,KAAqB,GAAK0vB,GAAoBU,MAAMpwB,KACpFqP,iBAAuD/Q,IAA1CoxB,GAAoBU,MAAM/gB,YAA4B,GAAKqgB,GAAoBU,MAAM/gB,YAClGyG,YAAyCxX,IAAjCoxB,GAAoBU,MAAMx2B,GAAmB,GAAK81B,GAAoBU,MAAMx2B,GACpFo5B,mBAAyD10B,IAA1CoxB,GAAoBU,MAAMnhB,YAA4ByjB,GAAoBC,GACzFM,cAAoD30B,IAA1CoxB,GAAoBU,MAAMnhB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MAClF6E,cAAoD50B,IAA1CoxB,GAAoBU,MAAMnhB,YAAyB,UAAM,GAAGof,GAAK,YAC3EvuB,WAAiDxB,IAA1CoxB,GAAoBU,MAAMnhB,YAA4BwjB,GAAWD,GACxEtvB,YAAkD5E,IAA1CoxB,GAAoBU,MAAMnhB,YAA4BwjB,GAAWD,GACzEvjB,iBAAuD3Q,IAA1CoxB,GAAoBU,MAAMnhB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,8fAE9LiD,GAAoBU,MAAMnhB,YACtClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GACHgB,EAAGf,GAA0B,EAAZF,KAGpB,CACEX,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAA+C1B,IAAzCoxB,GAAoB,YAAY1vB,KAAqB,GAAK0vB,GAAoB,YAAY1vB,KAChGqP,iBAA6D/Q,IAAhDoxB,GAAoB,YAAYrgB,YAA4B,GAAKqgB,GAAoB,YAAYrgB,YAC9GyG,YAA+CxX,IAAvCoxB,GAAoB,YAAY91B,GAAmB,GAAK81B,GAAoB,YAAY91B,GAChGo5B,mBAA+D10B,IAAhDoxB,GAAoB,YAAYzgB,YAA4ByjB,GAAoBC,GAC/FM,cAA0D30B,IAAhDoxB,GAAoB,YAAYzgB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MACxF6E,cAA0D50B,IAAhDoxB,GAAoB,YAAYzgB,YAAyB,UAAM,GAAGof,GAAK,YACjFvuB,WAAuDxB,IAAhDoxB,GAAoB,YAAYzgB,YAA4BwjB,GAAWD,GAC9EtvB,YAAwD5E,IAAhDoxB,GAAoB,YAAYzgB,YAA4BwjB,GAAWD,GAC/EvjB,iBAA6D3Q,IAAhDoxB,GAAoB,YAAYzgB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,giBAEpMiD,GAAoB,YAAYzgB,YAC5ClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAAcD,GAAaA,GAAYG,GAC1Cc,EAAGf,GAA0B,EAAZF,GAAeA,GAAYG,KAG/C,CACEd,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAA2C1B,IAArCoxB,GAAoBY,QAAQtwB,KAAqB,GAAK0vB,GAAoBY,QAAQtwB,KACxFqP,iBAAyD/Q,IAA5CoxB,GAAoBY,QAAQjhB,YAA4B,GAAKqgB,GAAoBY,QAAQjhB,YACtGyG,YAA2CxX,IAAnCoxB,GAAoBY,QAAQ12B,GAAmB,GAAK81B,GAAoBY,QAAQ12B,GACxFo5B,mBAA2D10B,IAA5CoxB,GAAoBY,QAAQrhB,YAA4ByjB,GAAoBC,GAC3FM,cAAwD30B,IAA5CoxB,GAAoBY,QAAQrhB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MACtF6E,cAAwD50B,IAA5CoxB,GAAoBY,QAAQrhB,YAAyB,UAAM,GAAGof,GAAK,YAC/EvuB,WAAuDxB,IAA5CoxB,GAAoBY,QAAQrhB,YAA4BwjB,GAAWD,GAC9EtvB,YAAuD5E,IAA5CoxB,GAAoBY,QAAQrhB,YAA4BwjB,GAAWD,GAC9EvjB,iBAA0D3Q,IAA5CoxB,GAAoBY,QAAQrhB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,ySAEjMiD,GAAoBY,QAAQrhB,YACxClO,MAAQsrB,GAAkB,GAAGvxB,KAAKqF,cAClCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAA0B,EAAZD,GACjBiB,EAAGf,GAA0B,EAAZF,KAGpB,CACEX,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX42B,SAAUJ,GACVK,UAAWL,GACX9lB,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR3a,UAAwC1B,IAAlCoxB,GAAoBI,KAAK9vB,KAAqB,GAAK0vB,GAAoBI,KAAK9vB,KAClFqP,iBAAsD/Q,IAAzCoxB,GAAoBI,KAAKzgB,YAA4B,GAAKqgB,GAAoBI,KAAKzgB,YAChGyG,YAAwCxX,IAAhCoxB,GAAoBI,KAAKl2B,GAAmB,GAAK81B,GAAoBI,KAAKl2B,GAClFo5B,mBAAwD10B,IAAzCoxB,GAAoBI,KAAK7gB,YAA4ByjB,GAAoBC,GACxFM,cAAmD30B,IAAzCoxB,GAAoBI,KAAK7gB,YAAyB,UAAM,GAAGof,GAAK,MAAO,MACjF6E,cAAmD50B,IAAzCoxB,GAAoBI,KAAK7gB,YAAyB,UAAM,GAAGof,GAAK,YAC1EvuB,WAAgDxB,IAAzCoxB,GAAoBI,KAAK7gB,YAA4BwjB,GAAWD,GACvEtvB,YAAiD5E,IAAzCoxB,GAAoBI,KAAK7gB,YAA4BwjB,GAAWD,GACxEvjB,iBAAsD3Q,IAAzCoxB,GAAoBI,KAAK7gB,YAA4Byd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,ywBAE9LiD,GAAoBI,KAAK7gB,YACpClO,MAAOsrB,GAAkB,GAAGvxB,KAAKqF,cACjCvG,GAAIyyB,GAAkB,GAAGvxB,KAAKqF,cAC9B4xB,SAAS,GAEVoB,iBAAkB,CACjBC,EAAGf,GAAcD,GAAaA,GAAYG,GAC1Cc,EAAGf,GAAcF,GAAaA,GAAYG,MA+F9C,IAAK,IAAIvrB,MAzFTsnB,GAAM5mB,KAAK,CACT+pB,MAAO,QACPr3B,KAAM,CACL04B,UAAW92B,GACX8D,MAAO0yB,GACPtvB,OAAQsvB,GACR54B,GAAI,UACJ8S,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR2Y,aAAa,GAEdH,iBAAkB,CACjBC,EAAGf,GACHgB,EAAGf,GAA0B,EAAZF,MAKpB9D,GAAM5mB,KAAK,CACT+pB,MAAO,QACPr3B,KAAM,CACLsS,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR1L,YAAayd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,qwBAGpJ7yB,GAAI,WACJ25B,WAAW,GAEZJ,iBAAkB,CACjBC,EAAGf,GAA0B,IAAZD,GACjBiB,EAAGf,GAAc,MAGpBhE,GAAM5mB,KAAK,CACT+pB,MAAO,QACPr3B,KAAM,CACLsS,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR1L,YAAayd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,qwBAGpJ7yB,GAAI,cACJ25B,WAAW,GAEZJ,iBAAkB,CACjBC,EAAGf,GAA0B,IAAZD,GAAgB,GACjCiB,EAAGf,GAA0B,EAAZF,GAAc,MAGlC9D,GAAM5mB,KAAK,CACT+pB,MAAO,QACPr3B,KAAM,CACLsS,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR1L,YAAayd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,qwBAGpJ7yB,GAAI,eACJ25B,WAAW,GAEZJ,iBAAkB,CACjBC,EAAGf,GAA0B,EAAZD,GAAc,GAC/BiB,EAAGf,GAA0B,EAAZF,GAAc,MAGlC9D,GAAM5mB,KAAK,CACT+pB,MAAO,QACPr3B,KAAM,CACLsS,UAAU,EACVqmB,SAAS,EACTpY,OAAQ,GACR1L,YAAayd,UAAU,8DAAD,OAA+DD,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,qwBAGpJ7yB,GAAI,YACJ25B,WAAW,GAEZJ,iBAAkB,CACjBC,EAAGf,GAA0B,EAAZD,GACjBiB,EAAGf,GAAc,OAKJhE,GACfrwB,EAAGuzB,IAAIlD,GAAMtnB,KAAMwsB,OAKpB,GAFA9C,GAAcvC,GAAiBD,SAEV5vB,IAAjB0uB,GAA+C,OAAjBA,EACjC,IAAK,IAAIhmB,MAAOgmB,EAAayG,QACa,KAArCzG,EAAayG,QAAQzsB,IAAKkf,QAAsD,KAArC8G,EAAayG,QAAQzsB,IAAKuL,SAIzEya,EAAayG,QAAQzsB,IAAKjG,MAAQwwB,SAASvqB,IAAK,EAChDgmB,EAAayG,QAAQzsB,IAAKpN,GAAKinB,cAE/B5iB,EAAGuzB,IAAI,CACNC,MAAO,QACPr3B,KAAM4yB,EAAayG,QAAQzsB,MAM/B,MAEuB1I,IAAnBuuB,GAAgCsB,KAAoBtB,IACvDuB,GAAmBvB,GACnB6D,GAAc7D,EAAgBqB,KAG/B,IA+JMwF,QAAoBp1B,IAAV1C,GAAiC,OAAVA,GAAmC,IAAjBA,EAAM2J,OAAe/K,EAAME,QAAQM,aAAeY,EAE3G,OACC,sBAAKrB,MAAO,CAACyJ,OAAQ,OAAQtI,gBAAiBg4B,GAAS9zB,SAAU,YAAc,UAC9E,qBAAKrF,MAAO,CAACqF,SAAU,YAAY,SAElC,cAAC,GAAkB,CAClBnC,UAAWA,EACXM,SAAUA,EACVitB,cAAeA,EACfD,mBAAoB6C,GACpB3C,sBAAuB4C,GACvB3C,YAAa8C,GACbrlB,KAAMA,OAIS,IAAhBikB,EAAwB,KACxB,qBAAKryB,MAAO,CAACmF,UAAW,UAAW,SACjCzF,OAAOD,KAAK0sB,IAAU1tB,KAAI,SAACoB,EAAMmF,GACjC,OACC,cAACmR,EAAA,EAAM,CAAa9U,MAAM,UAAUyG,QAAS8rB,KAAoB/zB,EAAO,YAAc,WAAYG,MAAO,CAACyJ,OAAQ,GAAMtD,QAAS,WAChIgwB,GAAct2B,EAAM8zB,GACrB,EAAE,SACA9zB,GAHWmF,EAMf,MAoBDtF,OAAO05B,oBAAoBpQ,GAAehe,OAAS,EAClD,eAACjF,EAAA,EAAK,CAAC/F,MAAO,CAACuF,MAAO,IAAKV,UAAW,IAAKS,SAAU,SAAUyE,OAAQ,MAAO9I,QAAS,GAAI2K,aAAc,GAAIzK,gBAAiBlB,EAAME,QAAQM,aAAcO,OAAQ,kCAAmCqE,SAAU,WAAYiT,KAAM,GAAI6Q,KAAM,IAAM,UAC/OP,GAAW5d,OAAS,EACpB,iCACC,cAACnD,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,UAAU,SACpDyjB,KAEF,cAAC5P,GAAA,EAAO,CAAChZ,MAAO,CAAC+H,UAAW,EAAGuJ,aAAc,QAE7C,KACF,cAACqE,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,MAAO1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC9DpS,QAAS,SAAClH,GAETyE,EAAG0lB,WAAWC,WAEdpqB,EAAE0L,iBACFse,EAAiB,CAAC,GAClBC,GAAiB,IACjBL,GAAc,GACf,EAAE,SAEF,cAACS,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,QAASsH,OAAQ,GAAIpD,MAAO,UAGzD,cAACoQ,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,MAAO1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC9DpS,QAAS,SAAClH,GACTA,EAAE0L,iBACFse,EAAiB,CAChB,GAAMD,EAAc3pB,GACpB,MAAS2pB,EAAcxiB,MACvB,KAAQ,KAGTpD,GAAkB,CACjB,SAAW,EACX,OAAU,GACV,UAAa,SACb,SAAY,SACZ,YAAe,GACf,OAAU,GACV,UAAa,SACb,OAAU,SACV,GAAM,GACN,SAAW,EACX,UAAY,EACZ,MAAS,OACT,YAAe,MACf,SAAY,MACZ,SAAY,MACZ,KAAQ,GACR,cAAiB,uBACjB,MAAS,SACT,SAAY,WAGb2lB,GAAiB,GACjBG,GAAiB,IAEjB,IAAMkL,EAAe1wB,EAAGgS,eAAesT,EAAc3pB,SAChC0E,IAAjBqwB,GAA+C,OAAjBA,IACjC9sB,QAAQC,IAAI,YAAa6sB,GACzBA,EAAav0B,KAAK,cAAempB,EAActU,aAC/C0f,EAAav0B,KAAK,gBAAiB,QACnCu0B,EAAav0B,KAAK,WAAY,QAC9Bu0B,EAAav0B,KAAK,WAAY,OAC9Bu0B,EAAav0B,KAAK,QAAS,QAC3Bu0B,EAAav0B,KAAK,SAAU,SAG7B8c,YAAW,WACVsM,EAAiB,CAAC,GAClB7lB,GAAkB,CAAC,EACpB,GAAG,IACJ,EAAE,SAEF,cAACyT,GAAA,EAAU,CAAC7W,MAAO,CAAEqB,MAAO,QAASsH,OAAQ,GAAIpD,MAAO,UAG1D,sBAAKvF,MAAO,CAACwH,QAAS,QAAQ,eACLzD,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC/F,qBAAKhL,MAAO,CAACgB,OAAQ,kCAAmCJ,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,GAAIJ,UAAW,SAAUG,SAAU,UAAW,SAE1I,qBAAKmC,IAAKuhB,EAAc3pB,GAAIqI,SAAkC3D,IAA7BZ,GAAewE,WAAwD,OAA7BxE,GAAewE,WAAsBxE,GAAewE,UAAUqD,OAAS,EAAI7H,GAAewE,UAAYqhB,EAActU,YAAa1U,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAIkE,OAAQ,YAGpP,qBAAKhC,IAAKuhB,EAAc3pB,GAAIqI,IAAKshB,EAActU,YAAa1U,MAAO,CAAC2I,OAAQ,MAE7E,cAACd,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,GAAIwG,UAAW,GAAG,cACzChE,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC/Fge,EAAcvjB,UAEU1B,IAAxBZ,GAAesC,MAA8C,OAAxBtC,GAAesC,MAAiBtC,GAAesC,KAAKuF,OAAS,EACjG7H,GAAesC,KAAI,oBAENujB,EAAcxiB,MAAK,cAIpC,mCACoBzC,IAAlBilB,QAAsDjlB,IAAvBilB,EAAcvjB,MAA6C,OAAvBujB,EAAcvjB,MAAiBujB,EAAcvjB,KAAKuF,OAAS,EAC9H,+BACC,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,GAAIuJ,aAAc,GAAIzM,UAAW,GAAIC,UAAW,OAAQC,UAAW,UAAY,SAClJikB,EAAclU,gBAajBgU,EAEC,+BACC,cAACjhB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,IAAI,+CAK1E,eAACoO,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WACR4iB,GAAiB,GACjBG,GAAiBF,EAAcxiB,MAChC,EAAE,oBAEMwiB,EAAcxiB,MAAK,YAI/B,qBAAKxG,MAAO,CAAC+H,UAAW,IAAI,SAC1B+gB,EACA,cAAC,EAAS,CACTzlB,cAAeA,GACfF,eAAgBA,GAChBC,kBAAmBA,GACnBI,SAAUA,EACVE,GAAIA,IAEJ,UAGF,KAEJ,cAAC,IAAkB,CAClB0lB,SAl/Bc,GAm/BdiQ,QAAS,IACTC,QAAS,EACTt5B,MAAO,CAACuF,MAAO,IAAIuuB,GAAOnrB,OAAQ,IAAImrB,GAAO3yB,gBAAiB,cAAesI,OAAQ,QACrF8vB,WAAYC,EACZC,qBAAqB,EACrBC,gBAAgB,EAChBC,oBAAoB,EACpBC,UAAU,EACVv6B,GAAG,iBACHqE,GAAI,SAACm2B,GAIJ/G,EAAM+G,EACP,IAEAp2B,SAA4BM,IAAjB0uB,GAA+C,OAAjBA,IAAwC,IAAf/kB,GAAuBhO,OAAOD,KAAKgzB,GAAcznB,OAAS,EAC5H,cAACmL,EAAA,EAAM,CAAE9U,MAAM,YAAYyG,QAAS,WAAY9H,MAAO,CAACqF,SAAU,WAAYy0B,QAAS,GAAIvhB,MAAO,GAAKpS,QAAS,YAvyC5F,SAACssB,GACvB,IAAIsH,EAAgBtH,EACdiE,EAAQhzB,EAAGgzB,QAAQ1C,QAGzB,IAAK,IAAIvnB,KADTstB,EAAcb,QAAU,GACRxC,EAAO,CACtB,IAAMsD,EAAOtD,EAAMjqB,GACnBnF,QAAQC,IAAI,SAAUyyB,GACtBD,EAAcb,QAAQ/rB,KAAK6sB,EAAKn6B,KACjC,CAEE0R,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUqmB,GACrBroB,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,aACY9O,IAAxB+N,EAAasJ,OAChBxN,GAAM6E,MAAM,oBAAsBX,EAAasJ,QAE/CxN,GAAM6E,MAAM,4CAGb7E,GAAM+E,KAAK,mBAEb,IACIH,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WAEpB,GACJ,CA8vCG4tB,CAAexH,EAChB,EAAE,kBAGD,OAGL,E,qHC5gDeyH,GA1bM,SAACt3B,GACrB,IAc8ByjB,EAdtBnjB,EAAwIN,EAAxIM,UAAWua,EAA6H7a,EAA7H6a,SAAUuN,EAAmHpoB,EAAnHooB,YAAamP,EAAsGv3B,EAAtGu3B,UAAWC,EAA2Fx3B,EAA3Fw3B,aAAcC,EAA6Ez3B,EAA7Ey3B,WAAYlO,EAAiEvpB,EAAjEupB,SAAUe,EAAuDtqB,EAAvDsqB,eAAgBtD,EAAuChnB,EAAvCgnB,aAAc0Q,EAAyB13B,EAAzB03B,UAAW92B,EAAcZ,EAAdY,SAEjI,EAA0CU,IAAMC,UAAS,GAAM,mBAAxDo2B,EAAa,KACpB,GADsC,KACQr2B,IAAMC,UAAS,IAAM,mBAA5Dq2B,EAAe,KAAEC,EAAkB,KAC3C,EAA0Cv2B,IAAMC,SAASsZ,GAAS,mBAA3Did,EAAa,KAAEC,EAAgB,KACrC,EAAuBz2B,IAAMC,SAAS,IAAG,mBAA/BwmB,GAAF,KAAW,MACnB,EAA8CzmB,IAAMC,cAA2BJ,IAAlB0Z,EAASpI,MAAwC,OAAlBoI,EAASpI,KAAgBpC,KAAKC,MAAMD,KAAKS,UAAU+J,EAASpI,OAAS,IAAG,mBAA7JulB,EAAe,KAAEC,EAAkB,KAC1C,EAAgD32B,IAAMC,cAAkCJ,IAAzB0Z,EAASqd,aAAsD,OAAzBrd,EAASqd,YAAuB7nB,KAAKC,MAAMD,KAAKS,UAAU+J,EAASqd,cAAgB,IAAG,mBAApLC,EAAgB,KAAEC,EAAmB,KAC7C,EAA8C92B,IAAMC,SAAS,IAAG,mBAAzD82B,EAAe,KAAElR,EAAkB,KAC1C,EAAwB7lB,IAAMC,cAA2BJ,IAAlB0Z,EAAShY,KAAqBgY,EAAShY,KAAO,IAAG,mBAAjFA,EAAI,KAAEy1B,EAAO,KACpB,EAAsCh3B,IAAMC,cAAkCJ,IAAzB0Z,EAAS3I,YAA4B2I,EAAS3I,YAAc,IAAG,oBAA7GA,GAAW,MAAEqmB,GAAc,MAqElC,GAPIF,EAAgBjwB,OAAS,IA1DCqb,EA2DR4U,EA1DnB1pB,MAAMrO,EAAY,qBAAuBmjB,EAAa,CACpD7U,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,wCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACFA,EAAazS,KAAOgnB,IACvB/e,QAAQC,IAAI,iBAAkBuK,GACjB,KAATrM,IACHi1B,EAAcj1B,KAAOqM,EAAarM,KAClCy1B,EAAQppB,EAAarM,OAGF,KAAhBqP,KACH4lB,EAAc5lB,YAAchD,EAAagD,YACzCqmB,GAAermB,KAGZ8lB,IAAoB,KACvBF,EAAcrlB,KAAOvD,EAAauD,KAClCwlB,EAAmB/oB,EAAauD,OAG7B0lB,IAAqB,KACLjpB,EAAagpB,YAAW,kCAG5CJ,EAAcr7B,GAAKyS,EAAazS,GAChCq7B,EAAcU,SAAWtpB,EAAaspB,SACtCV,EAAcnoB,QAAUT,EAAaS,QACrCmoB,EAAc9Z,SAAW9O,EAAa8O,SACtC8Z,EAAcW,SAAWvpB,EAAaupB,SACtCX,EAAcY,SAAWxpB,EAAawpB,SACtCZ,EAAcha,mBAAqB5O,EAAa4O,mBAChDga,EAAca,oBAAsBzpB,EAAaypB,oBAGjDZ,EAAiBD,GACd/P,EAAUqB,KAAKC,UAEpB,IACCzZ,OAAM,SAACC,GAEPnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC3C,IAMA0d,EAAmB,MAIF,IAAdoQ,EACH,OAAO,KAGR,IAAMqB,IAA4B,IAAdlB,EAGhBmB,GAAc,EAElB,OACG,eAACpf,GAAA,EAAM,CACLC,KAAM6d,EACN5d,QAAS,WACP6d,GAAa,EACf,EACA5d,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU3E,WAAW,OAAwB,IAAhBu4B,GAAuB,IAAO,IAC3Dh6B,SAAUyB,WAAW,OAAwB,IAAhBu4B,GAAuB,IAAO,IAChEl6B,UAAW,MAER,UAEF,cAACmb,GAAA,EAAW,CAACzc,MAAO,CAACiB,QAAS,GAAIiY,cAAe,EAAGnP,OAAQ,KAAO,SACrE,sBAAK/J,MAAO,CAACwH,QAAS,QAAQ,UACzB,sBAAKxH,MAAO,CAACiV,KAAM,EAAG5T,MAAO,yBAA0B,UAC1D,eAACwG,EAAA,EAAU,CAACC,QAAQ,KAAI,UACjB0zB,GAAc,MAAQ,UAAS,eAEtC,eAAC3zB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAACwB,SAAU,KAAM,qEACjB,mBAAGkX,KAAK,YAAYD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,sBAAa,kDAA+C,mBAAGqX,KAAK,wBAAwBD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,oBAAW,uBAAoB,mBAAGqX,KAAK,kBAAkBD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,4BAE5e,IAAfg5B,EACA,qBAAKr6B,MAAO,CAAE6Y,MAAO,SAAU,SAC9B,cAAClD,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,kBAAmBoV,UAAU,MAAK,SACjE,cAACrD,EAAA,EAAM,CACN9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,iBAnCJ,GAmCiBoX,OAAO,EAAC,SAE9B,cAAC7D,GAAA,EAAW,UAId,SAEc,IAAhB8hB,GACA,sBAAKx7B,MAAO,CAACiV,KAAM,EAAG1T,WAAY,IAAM,UACvC,cAACsG,EAAA,EAAU,CAACC,QAAQ,KAAI,4BAGxB,eAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAACwB,SAAU,KAAM,kGACY,mBAAGkX,KAAK,YAAYD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAW,sBAAa,8DAGpN,UAGD,eAAC4b,GAAA,EAAW,WACV,eAACP,GAAA,EAAa,CAAC1c,MAAO,CAACiZ,WAAY,GAAIzR,QAAS,OAAQlG,UAAW,IAAKyI,OAAQ,MAAQ,UAC3F,sBAAK/J,MAAO,CAAC4H,SAAU4zB,GAAc,IAAM,IAAKh6B,SAAUg6B,GAAc,IAAM,KAAO,UAC/E,cAAChzB,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GACd60B,EAAQ70B,EAAM2R,OAAO7O,MACtB,EACMT,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXA,MAAM,UACN2H,YAAY,OAClBsQ,UAAQ,EACF7P,OAAO,QACPV,aAAc2xB,EAAcj1B,KAClCe,MAAM,OACAk1B,WAAS,EACTjzB,WAAS,IAEX,cAACD,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GACd80B,GAAe90B,EAAM2R,OAAO7O,MAC7B,EACMT,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGjBwB,QAAS,EACHxB,MAAM,UACN0H,aAAc2xB,EAAc5lB,YAC5B9L,YAAY,cACZ2yB,WAAS,EACfn1B,MAAM,cACAiD,OAAO,QACPhB,WAAS,IAEhB,sBAAKzI,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,cAAC,KAAS,CACT/H,MAAO,CAAEiV,KAAM,EAAGpQ,UAAW,GAAIkD,UAAW,GAAIzC,SAAU,QAC1DoD,WAAY,CACX1I,MAAO,CACNqB,MAAO,UAGT2H,YAAY,OACZ3H,MAAM,UACNoH,WAAS,EACTU,MAAOyxB,EACPgB,MAAO,SAACC,GACPjB,EAAgBztB,KAAK0uB,GACrBhB,EAAmBD,EACpB,EACAkB,SAAU,SAACD,EAAM72B,GAChB41B,EAAgBmB,OAAO/2B,EAAO,GAC9B61B,EAAmBD,EACpB,IAEa,OAAbzO,QAAkCpoB,IAAbooB,GAA0BA,EAASnhB,OAAS,EAC9D,eAACiS,GAAA,EAAW,CAACjd,MAAO,CAACiV,KAAM,EAAG1T,WAAY,GAAK,UAC7C,cAACy6B,GAAA,EAAU,CAACC,QAAQ,yBAAwB,sBAC5C,eAAClkB,GAAA,EAAM,CACVhP,aAAa,GACb1J,GAAG,iBACHmH,MAAM,mBACN8W,UAAQ,EACRnU,MAAO4xB,EACPjT,YAAa,SAACC,GAAQ,OAAKA,EAASxb,KAAK,KAAK,EAC9CtD,SAAU,SAAC5C,GACViB,QAAQC,IAAI,YAAalB,EAC1B,EAAE,UAEG,cAACkR,GAAA,EAAQ,CAACpO,MAAM,GAAE,SAChB,wCAENgjB,EAAS1tB,KAAI,SAAC+sB,EAASxmB,GAEvB,OACC,iCACC,cAACk3B,GAAA,EAAa,CACbl8B,MAAO,CAACqB,MAAOmqB,EAAQnqB,OAAO,SAE7BmqB,EAAQ/lB,OAET+lB,EAAQjpB,KAAK9D,KAAI,SAAC09B,EAAShN,GAG3B,OADAsM,IAAe,EAEd,eAAClkB,GAAA,EAAQ,CAAgBpO,MAAOsyB,GAAat1B,QAAS,SAACE,GACtD,GAAI00B,EAAiB5uB,SAASgwB,EAAQ12B,MAAO,CAC5C,IAAM22B,EAAYrB,EAAiB7S,QAAQiU,EAAQ12B,MAC/C22B,GAAa,GAChBrB,EAAiBgB,OAAOK,EAAW,EAErC,MACCrB,EAAiB5tB,KAAKgvB,EAAQ12B,MAG5BklB,EAAUqB,KAAKC,UAClB+O,EAAoBD,EACrB,EAAE,UACM,cAAC/S,GAAA,EAAQ,CAAChoB,MAAO,CAACqB,MAAO05B,EAAiB5uB,SAASgwB,EAAQ12B,MAAQ+lB,EAAQnqB,MAAQpB,EAAME,QAAQO,YAAaunB,QAAS8S,EAAiB5uB,SAASgwB,EAAQ12B,QACzJ,cAACgc,EAAA,EAAY,CAACrhB,QAAS+7B,EAAQ12B,SAdxB0pB,EAiBjB,MA3BUnqB,EA8Bb,UAGD,SAGmB,IAApBw1B,EACD,uBAAMx6B,MAAO,CAAC+H,UAAW,IAAM,UAE9B,eAACkV,GAAA,EAAW,CAACjd,MAAO,CAAC+H,UAAW,IAAM,UACrC,cAACs0B,GAAA,EAAS,CAACh9B,GAAG,qCAAoC,oBACjD,eAACi9B,GAAA,EAAU,CACVC,KAAG,EACH,kBAAgB,qCAChB92B,KAAK,0BACLsD,aAAc2xB,EAAc9oB,OAC5B3I,SAAU,SAAChK,GACVqI,QAAQC,IAAI,SAAUtI,EAAE+Y,OAAO7O,OAE/BuxB,EAAc8B,cAAgBv9B,EAAE+Y,OAAO7O,MACvCwxB,EAAiBD,EAClB,EAAE,UAEF,cAAC+B,GAAA,EAAgB,CAACtzB,MAAM,OAAOuzB,QAAS,cAACC,GAAA,EAAK,IAAKn2B,MAAM,SACzD,cAACi2B,GAAA,EAAgB,CAACtzB,MAAM,aAAauzB,QAAS,cAACC,GAAA,EAAK,IAAKn2B,MAAM,qBAIlE,wBAEA,eAACyW,GAAA,EAAW,CAACjd,MAAO,CAAC+H,UAAW,IAAM,UACrC,cAACs0B,GAAA,EAAS,CAACh9B,GAAG,qCAAoC,kBACjD,eAACi9B,GAAA,EAAU,CACVC,KAAG,EACH,kBAAgB,qCAChB92B,KAAK,0BACLsD,aAAc2xB,EAAc8B,cAC5BvzB,SAAU,SAAChK,GACVqI,QAAQC,IAAI,SAAUtI,EAAE+Y,OAAO7O,OAE/BuxB,EAAc8B,cAAgBv9B,EAAE+Y,OAAO7O,MACvCwxB,EAAiBD,EAClB,EAAE,UAEF,cAAC+B,GAAA,EAAgB,CAACtzB,MAAM,UAAUuzB,QAAS,cAACC,GAAA,EAAK,IAAKn2B,MAAM,YAC5D,cAACi2B,GAAA,EAAgB,CAACtzB,MAAM,UAAUuzB,QAAS,cAACC,GAAA,EAAK,IAAKn2B,MAAM,YAC5D,cAACi2B,GAAA,EAAgB,CAACtzB,MAAM,aAAauzB,QAAS,cAACC,GAAA,EAAK,IAAKn2B,MAAM,qBAMlE,cAACgC,EAAA,EAAS,CACToZ,OAAQ,SAACvb,GACRq0B,EAAcU,SAAW/0B,EAAM2R,OAAO7O,MACtCwxB,EAAiBD,EAClB,EACAhyB,WAAY,CACX1I,MAAO,CACNqB,MAAO,UAGTA,MAAM,UACN0H,aAAc2xB,EAAcU,SAC5BpyB,YAAY,yFACZ4zB,KAAK,IACLp2B,MAAM,WACNiD,OAAO,QACPhB,WAAS,IAEV,cAACD,EAAA,EAAS,CACToZ,OAAQ,SAACvb,GACRq0B,EAAcmC,MAAQx2B,EAAM2R,OAAO7O,MACnCwxB,EAAiBD,EAClB,EACAhyB,WAAY,CACX1I,MAAO,CACNqB,MAAO,UAGTA,MAAM,UACN0H,aAAc2xB,EAAcmC,MAC5B7zB,YAAY,sCACZ4zB,KAAK,IACLp2B,MAAM,QACNiD,OAAO,QACPhB,WAAS,IAEV,cAACD,EAAA,EAAS,CACToZ,OAAQ,SAACvb,GACRq0B,EAAcvM,qBAAuB9nB,EAAM2R,OAAO7O,MAClDwxB,EAAiBD,EAClB,EACAhyB,WAAY,CACX1I,MAAO,CACNqB,MAAO,UAGTA,MAAM,UACN0H,aAAc2xB,EAAcvM,qBAC5BnlB,YAAY,gEACZ4zB,KAAK,IACLjB,WAAS,EACTn1B,MAAM,uBACNiD,OAAO,QACPhB,WAAS,OAGV,KACG,cAACkN,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,mBAAoBoV,UAAU,MAAK,SACvE,cAACb,GAAA,EAAU,CACV3Y,MAAO,CAAEqB,MAAO,QAASoI,OAAQ,OAAQ1B,UAAW,GAAI5C,UAAW,SAAUI,MAAO,IACpFY,QAAS,WACRs0B,GAAoBD,EACrB,EAAE,SAEDA,EAAkB,cAAC,KAAc,IAAM,cAAC,KAAc,YAIzC,IAAhBgB,GACA,qBAAKx7B,MAAO,CAACuB,WAAY,GAAIC,SAAU,IAAKoG,SAAU,IAAKvC,SAAU,YAAa,SACjF,cAAC,GAAa,CACbnC,UAAWA,EACX0mB,aAAcA,EACdvmB,mBAAeU,EACfqK,UAAMrK,EACNgmB,mBAAoBA,EACpBvmB,SAAUA,MAGX,QAEC,eAACsZ,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,gBACSpC,IAAnBmpB,GACHlC,EAAY,CAAC,GAGdoP,GAAa,EACR,EACA/4B,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAC,EACR2a,SAA0B,IAAhBlV,EAAKuF,OACf7E,QAAS,WACdu0B,EAAcj1B,KAAOA,EACrBi1B,EAAc5lB,YAAcA,GACxB8lB,EAAgB5vB,OAAS,IAC5B0vB,EAAcrlB,KAAOulB,GAGlBG,EAAiB/vB,OAAS,IAC7B0vB,EAAcI,YAAcC,QAINh3B,IAAnBmpB,GACHA,EACCwN,EAAcj1B,KACdi1B,EAAc5lB,YACd4lB,EAAcrlB,KACdqlB,EAAcvM,qBACduM,EACAc,GACAd,EAAcI,YACdJ,EAAcU,SACdV,EAAc9oB,QAEfoZ,EAAY,CAAC,IAEbA,EAAY0P,GAEbN,GAAa,EACR,EACA/4B,MAAM,UAAS,SAEdk5B,EAAgB,cAAC1f,EAAA,EAAgB,CAACxZ,MAAM,cAAiB,mBAMtE,E,qSCpYMX,GAAa,UACbD,GAAe,UAIfq8B,GAAYC,aAAW,SAAC98B,GAAK,MAAM,CACvC+8B,SAAU,CACRh8B,OAAQ,EACR,kCAAmC,CACjCG,gBACyB,UAAvBlB,EAAME,QAAQK,KAAmB,UAAYP,EAAME,QAAQO,YAE/D,+BAAgC,CAC9B8G,QAAS,QAEX,4CAA6C,CAC3Cy1B,YAAY,aAAD,OACc,UAAvBh9B,EAAME,QAAQK,KAAmB,QAAU,YAG/C,qDAAsD,CACpD08B,aAAa,aAAD,OACa,UAAvBj9B,EAAME,QAAQK,KAAmB,UAAY,YAGjD,sBAAuB,CACrBa,MACyB,UAAvBpB,EAAME,QAAQK,KAAmB,QAAU,0BAE/C,sFACE,CACEI,aAAc,EACdS,MAAO,UAGd,IAKY87B,GAAc,SAAC52B,GAE1B,IA4EWkG,EA5EL2wB,EAAW,CACf,CAAE3wB,IAAK,YAAa4wB,OAAQ,CAAC,cAC7B,CAAE5wB,IAAK,YAAa4wB,OAAQ,CAAC,cAC7B,CAAE5wB,IAAK,SAAU4wB,OAAQ,CAAC,WAC1B,CAAE5wB,IAAK,QAAS4wB,OAAQ,CAAC,OAAQ,QAAS,QAAS,WACnD,CACE5wB,IAAK,SACL4wB,OAAQ,CAAC,SAAU,OAAQ,SAAU,QAAS,UAAW,OAAQ,QAAS,cAAe,QAAS,SAAU,aAE9G,CAAE5wB,IAAK,OAAQ4wB,OAAQ,CAAC,OAAQ,OAAQ,YACxC,CACE5wB,IAAK,WACL4wB,OAAQ,CACN,UACA,MACA,WACA,SACA,cACA,OACA,UACA,SACA,YAGJ,CAAE5wB,IAAK,MAAO4wB,OAAQ,CAAC,MAAO,WAC9B,CAAE5wB,IAAK,SAAU4wB,OAAQ,CAAC,SAAU,SAAU,QAAS,QAAS,YAChE,CACE5wB,IAAK,OACL4wB,OAAQ,CACN,OACA,WACA,OACA,UACA,OACA,SACA,OACA,MACA,YAGJ,CACE5wB,IAAK,SACL4wB,OAAQ,CAAC,SAAU,QAAS,QAAS,OAAQ,OAAQ,WAAY,SAEnE,CAAE5wB,IAAK,UAAW4wB,OAAQ,CAAC,UAAW,MAAO,OAAQ,UACrD,CAAE5wB,IAAK,UAAW4wB,OAAQ,CAAC,UAAW,SAAU,aAAc,SAC9D,CAAE5wB,IAAK,UAAW4wB,OAAQ,CAAC,UAAW,OAAQ,aAC9C,CACE5wB,IAAK,OACL4wB,OAAQ,CACN,SACA,SACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,SACA,SACA,aAGJ,CACE5wB,IAAK,UACL4wB,OAAQ,CAAC,UAAW,UAAW,KAAM,SAAU,YAAa,UAE9D,CAAE5wB,IAAK,QAAS4wB,OAAQ,CAAC,QAAS,OAAQ,SAAU,WAGlDC,EAAc,QACEv5B,IAAhBwC,EAAOd,MAAsC,OAAhBc,EAAOd,MAG1B,WADZ,IAAM83B,EAAah3B,EAAOd,KAAKkH,cAC/B,IAASF,KAAO2wB,EAAU,CAExB,IAAMI,EAAQJ,EAAS3wB,GAAK4wB,OAAOnlB,MAAK,SAAC/O,GAAK,OAC5Co0B,EAAWpxB,SAAShD,EAAM,IAE5B,GAAc,OAAVq0B,QAA4Bz5B,IAAVy5B,EAAqB,CACzCF,EAAcF,EAAS3wB,GAAKA,IAC5B,KACF,CACF,CAAC,CATW,GAgBd,IAAMgxB,EAAe,UAmHjBC,EAjHgB,CAClBC,UAAW,CACTC,KAAM,yVACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,GACdC,aAAc,CAAC,UAAW,YAE5BC,UAAW,CACTL,KAAM,opBACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,GACdC,aAAc,CAAC,UAAW,YAE5BE,OAAQ,CACNN,KAAM,qOACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAAChjB,GAAA,EAAU,KAE3Bkc,IAAK,CACH2G,KAAM,sCACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACI,GAAA,EAAO,KAExBC,KAAM,CACJR,KAAM,sJACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACvnB,GAAA,EAAQ,KAEzBqD,OAAQ,CACN+jB,KAAM,iJACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,GACdC,aAAc,CAAC,UAAW,YAE5BK,MAAO,CACLT,KAAM,uGACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,GACdC,aAAc,CAAC,UAAW,YAE5BM,QAAS,CACPV,KAAM,gIACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACQ,GAAA,EAAW,KAE5BC,QAAS,CACPZ,KAAM,eACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACU,GAAA,EAAY,KAE7BC,QAAS,CACPd,KAAM,gBACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACY,GAAA,EAAY,KAE7Bp8B,KAAM,CACJq7B,KAAM,6FACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACa,GAAA,EAAO,KAExBC,QAAS,CACPjB,KAAM,gBACNC,UAAW,QACXC,oBAAqBL,EACrBM,aAAc,cAACe,GAAA,EAAa,KAE9BC,OAAQ,CACNnB,KAAM,gFACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,cAAClnB,GAAA,EAAU,IACzBmnB,aAAc,CAAC,UAAW,YAE5BgB,MAAO,CACLpB,KAAM,wGACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,cAACzU,GAAA,EAAS,IACxB0U,aAAc,CAAC,UAAW,YAE5BiB,KAAM,CACJrB,KAAM,wCACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,cAACmB,GAAA,EAAQ,IACvBlB,aAAc,CAAC,UAAW,YAE5BmB,SAAU,CACRvB,KAAM,4CACNC,UAAW,QACXC,oBAAqB,UACrBC,aAAc,cAACqB,GAAA,EAAU,IACzBpB,aAAc,CAAC,UAAW,YAE5BrkB,OAAQ,CACNikB,KAAM,6OACNC,UAAW,QACXC,oBAAqB,QACrBC,aAAc,cAAC,IAAU,MAIET,GAC/B,QAAqBv5B,IAAjB25B,GAA+C,OAAjBA,EAChC,MAAO,CACLE,KAAM,GACNC,UAAW,GACXwB,eAAgB,QAChBtB,aAAc,IAgBlB,QAZkCh6B,IAA9B25B,EAAaM,eACfN,EAAaM,aA7HS,CAAC,UAAW,WA8HlCN,EAAaI,oBAAsBL,GAGX,KAAtBC,EAAaE,WAAqC75B,IAAtB25B,EAAaE,MAC3Ct2B,QAAQC,IAAI,oBAAD,OACW+1B,EAAW,sBAC/BI,EAAaK,aAAav9B,KAAKA,YAKFuD,IAA9B25B,EAAaK,cACkB,KAA9BL,EAAaK,eACO,KAAtBL,EAAaE,WACS75B,IAAtB25B,EAAaE,KACb,CACA,IAAM0B,EACJ,qBACE/5B,MArRQ,GAsRRoD,OAtRQ,GAuRR42B,QAAO,cAvRC,GAuRe,YAvRf,IAwRRnnB,QAAQ,MACRonB,MAAM,6BAA4B,SAElC,sBAAMzN,EAAG2L,EAAaE,KAAM6B,KAAM/B,EAAaG,cAGnDH,EAAaK,aAAeuB,CAC9B,CAEA,OAAO5B,CACT,EAEMjyB,GAAY,CAChBtK,gBAAiB,UACjBuK,YAAa,EACbC,YAAa,EACbC,aAAc,EACdjD,OAAQ,GACRvD,OAAQ,UACRyqB,YAAa,UACbxuB,MAAO,SAGIq+B,GAAe,SAAfA,EAAgBxoB,GAM5B,GAL0B,kBAAfA,IAEVA,GADAA,EAAaA,EAAWjL,MAAM,UAAUM,KAAK,WACrBN,MAAM,SAASM,KAAK,UAGnB,kBAAf2K,GAAiD,iBAAfA,EAC3C,MAAO,CACLlF,OAAO,EACPmI,OAAQjD,GAIZ,GAAsB,MAAlBA,EAAW,GACb,MAAO,CACLlF,OAAO,EACPmI,OAAQjD,GAIX,IAAIE,GAAY,EAChB,IACE,IAAKF,EAAW/K,SAAS,OAAS+K,EAAW/K,SAAS,KAGvD,MAAO,CACN6F,MAHEoF,GAAY,EAId+C,OAAQjD,EAcV,CAXE,MAAOjY,GACPiY,EAAaA,EAAWjL,MAAM,KAAKM,KAAK,KAExC,IACO2K,EAAW/K,SAAS,MAAS+K,EAAW/K,SAAS,OACpDiL,GAAY,EAKhB,CAHE,MAAOnY,GAEPmY,GAAY,CACd,CACF,CAEA,IAAI+C,EAASjD,EACb,IACEiD,EAAS/C,EAAYnE,KAAKC,MAAMgE,EAAY,CAAC,eAAiB,IAASA,CAIzE,CAHE,MAAOjY,GAEPmY,GAAY,CACd,CAED,IAAkB,IAAdA,EAAqB,CAEE,kBAAfF,IACVA,EAAaA,EAAW2P,QAGzB,IACC,IAAI8Y,EAASzoB,EAAWpR,WAAW,IAAK,KAGxCqU,EAASlH,KAAKC,MAAMysB,GACpBvoB,GAAY,CAKb,CAJE,MAAOnY,GAGRmY,GAAY,CACb,CACD,CAOA,GALIA,GAA+B,kBAAX+C,IACvB/C,GAAY,GAITA,EAED,IACD,cAA2B1X,OAAO8M,QAAQ2N,GAAO,eAAE,CAA9C,0BAAO1N,EAAG,KAAEtD,EAAK,KACrB,GAAqB,kBAAVA,IAAuBA,EAAM+C,WAAW,MAAQ/C,EAAM+C,WAAW,MAAO,CAClF,IAAM0zB,EAAgBF,EAAav2B,GACnC,GAAIy2B,EAAc5tB,MACjB,GAAoC,kBAAzB4tB,EAAczlB,OAAqB,CACxC,IAAM0lB,EAAS5sB,KAAKC,MAAM0sB,EAAczlB,QAC7CA,EAAO1N,GAAOozB,CACf,MACC1lB,EAAO1N,GAAOmzB,EAAczlB,MAG/B,CACD,CAGD,CAFE,MAAOlb,GACRqI,QAAQC,IAAI,yCAA0CtI,EACvD,CAGA,MAAO,CACL+S,MAAOoF,EACP+C,OAAQA,EAEZ,EAwzGe2lB,GAtzGG,SAACl9B,GACjB,IAAQM,EAA8CN,EAA9CM,UAAWwK,EAAmC9K,EAAnC8K,WAAYC,EAAuB/K,EAAvB+K,SAAUnK,EAAaZ,EAAbY,SACzC4N,SAAShN,MAAQ,sBAClB,IAAI0J,EAAWC,cAER9N,EAAQgE,cACR2J,EAAQC,cACRkyB,EAAUjD,GAAU78B,GAGpB+d,EAAe9a,EAAY,iBAE7BwN,EAAS,GAEb,EAAkCxM,IAAMC,SAAS,IAAG,mBAA7C67B,EAAS,KAAEC,EAAY,KAC9B,EAAuB/7B,IAAMC,SAAS,IAAG,mBAA/BwmB,GAAF,KAAW,MACnB,EAAgDzmB,IAAMC,SAAS,IAAG,mBAA3D42B,EAAgB,KAAEC,EAAmB,KAC5C,EAAkD92B,IAAMC,SAAS,IAAG,mBAA7D+7B,EAAiB,KAAEC,EAAoB,KAC9C,EAAgDj8B,IAAMC,SAAS,CAAC,GAAE,mBAA3Di8B,EAAgB,KAAEC,EAAmB,KAC5C,EAAwCn8B,IAAMC,UAAS,GAAM,mBAAtDm8B,EAAY,KAAEC,EAAe,KACpC,EAAoDr8B,IAAMC,SAAS,IAAG,oBAA/Dq8B,GAAkB,MAAEC,GAAqB,MAEhD,GAA4Bv8B,IAAMC,SAAS,IAAG,qBAAvC2L,GAAM,MAAEC,GAAS,MACxB,GAA4B7L,IAAMC,SAAS,IAAG,qBAAvC6L,GAAM,MAAEC,GAAS,MACxB,GAAsC/L,IAAMC,SAC1C,+CACD,qBAFMu8B,GAAW,MAAEC,GAAc,MAGlC,GAA4Cz8B,IAAMC,SAAS,UAAS,qBAA7DmM,GAAc,MAAEC,GAAiB,MACxC,GACErM,IAAMC,UAAS,GAAM,qBADhBy8B,GAAsB,MAAEC,GAAyB,MAExD,GAA8C38B,IAAMC,UAAS,GAAM,qBAA5D28B,GAAe,MAAEC,GAAkB,MAC1C,GAAoC78B,IAAMC,SAAS,IAAG,qBAA/C68B,GAAU,MAAEC,GAAa,MAEhC,GAAkC/8B,IAAMC,UAAS,GAAM,qBAAhDg2B,GAAS,MAAEC,GAAY,MAC9B,GAAkCl2B,IAAMC,UAAS,GAAK,qBAA/Cm2B,GAAS,MAAE4G,GAAY,MAC9B,GAA8Ch9B,IAAMC,SAAS,IAAG,qBAAzDg9B,GAAe,MAAEC,GAAkB,MAC1C,GACEl9B,IAAMC,SAAS,IAAG,qBADbk9B,GAAsB,MAAEC,GAAyB,MAExD,GAA8Cp9B,IAAMC,SAAS,IAAG,qBAAzDy2B,GAAe,MAAEC,GAAkB,MAE1C,GAAoD32B,IAAMC,SAAS,IAAG,qBAA/DgpB,GAAkB,MAAEoU,GAAqB,MAChD,GAAgCr9B,IAAMC,SAAS,IAAG,qBAA3Ci3B,GAAQ,MAAEoG,GAAW,MAC5B,GAA4Bt9B,IAAMC,SAAS,QAAO,qBAA3CyN,GAAM,MAAE6vB,GAAS,MAExB,GAA8Cv9B,IAAMC,UAAS,GAAM,qBAA5DqL,GAAe,MAAEC,GAAkB,MAC1C,GAAgDvL,IAAMC,UAAS,GAAM,qBAA9Du9B,GAAgB,MAAEC,GAAmB,MAC5C,GAA8Cz9B,IAAMC,SAAS,CAAC,GAAE,qBAAzDipB,GAAe,MAAEwU,GAAkB,MAC1C,GAA0C19B,IAAMC,UAAS,GAAM,qBAAxD09B,GAAa,MAAEC,GAAgB,MACtC,GAAoC59B,IAAMC,UAAS,GAAM,qBAAlDqM,GAAU,MAAEC,GAAa,MAChC,GAAwBvM,IAAMC,SAAS,QAAO,qBAAvC49B,GAAI,MAAEC,GAAO,MACpB,GAA8B99B,IAAMC,SAAS,IAAG,qBAAzC89B,GAAO,MAAEC,GAAU,MAC1B,GAA0Ch+B,IAAMC,UAAS,GAAM,qBAAxDo2B,GAAa,MAAE4H,GAAgB,MACtC,GAA8Cj+B,IAAMC,SAAS,IAAG,qBAAzDi+B,GAAe,MAAEC,GAAkB,MAE1C,GAAkCn+B,IAAMC,UAAS,GAAK,qBAA/CwM,GAAS,MAAEoO,GAAY,MAC9B,GAA8C7a,IAAMC,UAAS,GAAM,qBAA5Dq2B,GAAe,MAAEC,GAAkB,MAC1C,GAAgCv2B,IAAMC,SAAS,IAAG,qBAA3CgoB,GAAQ,MAAEmW,GAAW,MAC5B,GAAwCp+B,IAAMC,SAAS,CAAC,GAAE,qBAAnDylB,GAAY,MAAE2Y,GAAe,MACpC,GAAoCr+B,IAAMC,UAAS,GAAM,qBAAlDq+B,GAAU,MAAEC,GAAa,MAChC,GAA0Cv+B,IAAMC,UAAS,GAAM,qBAAxDu+B,GAAa,MAAEC,GAAgB,MACtC,GAAsDz+B,IAAMC,SAAS,IAAG,qBAAjEy+B,GAAmB,MAAEC,GAAsB,MAC7CC,GAAcN,GAAa,IAAM,EAEjCO,GAAa,0BACnB,IAAmB,IAAfr1B,GAAsD,IAA/Bk1B,GAAoB53B,aAAwCjH,IAAvBP,EAASw/B,WAAkD,OAAvBx/B,EAASw/B,WAAsBx/B,EAASw/B,UAAUh4B,OAAS,IAAuB,IAAjBs1B,EAAuB,CAC3L,IAAM2C,GAAiBz/B,EAASw/B,UAAUnpB,QAAO,SAACzE,GAAI,OAAqB,IAAhBA,EAAKmL,MAAe,IAC/E,GAAI0iB,GAAej4B,OAAS,EAAG,CAC9B,IAAIk4B,GAAc,GAClB,IAAK,IAAIz2B,MAAOw2B,GACkB,sBAA7BA,GAAex2B,IAAKhH,MACnBu6B,EAAUh1B,OAAS,IACtBi4B,GAAex2B,IAAK02B,MAAO,EAC3BF,GAAex2B,IAAKqI,YAAW,UAAMkrB,EAAUh1B,OAAM,uBAIvDk4B,GAAY/1B,KAAK81B,GAAex2B,KAGjCo2B,GAAuBI,IAEvB,IAAMG,GAAeH,GAAeppB,QAAO,SAACzE,GAAI,OAAmB,IAAdA,EAAK+tB,IAAa,IACnEC,GAAap4B,OAAS,GACzB1D,QAAQC,IAAI,SAAU67B,IAGpB,IAAMC,GAAUC,aAAaC,QAAQR,IACxB,OAAZM,SAAgCt/B,IAAZs/B,IACvB/7B,QAAQC,IAAI,sBAEZ+7B,aAAaE,QAAQT,GAAY,QAChCN,IAAc,KAEfn7B,QAAQC,IAAI,gBAAiB87B,IAEb,SAAZA,IACH/7B,QAAQC,IAAI,oBACXk7B,IAAc,KAEfn7B,QAAQC,IAAI,qBACXk7B,IAAc,IAGlB,CAED,CAEC,IAAMh/B,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAEZ4/B,GAAe,SAACxB,GAEpB,GADF36B,QAAQC,IAAI,kBAAmB06B,GACN,IAAnBA,EAAQj3B,OAAZ,CAKA,IAAI04B,EAAe,GAAG,aAEpB,IAAMC,EAAc3D,EAAU4D,GA0D9B,GAxDIpG,EAAQ,EAAC,QACYz5B,IAArB4/B,EAAYtuB,MAA2C,OAArBsuB,EAAYtuB,OAChDmoB,EAAQyE,EAAQxjC,KAAI,SAACob,GAAM,OACzB8pB,EAAYl+B,KAAKkH,cAAcR,SAAS0N,EAAO,KAI/C2jB,EAAMqG,OAAM,SAACC,GAAC,OAAW,IAANA,CAAU,MAC/BtG,EAAQyE,EAAQxjC,KAAI,SAACob,GACnB,QAAe9V,IAAX8V,GAAmC,OAAXA,EAC1B,OAAO,EAGT,IAAMkqB,EAAYlqB,EAAOlN,cAEzB,GAAIg3B,EAAYl+B,KAAKkH,cAAcR,SAAS0N,EAAOlN,eACjD,OAAO,EACF,QAAyB5I,IAArB4/B,EAAYtuB,MAA2C,OAArBsuB,EAAYtuB,MAAiBsuB,EAAYtuB,KAAKlJ,SAAS0N,GAClG,OAAO,EACF,GAAI8pB,EAAYjtB,QAAUmD,EAC/B,OAAO,EACF,GAAI8pB,EAAYK,SAAWnqB,EAChC,OAAO,EACF,QAAgC9V,IAA5B4/B,EAAY7I,aAAyD,OAA5B6I,EAAY7I,aAAwB6I,EAAY7I,YAAY9vB,OAAS,GAE7H,IAAK,IAAIyB,KAAO0f,GACf,GAAIA,GAAS1f,GAAKhH,KAAKkH,gBAAkBo3B,EAIzC,IAAK,IAAIz2B,KAAU6e,GAAS1f,GAAKlK,KAChC,GAAIohC,EAAY7I,YAAY3uB,SAASggB,GAAS1f,GAAKlK,KAAK+K,GAAQ7H,MAC/D,OAAO,OAIC,GACmB,OAAxBk+B,EAAYpxB,cACYxO,IAAxB4/B,EAAYpxB,QAEZ,IAAK,IAAI9F,KAAOk3B,EAAYpxB,QAAS,CACnC,IAAMhM,EAASo9B,EAAYpxB,QAAQ9F,GAEnC,GACElG,EAAOgZ,SAAS5S,gBAAkBo3B,GAClCx9B,EAAOgZ,SAAS5S,cAAcR,SAAS43B,GAEvC,OAAO,CAEX,CAGF,OAAO,CACT,KAGEvG,EAAMqG,OAAM,SAACC,GAAC,OAAW,IAANA,CAAU,IAE/B,OADAJ,EAAav2B,KAAKw2B,GAClB,UACD,EA9DH,IAAK,IAAIC,KAAe5D,EAAY,KAG9BxC,EAAK,IA8DPkG,EAAa14B,SAAWg1B,EAAUh1B,QACpCm1B,EAAqBuD,EArEvB,MAFEvD,EAAqBH,EAyEzB,EAEMiE,GAAY,SAACpkC,GACJ,OAATA,QAA0BkE,IAATlE,EAKjBA,EAAKsM,SAAS,MAAQtM,EAAKsM,SAAS,KACzC7E,QAAQC,IAAI,0BAIP06B,GAAQ91B,SAAStM,IAASoiC,GAAQ91B,SAAStM,EAAK8M,eACrDrF,QAAQC,IAAI,gCAIX06B,GAAQ90B,KAAKtN,EAAK8M,eAClBu1B,GAAWD,IAEXwB,GAAaxB,KAjBd36B,QAAQC,IAAI,iBAkBb,EAEM28B,GAAe,SAACl/B,GACpB,IAAIm/B,EAAalC,GAEbj9B,EAAQ,EACVsC,QAAQC,IAAI,uBAAwBvC,IAItCm/B,EAAWpI,OAAO/2B,EAAO,GAEC,IAAtBm/B,EAAWn5B,OAEbk3B,GADAiC,EAAa,IAGbjC,GAAWiC,GAGbV,GAAaU,GACf,EAEMC,GAAoBtD,GACxB,eAACzkB,GAAA,EAAM,CACLC,KAAMwkB,GACNvkB,QAAS,WACPwkB,IAAmB,GACnBV,EAAoB,CAAC,EACvB,EACA7jB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACV3G,QAAS,KAEX,UAEF,cAACwb,GAAA,EAAW,CAACzc,MAAO,CAAEsR,aAAc,GAAI,SACtC,qBAAKtR,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,qEAItE,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,cAAC0C,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC,EAAE,oGAItC,cAACmW,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,WACP46B,IAAmB,GACnBsD,GAAerD,IAAY,GAC3BC,GAAc,GAChB,EACA5/B,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,WACP46B,IAAmB,GACnBsD,GAAerD,IAAY,GAC3BC,GAAc,GAChB,EACA5/B,MAAM,UAAS,sBAMnB,KAEEijC,GAAe5C,GACnB,eAACrlB,GAAA,EAAM,CACLC,KAAMolB,GACNnlB,QAAS,WACPolB,IAAoB,GACpBtB,EAAoB,CAAC,EACvB,EACA7jB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACV3G,QAAS,KAEX,UAEF,cAACwb,GAAA,EAAW,CAACzc,MAAO,CAAEsR,aAAc,GAAI,SACtC,qBAAKtR,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,+DAItE,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,gCACE,cAAC0C,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAEsR,aAAc,IAAK,sIAIxD,cAACzJ,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAEsR,aAAc,IAAK,0HAI1D,cAAC6E,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAC,EACRmG,QAAS,WACPo+B,GAAgBnE,GAChBuB,IAAoB,EACtB,EACAtgC,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WACPw7B,IAAoB,EACtB,EACAtgC,MAAM,UAAS,sBAMnB,KAEE+a,GAAc5M,GAClB,eAAC6M,GAAA,EAAM,CACLC,KAAM9M,GACN+M,QAAS,WACP9M,IAAmB,GACnBgxB,GAAsB,GACxB,EACAjkB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,MAEZ,UAEF,cAAC6U,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,4DACnB,wBAAO,4DAI1D,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,cAACgR,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WACPmB,QAAQC,IAAI,YAAa6lB,IACrBoT,KACFgE,GAAehE,IACf7jB,YAAW,WACT8nB,IACF,GAAG,MAELh1B,IAAmB,EACrB,EACApO,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAC,EACRmG,QAAS,WACPsJ,IAAmB,EACrB,EACApO,MAAM,UAAS,sBAMnB,KAmEJgH,qBAAU,WACJmI,IACFC,IAAc,EAGlB,GAAG,CAACD,KAGL,IAiCOi0B,GAAwB,WAC5BlzB,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qCAAsCoK,EAASC,QAEvDnO,IACFqK,EAAS,8BAGXF,EAAM+E,KAAK,8BAINhB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,QAAqB/N,IAAjB+N,EAAJ,CACH,IAAI4yB,EAAW,GACf,IAAK,IAAIj4B,KAAOqF,EAAc,CAC7B,IAAM6yB,EAAK7yB,EAAarF,IACN,IAAdk4B,EAAGC,QAIPF,EAASv3B,KAAKw3B,EACf,CAGAE,GAAcH,GAEd,IAAII,GAAgB,EAEhBC,EAAiB,GACjBC,EAAmB,GACvB,IAAK,IAAIv4B,KAAOi4B,EAAU,CACzB,IAAMjnB,EAAWinB,EAASj4B,GAK1B,IAAK,IAAI2U,IAJe,eAApB3D,EAAS7L,SACZkzB,GAAgB,GAGKJ,EAASj4B,GAAK8F,QAAS,CAC5C,IAAMhM,EAASm+B,EAASj4B,GAAK8F,QAAQ6O,GAEjC2jB,EAAe54B,SAAS5F,EAAOgZ,YAInCwlB,EAAe53B,KAAK5G,EAAOgZ,UAC3BylB,EAAiB73B,KAAK5G,GACvB,CACD,CAMA,GAHA87B,GAAmB2C,IAGG,IAAlBF,EAAwB,CACrB5C,GAAW,CAAC,sBAClB,IAAMwB,EAAegB,EAAS7qB,QAAO,SAAA4D,GAAQ,MAAwB,eAApBA,EAAS7L,MAAuB,IACjFtK,QAAQC,IAAIm8B,GAENvD,OADep8B,IAAjB2/B,GAA+C,OAAjBA,EACPA,EAEAgB,EAE5B,MACMvE,EAAqBuE,GAIvB/nB,YAAW,WACdoC,IAAa,EAEd,GAAG,IAQA,MALMrR,GACFE,EAAM6E,MAAM,4CAKlB,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAoDMw4B,GAAgB,SAAC7E,GACrBzuB,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,+BAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,QAnEK,SAACoyB,EAAcjF,GAIvC,QAAkBj8B,IAAdi8B,GAAyC,OAAdA,EAAoB,CAClD,IAAIkF,EAAgB,GACpB,IAAK,IAAIz4B,KAAOw4B,EAAc,CAC7B,IAAI3+B,EAAW2+B,EAAax4B,GAG5B,IAAK,IAAI04B,KAFT7+B,EAASkuB,QAAU,GAEQluB,EAAS/D,KAAM,CACzC,IAAI6iC,EAAc9+B,EAAS/D,KAAK4iC,GAGhC,IAAK,IAAIE,KAFTD,EAAY5Q,QAAU,GAEEwL,EAAW,CAClC,IAAMviB,EAAWuiB,EAAUqF,GAE3B,QAA6BthC,IAAzB0Z,EAASqd,aAAsD,OAAzBrd,EAASqd,YAClD,IAAK,IAAIwK,KAAc7nB,EAASqd,YAE/B,GAAIrd,EAASqd,YAAYwK,GAAY34B,gBAAkBy4B,EAAY3/B,KAAKkH,cAAe,CAGtFrG,EAASkuB,QAAQrnB,KAAK,CACrB,SAAYsQ,EAASpe,GACrB,SAAY+lC,EAAY3/B,OAEzB2/B,EAAY5Q,QAAQrnB,KAAKsQ,EAASpe,IAClC,KACD,CAIF,GAAI+lC,EAAY5Q,QAAQxpB,OAAS,EAChC,KAEF,CACD,CAEAk6B,EAAc/3B,KAAK7G,EACpB,CAEAg8B,GAAY4C,EACb,MACE5C,GAAY2C,GAEZhF,EAAaD,GACbO,GAAgB,EACnB,CAoBIgF,CAAiBzzB,EAAckuB,IAE3BC,EAAaD,GACdO,GAAgB,GAElB,IACC/tB,OAAM,SAACC,GAENnL,QAAQC,IAAI,UAAYkL,EAAMpG,YAC9B4zB,EAAaD,GACdO,GAAgB,EACjB,GACJ,EAGAl4B,qBAAU,WACR,GAAI23B,EAAUh1B,QAAU,EAAG,CACzB,IAAMw6B,EAAUlC,aAAaC,QAAQ,aACrBx/B,IAAZyhC,GAAqC,OAAZA,GAC3BxD,GAAQwD,GAGVf,KA1NJlzB,MAAMrO,EAAY,sCAAuC,CACxDsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,iCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAChB0vB,GAAgB,CAAC,GACbzwB,EAAasJ,QAMjBmnB,GAAgBzwB,EAElB,IACCU,OAAM,SAACC,GACPnL,QAAQC,IAAI,qBAAsBkL,EAAMpG,WACzC,GA+LE,CACF,GAAG,IAEH,IAAMo5B,GAAY,CAChBpkC,MAAO,UACPkE,MAAO,OACPiC,QAAS,OACTI,SAAU3E,WAAW,OAAS6/B,GAAc,EAAI,IAAM,KACtDthC,SAAUyB,WAAW,OAAS6/B,GAAc,EAAI,IAAM,KACtDr5B,OAAwB,IAAhBq5B,GAAoB,OAAM,eAAWA,GAAY,IAAG,cAC9D5pB,cAAe,KAoBTwsB,GAAoB,CACxBl+B,QAAS,OACTm+B,SAAU,OACVC,aAAc,gBACd79B,UAAW,GAGPsJ,GAAgB,CACpB/P,UAAW,IACXuD,UAAW,IACXS,SAAU,SACVC,MAAO,OACPlE,MAAO,QACPF,gBAAiBV,GACjBQ,QAAS,qBACTL,aAAc,EACd4G,QAAS,OACTq+B,UAAW,aACXxgC,SAAU,YAGNygC,GAAgB,CACpBn9B,OAAQ,OACRtH,MAAO,QACPoI,OAAQ,OACRtI,gBAAiBV,IAGbslC,GAAsB,CAC1Bv+B,QAAS,OACTjC,MAAO,IACPoD,OAAQ,GACRsB,eAAgB,iBAcZ+7B,GAAiB,SAACnmC,GACtB,GAAsB,OAAlBA,EAAK+gB,eAAuC7c,IAAlBlE,EAAK+gB,SACjC,IAAK,IAAInU,KAAO5M,EAAK+gB,SAAU,CAC7B,IAAMC,EAAUhhB,EAAK+gB,SAASnU,GACL,qBAArBoU,EAAQtB,UACY,OAAvBsB,EAAQzH,iBAA8CrV,IAAvB8c,EAAQzH,YACtCyH,EAAQzH,WAAWpO,OAAS,IAC/B6V,EAAQzH,WAAW,GAAGjQ,MAAQ,IAKN,YAAnB0X,EAAQjP,SACViP,EAAQjP,OAAS,WAGnB,IAAMq0B,EAAQ3f,cAwBd,IAAK,IAAI4f,IAvBoB,YAAzBrlB,EAAQC,oBAEe/c,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACsB,IAA9ByH,EAAQzH,WAAWpO,aAMIjH,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACsB,IAA9ByH,EAAQzH,WAAWpO,QANnB6V,EAAQzH,WAAW,GAAGjQ,MACpB6U,EAAe,WAAa6C,EAAQxhB,GACtCwhB,EAAQzH,WAAW,GAAGjQ,MAAQ,WAAa0X,EAAQxhB,IAWnDuO,EAAM+E,KAAK,oDAIO9S,EAAKw7B,SAAU,CACnC,IAAMnf,EAASrc,EAAKw7B,SAAS6K,GACzBhqB,EAAOiqB,YAActlB,EAAQxhB,KAC/B6c,EAAOiqB,UAAYF,GAGjB/pB,EAAOkqB,iBAAmBvlB,EAAQxhB,KACpC6c,EAAOkqB,eAAiBH,EAE5B,CAEAplB,EAAQwlB,YAAc5iC,GAAU,QAAU,UAC1Cod,EAAQxhB,GAAK4mC,CACf,CAGF,GAAqB,OAAjBpmC,EAAK0S,cAAqCxO,IAAjBlE,EAAK0S,QAChC,IAAK9F,KAAO5M,EAAK0S,QAAS,CAGxB,IAAK,IAAIjF,KAFTzN,EAAK0S,QAAQ9F,GAAKwT,kBAAoB,GAEnBpgB,EAAK0S,QAAQ9F,GAAK2M,WAAY,CAC/C,IAAM0J,EAAQjjB,EAAK0S,QAAQ9F,GAAK2M,WAAW9L,IAOzCwV,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,WAGhB2W,EAAM3Z,MAAM+C,WAAW,KACzB5E,QAAQC,IAAI,mDAEZub,EAAM3Z,MAAQ,GACd2Z,EAAM3Q,UAAW,GAGvB,CAEA,IAAM8zB,EAAQ3f,cACd,IAAK4f,KAAarmC,EAAKw7B,SAAU,CAC/B,IAAMnf,EAASrc,EAAKw7B,SAAS6K,GACzBhqB,EAAOiqB,YAActmC,EAAK0S,QAAQ9F,GAAKpN,KACzC6c,EAAOiqB,UAAYF,GAGjB/pB,EAAOkqB,iBAAmBvmC,EAAK0S,QAAQ9F,GAAKpN,KAC9C6c,EAAOkqB,eAAiBH,EAE5B,CAEIpmC,EAAK0S,QAAQ9F,GAAKpN,KAAOQ,EAAKqR,QAChCrR,EAAKqR,MAAQ+0B,GAGfpmC,EAAK0S,QAAQ9F,GAAK45B,YAAc,GAChCxmC,EAAK0S,QAAQ9F,GAAKpN,GAAK4mC,CACzB,CAGF,GAC8B,OAA5BpmC,EAAK6gB,yBACuB3c,IAA5BlE,EAAK6gB,mBAEL,IAAKjU,KAAO5M,EAAK6gB,mBAAoB,CACnC,IAAMoC,EAAQjjB,EAAK6gB,mBAAmBjU,IAIpCqW,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,YAEpB2W,EAAM3Z,MAAQ,GACd2Z,EAAM3Q,UAAW,EAErB,CAGF,OAAOtS,CACT,EAEMymC,GAAmB,SAACzmC,GAexB,OAdAA,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,KACrB,MAAI,GAChByH,QAAQC,IAAI,mBAAoB1H,IAChCA,EAAOmmC,GAAenmC,IAEZ,IAAI,GACdA,EAAa,OAAI,GACjBA,EAAoB,cAAI,CAAC,EAGzBA,EAAuB,kBAAI,EAC3BA,EAAiB,YAAI,EACrByH,QAAQC,IAAI,iBAAkB1H,GAEvBA,CACT,EAEMwkC,GAAiB,SAACxkC,EAAM0mC,GAE5B,IAAIC,GADJ3mC,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,KACA4F,KAAO,SAEvB,IAAb8gC,GAGoB,QAFtB1mC,EAAOymC,GAAiBzmC,IAEf6pB,eAAuC3lB,IAAlBlE,EAAK6pB,WACjC9b,EAAM+E,KACJ,6EAEF9S,EAAK6pB,SAAW,IAYtB7pB,EAAK+R,OAAS,OACZ,IAAI60B,EAAUxzB,KAAKS,UAAU7T,GACzB6mC,EACF,uCAAyCC,mBAAmBF,GAC1DG,EAAcx1B,SAAS6C,cAAc,KACzC2yB,EAAY1yB,aAAa,OAAQwyB,GACjCE,EAAY1yB,aAAa,WAAYsyB,GACrCI,EAAYrpB,OACd,EAEMgnB,GAAkB,SAAC1kC,GACvBA,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,IACjCA,EAAOymC,GAAiBzmC,GACxB+N,EAAM+E,KAAK,6BAA+B9S,EAAK4F,MAG/C8L,MAAMrO,EAAY,qBAAuBrD,EAAKR,GAAK,WAAY,CAC7DmS,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEhB1S,MAAK,SAAC2S,GAaN,OAZwB,MAApBA,EAASC,OACZtK,QAAQC,IAAI,2CAER9D,GACHmK,EAAMiF,QAAQ,mCAEdjF,EAAMiF,QACL,0DAKIlB,EAASE,MACjB,IACC7S,MAAK,SAAC8S,QACsB/N,IAAxB+N,EAAasJ,QAChBxN,EAAM6E,MAAM,sBAAuBX,EAAasJ,QAGjDqpB,IACD,IACCjyB,OAAM,SAACC,GACP7E,EAAM6E,MAAM,kFACZnL,QAAQC,IAAIkL,EAAMpG,WACnB,GACA,EAmCMm4B,GAAiB,SAACnlC,GACtBkS,MAAMrO,EAAY,qBAAuB7D,EAAI,CAC3CmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAQL,OAPwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,4CACZqG,EAAM6E,MAAM,kDAEZ7E,EAAMiF,QAAQ,oBAAsBxT,GAG/BsS,EAASE,MAClB,IACC7S,MAAK,WACJ2d,YAAW,WACT8nB,IACF,GAAG,IACL,IACCjyB,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEMw6B,GAAkB,SAAC5nC,GACvBglC,GAAUhlC,EAAE+Y,OAAO8uB,UACrB,EAEMC,GAAmB,WACvB,MAA0B7iC,IAAMC,UAAS,GAAM,mBAAxC6iC,EAAK,KAAEC,EAAQ,KAEhBC,EAAa,wBACbC,EAAkB,CACtB7lC,UAAW+P,GAAc/P,UACzBiE,MAAO8L,GAAc9L,MACrBlE,MAAO6lC,EACPjmC,QAASoQ,GAAcpQ,QACvBL,aAAcyQ,GAAczQ,aAC5B4G,QAAS,OACTq+B,UAAW,aACXxgC,SAAU,WACVrE,OAAO,aAAD,OAAekmC,GACrB9hC,OAAQ,UACRjE,gBAAiB6lC,EAAQ,qBAAuB,oBAGlD,OACE,cAACtiC,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAIf,YAAiC,IAArB+8B,EAAUh1B,OAAe,GAAK,EAAGhL,MAAO,CAAEiB,QAAS,uBAAwB,SACpG,cAAC8E,EAAA,EAAK,CACJiP,QAAM,EACNhV,MAAOmnC,EACPhhC,QAAS,WACbi0B,IAAa,GACZ8G,IAAa,EACf,EACKj7B,YAAa,WACXghC,GAAS,EACX,EACA/gC,WAAY,WACV+gC,GAAS,EACX,EAAE,SAEF,cAACtxB,GAAA,EAAO,CAACvR,MAAK,eAAkBoV,UAAU,SAAQ,SAChD,sBAAMxZ,MAAO,CAAEmF,UAAW,SAAUI,MAAO,IAAKkE,OAAQ,QAAS,SAC/D,cAAC29B,GAAA,EAAa,CAACpnC,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,aAMvD,EAEK8hC,GAAsB,SAACxnC,GAC5B,QAAqBkE,IAAjBlE,EAAK0S,SAA0C,OAAjB1S,EAAK0S,QACtC,MAAO,GAGR,IAAI+0B,EAAY,GAAE,aAEjB,IAAMC,EAAe1nC,EAAK0S,QAAQ9F,GAClC,YAAiC1I,IAA7BwjC,EAAa7yB,aAA0D,OAA7B6yB,EAAa7yB,aAAqD,KAA7B6yB,EAAa7yB,aAIlE,kBAA1B6yB,EAAahoB,UAAwD,qCAAxBgoB,EAAahsB,OAH7D,gBAOG+rB,EAAUpmB,WAAU,SAAArhB,GAAI,OAAIA,EAAK0f,WAAagoB,EAAahoB,QAAQ,IAAI,GAC1E+nB,EAAUn6B,KAAKo6B,GACf,EAZF,IAAK,IAAI96B,KAAO5M,EAAK0S,QAAS,IAe9B,OAAO+0B,CACR,EAEOE,GAAgB,SAAC5kC,GACrB,IAAQ/C,EAAS+C,EAAT/C,KACR,EAAwBqE,IAAMC,UAAS,GAAM,mBAAtCmY,EAAI,KAAEmrB,EAAO,KACpB,EAAgCvjC,IAAMC,SAAS,MAAK,mBAA7CujC,EAAQ,KAAEC,EAAW,KAExBnzB,EAAW,UACX3U,EAAKsS,WACPqC,EAAW,WAGR3U,EAAKwuB,mBACR7Z,EAAW,WAGb,IAKIozB,EAAa/nC,EAAK4F,UAEL1B,IAAf6jC,GACe,OAAfA,GACAA,EAAW58B,OAAS,KAEpB48B,EAAaA,EAAWroC,MAAM,EAAG,IAAM,MAGzC,IAAMgT,EAA2B,OAAjB1S,EAAK0S,QAAmB1S,EAAK0S,QAAQvH,OAAS,EAC1D68B,EAAWR,GAAoBxnC,GACnC,EAA6BioC,GAAgBjoC,GAAK,mBAA3C+gB,EAAQ,KAAE8I,EAAQ,KAEnBqe,EACJ,eAACC,GAAA,EAAI,CACH3oC,GAAG,YACHqoC,SAAUA,EACVO,aAAW,EACX3rB,KAAMA,EACNC,QAAS,WACPkrB,GAAQ,GACRE,EAAY,KACd,EAAE,UAEF,eAACpwB,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,SAACE,GACdA,EAAMuE,kBACNs9B,IAASC,yBAAwB,WAC1B/N,IAAa,GACbwH,GAAmB3uB,KAAKC,MAAMD,KAAKS,UAAU7T,KAC7CuhC,GAAmBvhC,EAAK4F,MACxB67B,GAA0BzhC,EAAKiV,aAC/BysB,GAAsB1hC,EAAKsuB,2BACTpqB,IAAdlE,EAAKwV,MAAoC,OAAdxV,EAAKwV,MAClCwlB,GAAmB5nB,KAAKC,MAAMD,KAAKS,UAAU7T,EAAKwV,aAGjCtR,IAArBlE,EAAKi7B,aAAkD,OAArBj7B,EAAKi7B,aAAwBj7B,EAAKi7B,YAAY9vB,OAAS,GAC5FgwB,EAAoBn7B,EAAKi7B,YAE3B,GACI,EAAE,UAGF,cAACtkB,GAAA,EAAQ,CAACxW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,KAC9C,iBAHI,UAKP,eAAC6L,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,WACPk6B,EAAoBxgC,GACpB8hC,IAAoB,EACtB,EAAE,UAGF,cAACyG,GAAA,EAAe,CAACpoC,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,KACrD,qBAHI,WAKP,eAAC6L,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,YAtNI,SAACtG,GACpBA,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,IACjC+N,EAAMiF,QAAQ,oBAAsBhT,EAAK4F,MACzC5F,EAAKR,GAAK,GACVQ,EAAK4F,KAAO5F,EAAK4F,KAAO,QACxB5F,EAAOmmC,GAAenmC,GAEtB0R,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAIb,OAAOD,EAASE,OAHdvK,QAAQC,IAAI,mCAIhB,IACCvI,MAAK,WACJ2d,YAAW,WACT8nB,IACF,GAAG,IACL,IACCjyB,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CAwLUg8B,CAAaxoC,GACb4nC,GAAQ,EACV,EAAE,UAGF,cAACa,GAAA,EAAY,CAACtoC,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,KAClD,uBAHI,aAYP,eAAC6L,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,WAGP,GAFA46B,IAAmB,GAEG,OAAlBlhC,EAAK+gB,eAAuC7c,IAAlBlE,EAAK+gB,SAAwB,CACzD,IAAI2nB,EAAc,GAClB,IAAK,IAAI97B,KAAO5M,EAAK+gB,SAAU,CAC7B,IAAMC,EAAUhhB,EAAK+gB,SAASnU,GAE9B,GACyB,OAAvBoU,EAAQzH,iBACerV,IAAvB8c,EAAQzH,WAER,IAAK,IAAI9L,KAAUuT,EAAQzH,WAAY,CACrC,IAAM0J,EAAQjC,EAAQzH,WAAW9L,GAEhB,aAAfwV,EAAMrd,MACNqd,EAAM3Z,QAAUtJ,EAAKR,IACpBkpC,EAAYp8B,SAAS2W,EAAM3Z,QAE5Bo/B,EAAYp7B,KAAK2V,EAAM3Z,MAE3B,CAEJ,CAEA,IAAIq/B,EAAkB,GACtB,IAAK,IAAI/7B,KAAO87B,EAAa,CAC3B,IAAME,EAAgBzI,EAAU9nB,MAC9B,SAACuF,GAAQ,OAAKA,EAASpe,KAAOkpC,EAAY97B,EAAI,SAE1B1I,IAAlB0kC,GAAiD,OAAlBA,GACjCD,EAAgBr7B,KAAKs7B,EAEzB,CAEID,EAAgBx9B,OAAS,IAC3B1D,QAAQC,IACN,qCACAihC,EAAgBx9B,QAElBnL,EAAK6pB,SAAW8e,EAEpB,CAEAvH,GAAcphC,GACd4nC,GAAQ,EACV,EAAE,UAGF,cAACrI,GAAA,EAAU,CAACp/B,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,KAChD,oBAHI,UAKP,eAAC6L,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,WACPsJ,IAAmB,GACnBgxB,GAAsB5gC,EAAKR,IAC3BooC,GAAQ,EACV,EAAE,UAGF,cAAC5wB,GAAA,EAAU,CAAC7W,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,KAChD,oBAHI,aAQP4iB,EAAQ,GACRoa,EAAU,GACVC,EAAQ,GACZ,QAAsB5kC,IAAlBP,EAASolC,KAAoB,CAC/B,IAAMC,EAAWrlC,EAASolC,KAAK1wB,MAAK,SAAC4wB,GAAG,OAAKA,EAAIzpC,KAAOQ,EAAa,MAAC,IACtE,QAAiBkE,IAAb8kC,GAAuC,OAAbA,EAAmB,CAE/C,IAAME,EAAa,CACjBxjC,MAzqDQ,GA0qDRoD,OA1qDQ,GA2qDRikB,cAAe,OACfrrB,gBACuBwC,IAArBlE,EAAKmpC,aAA6BnpC,EAAKmpC,YAAYh+B,OAAS,EACxD,GACA,EACNpK,aAAc,GACdI,OACE6nC,EAASxpC,KAAOmE,EAASmU,WAAWtY,GAAE,oBACrBmV,GACb,KACNpP,OAAQ,UACRsG,YAAa,IAGf4iB,EACqB,KAAnBua,EAASva,MACP,qBACE7mB,IAAKohC,EAASpjC,KACdiC,IAAKzH,EAAME,QAAQyB,aACnB5B,MAAO+oC,IAGT,qBACEthC,IAAKohC,EAASpjC,KACdiC,IAAKmhC,EAASva,MACdtuB,MAAO+oC,EACP5iC,QAAS,WAAO,IAItBuiC,EAAUG,EAASpjC,KACnBkjC,EAAQE,EAASxpC,EACnB,CACF,CAEF,IAAI4pC,EAAmB,GACvB,QAAyBllC,IAArBlE,EAAKi7B,aAAkD,OAArBj7B,EAAKi7B,aAAwBj7B,EAAKi7B,YAAY9vB,OAAS,GAAkB,OAAbmhB,SAAkCpoB,IAAbooB,IAA0BA,GAASnhB,OAAS,EAAG,CACrK,IAAMk+B,EAAW10B,EAAS9O,UAG1B,IAAK,IAAI+G,KAAO0f,GAAU,CACzB,IAAI7lB,EAAW6lB,GAAS1f,GAGxB,IAAK,IAAI04B,KAFT7+B,EAASkuB,QAAU,GAEQluB,EAAS/D,KAAM,CACzC,IAAI6iC,EAAc9+B,EAAS/D,KAAK4iC,GAGhC,IAAK,IAAIG,KAFTF,EAAY5Q,QAAU,GAEC30B,EAAKi7B,YAC3B,GAAIj7B,EAAKi7B,YAAYwK,GAAY34B,gBAAkBy4B,EAAY3/B,KAAKkH,cAAe,CAClF6H,EAAWlO,EAASjF,MACpB,KACD,CAGD,GAAImT,IAAa00B,EAChB,KAEF,CAEA,GAAI10B,IAAa00B,EAAU,CAC1BD,EAAmB3iC,EAASb,KAC5B,KACD,CACD,CACD,CAEE,OACD,qBAAKzF,MAAO,CAACuF,MAAO,OAAQF,SAAU,YAAa,SAC9C,eAACU,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOqR,GAAc,UAChB,KAArB43B,EACA,cAACtzB,GAAA,EAAO,CAACvR,MAAK,4BAAuB6kC,GAAoBzvB,UAAU,SAAQ,SAC1E,qBACCxZ,MAAO,CACNoF,OAAQ,UACRC,SAAU,WACViT,IAAK,EACL6Q,KAAM,EACNxgB,OAAQ0I,GAAc/P,UACtBiE,MAAO,EACPpE,gBAAiBqT,EACjB5T,aAAc,eAEfuF,QAAS,WACC89B,GAAUgF,EACpB,MAGD,KACG,eAACvkC,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,SAAU5P,MAAO,QAAS,UAEnE,eAACb,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEwH,QAAS,OAAQ3C,UAAW,IAAK,UACnD,cAAC8Q,GAAA,EAAO,CAACvR,MAAK,eAAUskC,EAAO,KAAKlvB,UAAU,SAAQ,SACpD,qBACE2vB,KAAM,CAAE/jC,OAAQ,WAChBe,QAAS,WACP89B,GAAU0E,EACZ,EAAE,SAEDra,MAGL,cAAC3Y,GAAA,EAAO,CAACyzB,OAAK,EAAChlC,MACrB,uBAAMpE,MAAO,CAAC,EAAE,eACC+D,IAAflE,EAAKyuB,OAAsC,OAAfzuB,EAAKyuB,OAAkBzuB,EAAKyuB,MAAMtjB,OAAS,EACvE,qBAAKtD,IAAK7H,EAAKyuB,MAAO7mB,IAAK5H,EAAK4F,KAAMzF,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQM,aAAcoE,UAAW,IAAKwkC,UAAW,IAAKzoC,aAAcX,EAAME,QAAQS,gBACtJ,KACF,eAACiH,EAAA,EAAU,mBACJhI,EAAK4F,WAGZ+T,UAAU,SAAQ,SACX,cAAC3R,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CACLsR,aAAc,EACd4H,cAAe,EACfrU,UAAW,GACXoQ,KAAM,IACN,SAEF,cAAC,IAAI,CACHqB,GAAI,cAAgBzW,EAAKR,GACzBW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEnDumC,WAKT,eAACljC,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO+lC,GAAoB,UAC1C8B,EAAS78B,OAAS,EAClB,qBAAKhL,MAAO,CAACwH,QAAS,OAAQO,UAAW,GAAK,SAC7C,cAACuhC,GAAA,EAAW,CAACC,IAAK,EAAGvpC,MAAO,CAACuB,WAAY,EAAGsD,UAAW,IAAK,SAC1DgjC,EAASppC,KAAI,SAACoB,EAAMmF,GACpB,OACC,qBAEChF,MAAO,CACN2I,OAAQ,GACRpD,MAAO,GACPsU,OAAQ,kBACRzU,OAAQ,WAETe,QAAS,WACC89B,GAAUpkC,EAAK0f,SACzB,EAAE,SAEF,cAAC5J,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAOvE,EAAK0f,SAAU/F,UAAU,SAAQ,SAChE,cAACgI,EAAA,EAAM,CAAC/Z,IAAK5H,EAAK0f,SAAU7X,IAAK7H,EAAK6U,YAAa1U,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,SAZ1E3D,EAgBR,QAIF,cAAC2Q,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,gBAAgBoV,UAAU,SAAQ,SAChE,uBAAMxZ,MAAO,CAAEqB,MAAO,UAAWmG,QAAS,QAAS,UAClD,cAACgiC,GAAA,EAAe,CACfxpC,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,UAE3C,cAACzJ,EAAA,EAAU,CACV7H,MAAO,CACNuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACb,SAEDiB,SAKE,cAACoD,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,qBACNoV,UAAU,SAAQ,SAElB,uBACExZ,MAAO,CAAEuB,WAAY,GAAIF,MAAO,UAAWmG,QAAS,QAAS,UAE7D,cAACiiC,GAAA,EAAW,CACVzpC,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,UAGlB,cAACzJ,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,SAEDsP,SAIP,cAACjL,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,gBAAgBoV,UAAU,SAAQ,SAC/D,uBACExZ,MAAO,CACLuB,WAAY,GACZiG,QAAS,OACTnG,MAAO,UACP+D,OAAQ,WAEVe,QAAS,WACP,GAAiB,IAAbujB,EAAJ,CAKA,IAAIga,EAAe,CAAC7jC,GAAM,aAExB,IAAMghB,EAAUhhB,EAAK+gB,SAASnU,GAC9B,GAAyB,qBAArBoU,EAAQtB,SACV,iBAGF,QACyBxb,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACRyH,EAAQzH,WAAWpO,OAAS,GACG,aAA/B6V,EAAQzH,WAAW,GAAG3T,KACtB,CACA,IAAM+1B,EAAcwE,EAAU9nB,MAC5B,SAAC9C,GAAI,OAAKA,EAAK/V,KAAOwhB,EAAQzH,WAAW,GAAGjQ,KAAK,IAEnD,GAAoB,OAAhBqyB,QAAwCz3B,IAAhBy3B,EAE1B,OADAkI,EAAav2B,KAAKquB,GAClB,UAEJ,CAAC,EAnBH,IAAK,IAAI/uB,KAAO5M,EAAK+gB,SAAU,IAsB/BshB,GAAW,CAAC,eAAiBriC,EAAK4F,OAClC06B,EAAqBuD,EA1BrB,MAFE91B,EAAM+E,KAAK,mBAAqB9S,EAAK4F,KA6BzC,EAAE,UAEF,qBACEF,MAAM,KACNoD,OAAO,KACP42B,QAAQ,YACRE,KAAK,OACLD,MAAM,6BACNx/B,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,QACd,SAEF,sBACEygB,EAAE,iLACF0N,KAAK,cAGT,cAAC53B,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,SAEDoY,YAKT,cAAChlB,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CACLiK,eAAgB,OAChB3E,SAAU,SACVyC,UAAW,EACnBlD,UAAW,IACH,cAEad,IAAdlE,EAAKwV,MAAoC,OAAdxV,EAAKwV,KAC7BxV,EAAKwV,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAClB,OAAIA,GAAS,EACJ,KAIP,cAACuQ,GAAA,EAAI,CAEHvV,MAAOyL,GACPjF,MAAO8O,EACPnP,QAAS0gC,GACT/+B,QAAQ,WACRzG,MAAM,WALD2D,EAQX,IACA,YAEUjB,IAAjBlE,EAAK0S,SAA0C,OAAjB1S,EAAK0S,QACxC,sBAAKvS,MAAO,CAACqF,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAAM,UACxD,cAACI,GAAA,EAAU,CACV,aAAW,OACX,gBAAc,YACd,gBAAc,OACdxS,QAndc,SAACE,GACjBohC,GAASnrB,GACTqrB,EAAYthC,EAAM6C,cACpB,EAidIlJ,MAAO,CAAEiB,QAAS,MAAOI,MAAO,WAAY,SAE5C,cAACqoC,GAAA,EAAY,MAEb3B,KAEM,YAKZ,EAGM7a,GAAiB,SACrBznB,EACAqP,EACAO,EACA8X,EACAC,EACAC,EACFC,EACAC,EACAC,GAEE,IAAIhc,EAAS,OACTic,EAAY,GACZC,EAAe,CAAC,OAEO3pB,IAAvBqpB,EAAgB/tB,KAClBiI,QAAQC,IAAI,8BACZiK,EAAS,MACTic,EAAY,IAAML,EAAgB/tB,GAAK,kBACvCquB,EAAeN,EAEf9lB,QAAQC,IAAI,kBACZmmB,EAAoB,MAAI,IAI1BA,EAAmB,KAAIjoB,EACvBioB,EAA0B,YAAI5Y,OACjB/Q,IAATsR,IACFqY,EAAmB,KAAIrY,GAE3BqY,EAAuB,SAAIH,EAC3BG,EAAqB,OAAIF,OAEIzpB,IAAvBopB,IACFO,EAAmC,qBAAIP,QAGnBppB,IAApBupB,GAAqD,OAApBA,IACpCI,EAA0B,YAAIJ,GAK/B,IAAMK,EAAO,UAAMzqB,EAAS,4BAAoBuqB,GAC9C,OAAOlc,MAAMoc,EAAS,CACpBnc,OAAQA,EACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUga,GACrBhc,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAMb,OAFAuwB,IAAiB,GAEVxwB,EAASE,OALdvK,QAAQC,IAAI,mCAMhB,IACCvI,MAAK,SAAC8S,GACT,IAA6B,IAAzBA,EAAae,QA0Bb,OAhBIwa,EAEPvf,EAAS,cAAgBgE,EAAiB,KAE3Bub,IAEV1Q,YAAW,WACT8nB,IACF,GAAG,MACH3C,IAAiB,IAIjB1H,IAAa,IAGRtoB,OAzBkB/N,IAAxB+N,EAAasJ,OAChBxN,EAAM6E,MAAM,2BAA4BX,EAAasJ,QAErDxN,EAAM6E,MAAM,0BAuBZ,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,YAClBy1B,IAAiB,GACjB1H,IAAa,GACb+H,IAAiB,EACnB,GACJ,EAoFM2F,GAAkB,SAACjoC,GACvB,IAAI+gB,EAAW,EACX8I,EAAW,EACf,QACoB3lB,IAAlBlE,EAAK+gB,UACa,OAAlB/gB,EAAK+gB,UACL/gB,EAAK+gB,SAAS5V,OAAS,EAGvB,IAAK,IAAIyB,KADTmU,EAAW/gB,EAAK+gB,SAAS5V,OACTnL,EAAK+gB,SACiB,qBAAhC/gB,EAAK+gB,SAASnU,GAAK8S,WACrBmK,GAAY,GAKlB,MAAO,CAAC9I,EAAU8I,EACpB,EAEMigB,GAAmB,WACvB,IAAIC,EAAe,GACnB,GAAI5J,EAAUh1B,OAAS,EAAG,CACxB,IA2SI4xB,EA3SEiN,EAAU,CACd,CACEC,MAAO,QACPC,WAAY,OACZxkC,MAAO,GACPykC,UAAU,EACVC,WAAY,SAACC,GACX,IAAMrqC,EAAOqqC,EAAO3N,IAAI4N,OAEpB31B,EAAW,UACX3U,EAAKsS,WACPqC,EAAW,WAGR3U,EAAKwuB,mBACR7Z,EAAW,WAGb,IAAI8Z,EAAQ,GACZ,QAAsBvqB,IAAlBP,EAASolC,KAAoB,CAC/B,IAAMC,EAAWrlC,EAASolC,KAAK1wB,MAC7B,SAAC4wB,GAAG,OAAKA,EAAIzpC,KAAOQ,EAAa,MAAC,IAEpC,QAAiBkE,IAAb8kC,GAAuC,OAAbA,EAAmB,CAE/C,IAAME,EAAa,CACjBxjC,MAAO6kC,GACPzhC,OAAQyhC,GACRxd,cAAe,OACfrrB,gBACuBwC,IAArBlE,EAAKmpC,aACLnpC,EAAKmpC,YAAYh+B,OAAS,EACtB,GACA,EACNpK,aAAc,GACdI,OACE6nC,EAASxpC,KAAOmE,EAASmU,WAAWtY,GAAE,oBACrBmV,GACb,KACNpP,OAAQ,UACR2C,UAAW,GAIbumB,EACqB,KAAnBua,EAASva,MACP,qBACE7mB,IAAKohC,EAASpjC,KACdiC,IAAKzH,EAAME,QAAQyB,aACnB5B,MAAO+oC,IAGT,qBACEthC,IAAKohC,EAASpjC,KACdiC,IAAKmhC,EAASva,MACdtuB,MAAO+oC,EACP5iC,QAAS,WACP,GAIV,CACF,CAEA,OAAO,qBAAKgjC,KAAM,CAAE/jC,OAAQ,WAAY,SAAEkpB,GAC5C,GAEF,CACEwb,MAAO,QACPC,WAAY,QACZxkC,MAAO,IACP0kC,WAAY,SAACC,GACX,IAAMrqC,EAAOqqC,EAAO3N,IAAI4N,OAGxB,OACE,cAACzlC,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAAC,IAAI,CACHkB,GAAI,cAAgBzW,EAAKR,GACzBW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,cAACwG,EAAA,EAAU,UAAEhI,EAAK4F,UAI1B,GAGF,CACEqkC,MAAO,UACPC,WAAY,UACZxkC,MAAO,IACPykC,UAAU,EACVK,2BAA2B,EAC3BJ,WAAY,SAACC,GACX,IAAMrqC,EAAOqqC,EAAO3N,IAAI4N,OAClB53B,EAA2B,OAAjB1S,EAAK0S,QAAmB1S,EAAK0S,QAAQvH,OAAS,EAC9D,EAA2B88B,GAAgBjoC,GAAK,mBAA3C+gB,EAAQ,KAAE8I,EAAQ,KACvBme,EAAWR,GAAoBxnC,GAE/B,OACE,cAAC6E,EAAA,EAAI,CAAC0Q,MAAI,WACR,sBAAKpV,MAAO,CAAEwH,QAAS,QAAS,UACtCqgC,EAAS78B,OAAS,EACnB,qBAAKhL,MAAO,CAACwH,QAAS,OAAQO,UAAW,GAAK,SAC5C,cAACuhC,GAAA,EAAW,CAACC,IAAK,EAAGvpC,MAAO,CAACuB,WAAY,EAAGsD,UAAW,IAAK,SAC1DgjC,EAASppC,KAAI,SAACoB,EAAMmF,GACpB,OACC,qBAEChF,MAAO,CACN2I,OAAQ,GACRpD,MAAO,GACPsU,OAAQ,kBACRzU,OAAQ,WAETe,QAAS,WACC89B,GAAUpkC,EAAK0f,SACzB,EAAE,SAEF,cAAC5J,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAOvE,EAAK0f,SAAU/F,UAAU,SAAQ,SAChE,cAACgI,EAAA,EAAM,CAAC/Z,IAAK5H,EAAK0f,SAAU7X,IAAK7H,EAAK6U,YAAa1U,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,SAZ1E3D,EAgBR,QAIF,cAAC2Q,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,gBAAgBoV,UAAU,SAAQ,SAChE,uBAAMxZ,MAAO,CAAEqB,MAAO,UAAWmG,QAAS,QAAS,UAClD,cAACgiC,GAAA,EAAe,CACfxpC,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,UAE3C,cAACzJ,EAAA,EAAU,CACV7H,MAAO,CACNuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACb,SAEDiB,SAKI,cAACoD,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,qBACNoV,UAAU,SAAQ,SAElB,uBACExZ,MAAO,CACLuB,WAAY,GACZF,MAAO,UACPmG,QAAS,QACT,UAEF,cAACiiC,GAAA,EAAW,CACVzpC,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,UAGlB,cAACzJ,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,SAEDsP,SAIP,cAACjL,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,gBACNoV,UAAU,SAAQ,SAElB,uBACExZ,MAAO,CACLuB,WAAY,GACZiG,QAAS,OACTnG,MAAO,UACP+D,OAAQ,WAEVe,QAAS,WACP,GAAiB,IAAbujB,EAAJ,CAKA,IAAIga,EAAe,CAAC7jC,GAAM,aAExB,IAAMghB,EAAUhhB,EAAK+gB,SAASnU,GAC9B,GAAyB,qBAArBoU,EAAQtB,SACV,iBAGF,QACyBxb,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACRyH,EAAQzH,WAAWpO,OAAS,GACG,aAA/B6V,EAAQzH,WAAW,GAAG3T,KACtB,CACA,IAAM+1B,EAAcwE,EAAU9nB,MAC5B,SAAC9C,GAAI,OAAKA,EAAK/V,KAAOwhB,EAAQzH,WAAW,GAAGjQ,KAAK,IAEnD,GACkB,OAAhBqyB,QACgBz3B,IAAhBy3B,EAGA,OADAkI,EAAav2B,KAAKquB,GAClB,UAEJ,CAAC,EAtBH,IAAK,IAAI/uB,KAAO5M,EAAK+gB,SAAU,IAyB/BshB,GAAW,CAAC,eAAiBriC,EAAK4F,OAClC06B,EAAqBuD,EA7BrB,MAFE91B,EAAM+E,KAAK,mBAAqB9S,EAAK4F,KAgCzC,EAAE,UAEF,qBACEF,MAAM,KACNoD,OAAO,KACP42B,QAAQ,YACRE,KAAK,OACLD,MAAM,6BACNx/B,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,QACd,SAEF,sBACEygB,EAAE,iLACF0N,KAAK,cAGT,cAAC53B,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,SAEDoY,aAOf,GAEF,CACEogB,MAAO,OACPC,WAAY,OACZllC,UAAW,GACXU,MAAO,IACPykC,UAAU,EACVK,2BAA2B,EAC3BJ,WAAY,SAACC,GACX,IAAMrqC,EAAOqqC,EAAO3N,IAAI4N,OACxB,OACE,cAACzlC,EAAA,EAAI,CAAC0Q,MAAI,gBACOrR,IAAdlE,EAAKwV,KACFxV,EAAKwV,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAClB,OAAIA,GAAS,EACJ,KAIP,cAACuQ,GAAA,EAAI,CAEHvV,MAAOyL,GACPjF,MAAO8O,EACPxN,QAAQ,WACRzG,MAAM,WAJD2D,EAOX,IACA,MAGV,GAEF,CACE8kC,MAAO,GACPC,WAAY,GACZllC,UAAW,GACXU,MAAO,IACPykC,UAAU,EACVK,2BAA2B,EAC3BJ,WAAY,SAACC,GAAY,IAI7BtN,EAAOsD,EAAkBzhC,KAAI,SAACoB,EAAMmF,GAOlC,MANU,CACR3F,GAAI2F,EAAQ,EACZZ,MAAOvE,EAAK4F,KACZ0kC,OAAQtqC,EAIZ,IAEA+pC,EACE,cAACU,GAAA,EAAQ,CACPjpC,MAAM,UACNkpC,UAAWxK,EAAQ/C,SACnBJ,KAAMA,EACNiN,QAASA,EACTW,SAAU,GACVC,mBAAiB,EACjBC,YAAU,EACVC,QAAQ,WACRC,WAAY,CACVC,QAASC,OAIjB,CACA,OAAO,qBAAK9qC,MAAO8lC,GAAc,SAAE8D,GACrC,EAEGnO,GAAc,EAgRXsP,IA/QY5Q,KACf9d,GAAA,EASepZ,WACAA,WAIbwZ,GAAA,EAEI2Q,GAAgB/tB,GAEdsW,GAAA,EACEQ,EAAA,EAMEuD,GAAA,EAMVuD,GAAA,EACEP,GAAA,EACElU,EAAA,EAeAA,EAAA,EAeJ,KAoBa,OAAb2jB,SAAkCpoB,IAAbooB,IAA0BA,GAASnhB,OAAS,IAC7DiS,GAAA,EACE+e,GAAA,EACAjkB,GAAA,EAWER,GAAA,EAGL4U,GAAS1tB,KAAI,SAAC+sB,EAASxmB,GAEvB,OACC,iCACC,cAACk3B,GAAA,EAAa,CACbl8B,MAAO,CAACqB,MAAOmqB,EAAQnqB,OAAO,SAE7BmqB,EAAQ/lB,OAET+lB,EAAQjpB,KAAK9D,KAAI,SAAC09B,EAAShN,GAG3B,OADAsM,IAAe,EAEd,eAAClkB,GAAA,EAAQ,CAAgBpO,MAAOsyB,GAAat1B,QAAS,SAACE,GACtD,GAAI00B,EAAiB5uB,SAASgwB,EAAQ12B,MAAO,CAC5C,IAAM22B,EAAYrB,EAAiB7S,QAAQiU,EAAQ12B,MAC/C22B,GAAa,GAChBrB,EAAiBgB,OAAOK,EAAW,EAErC,MACCrB,EAAiB5tB,KAAKgvB,EAAQ12B,MAG5BklB,EAAUqB,KAAKC,UAClB+O,EAAoBD,EACrB,EAAE,UACM,cAAC/S,GAAA,EAAQ,CAAChoB,MAAO,CAACqB,MAAO05B,EAAiB5uB,SAASgwB,EAAQ12B,MAAQ+lB,EAAQnqB,MAAQpB,EAAME,QAAQO,YAAaunB,QAAS8S,EAAiB5uB,SAASgwB,EAAQ12B,QACzJ,cAACgc,EAAA,EAAY,CAACrhB,QAAS+7B,EAAQ12B,SAdxB0pB,EAiBjB,MA3BUnqB,EA8Bb,KAMFw1B,KAEChyB,EAAA,EAoBAA,EAAA,EAcAA,EAAA,GAiBGmN,GAAA,EACJgD,GAAA,EAMC6hB,GAAmB,KAAqB,KAKvC1d,GAAA,EACE3G,EAAA,EAeAA,EAAA,EAGWgrB,GAAgBn2B,OAwCzBuvB,IAAiB1f,EAAA,GAQZ,GAKVmwB,GAAoB,CACxB/1B,KAAM81B,GACNxpC,WAAY,GACZmK,YAAa,IAGe,IAA1Bq/B,KACFC,GAAkBxjC,QAAU,QAG9B,IAAMyjC,GACJ,iCACY,SAATlJ,IACC,cAACpsB,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,YAAaoV,UAAU,MAAK,SAC1D,cAACrD,EAAA,EAAM,CACL9U,MAAM,YACNyG,QAAQ,OACR3B,QAAS,WACPm9B,aAAaE,QAAQ,OAAQ,QAC7BxB,GAAQ,OACV,EAAE,SAEF,cAACkJ,GAAA,EAAU,QAIP,SAATnJ,IACC,cAACpsB,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,YAAaoV,UAAU,MAAK,SAC1D,cAACrD,EAAA,EAAM,CACL9U,MAAM,YACNyG,QAAQ,OACR3B,QAAS,WACPm9B,aAAaE,QAAQ,OAAQ,QAC7BxB,GAAQ,OACV,EAAE,SAEF,cAAC,KAAQ,QAIf,cAACrsB,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,mBAAoBoV,UAAU,MAAK,SAChEqoB,GACC,cAAC1rB,EAAA,EAAM,CAAC9U,MAAM,YAAYrB,MAAO,CAAC,EAAG8H,QAAQ,OAAO3B,QAAS,WAAO,EAAE,SACpE,cAAC0U,EAAA,EAAgB,CAAC7a,MAAO,CAAE6E,UAAW,GAAIrD,SAAU,QAGtD,cAAC2U,EAAA,EAAM,CACL9U,MAAM,YACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,kBAAMuK,EAAO6M,OAAO,EAAC,SAE9B,cAAC7D,GAAA,EAAW,QAIlB,uBACE0D,QAAM,EACN5c,KAAK,OACL8c,SAAS,WACT9R,IAAK,SAACA,GAAG,OAAMkF,EAASlF,CAAG,EAC3BvC,SApwBc,SAAC5C,GAInB,GAHAiB,QAAQC,IAAI,cAEZu6B,IAAiB,GACbz7B,EAAM2R,OAAO7M,MAAMH,OAAS,EAAG,CAClC1D,QAAQC,IAAI,WAAYlB,EAAM2R,OAAO7M,MAAMH,QAAQ,iBAEhD,IAAMmgC,EAAO9kC,EAAM2R,OAAO7M,MAAMsB,GAChC,GAAkB,qBAAd0+B,EAAK3qC,KAMP,YALkBuD,IAAdonC,EAAK3qC,OACPoN,EAAM6E,MAAM,kCAChBqvB,IAAiB,IAGf,WAGF,IAAM9nB,EAAS,IAAIC,WAEnBD,EAAO1O,iBAAiB,QAAQ,SAACjF,GAC/B,IAAIxG,EAAOma,EAAOG,OAClB,IACEta,EAAOoT,KAAKC,MAAM8G,EAAOG,OAK3B,CAJE,MAAOlb,GAGP,OAFA2O,EAAM6E,MAAM,iBAAmBxT,QAC/B6iC,IAAiB,EAEnB,CAELx6B,QAAQC,IAAI,sBAAuB1H,EAAK4F,MAGnCynB,GACErtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACL,CAAC,GACD,EACN,GACA,GACAtuB,EAAK+R,QAEL5S,MAAK,SAAC2S,QACW5N,IAAb4N,IAEH9R,EAAKR,GAAKsS,EAAStS,GACnBQ,EAAKuuB,YAAa,EAClBvuB,EAAKwuB,kBAAmB,EACxBxuB,EAAKsS,UAAW,EAGhB+a,GACCrtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACLtuB,GACA,EACA,GACA,GACAA,EAAK+R,QACJ5S,MAAK,SAAC2S,QACU5N,IAAb4N,GACH/D,EAAMiF,QAAQ,yBAA2BhT,EAAK4F,KAEhD,IAEF,IACC+M,OAAM,SAACC,GACP7E,EAAM6E,MAAM,iBAAmBA,EAAMpG,WACtC,GACG,IAGA2N,EAAOI,WAAW+wB,EAAM,EArE1B,IAAK,IAAI1+B,KAAOpG,EAAM2R,OAAO7M,MAAO,GAuEtC,CAEA01B,IAA0B,EAC5B,IAsrBKb,EAAUh1B,OAAS,EAClB,cAAC2K,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,kCAA6B47B,EAAUh1B,OAAM,KAClDwO,UAAU,MAAK,SAEf,cAACrD,EAAA,EAAM,CACL9U,MAAM,YACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,YAxtDQ,SAACilC,GAC5B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAapgC,OAAQqgC,IACxC1uB,YAAW,WACVrV,QAAQC,IAAI6jC,EAAaC,GAAG5lC,MACzB4+B,GAAe+G,EAAaC,IAAI,EACpC,GAAO,IAAJA,GAGFz9B,EAAM+E,KAAK,0CAAD,OAA2Cy4B,EAAapgC,OAAM,cAC1E,CAgtDYsgC,CAAmBtL,EACrB,EAAE,SAEF,cAACZ,GAAA,EAAU,QAGb,KACH37B,GAAU,KACT,cAACkS,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,8BAA+BoV,UAAU,MAAK,SAC5E,cAACrD,EAAA,EAAM,CACL9U,MAAM,YACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,kBAAM06B,IAA0B,EAAK,EAAC,SAE/C,cAACjrB,GAAA,EAAiB,WAsGtB21B,GAAe,WACfvL,EAAUh1B,OAqDhB,IAAIwgC,GAAiB,IACjBjxB,GAAY,GAGd,OACE,qBAAKva,MAAOylC,GAAU,SACpB,sBAAKzlC,MAAOgrC,GAAkB,UAC5B,sBAAKhrC,MAAO,CAAEwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,qBAAK/H,MAAO,CAAEiV,KAAM,GAAI,SAC7B,cAACpN,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACyB,SAAU,IAAI,yBAkB/CwB,WAAW,KACX,qBAAKjD,MAAO,CAAEwH,QAAS,OAAQiC,OAAQ,oBAAqB,SAC3D,qBAAKzJ,MAAO,CAAEiV,KAAM,EAAG4D,MAAO,SAAU,SACvC,cAAC,KAAS,CACT7Y,MAAO,CAAC,EACR0I,WAAY,CACX1I,MAAO,CACNqB,MAAO,QACPG,SAAU,IACVoG,SAAU,MAGZoB,YAAY,aACZ3H,MAAM,UACNoH,WAAS,EACTU,MAAO84B,GACPrG,MAAO,SAACC,GACPoI,GAAUpI,EACX,EACAC,SAAU,SAAC2P,EAAGzmC,GACbk/B,GAAal/B,EACd,QAKE,qBAAKhF,MAAO,CAAEiV,KAAM,EAAG9P,UAAW,SAAW,SAC1C8lC,QAmDV,qBAAKjrC,MAAO,CAACuF,MAAO,OAAQjE,UAAW2B,WAAW,EAAI,GAAI4B,UAAW5B,WAAW,EAAI,IAAM,UACvFA,YAAyB,OAAbkpB,SAAkCpoB,IAAbooB,IAA0BA,GAASnhB,OAAS,EAC9E,qBAAKhL,MAAO,CAAEwH,QAAS,QAAU,SAC/B2kB,GAAS1tB,KAAI,SAAC+sB,EAASxmB,GAEvB,OACC,cAACe,EAAA,EAAK,CAEL/F,MAAO,CACNiV,KAAM,EACN9T,gBAAiB8gC,GAAQ91B,SAASqf,EAAQ/lB,KAAKkH,eAAiB6e,EAAQnqB,MAAQpB,EAAME,QAAQM,aAC9FG,aAAcX,EAAME,QAAQS,aAC5B8K,YAAa1G,IAAUmnB,GAASnhB,OAAO,EAAI,EAAI,GAC/C5F,OAAQ,UACRpE,OAAO,aAAD,OAAewqB,EAAQnqB,OAC7BiE,SAAU,SACVrE,QAAS,IAEVkF,QAAS,WACRmB,QAAQC,IAAI,WASb,EAAE,SAEF,oBAAGmR,KAAI,6BAAwB8S,EAAQ/lB,MAAQgT,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,QAAU,UAC3H,cAAC1O,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,cAAa,SAC7CmqB,EAAQ/lB,OAEV,eAACoC,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,qBACvCmqB,EAAQgJ,QAAQxpB,OAAM,IAAGwgB,EAAQjpB,KAAKyI,cA5B5CwgB,EAAQ/lB,KAiChB,MAEA,OAEE,qBAAKzF,MAAO,CAAE+H,UAAW,OACvB9E,iBACac,IAApBq+B,IACyB,OAApBA,IACAA,GAAgBp3B,OAAS,EACvB,qBACEhL,MAAO,CACLwH,QAAS,OACThG,SAAUyB,WAAW,OAAS,KAC9B2E,SAAU3E,WAAW,OAAS,KAC9B8G,OAAQ,GACR/I,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BuE,UAAW,SACXG,SAAU,QACV,SAED88B,GAAgB3jC,KAAI,SAACoB,EAAMmF,GAC1B,QACuBjB,IAArBlE,EAAK6U,aACgB,OAArB7U,EAAK6U,aACuB,IAA5B7U,EAAK6U,YAAY1J,OAEjB,OAAO,KAG2B,kBAAhCnL,EAAK0f,SAAS5S,gBAChB9M,EAAK6U,YAAczU,EAAME,QAAQyB,cAG3C,IAAM8pC,EACL,sBAAkB1rC,MAAO,CAAE+J,OAAQ,IAAK,SACvC,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CACNmB,gBAAiB,cACjBsI,OAAQ,EACRxI,QAAS,IAEVkF,QAAS,WACRmB,QAAQC,IAAI,WAAY1H,GACxBokC,GAAUpkC,EAAK0f,SAChB,EAAE,SAEF,cAAC5J,GAAA,EAAO,CACPvR,MAAK,oBAAevE,EAAK0f,UACzB/F,UAAU,MAAK,SAEf,cAACmyB,GAAA,EAAK,CACLC,aAAc,EACdvqC,MAAM,YACNrB,MAAO,CAAEyB,SAAU,IAAK,SAExB,qBACCzB,MAAO,CACN2I,OA3zFG,GA4zFHpD,MA5zFG,GA6zFHF,SAAU,WACVwU,OAAQ,kBACR1Y,gBAAiB,OACjBP,aAAcirC,GACd9hC,OAAQ,IACRzE,SAAU,SACVkC,QAAS,OACTyC,eAAgB,UACf,SAEF,qBACCjK,MAAO,CACN2I,OAz0FE,GA00FFpD,MA10FE,GA20FFF,SAAU,WACViT,KAAM,EACN6Q,MAAO,EACP/jB,OAAQ,UACR2E,OAAQ,GACR/I,OAAQ,mCAETyG,IAAK5H,EAAK0f,SACV7X,IAAK7H,EAAK6U,uBA/CL1P,GAuDZ,OAAI2L,IACH4J,GAAY,GAOZ,cAACS,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKX,EAAQ,OAAO,SACtEmxB,GADS1mC,IAJJ0mC,CAQJ,MAEE,KACM,SAAT3J,GACC,eAACr9B,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO0lC,GAAkB,UAC1D,cAAC1qB,GAAA,EAAI,CAACC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKswB,EAAa,OAAO,SACzD,cAACzE,GAAgB,MAGjB7G,EAAkBzhC,KAAI,SAACoB,EAAMmF,GAEpC,OAAoB,IAAhBnF,EAAK+kC,OACD,KAGHj0B,IACJ66B,GAAiB,GAUjB,cAACxwB,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKswB,EAAa,OAAO,SACzE,cAAC9mC,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAIf,WAAW,GAAK,EAAGjD,MAAO,CAAEiB,QAAS,uBAAwB,SAC9E,cAACumC,GAAa,CAAa3nC,KAAMA,GAAbmF,MAFXA,IAPP,cAACN,EAAA,EAAI,CAAa0Q,MAAI,EAACpR,GAAIf,WAAW,GAAK,EAAGjD,MAAO,CAAEiB,QAAS,uBAAwB,SAC1F,cAACumC,GAAa,CAAa3nC,KAAMA,GAAbmF,IADPA,EAaV,OAGF,cAAC2kC,GAAgB,IAGnB,qBAAK3pC,MAAO,CAAEsR,aAAc,WAIpC,EAoDMyK,GAAyB,YAlDA,SAAClI,GAC9BvM,QAAQC,IAAI,yBAA0Bm5B,IAEtC,IAAMzkB,EAAa,CACjBpI,IAAKA,EACLi4B,QAASx7B,IAAkB,UAGzBR,GAAO9E,OAAS,IAClBiR,EAAoB,QAAInM,IAGtBE,GAAOhF,OAAS,IAClBiR,EAAoB,QAAIjM,IAG1BpC,EAAMiF,QAAQ,6CACdtB,MAAMrO,EAAY,oCAAqC,CACrDsO,OAAQ,OACR2J,KAAM,OACNtU,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUuI,GACrBvK,YAAa,YAEZ1S,MAAK,SAAC2S,GAQL,OAPwB,MAApBA,EAASC,SACXhE,EAAMiF,QAAQ,sCAAwC6tB,IACtD/jB,YAAW,WACT8nB,IACF,GAAG,MAGE9yB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,eACY9O,IAAxB+N,EAAasJ,OACfxN,EAAM6E,MAAM,mBAAqBX,EAAasJ,QAE9CxN,EAAM6E,MAAM,kBAGlB,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CAGE0/B,CAAuBrL,IACvBG,IAA0B,EAC5B,EAEMmL,GAA4BpL,GAChC,eAACvkB,GAAA,EAAM,CACLC,KAAMskB,GACNrkB,QAAS,WAAO,EAChBC,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,4CAE7C,qBAAKrB,MAAO,CAAE6Y,MAAO,SAAU,SAC7B,cAAClD,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,kBAAmBoV,UAAU,MAAK,SAChE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,kBAAMuK,EAAO6M,OAAO,EAAC,SAE9B,cAAC7D,GAAA,EAAW,eAMtB,eAACgD,GAAA,EAAa,CAAC1c,MAAO,CAAEqB,MAAO,0BAA2B,8DAExD,cAACmH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAc23B,GACdh4B,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAK0hC,GAAe1hC,EAAE+Y,OAAO7O,MAAM,EAC/CH,YAAY,yCACZP,WAAS,IAEX,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,iDAG/B,qBAAK/H,MAAO,CAAEwH,QAAS,QAAS,SAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAcuH,GACd5H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKsR,GAAkBtR,EAAE+Y,OAAO7O,MAAM,EAClDH,YAAY,SACZP,WAAS,MAGb,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,4DAG/B,sBAAK/H,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAK8Q,GAAU9Q,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,+BACZP,WAAS,IAEX,cAACD,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKgR,GAAUhR,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,sBACZP,WAAS,UAIf,eAACqU,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAAM06B,IAA0B,EAAM,EAC/Cx/B,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvB+Z,SAAiC,IAAvB+lB,GAAY11B,SAAiB01B,GAAYv0B,SAAS,QAC5DhG,QAAS,WACP4V,IACF,EACA1a,MAAM,UAAS,0BAMnB,KAKC4qC,GAAcrJ,GAAoB/oB,QAAO,SAACzE,GAAI,OAAKA,EAAK+tB,IAAI,IAAEn4B,OAAS43B,GAAoB53B,OAAS,IAEpGkhC,GAAqB,SAAH,GAAuB,IAAlB92B,EAAI,EAAJA,KAAMpQ,EAAK,EAALA,MAClC,EAA8Bd,IAAMC,UAAS,GAAM,mBAA5Cuf,EAAO,KAAEyoB,EAAU,KACpBC,EAAWh3B,EAAK+tB,KAAO,cAACkJ,GAAA,EAAe,CAACrsC,MAAO,CAACqB,MAAO,UAAWqK,YAAa,MAAY,cAAC4gC,GAAA,EAAwB,CAAC3xB,UAAQ,EAAC3a,MAAO,CAACqB,MAAO,UAAWqK,YAAa,MAE3K,OACC,sBACC1L,MAAO,CAACoF,OAAQ,UAAWnE,QAAS,GAAIi8B,aAAc,iCAAkC/7B,gBAAkBuiB,EAAsBzjB,EAAME,QAAQO,WAA1B,WACpHyF,QAAS,kBAAMgmC,GAAW,EAAK,EAAC,UAEhC,eAACtkC,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACwH,QAAS,OAAQ+O,eAAgBnB,EAAK+tB,KAAO,eAAiB,QAAU,UAC1GiJ,EAAQ,IAAGpnC,EAAQ,EAAC,KAAIoQ,EAAK3P,QAE9Bie,EACA,iCACC,cAAC7b,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,IAAM,SACpD6T,EAAKN,cAEP,cAAC,IAAI,CAACwB,GAAIlB,EAAKpB,KAAMhU,MAAO,CAACqB,MAAO,UAAWkV,eAAgB,QAAU,SACxE,cAACJ,EAAA,EAAM,CAACrO,QAASsN,EAAK+tB,KAAO,WAAa,YAAa9hC,MAAM,UAAUrB,MAAO,CAACuB,WAAY,GAAIwG,UAAW,GAAK,4BAMjH,OAIJ,EAEMwkC,GACL,eAACC,GAAA,EAAM,CACHC,OAAQ,QACRnwB,KAAMkmB,GACT16B,QAAQ,aACRmgC,aAAa,EACVzrB,WAAY,CACVxc,MAAO,CACL0sC,OAAQ,OACRpnC,SAAU,OACVsC,SAAUk7B,GACVthC,SAAUshC,GACV3hC,gBAAiB,UACjBE,MAAO,QACPI,SAAU,GACfurB,WAAY/sB,EAAME,QAAQU,cAC1BkH,UAAW,GACXnH,aAAc,oBAEX,UAEL,sBAAKZ,MAAO,CAACmB,gBAAiB,UAAWqG,QAAS,QAAU,UAC3D,cAACK,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACiV,KAAM,EAAGlN,UAAW,GAAIxG,WAAY,GAAI+P,aAAc,IAAM,6BAG7F,cAACqE,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CAAEiV,KAAM,GACf9O,QAAS,SAAClH,GACTA,EAAE0L,iBACF83B,IAAc,GAEda,aAAaE,QAAQT,GAAY,SAClC,EAAE,SAED,cAAC4J,GAAA,EAAc,CAAC3sC,MAAO,CAACqB,MAAO,kBAInC,sBAAKrB,MAAO,CAACiB,QAAS,IAAM,UAC3B,eAAC4G,EAAA,EAAU,CAACC,QAAQ,QAAO,6BACV,8BAAIoF,MAAM++B,IAAe,EAAIA,GAAW,UAGzD,cAACW,GAAA,EAAc,CAACvrC,MAAM,UAAUyG,QAAQ,cAAcqB,MAAO8iC,GAAajsC,MAAO,CAAC+H,UAAW,EAAGY,OAAQ,EAAG/H,aAAcX,EAAME,QAAQS,gBAEvI,cAACiH,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,IAAM,2DAGrD,cAACiR,GAAA,EAAO,CAAChZ,MAAO,CAAC+H,UAAW,MAC5B,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACqB,MAAO,UAAW0G,UAAW,GAAI3C,OAAQ,WAAce,QAAS,WACnGw8B,IAAiB,EAClB,EAAE,SACD,oEAGF,qBAAK3iC,MAAO,CAAC+iB,UAAW,mCAAqC,SAC3D6f,GAAoBnkC,KAAI,SAAC2W,EAAMpQ,GAC/B,OACC,cAACknC,GAAkB,CAAC92B,KAAMA,EAAMpQ,MAAOA,GAEzC,SAII6nC,GACL,eAACxwB,GAAA,EAAM,CACNC,KAAMomB,GACNnmB,QAAS,WACRomB,IAAiB,EAClB,EACAnmB,WAAY,CACXxc,MAAO,CACNmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACVtG,UAAW,IACX6D,UAAW,WAEX,UAEF,cAACsX,GAAA,EAAW,kCAIZ,cAAC9G,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,IAAM1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC7DpS,QAAS,SAAClH,GACTA,EAAE0L,iBACFg4B,IAAiB,EAClB,EAAE,SAEF,cAACrZ,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,eAI7B,wBACCkE,MAAM,MACNoD,OAAO,MACP3I,MAAO,CAACyJ,OAAQ,oBAAqBlE,MAAO,IAAKoD,OAAQ,KACzDjB,IAAI,qDACJtD,MAAM,qBACN0oC,YAAY,IACZC,MAAM,2FACNC,iBAAe,OAKZC,GACJt/B,GAAYD,GAAc4yB,EACxB,gCAME,cAAC,GAAQ,CACPtgC,MAAO,CACLwB,SAAUmC,OAAOupC,WAAa,KAAO,KAAOjqC,WAAW,OAAS,KAChEwG,OAAQ,OACRxI,QAAS,IAEXmJ,OA52FW,SAACnL,GAClB,IAEMkM,OADepH,IAAnB9E,EAAE6L,cAAqC7L,EAAE6L,aAAaK,MAAMH,OAAS,EAC5C/L,EAAE6L,aAAaK,MAAQlM,EAAE+Y,OAAO7M,MAErD6O,EAAS,IAAIC,WACnBrM,EAAM+E,KAAK,gEAEX,IACEqH,EAAO1O,iBAAiB,QAAQ,SAACrM,GAC/B,IAAIY,EAAOZ,EAAE+Y,OAAOmC,OACpB1J,IAAc,GACd,IACE5Q,EAAOoT,KAAKC,MAAM8G,EAAOG,OAI3B,CAHE,MAAOlb,GAEP,YADA2O,EAAM6E,MAAM,iBAAmBxT,EAEjC,CAGAiuB,GACErtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACL,CAAC,GACD,EACL,GACA,GACAtuB,EAAK+R,QAEC5S,MAAK,SAAC2S,QACY5N,IAAb4N,IAEF9R,EAAKR,GAAKsS,EAAStS,GAGnB6tB,GACErtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACLtuB,GACA,EACR,GACA,GACAA,EAAK+R,QACG5S,MAAK,SAAC2S,QACW5N,IAAb4N,GACF/D,EAAMiF,QAAQ,yBAAD,OAA0BhT,EAAK4F,MAEhD,IAEJ,IACC+M,OAAM,SAACC,GACN7E,EAAM6E,MAAM,iBAAmBA,EAAMpG,WACvC,GACJ,GAGF,CAFE,MAAOpN,GACPqI,QAAQC,IAAI,sBAAuBtI,EACrC,CAEA+a,EAAOI,WAAWjP,EAAM,GAC1B,EA6yF2B,SAEnB,cAACogC,GAAY,MAGdnvB,GACAgoB,GACAE,GACA0H,GAEHxJ,GASO,KATM,qBAAKxiC,MAAO,CAACqF,SAAU,QAASiT,IAAK,GAAIC,OAAQ,EAAGpX,gBAAiBlB,EAAME,QAAQO,WAAYE,aAAcX,EAAME,QAAQS,cAAgB,SACpJ,cAAC+U,GAAA,EAAO,CAACvR,MAAK,kBAAqBoV,UAAU,SAAQ,SACzD,cAACb,GAAA,EAAU,CAACxS,QAAS,WACpBs8B,IAAc,GACda,aAAaE,QAAQT,GAAY,OAClC,EAAE,SACD,cAACoK,GAAA,EAAa,UAIhBlqC,WAAW,KAAOspC,GAClBM,IAEc,IAAd1S,GACA,cAAC,GAAY,CACZj3B,UAAWA,EACXua,SAAU2P,GACVpC,YAAa4W,GACbzH,UAAWA,GACXC,aAAcA,GACbjO,SAAUA,GACXe,eAAgBA,GAChBtD,aAAcA,GACd0Q,UAAWA,KAEX,QASA,sBACEt6B,MAAO,CACLiZ,WAAY,IACZ1T,MAAO,IACPkE,OAAQ,OACRtE,UAAW,UACX,UAEF,cAAC0V,EAAA,EAAgB,IACjB,cAAChT,EAAA,EAAU,mCAKjB,OAAO,8BAAMolC,IACf,E,8HCnuHMvsC,GAAa,UACbD,GAAe,UAIfq8B,GAAYC,aAAW,SAAC98B,GAAK,MAAM,CACvC+8B,SAAU,CACRh8B,OAAQ,EACR,kCAAmC,CACjCG,gBACyB,UAAvBlB,EAAME,QAAQK,KAAmB,UAAYP,EAAME,QAAQO,YAE/D,+BAAgC,CAC9B8G,QAAS,QAEX,4CAA6C,CAC3Cy1B,YAAY,aAAD,OACc,UAAvBh9B,EAAME,QAAQK,KAAmB,QAAU,YAG/C,qDAAsD,CACpD08B,aAAa,aAAD,OACa,UAAvBj9B,EAAME,QAAQK,KAAmB,UAAY,YAGjD,sBAAuB,CACrBa,MACyB,UAAvBpB,EAAME,QAAQK,KAAmB,QAAU,0BAE/C,sFACE,CACEI,aAAc,EACdS,MAAO,UAGd,IAwpFc+rC,GA1oFQ,SAACxqC,GACtB,IAAQM,EAA8CN,EAA9CM,UAAWwK,EAAmC9K,EAAnC8K,WAAYC,EAAuB/K,EAAvB+K,SAAUnK,EAAaZ,EAAbY,SAEzC4N,SAAShN,MAAQ,+BACjB,IAAMnE,EAAQgE,cACR2J,EAAQC,cAEXC,GADagvB,GAAU78B,GACZ8N,eAGRiQ,EAAe9a,EAAY,iBAG7BwN,EAAS,GAEb,EAAkCxM,IAAMC,SAAS,IAAG,mBAA7C67B,EAAS,KAAEC,EAAY,KAC9B,EAAkD/7B,IAAMC,SAAS,IAAG,mBAA1Cg8B,GAAF,KAAsB,MAC9C,EAAgDj8B,IAAMC,SAAS,CAAC,GAAE,mBAA3Di8B,EAAgB,KAAEC,EAAmB,KAC5C,EAAwCn8B,IAAMC,UAAS,GAAM,mBAAtDm8B,EAAY,KAAEC,EAAe,KACpC,EAAoDr8B,IAAMC,SAAS,IAAG,mBAA/Dq8B,EAAkB,KAAEC,EAAqB,KAEhD,EAA4Bv8B,IAAMC,SAAS,IAAG,mBAAvC2L,EAAM,KAAEC,EAAS,KACxB,EAA4B7L,IAAMC,SAAS,IAAG,mBAAvC6L,EAAM,KAAEC,EAAS,KACxB,EAAsC/L,IAAMC,SAC1C,+CACD,mBAFMu8B,GAAW,KAAEC,GAAc,KAGlC,GAA0Cz8B,IAAMC,UAAS,GAAM,qBAAxDu+B,GAAa,MAAEC,GAAgB,MACtC,GAA4Cz+B,IAAMC,SAAS,UAAS,qBAA7DmM,GAAc,MAAEC,GAAiB,MACxC,GAA4DrM,IAAMC,UAAS,GAAM,qBAA1Ey8B,GAAsB,MAAEC,GAAyB,MACxD,GAA8C38B,IAAMC,UAAS,GAAM,qBAA5D28B,GAAe,MAAEC,GAAkB,MAC1C,GAAoC78B,IAAMC,SAAS,IAAG,qBAA/C68B,GAAU,MAAEC,GAAa,MAEhC,GAAkC/8B,IAAMC,UAAS,GAAM,qBAAhDg2B,GAAS,MAAEC,GAAY,MAC9B,GAA8Cl2B,IAAMC,SAAS,IAAG,qBAAzDg9B,GAAe,MAAEC,GAAkB,MAC1C,GACEl9B,IAAMC,SAAS,IAAG,qBADbk9B,GAAsB,MAAEC,GAAyB,MAExD,GAA8Cp9B,IAAMC,SAAS,IAAG,qBAAzDy2B,GAAe,MAAEC,GAAkB,MAE1C,GAAoD32B,IAAMC,SAAS,IAAG,qBAA/DgpB,GAAkB,MAAEoU,GAAqB,MAEhD,GAA8Cr9B,IAAMC,UAAS,GAAM,qBAA5DqL,GAAe,MAAEC,GAAkB,MAC1C,GAAgDvL,IAAMC,UAAS,GAAM,qBAA9Du9B,GAAgB,MAAEC,GAAmB,MAC5C,GAA8Cz9B,IAAMC,SAAS,CAAC,GAAE,qBAAzDipB,GAAe,MAAEwU,GAAkB,MAC1C,GAA0C19B,IAAMC,UAAS,GAAM,qBAAxD09B,GAAa,MAAEC,GAAgB,MACtC,GAAoC59B,IAAMC,UAAS,GAAM,qBAAlDqM,GAAU,MAAEC,GAAa,MAChC,GAAwBvM,IAAMC,SAAS,QAAO,qBAAvC49B,GAAI,MAAEC,GAAO,MACpB,GAA8B99B,IAAMC,SAAS,IAAG,qBAChD,IADc,MAAY,MACgBD,IAAMC,UAAS,IAAM,qBAAxDo2B,GAAa,MAAE4H,GAAgB,MACtC,GAA8Cj+B,IAAMC,SAAS,IAAG,qBAAxCk+B,IAAF,MAAoB,OAE1C,GAAkCn+B,IAAMC,UAAS,GAAK,qBAApC4a,IAAF,MAAc,OAExBtb,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAqGZugC,GAAoBtD,GACxB,eAACzkB,GAAA,EAAM,CACLC,KAAMwkB,GACNvkB,QAAS,WACPwkB,IAAmB,GACnBV,EAAoB,CAAC,EACvB,EACA7jB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACV3G,QAAS,KAEX,UAEF,cAACwb,GAAA,EAAW,CAACzc,MAAO,CAAEsR,aAAc,GAAI,SACtC,qBAAKtR,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,qEAItE,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,cAAC0C,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC,EAAE,oGAItC,cAACmW,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,WACP46B,IAAmB,GACnBsD,GAAerD,IAAY,GAC3BC,GAAc,GAChB,EACA5/B,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,WACP46B,IAAmB,GACnBsD,GAAerD,IAAY,GAC3BC,GAAc,GAChB,EACA5/B,MAAM,UAAS,sBAMnB,KAEEijC,GAAe5C,GACnB,eAACrlB,GAAA,EAAM,CACLC,KAAMolB,GACNnlB,QAAS,WACPolB,IAAoB,GACpBtB,EAAoB,CAAC,EACvB,EACA7jB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACV3G,QAAS,KAEX,UAEF,cAACwb,GAAA,EAAW,CAACzc,MAAO,CAAEsR,aAAc,GAAI,SACtC,qBAAKtR,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,+DAItE,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,8BACE,cAAC0C,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAEsR,aAAc,IAAK,wIAK1D,cAAC6E,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAC,EACRmG,QAAS,WACPo+B,GAAgBnE,GAChBuB,IAAoB,EACtB,EACAtgC,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WACPw7B,IAAoB,EACtB,EACAtgC,MAAM,UAAS,sBAMnB,KAEE+a,GAAc5M,GAClB,eAAC6M,GAAA,EAAM,CACLC,KAAM9M,GACN+M,QAAS,WACP9M,IAAmB,GACnBgxB,EAAsB,GACxB,EACAjkB,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,MAEZ,UAEF,cAAC6U,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEmF,UAAW,SAAU9D,MAAO,yBAA0B,4DACnB,wBAAO,4DAI1D,eAACqb,GAAA,EAAa,CACZ1c,MAAO,CAAEqB,MAAO,yBAA0B8D,UAAW,UAAW,UAEhE,cAACgR,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WACPmB,QAAQC,IAAI,YAAa6lB,IACrBoT,IACFgE,GAAehE,GACf7jB,YAAW,WACT8nB,IACF,GAAG,MAELh1B,IAAmB,EACrB,EACApO,MAAM,UAAS,iBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAC,EACRmG,QAAS,WACPsJ,IAAmB,EACrB,EACApO,MAAM,UAAS,sBAMnB,KA6DJgH,qBAAU,WACJmI,IACFC,IAAc,EAElB,GAAG,CAACD,KAEJ,IAAMi0B,GAAwB,WAC5BlzB,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qCAAsCoK,EAASC,QAEvDnO,KACFE,OAAOC,SAASgP,SAAW,UAG7BhF,EAAM+E,KAAK,kCACX4tB,GAAgB,IAIX5uB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,QAAqB/N,IAAjB+N,EAAJ,CAGE,GAFAmuB,EAAanuB,QAEQ/N,IAAjB+N,EAA4B,CAC9B,IAAIizB,EAAiB,GACjBC,EAAmB,GACvB,IAAK,IAAIv4B,KAAOqF,EACd,IAAK,IAAIsP,KAAatP,EAAarF,GAAK8F,QAAS,CAC/C,IAAMhM,EAASuL,EAAarF,GAAK8F,QAAQ6O,GAErC2jB,EAAe54B,SAAS5F,EAAOgZ,YAInCwlB,EAAe53B,KAAK5G,EAAOgZ,UAC3BylB,EAAiB73B,KAAK5G,GACxB,CAIF87B,GAAmB2C,EACrB,CAEA7E,EAAqBruB,GACrByuB,GAAgB,GAGjB5jB,YAAW,WACdoC,IAAa,GACb4jB,IAAiB,EAClB,GAAG,IAOA,MALMj1B,GACFE,EAAM6E,MAAM,4CAKlB,IACCD,OAAM,SAACC,GACVkwB,IAAiB,GAEb/0B,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAGAhE,qBAAU,WACR,GAAI23B,EAAUh1B,QAAU,EAAG,CACzB,IAAMw6B,EAAUlC,aAAaC,QAAQ,aACrBx/B,IAAZyhC,GAAqC,OAAZA,GAC3BxD,GAAQwD,GAIVf,IACF,CACF,GAAG,IAEH,IAAMgB,GAAY,CAChBpkC,MAAO,UACPkE,MAAO,OACPiC,QAAS,OACTI,SAAU,KACVpG,SAAU,KACViI,OAAQ,QA4DJu8B,GAAiB,SAACnmC,GACtB,GAAsB,OAAlBA,EAAK+gB,eAAuC7c,IAAlBlE,EAAK+gB,SACjC,IAAK,IAAInU,KAAO5M,EAAK+gB,SAAU,CAC7B,IAAMC,EAAUhhB,EAAK+gB,SAASnU,GACL,qBAArBoU,EAAQtB,UACNsB,EAAQzH,WAAWpO,OAAS,IAC9B6V,EAAQzH,WAAW,GAAGjQ,MAAQ,IAIX,YAAnB0X,EAAQjP,SACViP,EAAQjP,OAAS,WAGnB,IAAMq0B,EAAQ3f,cAwBd,IAAK,IAAI4f,IAvBoB,YAAzBrlB,EAAQC,oBAEe/c,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACsB,IAA9ByH,EAAQzH,WAAWpO,aAMIjH,IAAvB8c,EAAQzH,YACe,OAAvByH,EAAQzH,YACsB,IAA9ByH,EAAQzH,WAAWpO,QANnB6V,EAAQzH,WAAW,GAAGjQ,MACpB6U,EAAe,WAAa6C,EAAQxhB,GACtCwhB,EAAQzH,WAAW,GAAGjQ,MAAQ,WAAa0X,EAAQxhB,IAWnDuO,EAAM+E,KAAK,oDAIO9S,EAAKw7B,SAAU,CACnC,IAAMnf,EAASrc,EAAKw7B,SAAS6K,GACzBhqB,EAAOiqB,YAActlB,EAAQxhB,KAC/B6c,EAAOiqB,UAAYF,GAGjB/pB,EAAOkqB,iBAAmBvlB,EAAQxhB,KACpC6c,EAAOkqB,eAAiBH,EAE5B,CAEAplB,EAAQwlB,YAAc5iC,GAAU,QAAU,UAC1Cod,EAAQxhB,GAAK4mC,CACf,CAGF,GAAqB,OAAjBpmC,EAAK0S,cAAqCxO,IAAjBlE,EAAK0S,QAChC,IAAK9F,KAAO5M,EAAK0S,QAAS,CAGxB,IAAK,IAAIjF,KAFTzN,EAAK0S,QAAQ9F,GAAKwT,kBAAoB,GAEnBpgB,EAAK0S,QAAQ9F,GAAK2M,WAAY,CAC/C,IAAM0J,EAAQjjB,EAAK0S,QAAQ9F,GAAK2M,WAAW9L,IAEzCwV,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,WAGhB2W,EAAM3Z,MAAM+C,WAAW,KACzB5E,QAAQC,IAAI,mDAEZub,EAAM3Z,MAAQ,GACd2Z,EAAM3Q,UAAW,GAGvB,CAEA,IAAM8zB,EAAQ3f,cACd,IAAK4f,KAAarmC,EAAKw7B,SAAU,CAC/B,IAAMnf,EAASrc,EAAKw7B,SAAS6K,GACzBhqB,EAAOiqB,YAActmC,EAAK0S,QAAQ9F,GAAKpN,KACzC6c,EAAOiqB,UAAYF,GAGjB/pB,EAAOkqB,iBAAmBvmC,EAAK0S,QAAQ9F,GAAKpN,KAC9C6c,EAAOkqB,eAAiBH,EAE5B,CAEIpmC,EAAK0S,QAAQ9F,GAAKpN,KAAOQ,EAAKqR,QAChCrR,EAAKqR,MAAQ+0B,GAGfpmC,EAAK0S,QAAQ9F,GAAK45B,YAAc,GAChCxmC,EAAK0S,QAAQ9F,GAAKpN,GAAK4mC,CACzB,CAGF,GAC8B,OAA5BpmC,EAAK6gB,yBACuB3c,IAA5BlE,EAAK6gB,mBAEL,IAAKjU,KAAO5M,EAAK6gB,mBAAoB,CACnC,IAAMoC,EAAQjjB,EAAK6gB,mBAAmBjU,IAEpCqW,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,QACpB2W,EAAMrd,KAAK0G,SAAS,SACpB2W,EAAMrd,KAAK0G,SAAS,WACpB2W,EAAMrd,KAAK0G,SAAS,YAEpB2W,EAAM3Z,MAAQ,GACd2Z,EAAM3Q,UAAW,EAErB,CAGF,OAAOtS,CACT,EAEMymC,GAAmB,SAACzmC,GAexB,OAdAA,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,KACrB,MAAI,GAChByH,QAAQC,IAAI,mBAAoB1H,IAChCA,EAAOmmC,GAAenmC,IAEZ,IAAI,GACdA,EAAa,OAAI,GACjBA,EAAoB,cAAI,CAAC,EAGzBA,EAAuB,kBAAI,EAC3BA,EAAiB,YAAI,EACrByH,QAAQC,IAAI,iBAAkB1H,GAEvBA,CACT,EAEMwkC,GAAiB,SAACxkC,EAAM0mC,GAE5B,IAAIC,GADJ3mC,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,KACA4F,KAAO,SAEvB,IAAb8gC,GAGoB,QAFtB1mC,EAAOymC,GAAiBzmC,IAEf6pB,eAAuC3lB,IAAlBlE,EAAK6pB,WACjC9b,EAAM+E,KACJ,6EAEF9S,EAAK6pB,SAAW,IAYpB,IAAI+c,EAAUxzB,KAAKS,UAAU7T,GACzB6mC,EACF,uCAAyCC,mBAAmBF,GAC1DG,EAAcx1B,SAAS6C,cAAc,KACzC2yB,EAAY1yB,aAAa,OAAQwyB,GACjCE,EAAY1yB,aAAa,WAAYsyB,GACrCI,EAAYrpB,OACd,EAEMgnB,GAAkB,SAAC1kC,GACvBA,EAAOoT,KAAKC,MAAMD,KAAKS,UAAU7T,IACjCA,EAAOymC,GAAiBzmC,GACxB+N,EAAM+E,KAAK,6BAA+B9S,EAAK4F,MAG/C8L,MAAMrO,EAAY,qBAAuBrD,EAAKR,GAAK,WAAY,CAC7DmS,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAaL,OAZwB,MAApBA,EAASC,OACXtK,QAAQC,IAAI,2CAER9D,GACFmK,EAAMiF,QAAQ,mCAEdjF,EAAMiF,QACJ,0DAKClB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,QACuB/N,IAAxB+N,EAAasJ,QACfxN,EAAM6E,MAAM,sBAAuBX,EAAasJ,QAGlDqpB,IACF,IACCjyB,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAmCMm4B,GAAiB,SAACnlC,GACtBkS,MAAMrO,EAAY,qBAAuB7D,EAAI,CAC3CmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAQL,OAPwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,4CACZqG,EAAM6E,MAAM,kDAEZ7E,EAAMiF,QAAQ,oBAAsBxT,GAG/BsS,EAASE,MAClB,IACC7S,MAAK,WACJ2d,YAAW,WACT8nB,IACF,GAAG,IACL,IACCjyB,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA0cM6gB,GAAiB,SACrBznB,EACAqP,EACAO,EACA8X,EACAC,EACAC,GAEA,IAAI7b,EAAS,OACTic,EAAY,GACZC,EAAe,CAAC,EAuBpB,YArB2B3pB,IAAvBqpB,EAAgB/tB,KAClBiI,QAAQC,IAAI,8BACZiK,EAAS,MACTic,EAAY,IAAML,EAAgB/tB,GAAK,kBACvCquB,EAAeN,EAEf9lB,QAAQC,IAAI,kBACZmmB,EAAoB,MAAI,IAI1BA,EAAmB,KAAIjoB,EACvBioB,EAA0B,YAAI5Y,OACjB/Q,IAATsR,IACFqY,EAAmB,KAAIrY,QAGEtR,IAAvBopB,IACFO,EAAmC,qBAAIP,GAGlC5b,MAAMrO,EAAY,oBAAsBuqB,EAAW,CACxDjc,OAAQA,EACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUga,GACrBhc,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAMb,OAFAuwB,IAAiB,GAEVxwB,EAASE,OALdvK,QAAQC,IAAI,mCAMhB,IACCvI,MAAK,SAAC8S,GACT,IAA6B,IAAzBA,EAAae,QAyBb,MAfe,SAAXrB,GAAqB6b,GACvB1pB,OAAOC,SAASgP,SAAW,cAAgBd,EAAiB,GAC5DsoB,IAAa,IACH/M,GAQVzf,EAAM+E,KAAK,gDACXynB,IAAa,KAPbzd,YAAW,WACT8nB,IACF,GAAG,KACH3C,IAAiB,GACjB1H,IAAa,IAMRtoB,OAxBkB/N,IAAxB+N,EAAasJ,OAChBxN,EAAM6E,MAAM,2BAA4BX,EAAasJ,QAErDxN,EAAM6E,MAAM,0BAsBZ,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,YAClBy1B,IAAiB,GACjB1H,IAAa,GACb+H,IAAiB,EACnB,GACJ,EAiZMnlB,GAAYmd,GAChB,eAAC9d,GAAA,EAAM,CACLC,KAAM6d,GACN5d,QAAS,WACP6d,IAAa,EACf,EACA5d,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,UAEZ,UAEF,cAAC6U,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,eACrB0C,IAAvBqpB,GAAgB/tB,GAAmB,UAAY,MAAK,YACrD,qBAAKW,MAAO,CAAE6Y,MAAO,SAAU,SAC7B,cAAClD,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,kBAAmBoV,UAAU,MAAK,SAChE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,kBAAMuK,EAAO6M,OAAO,EAAC,SAE9B,cAAC,KAAW,eAMtB,eAACN,GAAA,EAAW,WACV,eAACP,GAAA,EAAa,WACZ,cAAClU,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAK+6B,GAAmB/6B,EAAM2R,OAAO7O,MAAM,EACzDT,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXA,MAAM,UACN2H,YAAY,OACZS,OAAO,QACPV,aAAco4B,GACdzF,WAAS,EACTjzB,WAAS,IAEX,cAACD,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAKi7B,GAA0Bj7B,EAAM2R,OAAO7O,MAAM,EAChET,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXA,MAAM,UACN0H,aAAcs4B,GACdr4B,YAAY,cACZ4zB,KAAK,IACLjB,WAAS,EACTlyB,OAAO,QACPhB,WAAS,IAEX,cAAC,KAAS,CACRzI,MAAO,CAAE+H,UAAW,IACpBW,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGX2H,YAAY,OACZ3H,MAAM,UACNoH,WAAS,EACTU,MAAOyxB,GACPgB,MAAO,SAACC,GACNjB,GAAgBztB,KAAK0uB,GACrBhB,GAAmBD,GACrB,EACAkB,SAAU,SAACD,EAAM72B,GACf41B,GAAgBmB,OAAO/2B,EAAO,GAC9B61B,GAAmBD,GACrB,IAGF,cAACpyB,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAKk7B,GAAsBl7B,EAAM2R,OAAO7O,MAAM,EAC5DT,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXA,MAAM,UACN0H,aAAcokB,GACdnkB,YAAY,gEACZ4zB,KAAK,IACLjB,WAAS,EACTlyB,OAAO,QACPhB,WAAS,OAGb,eAACqU,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAC,EACRmG,QAAS,WACPi7B,GAAmB,IACnBE,GAA0B,IAC1BC,GAAsB,IACtBK,GAAmB,CAAC,GACpB/G,GAAmB,IACnBT,IAAa,EACf,EACA/4B,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAC,EACR2a,SAAqC,IAA3BwmB,GAAgBn2B,OAC1B7E,QAAS,WACPmB,QAAQC,IAAI,SAAUqzB,SACK72B,IAAvBqpB,GAAgB/tB,IAClB6tB,GACEiU,GACAE,GACAzG,GACAzN,GACAC,IACA,GAEFgU,GAAmB,IACnBG,GAAsB,IACtBD,GAA0B,IAC1BM,GAAmB,CAAC,GACpB/G,GAAmB,KAEnB3N,GACEiU,GACAE,GACAzG,GACAzN,GACA,CAAC,GACD,GAIJgV,IAAiB,EACnB,EACA9gC,MAAM,UAAS,SAEdk5B,GAAgB,cAAC1f,EAAA,EAAgB,CAACxZ,MAAM,cAAiB,oBAKhE,KAEE0pC,GACU,EAMc,IAA1BA,KACFC,GAAkBxjC,QAAU,QAKhB,SAATu6B,KACEpsB,GAAA,EACEQ,EAAA,EAQE,MAIG,SAAT4rB,KACEpsB,GAAA,EACEQ,EAAA,EAQE,MAINR,GAAA,EACEksB,IACE1rB,EAAA,EACE0E,EAAA,IAGF1E,EAAA,EAME,MAWN6pB,EAAUh1B,OAAS,IACjB2K,GAAA,EAEM,kCAA6BqqB,EAAUh1B,OAAM,KAGjDmL,EAAA,EAQE,MAIN1S,KACEkS,GAAA,EACEQ,EAAA,EAME,MA/EX,IAuFK60B,GAAoB,CACzB/1B,KAAM81B,GACNthC,OAAQ,OACR1B,UAAW,GACX5C,UAAW,SACX3D,SAAU,KAIJ+pC,GAAe,WACrB,IAIM8B,EAAW,QAGXvtB,EAAQ,CACb,CACCwtB,KACC,eAACzlC,EAAA,EAAU,CAACC,QAASulC,EAAUrtC,MAAO,CAAC+H,UAPlB,EAO8C5C,UAAW,QAAUgB,QAAS,WAC5F1C,IACH2C,IAAQC,MAAM,CACbC,SAAU,kBACVC,OAAO,4BAGV,EAAE,UACD,cAAC,IAAI,CAAC+P,GAAG,iBAAiBtW,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAY,gCAA0B,wCAGzGksC,SAAU,qBAEX,CACCD,KACC,eAACzlC,EAAA,EAAU,CAACC,QAASulC,EAAUrtC,MAAO,CAAC+H,UAtBlB,EAsB8C5C,UAAW,QAAS,sBAC5E,cAAC,IAAI,CAACmR,GAAG,iBAAiBtW,MAAO,CAACoF,OAAQ,UAAWmR,eAAgB,OAAQlV,MAAO,WAAY,4BAAsB,WAC/H,sBAAMrB,MAAO,CAACoF,OAAQ,UAAWmR,eAAgB,OAAQlV,MAAO,WAAa8E,QAAS,WAErF,GAAI1C,GAOJ,OANAqK,EAAS,8BAET1H,IAAQC,MAAM,CACbC,SAAU,kBACVC,OAAO,wBAIRqH,EAAMiF,QAAQ,gCAGf,IAAM26B,EAAMp8B,SAASsE,eAAe,6BACxB3R,IAARypC,GAA6B,OAARA,IACxBlmC,QAAQC,IAAI,cAAeimC,GAC3BA,EAAIC,QACJD,EAAIxtC,MAAM6vB,YAAc,UACxB2d,EAAIxtC,MAAM0tC,YAAc,MAK1B,EAAE,8CACqC,OAEzCH,SAAU,sBAEX,CACCD,KACC,eAACzlC,EAAA,EAAU,CAACC,QAASulC,EAAUrtC,MAAO,CAAC+H,UAvDlB,EAuD8C5C,UAAW,QAAUgB,QAAS,WAC5F1C,IACH2C,IAAQC,MAAM,CACbC,SAAU,kBACVC,OAAO,yBAGV,EAAE,wCAED,sBAAMvG,MAAO,CAACoF,OAAQ,UAAW/D,MAAO,WAAa8E,QAAS,WAAOi0B,IAAa,EAAK,EAAE,0CAElF,QAAK,cAAC,IAAI,CAAC9jB,GAAG,wBAAwBtW,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAY,kCAGlGksC,SAAU,iBAEX,CACCD,KACC,eAACzlC,EAAA,EAAU,CAACC,QAASulC,EAAUrtC,MAAO,CAAC+H,UAzElB,EAyE8C5C,UAAW,QAAS,8CACrD,cAAC,IAAI,CAACmR,GAAG,SAAStW,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAY,gCAA0B,QAAK,cAAC,IAAI,CAACiV,GAAG,mBAAmBtW,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAY,iCAEtNksC,SAAU,2BAIV,OACE,sBAAKvtC,MAAOylC,GAAU,UACxB,eAACppB,GAAA,EAAM,CACNC,KAAMomB,GACNnmB,QAAS,WACRomB,IAAiB,EAClB,EACAnmB,WAAY,CACXxc,MAAO,CACNmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACVtG,UAAW,IACX6D,UAAW,WAEX,UAEF,cAACsX,GAAA,EAAW,kCAIZ,cAAC9G,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,IAAM1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC7DpS,QAAS,SAAClH,GACTA,EAAE0L,iBACFg4B,IAAiB,EAClB,EAAE,SAEF,cAAC,KAAS,CAAC3iC,MAAO,CAAEqB,MAAO,eAI7B,wBACCkE,MAAM,MACNoD,OAAO,MACP3I,MAAO,CAACyJ,OAAQ,oBAAqBlE,MAAO,IAAKoD,OAAQ,KACzDjB,IAAI,qDACJtD,MAAM,qBACN0oC,YAAY,IACZC,MAAM,2FACNC,iBAAe,OAIb,sBAAKhtC,MAAOgrC,GAAkB,UACjC,cAACnjC,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACyB,SAAU,GAAIsG,UAAW,IAAM,0CAGhE,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,IAAI,8JAGzE,cAAChC,EAAA,EAAK,CAAC/F,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQM,aAAcO,OAAQ,kCAAmCC,QAAS,GAAI8G,UAAW,IAAM,SACnI+X,EAAMrhB,KAAI,SAACoB,EAAMmF,GACjB,IAAI2oC,GAAgB,EACpB,QAA2B5pC,IAAvBP,EAASw/B,WAAkD,OAAvBx/B,EAASw/B,WAAsBx/B,EAASw/B,UAAUh4B,OAAS,QAAuBjH,IAAlBlE,EAAK0tC,SAAwB,CACpI,IAAMK,EAAgBpqC,EAASw/B,UAAU9qB,MAAK,SAAAq1B,GAAQ,OAAIA,IAAa1tC,EAAK0tC,QAAQ,IAMpF,QALsBxpC,IAAlB6pC,GAAiD,OAAlBA,IAClCtmC,QAAQC,IAAI,sBAAuB1H,EAAK0tC,UACxCI,GAAgB,IAGK,IAAlBA,EAAyB,CAC5B,GAAsB,uBAAlB9tC,EAAK0tC,UACJvN,EAAUh1B,OAAS,EACtB,IAAK,IAAIyB,KAAOuzB,EAAW,CAC1B,IAAM6N,EAAc7N,EAAUvzB,GAC9B,QAAiC1I,IAA7B8pC,EAAYC,cAA2D,OAA7BD,EAAYC,cAA0BD,EAAYC,aAAa9iC,OAAS,EAAG,CACxH2iC,GAAgB,EAChB,KACD,CACD,CAIoB,kBAAlB9tC,EAAK0tC,UAEJvN,EAAUh1B,OAAS,IACtB2iC,GAAgB,GAII,2BAAlB9tC,EAAK0tC,UACJ/pC,EAASmU,WAAWlS,OAASjC,EAASuqC,WACzCJ,GAAgB,EAGnB,CACD,CAEA,OACC,sBAAiB3tC,MAAO,CAACwH,QAAS,OAAQ8J,aAActM,IAAU8a,EAAM9U,OAAO,EAAI,EAAI,IAAM,UAC5F,qBAAKhL,MAAO,CAACwB,SAAU,GAAIkK,YAAa,IAAM,SAC7C,cAAC7D,EAAA,EAAU,CAACC,QAAQ,KAAI,SACtB6lC,EACA,cAACK,GAAA,EAAS,CAAChuC,MAAO,CAACqB,MAAO,QAAS4X,WAAY,KAE/C,4BAAIjU,EAAM,QAIb,qBAAKhF,MAAO,CAAC,EAAE,SACbH,EAAKytC,SAXEtoC,EAeZ,MAED,sBAAKhF,MAAO,CAACmF,UAAW,OAAQqC,QAAS,OAAQO,UAAW,GAAIxC,MAAO,QAAS,UAC/E,sBAAKvF,MAAO,CAACiV,KAAM,EAAGhU,QAAS,GAAIyK,YAAa,IAAK,UACpD,cAAC7D,EAAA,EAAU,UACV,mDAED,cAACA,EAAA,EAAU,CAACxG,MAAM,gBAAgByG,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAI,6DAGzE,cAAC,IAAI,CAACuO,GAAG,mBAAmBtW,MAAO,CAACuW,eAAgB,QAAS,SAC5D,cAACJ,EAAA,EAAM,CACNrO,QAAQ,WACR9H,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WACT,EAAE,+BAML,sBAAKnG,MAAO,CAACiV,KAAM,EAAGhU,QAAS,IAAM,UACpC,cAAC4G,EAAA,EAAU,UACV,6CAED,cAACA,EAAA,EAAU,CAACxG,MAAM,gBAAgByG,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAI,gFAGzE,mBAAG2Q,KAAK,6BAA6B1Y,MAAO,CAACuW,eAAgB,QAAS,SACrE,cAACJ,EAAA,EAAM,CACNrO,QAAQ,WACR9H,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WACT,EAAE,iDAiOT,EAoDM4V,GAAyB,YAlDA,SAAClI,GAC9BvM,QAAQC,IAAI,yBAA0Bm5B,IAEtC,IAAMzkB,EAAa,CACjBpI,IAAKA,EACLi4B,QAASx7B,IAAkB,UAGzBR,EAAO9E,OAAS,IAClBiR,EAAoB,QAAInM,GAGtBE,EAAOhF,OAAS,IAClBiR,EAAoB,QAAIjM,GAG1BpC,EAAMiF,QAAQ,6CACdtB,MAAMrO,EAAY,oCAAqC,CACrDsO,OAAQ,OACR2J,KAAM,OACNtU,QAAS,CACP4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUuI,GACrBvK,YAAa,YAEZ1S,MAAK,SAAC2S,GAQL,OAPwB,MAApBA,EAASC,SACXhE,EAAMiF,QAAQ,sCAAwC6tB,IACtD/jB,YAAW,WACT8nB,IACF,GAAG,MAGE9yB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,eACY9O,IAAxB+N,EAAasJ,OACfxN,EAAM6E,MAAM,mBAAqBX,EAAasJ,QAE9CxN,EAAM6E,MAAM,kBAGlB,IACCD,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CAGE0/B,CAAuBrL,IACvBG,IAA0B,EAC5B,EAEMmL,GAA4BpL,GAChC,eAACvkB,GAAA,EAAM,CACLC,KAAMskB,GACNrkB,QAAS,WAAO,EAChBC,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,sBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,4CAE7C,qBAAKrB,MAAO,CAAE6Y,MAAO,SAAU,SAC7B,cAAClD,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO,kBAAmBoV,UAAU,MAAK,SAChE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,OACR3B,QAAS,kBAAMuK,EAAO6M,OAAO,EAAC,SAE9B,cAAC,KAAW,eAMtB,eAACb,GAAA,EAAa,CAAC1c,MAAO,CAAEqB,MAAO,0BAA2B,8DAExD,cAACmH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAc23B,GACdh4B,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAK0hC,GAAe1hC,EAAE+Y,OAAO7O,MAAM,EAC/CH,YAAY,yCACZP,WAAS,IAEX,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,iDAG/B,qBAAK/H,MAAO,CAAEwH,QAAS,QAAS,SAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBT,IAC1BoH,QAAQ,WACR2B,OAAO,SACPV,aAAcuH,GACd5H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKsR,GAAkBtR,EAAE+Y,OAAO7O,MAAM,EAClDH,YAAY,SACZP,WAAS,MAGb,sBAAMzI,MAAO,CAAE+H,UAAW,IAAK,4DAG/B,sBAAK/H,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAK8Q,EAAU9Q,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,+BACZP,WAAS,IAEX,cAACD,EAAA,EAAS,CACRxI,MAAO,CAAEiV,KAAM,EAAG9T,gBAAiBT,IACnCoH,QAAQ,WACR2B,OAAO,SACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,QAGdwH,SAAU,SAAChK,GAAC,OAAKgR,EAAUhR,EAAE+Y,OAAO7O,MAAM,EAC1C3I,KAAK,WACLwI,YAAY,sBACZP,WAAS,UAIf,eAACqU,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAAM06B,IAA0B,EAAM,EAC/Cx/B,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvB+Z,SAAiC,IAAvB+lB,GAAY11B,SAAiB01B,GAAYv0B,SAAS,QAC5DhG,QAAS,WACP4V,IACF,EACA1a,MAAM,UAAS,iCAMnB,KAEE4rC,GACJt/B,GAAYD,GAAc4yB,EACxB,gCAME,cAAC,GAAQ,CACPtgC,MAAO,CACLwB,SAAUmC,OAAOupC,WAAa,KAAO,KAAO,KAC5CzjC,OAAQ,OACRxI,QAAS,IAEXmJ,OAhzEW,SAACnL,GAClB,IAEMkM,OADepH,IAAnB9E,EAAE6L,cAAqC7L,EAAE6L,aAAaK,MAAMH,OAAS,EAC5C/L,EAAE6L,aAAaK,MAAQlM,EAAE+Y,OAAO7M,MAErD6O,EAAS,IAAIC,WACnBrM,EAAM+E,KAAK,gEAEX,IACEqH,EAAO1O,iBAAiB,QAAQ,SAACrM,GAC/B,IAAIY,EAAOZ,EAAE+Y,OAAOmC,OACpB1J,IAAc,GACd,IACE5Q,EAAOoT,KAAKC,MAAM8G,EAAOG,OAI3B,CAHE,MAAOlb,GAEP,YADA2O,EAAM6E,MAAM,iBAAmBxT,EAEjC,CAGAiuB,GACErtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACL,CAAC,GACD,GAECnvB,MAAK,SAAC2S,QACY5N,IAAb4N,IAEF9R,EAAKR,GAAKsS,EAAStS,GAGnB6tB,GACErtB,EAAK4F,KACL5F,EAAKiV,YACLjV,EAAKwV,KACLxV,EAAKsuB,qBACLtuB,GACA,GACAb,MAAK,SAAC2S,QACW5N,IAAb4N,GACF/D,EAAMiF,QAAQ,yBAAD,OAA0BhT,EAAK4F,MAEhD,IAEJ,IACC+M,OAAM,SAACC,GACN7E,EAAM6E,MAAM,iBAAmBA,EAAMpG,WACvC,GACJ,GAGF,CAFE,MAAOpN,GACPqI,QAAQC,IAAI,sBAAuBtI,EACrC,CAEA+a,EAAOI,WAAWjP,EAAM,GAC1B,EAuvE2B,SAEnB,cAACogC,GAAY,MAEdvuB,GACAZ,GACAgoB,GACAE,GACA0H,MAGH,sBACEhsC,MAAO,CACLiZ,WAAY,IACZ1T,MAAO,IACPkE,OAAQ,OACRtE,UAAW,UACX,UAEF,cAAC0V,EAAA,EAAgB,IACjB,cAAChT,EAAA,EAAU,mCAKjB,OAAO,8BAAMolC,IACf,E,ICpwFe,I,4cC+aAptC,GA/aF,CACX,CACEC,SAAU,OACVC,IAAK,CACHyG,MAAO,cACP,cAAe,SACf,cACE,4DACF,cAAe,UACf,eAAgB,OAChB,YAAa,OACbjB,MAAO,OACPoD,OAAQ,OACRtH,MAAO,QACPJ,QAAS,OACTwI,OAAQ,MACR,eAAgB,MAChB,gBAAiB,OACjB,UAAW,OAGf,CACE3J,SAAU,OACVC,IAAK,CACH,qBAAsB,WACtB,qBAAsB,OACtB,cAAe,mBACfyG,MAAO,cACP,gBAAiB,QACjBjB,MAAO,MACPlE,MAAO,QACP,YAAa,kBACb,+BAAgC,CAAC,MAAO,OACxC,4BAA6B,CAAC,OAAQ,QACtC,UAAW,OAGf,CACEvB,SAAS,sBACTC,IAAK,CACHkuC,MAAO,iBACP,mBAAoB,UACpB,eAAgB,UAChB,mBAAoB,OACpB,oBAAqB,OACrB,gBAAiB,MACjB,UAAW,OAGf,CACEnuC,SAAS,uBACTC,IAAK,CACHkuC,MAAO,iBACP5sC,MAAO,cACPkE,MAAO,cACPoD,OAAQ,eACR1H,QAAS,MACTwI,OAAQ,MACR,mBAAoB,wBACpB,mBAAoB,wBACpB,eAAgB,UAChB,gBAAiB,MACjB,UAAW,KACX,gBAAiB,MACjB,qBAAsB,MACzB,YAAa,SAGd,CACE3J,SAAS,iCACTC,IAAK,CACHwF,MAAO,OACPoD,OAAQ,OACR,UAAW,IACX,YAAa,MACb,mBAAoB,MACpB,oBAAqB,MACrB,mBAAoB,uBACpB,kBAAmB,kBACnB,gCAAiC,WACjC,kCAAmC,uBAGvC,CACE7I,SAAS,2BACTC,IAAK,CACHwF,MAAO,OACPoD,OAAQ,OACR,UAAW,IACX,YAAa,QAGjB,CACE7I,SAAS,qBACTC,IAAK,CACH,mBAAoB,oBACpB,cAAe,UAGnB,CACED,SAAS,qBACTC,IAAK,CACH,mBAAoB,oBACpB,cAAe,UAGnB,CACED,SAAS,yBACTC,IAAK,CACHkuC,MAAO,UACP,eAAgB,WAChBhtC,QAAS,SAGb,CACEnB,SAAS,2BACTC,IAAK,CACH,mBAAoB,YAGxB,CACED,SAAS,uBACTC,IAAK,CACHkuC,MAAO,UACP,gBAAiB,MACjB,eAAgB,SAChB,mBAAoB,UACpB,mBAAoB,OACpB,oBAAqB,SAGzB,CACEnuC,SAAS,yBACTC,IAAK,CACH,eAAgB,YAGpB,CACED,SAAS,yBACTC,IAAK,CACH,eAAgB,WAGpB,CACED,SAAU,kBACVC,IAAK,CACH,mBAAoB,YAGxB,CACED,SAAU,kBACVC,IAAK,CACHkuC,MAAO,UACP1oC,MAAO,OACPoD,OAAQ,OACR,UAAW,OACX,YAAa,MACb3H,OAAQ,kCACR,mBAAoB,aACpB,mBAAoB,yBAGxB,CACElB,SAAU,sBACVC,IAAK,CACHkuC,MAAO,UACP1oC,MAAO,OACPoD,OAAQ,OACR,UAAW,OACX,YAAa,MACb3H,OAAQ,kCACR,mBAAoB,oBACpB,mBAAoB,uBACpBwF,MAAO,gBAGX,CACE1G,SAAU,oBACVC,IAAK,CACH,eAAgB,UAChB,eAAgB,OAChB,UAAW,OACX,mBAAoB,YAGxB,CACED,SAAU,sBACVC,IAAK,CACHkuC,MAAO,UACP,eAAgB,UAChB1oC,MAAO,MACPoD,OAAQ,MACR,UAAW,OACX,YAAa,OACb,cAAe,SACf,cAAe,SACf3H,OAAQ,kBACR,eAAgB,MAChB,gBAAiB,MACjB,mBAAoB,mBACpB,mBAAoB,gBAGxB,CACElB,SAAU,qBACVC,IAAK,CACHkuC,MAAO,UACP,eAAgB,UAChB1oC,MAAO,OACPoD,OAAQ,OACR,YAAa,OACb,mBAAoB,OACpB,oBAAqB,SAGzB,CACE7I,SAAU,kBACVC,IAAK,CACH,eAAgB,MAChB,eAAgB,SAGpB,CACED,SAAU,YACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,SAGpB,CACED,SAAU,qBACVC,IAAK,CACH,mBAAoB,OACpB,eAAgB,OAChB,eAAgB,MAChB,sBAAuB,mBACvB,sBAAuB,SAG3B,CACED,SAAU,qBACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,MAChB,sBAAuB,mBACvB,sBAAuB,SAG3B,CACED,SAAU,mBACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,MAChB,sBAAuB,mBACvB,sBAAuB,SAG3B,CACED,SAAU,qBACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,MAChB,sBAAuB,mBACvB,sBAAuB,SAG3B,CACED,SAAU,2BACVC,IAAK,CACH,mBAAoB,OACpB,eAAgB,OAChB,eAAgB,MAChB,sBAAuB,UACvB,sBAAuB,UAG3B,CACED,SAAU,uBACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,MAChB,sBAAuB,eACvB,sBAAuB,UAG3B,CACED,SAAU,2BACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,MAChB,sBAAuB,eACvB,sBAAuB,SAG3B,CACED,SAAU,2BACVC,IAAK,CACH,mBAAoB,UACpB,eAAgB,UAChB,eAAgB,OAChB,sBAAuB,eACvB,sBAAuB,QACvByG,MAAO,cACP,YAAa,OACbnF,MAAO,UAGX,CACEvB,SAAU,eACVC,IAAK,CACH,cAAe,OACf,eAAgB,OAChB,iBAAkB,OAClB,gBAAiB,SAGrB,CACED,SAAU,2BACVC,IAAK,CACHwF,MAAO,MACP,qBAAsB,UACtB,aAAc,UACd,sBAAuB,oBACvB,sBAAuB,UAG3B,CACEzF,SAAS,mBACTC,IAAK,CACHwF,MAAO,MACP,aAAc,SACd,YAAa,kBACb,qBAAsB,UACtB,+BAAgC,CAAC,MAAO,OACxC,4BAA6B,CAAC,UAAW,aAG7C,CACEzF,SAAU,yBACVC,IAAK,CACHwF,MAAO,MACP,qBAAsB,UACtB,aAAc,UACd,sBAAuB,oBACvB,sBAAuB,OACvB,YAAa,kBACb,+BAAgC,CAAC,MAAO,OACxC,4BAA6B,CAAC,UAAW,aAG7C,CACEzF,SAAU,aACVE,MAAO,CACL,mBAAoB,UACpBuF,MAAO,MACPoD,OAAQ,MACRslC,MAAO,SACP,eAAgB,MAChB,eAAgB,UAGpB,CACEnuC,SAAU,aACVE,MAAO,CACL,eAAgB,IAChB,eAAgB,YAGpB,CACEF,SAAU,aACVE,MAAO,CACL,eAAgB,IAChB,eAAgB,YAGpB,CACEF,SAAU,8BACVE,MAAO,CACL,mBAAoB,UACpB,aAAc,UACd,qBAAsB,UACtB,qBAAsB,YAG1B,CACEF,SAAU,gBACVC,IAAK,CACH,qBAAsB,YAG1B,CACED,SAAS,yBACTC,IAAK,CACH,qBAAsB,IACtB,YAAa,QAGjB,CACED,SAAS,yBACTC,IAAK,CACH,qBAAsB,IACtB,YAAa,QAGlB,CACCD,SAAU,gBACVC,IAAK,CACJ,eAAgB,UAChB,eAAgB,S,8KCzWbmuC,I,4BAAgB,CACrB,CAAC,KAAQ,OAAQ,MAAS,OAAQ,QAAW,IAC7C,CAAC,KAAQ,OAAQ,MAAQ,iBAAmB,QAAU,4BACtD,CAAC,KAAQ,gBAAiB,MAAQ,4DAAkE,QAAU,IAC9G,CAAC,KAAQ,UAAW,MAAQ,UAAY,QAAU,4CAG7CC,GAAc,CACnB,CAAC,KAAQ,OAAQ,MAAS,UAAW,QAAU,uBAC/C,CAAC,KAAQ,QAAS,MAAS,WAAY,QAAU,yBAG5CC,GAAgB,CACrB,CAAC,KAAQ,cAAe,MAAQ,sDAAwD,QAAU,IAClG,CAAC,KAAQ,cAAe,MAAQ,sFAAwF,QAAU,KAqzCpHC,GAlzCI,SAACzrC,GACnB,IAAQM,EAAqLN,EAArLM,UAAWorC,EAA0K1rC,EAA1K0rC,WAA2BC,GAA+I3rC,EAA9J4rC,cAA8J5rC,EAA/I2rC,YAAYE,EAAmI7rC,EAAnI6rC,gCAAiCC,EAAkG9rC,EAAlG8rC,mBAAoBC,EAA8E/rC,EAA9E+rC,sBAAuBC,EAAuDhsC,EAAvDgsC,SAAUC,EAA6CjsC,EAA7CisC,YAAaC,EAAgClsC,EAAhCksC,aAAcC,EAAkBnsC,EAAlBmsC,cAE3K,EAA0C7qC,IAAMC,cAAsBJ,IAAb6qC,GAAuC,OAAbA,GAAyC,IAApBA,EAAS5jC,OAAe,GAAK4jC,GAAS,mBAAvII,EAAa,KAAEC,EAAgB,KAE/BhvC,EAAQgE,cACf,EAAoCC,IAAMC,UAAS,GAAM,mBAAlDqK,EAAU,KAAEC,EAAa,KAChC,EAAkCvK,IAAMC,SAAS,KAAI,mBAA9C+qC,EAAS,KAAEC,EAAY,KAC9B,EAAgCjrC,IAAMC,UAAS,GAAK,mBAA7CirC,EAAQ,KACf,GAD4B,KACMlrC,IAAMC,SAAS,iBAAe,mBAAzDkrC,EAAS,KAChB,GAD8B,KACgBnrC,IAAMC,UAAS,IAAM,mBAA3CmrC,GAAF,KAAoB,MAE1C,EAAgDprC,IAAMC,UAAU,GAAE,mBAAzCorC,GAAF,KAAqB,MAC5C,EAAsCrrC,IAAMC,UAAU,GAAE,mBAApCqrC,GAAF,KAAgB,MAElC,EAAoDtrC,IAAMC,SAAS,IAAG,mBACtE,GADyB,KAAuB,KACFD,IAAMC,SAAS,KAAG,oBAAxCsrC,IAAF,MAAoB,OAC1C,GAA8CvrC,IAAMC,SAAS,IAAG,qBAAxCurC,IAAF,MAAoB,OAC1C,GAAgCxrC,IAAMC,SAAS,MAAK,qBAA7CujC,GAAQ,MAAEC,GAAW,MAC5B,GAAkCzjC,IAAMC,SAAS,MAAK,qBAA/CwrC,GAAS,MAAEC,GAAY,MAC9B,GAAkC1rC,IAAMC,SAAS,MAAK,qBAA/C0rC,GAAS,MAAEC,GAAY,MAC9B,GAA0C5rC,IAAMC,SAAS,IAAG,qBAAtC4rC,IAAF,MAAkB,OACtC,GAAoD7rC,IAAMC,SAAS,IAAG,qBAA/D6rC,GAAkB,MAAEC,GAAqB,MAE/C,GAAwC9rC,mBAAS,MAAK,qBAA/C+rC,GAAY,MAAEC,GAAe,MACpC,GAAgDjsC,IAAMC,UAAS,GAAM,qBAA5CisC,IAAF,MAAqB,OAG7C,GAA8CjsC,mBAAS,CACtD,OAAS,EACT,OAHkB,KAIjB,qBAHKksC,GAAe,MAAEC,GAAkB,MAI1C,GAAkCnsC,oBAAS,GAAM,qBAA1CosC,GAAS,MAAEC,GAAY,MAExBC,GAAaC,QAAQhJ,IACrBiJ,GAAWD,QAAQf,IACnBiB,GAAaF,QAAQb,IAQZ9hC,cAGf1F,qBAAU,WACT,IAAIwoC,EAAe,GACfC,EAAe,GAEnB,QAAmB/sC,IAAfwqC,GAA2C,OAAfA,EAAhC,CAIA,IAAI,IAAIlD,EAAE,EAAGA,EAAIkD,EAAWvjC,OAAQqgC,IAAI,CACvCwF,EAAa1jC,KAAK,IAAIohC,EAAWlD,GAAGj+B,aAAaT,eACjDmkC,EAAa3jC,KAAK,IAAIohC,EAAWlD,GAAGj+B,aAAaT,eAEjD,IAAIokC,EAAc,GAKlB,IAAK,IAAItkC,IAJ4B,kBAA1B8hC,EAAWlD,GAAGl0B,UACxB45B,EAAcnkC,GAAe2hC,EAAWlD,GAAGl0B,QAAS,KAGrC45B,EAAa,CAC5B,IAAMC,EAAW,IAAIzC,EAAWlD,GAAGj+B,aAAaT,cAAcokC,EAAYtkC,GAAKW,aAC1EyjC,EAAa1kC,SAAS6kC,IAC1BH,EAAa1jC,KAAK6jC,EAEpB,CACD,CAEAf,GAAsBY,GACtBd,GAAiBe,EApBjB,CAqBD,GAAG,IAEH,IA6FMG,GAAc,SAACC,GACpB,QAAsBntC,IAAlBmtC,GAAiD,OAAlBA,EAClC,OAAOA,EAGR,IAAKA,EAAc/kC,SAAS,KAC3B,OAAO+kC,EAGR,IAAMC,EAAYD,EAAcjlC,MAAM,KAClCwf,EAAU,GAEd,IAAK,IAAIhf,KAAO0kC,EAAW,CAC1B,IAAIC,EAAUD,EAAU1kC,GACpB2kC,EAAQllC,WAAW,OACJklC,EAAQpmC,OAAO,EACjComC,EAAU,KAGX3lB,EAAQte,KAAKikC,EACd,CAIA,OAAO3lB,EAAQlf,KAAK,IAErB,EA6PO8kC,GAAkB,SAAChU,GACzB,QACYt5B,IAAXs5B,GACW,OAAXA,GACkB,IAAlBA,EAAOryB,OAHR,CAQA,IAAIsmC,EAAatC,EAAcnoB,OAAO0qB,SAAS,KAAOlU,EAAO,GAAGjwB,aAAe,IAAMiwB,EAAO,GAAGjwB,aAG/F,IAAK,IAAIX,KADT6kC,EAAaA,EAAW3kC,cAAc7G,WAAW,IAAK,KACtCu3B,EACJ,GAAP5wB,GAAgD,IAApC4wB,EAAO5wB,GAAKW,aAAapC,SAIzCsmC,GAAcjU,EAAO5wB,GAAKW,cAG3B6hC,EAAiBD,EAAcsC,GAC/BnB,GAAgB,KAdhB,CAeD,EAEMqB,GAAc,SAACp8B,QACPrR,IAATqR,QAAqCrR,IAAfqR,EAAKjM,OAAsC,OAAfiM,EAAKjM,QAItDiM,EAAKjM,MAAMgD,SAAS,OAAUiJ,EAAKjM,MAAMgD,SAAS,MAGtD8iC,EAAiBD,EAAc55B,EAAKjM,OAFpC8lC,EAAiBD,EAAc,MAAM55B,EAAKjM,MAAM,OAKjDw+B,GAAY,MACZiI,GAAa,MACbE,GAAa,MACd,EA+DA,OACC,eAACzzB,GAAA,EAAM,CACN,kBAAgB,uBAChBsQ,sBAAsB,EACtBD,qBAAqB,EAErBD,cAAc,EACdnQ,KAAMoyB,EACNnyB,QAAS,WACRjV,QAAQC,IAAI,kBAE4BxD,IAApC0qC,EACHA,EAAgC,CAACz2B,OAAQ,CAAC7O,MAAO,KAAMmlC,EAAYU,GAEnE1nC,QAAQC,IAAI,kEAGd,EACAoC,eAAgBA,EAChB6S,WAAY,CACXxc,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU3E,WAAW,OAAS,IAC9BhC,QAASgC,WAAW,sBAAwB,GAC5CjC,OAAQf,EAAME,QAAQU,cACtBkJ,OAAQ,QAER,UAED+kC,EACD,qBACA9uC,MAAO,CACNwH,QAAS,QACR,SAEF,qBAAKxH,MAAO,CAACwH,QAAS,QAAQ,SAC7B,cAACiV,GAAA,EAAW,CACXpd,GAAG,yBACHW,MAAO,CACNoF,OAAQ,OACR8T,cAAc,GACdvN,YAAa,IACZ,6BAOJ,qBACC3L,MAAO,CACNwH,QAAS,QACR,SAEF,sBAAKxH,MAAO,CAACwH,QAAS,QAAQ,UAC7B,cAACiV,GAAA,EAAW,CACXpd,GAAG,yBACHW,MAAO,CACNoF,OAAQ,OACR8T,cAAc,GACdvN,YAAa,IACZ,yBAIH,cAACgN,GAAA,EAAU,CACV3Y,MAAO,CACNuB,WAAY0B,WAAW,MAAQ,IAC/B0F,OAAQ,GACRpD,MAAO,IAERY,QAAS,WAET,EAAE,SAEF,cAACwP,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,gCACPoV,UAAU,MAAK,SAEf,mBACCd,KAAK,gDACLD,IAAI,aACIT,OAAO,SAAQ,SAEvB,cAACy5B,GAAA,EAAa,CAACzxC,MAAO,CAACqB,MAAO,iCAIjC,cAACsX,GAAA,EAAU,CACV3Y,MAAO,CACN2I,OAAQ,GACRpD,MAAO,IAERY,QAAS,YAxjBK,SAACyhB,GACnB,IAAmB,IAAfpZ,EAAJ,CAIA,IACCoZ,EAAQ3U,KAAKS,UAAUT,KAAKC,MAAM0U,GAAQ,KAAM,EAGjD,CAFE,MAAO3oB,GACRqI,QAAQC,IAAI,sCAAuCtI,EACpD,CAEI2oB,IAAUonB,GACbC,EAAiBrnB,EATlB,CAWD,CA2iBM8pB,CAAW1C,EACZ,EAAE,SAEF,cAACr5B,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,mBACPoV,UAAU,MAAK,SAEf,cAACqY,GAAA,EAAe,CAAC7xB,MAAO,CAACqB,MAAO,oCAOlCytC,EAAe,KACjB,sBAAK9uC,MAAO,CAACwH,QAAS,QAAQ,UAC7B,cAAC2O,EAAA,EAAM,CACN9W,GAAG,eACH,gBAAc,OACd,gBAAeoxC,GAAa,kBAAe1sC,EAC3C,gBAAe0sC,GAAa,YAAS1sC,EACrC+D,QAAQ,WACR9H,MAAO,CACL8hB,cAAe,OAChBvc,MAAO,KAERY,QAAS,SAACE,GACTshC,GAAYthC,EAAM6C,cACnB,EAAE,qBAIH,cAAC8+B,GAAA,EAAI,CACJ3oC,GAAG,aACHqoC,SAAUA,GACVprB,KAAMm0B,GACNl0B,QAAS,WACRorB,GAAY,KACb,EACAgK,cAAe,CACd,kBAAmB,gBAClB,SAEDzD,GAAczvC,KAAI,SAAC2W,EAAMpQ,GACzB,OACC,cAACuS,GAAA,EAAQ,CAAapR,QAAS,WAC9BqrC,GAAYp8B,EACb,EAAE,SAAEA,EAAK3P,MAFMT,EAIjB,MAED,cAACmR,EAAA,EAAM,CACN9W,GAAG,eACH,gBAAc,OACd,gBAAesxC,GAAW,kBAAe5sC,EACzC,gBAAe4sC,GAAW,YAAS5sC,EACnC+D,QAAQ,WACR9H,MAAO,CACL8hB,cAAe,OAChBvc,MAAO,KAERY,QAAS,SAACE,GACTupC,GAAavpC,EAAM6C,cACpB,EAAE,kBAIH,cAAC8+B,GAAA,EAAI,CACJ3oC,GAAG,aACHqoC,SAAUiI,GACVrzB,KAAMq0B,GACNp0B,QAAS,WACRqzB,GAAa,KACd,EACA+B,cAAe,CACd,kBAAmB,gBAClB,SAEDxD,GAAY1vC,KAAI,SAAC2W,EAAMpQ,GACvB,OACC,cAACuS,GAAA,EAAQ,CAAapR,QAAS,WAC9BqrC,GAAYp8B,EACb,EAAE,SAAEA,EAAK3P,MAFMT,EAIjB,MAED,cAACmR,EAAA,EAAM,CACN9W,GAAG,eACH,gBAAc,OACd,gBAAeuxC,GAAa,kBAAe7sC,EAC3C,gBAAe6sC,GAAa,YAAS7sC,EACrC+D,QAAQ,WACR9H,MAAO,CACL8hB,cAAe,OAChBvc,MAAO,KAERY,QAAS,SAACE,GACTypC,GAAazpC,EAAM6C,cACpB,EAAE,oBAIH,cAAC8+B,GAAA,EAAI,CACJ3oC,GAAG,aACHqoC,SAAUmI,GACVvzB,KAAMs0B,GACNr0B,QAAS,WACRuzB,GAAa,KACd,EACA6B,cAAe,CACd,kBAAmB,gBAClB,SAEDvD,GAAc3vC,KAAI,SAAC2W,EAAMpQ,GACzB,OACC,cAACuS,GAAA,EAAQ,CAAapR,QAAS,WAC9BqrC,GAAYp8B,EACb,EAAE,SAAEA,EAAK3P,MAFMT,EAIjB,MAED,eAACmR,EAAA,EAAM,CACN9W,GAAG,eACH,gBAAc,OACd,gBAAiB6wC,GAAe,kBAAensC,EAC/C,gBAAiBmsC,GAAe,YAASnsC,EACzC+D,QAAQ,WACR9H,MAAO,CACL8hB,cAAe,OAChBvc,MAAO,IACPhE,WAAY,KAEb4E,QAAS,SAACE,GACT8pC,GAAgB,CACf73B,IAAKjS,EAAMurC,MACXzoB,KAAM9iB,EAAMwrC,OAEd,EAAE,UAEF,cAAC,KAAO,IAAG,mBAEZ,cAAC7J,GAAA,EAAI,CACJ8J,gBAAgB,iBAChBC,eAAgB7B,GAChB3zB,QAAS,WA/uBZ6zB,IAAoB,GAEpBD,GAAgB,KA+uBb,EACA7zB,OAAQ4zB,GACRlwC,MAAO,CACNqB,MAAO,QACP0G,UAAW,EACXlD,UAAW,KACV,SAED0pC,EAAW9vC,KAAI,SAAC2xB,GAChB,IAAMwN,EACc,WAAnBxN,EAAU5vB,KACT,cAAC,KAAQ,CAACR,MAAO,CAAE0L,YAAa,MACV,sBAAnB0kB,EAAU5vB,MACM,uBAAnB4vB,EAAU5vB,KACV,cAACmhB,GAAA,EAAkB,CAAC3hB,MAAO,CAAE0L,YAAa,MAE1C,cAAC,KAAY,CAAC1L,MAAO,CAAE0L,YAAa,MAGhCsmC,EAA0B,SAACC,GAChC,IAAIC,EAAkB9gC,SAASsE,eAC9B,kCAEuB,OAApBw8B,IAEFA,EAAgBlyC,MAAMgB,OADnBixC,EAC4B,oBAEA,GAGlC,EAqBIlB,EAAc,GACe,kBAAtB3gB,EAAUjZ,UACpB45B,EAAcnkC,GAAewjB,EAAUjZ,QAAS,KAGjD,IAAMg7B,EAAa,UAIfC,EAAgBlC,GAcpB,OAbsB,OAAlBkC,EACHA,EAAgB,CACf,KAAQ,EACR,IAAO,GAEwB,OAAtBA,EAAc95B,UAAsCvU,IAAtBquC,EAAc95B,IACtD85B,EAAc95B,IAAM,EACa,OAAvB85B,EAAcjpB,WAAwCplB,IAAvBquC,EAAcjpB,OACvDipB,EAAcjpB,KAAO,GAKf4nB,EAAY/lC,OAAS,EAC3B,cAAC,KAAc,CAEdxE,MACC,sBAAKxG,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,GAAK,UAC9Cq8B,EAAI,IAAGxN,EAAU3qB,QAGpB4sC,iBAAkBnC,GAClBlwC,MAAO,CACNqB,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVqD,UAAW,GACXS,SAAU,UAEXa,QAAS,WACRmB,QAAQC,IAAI,YAAa6oB,GACzB9oB,QAAQC,IAAI6oB,EAAUjZ,SACtBk6B,GAAgB,CAACjhB,GAClB,EAAE,SAEF,eAACrqB,EAAA,EAAK,CAAC/F,MAAO,CAACsB,UAAW,IAAKuD,UAAW,IAAK+C,SAAU,IAAKpG,SAAU,IAAK6D,SAAU,QAASiT,IAAK85B,EAAc95B,IAAI,IAAK6Q,KAAMipB,EAAcjpB,KAAK,IAAKloB,QAAS,qBAAsBE,gBAAiBlB,EAAME,QAAQO,WAAY4E,SAAU,SAAUR,UAAW,OAAQ9D,OAAQ,mCAAoC,UACtT,cAACuW,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/Ba,WAAY,GACZF,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVP,QAAS,EACToE,SAAU,YAEX8D,MAAOinB,EACPnqB,YAAa,WACZ,EAEDE,QAAS,WACRkrC,GAAgB,CAACjhB,GAClB,EAAE,SAEF,cAACvoB,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACkZ,cAAe,GAAG,SACjDkX,EAAU3qB,QAnBP2qB,EAAU3qB,MAsBfsrC,EAAYtyC,KAAI,SAAC6zC,EAAUttC,GAG3B,IAAM44B,EACa,UAAlB0U,EAAS9xC,KACR,sBAAMR,MAAO,CAACuB,WAAY,KACL,SAAlB+wC,EAAS9xC,KACZ,cAAC,KAAsB,CAACR,MAAO,CAACuB,WAAY,EAAGmK,YAAa,MAE5D,cAAC6mC,GAAA,EAAU,CAACvyC,MAAO,CAACuB,WAAY,EAAGmK,YAAa,GAAIrK,MAAO8wC,KAIvDK,GAAqBF,EAAS7sC,KAAKgtC,MAAM,QAAU,IAAIznC,OAAO,EAG9D0nC,EAAYJ,EAAS7sC,KAAKwG,MAAM,KAChC0mC,EAAUD,EAAUA,EAAU1nC,OAAO,GAC3C,OACC,cAACuM,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVP,QAXgB,GAajBkI,MAAOmpC,EACPrsC,YAAa,WACZ,EAEDE,QAAS,WACRkrC,GAAgB,CAACjhB,EAAWkiB,GAC7B,EAAE,SAEF,cAAC38B,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAK,qBAAgBkuC,EAASnpC,OAC9BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,IAAM,UAC3C4E,MAAMilC,GAAmB/S,OAAOhhC,KAAI,SAACyxB,EAASf,GAC9C,OACC,qBAAoBnvB,MAAO,CAACuB,WAAY,GAAIoH,OAAQ,GAAIpD,MAAO,EAAGpE,gBAAiBgxC,IAAzEhjB,EAEZ,IACCyO,EAAI,IAAG+U,EACW,SAAlBL,EAAS9xC,KAAkB,cAACoyC,GAAA,EAAc,CAAC5yC,MAAO,CAAC6yC,WAAY,IAAO1sC,QAAS,SAAClH,GAChFA,EAAE0L,iBACF1L,EAAE2L,kBAEFtD,QAAQC,IAAI,UAAW6oB,EAAWkiB,GAGlC,IAAIK,EAAUL,EAAS7sC,KACnBktC,EAAQ3nC,OAAS,IACpB2nC,EAAUA,EAAQpzC,MAAM,EAAGozC,EAAQ3nC,OAAO,IAO3CmlC,GAAgB,KAMjB,IAAQ,WAlDLmC,EAAS7sC,KAuDjB,QAvHI2qB,EAAU3qB,MA2HhB,cAAC8R,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVkK,YAAa,GAEdvC,MAAOinB,EACPnqB,YAAa,WA7KS,uBAAnBmqB,EAAU5vB,KACbwxC,GAAwB,GACK,WAAnB5hB,EAAU5vB,MACI4vB,EAAU/wB,EA0KE,EACpC6G,WAAY,WAtKU,uBAAnBkqB,EAAU5vB,KACbwxC,GAAwB,GACK,WAAnB5hB,EAAU5vB,MACK4vB,EAAU/wB,EAqKnC,EACA8G,QAAS,WACRkrC,GAAgB,CAACjhB,GAClB,EAAE,SAEF,cAACza,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAK,iBAAYgsB,EAAUjnB,OAC3BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC9Bo2B,EAAI,IAAGxN,EAAU3qB,WAvBf2qB,EAAU3qB,KA4BlB,SAIF,sBAAMzF,MAAO,CACZgB,OAAO,aAAD,OAAef,EAAME,QAAQO,YACnCE,aAAcX,EAAME,QAAQS,aAC5ByE,SAAU,YACT,SACD,cAAC,KAAU,CACV8D,MAAS6lC,EACTrmC,OAASmmC,EAAe,QAAU,QAClC9uC,MAAO,CACP,EACA8yC,iBAAoB,SAAC3pC,GAEpBomC,EAAoBpmC,EAAM4pC,YAAYC,IACtCxD,EAAermC,EAAM4pC,YAAYE,MAj7BpB,SAACA,EAAMC,GAgBxB,IANA,IAAIC,EAAYnE,EAAc/iC,MAAM,MAAMgnC,GACtCG,EAAoB,GACpBC,EAAwB,GACxBC,EAAkB,GAClBC,GAAQ,EAEJP,EAAG,EAAGA,EAAGG,EAAUnoC,OAAQgoC,IACb,MAAlBG,EAAUH,IACZI,EAAkBjmC,KAAK6lC,GAIzB,IAAIQ,EAAsBL,EAAUV,MAAM,yDAE1C,IACC,IAAI,IAAIgB,EAAM,EAAGA,EAAMD,EAAoBxoC,OAAQyoC,IAClDJ,EAAsBlmC,KAAKqmC,EAAoBC,GAAKzoC,OAEzC,CAAX,MAAO/L,GAAI,CAEb,IAAQw0C,EAAM,EAAGA,EAAML,EAAkBpoC,OAAQyoC,IAAM,CAStD,IADA,IAAIC,EAAW,CAACN,EAAkBK,IAC1BE,EAAU,EAAGA,EAAUN,EAAsBI,GAAME,IAC1DD,EAASvmC,KAAKimC,EAAkBK,GAAKE,EAAQ,GAG1B,GAAjBD,EAAS1oC,QACX0oC,EAASvmC,KAAKumC,EAASA,EAAS1oC,OAAO,GAAG,GAE3CsoC,EAAgBnmC,KAAKumC,EACtB,CAEA,IAAQD,EAAM,EAAGA,EAAIH,EAAgBtoC,OAAQyoC,IAC5C,IAAI,IAAIG,EAAO,EAAGA,EAAKN,EAAgBG,GAAKzoC,OAAQ4oC,IAEnD,GAAGV,IAAQI,EAAgBG,GAAKG,GAAM,CACrCL,GAAQ,EACR9D,GAAmB,CAACwD,EAAMG,EAAkBK,KAE5C,IACC/D,GAAmB8D,EAAoBC,GAIvC,CAFC,MAAOx0C,GAER,CAGDw0C,EAAMI,IACN,KACD,CAGFvE,EAAmBiE,EAMpB,CAw2BKryB,CAAU/X,EAAM4pC,YAAYE,KAAM9pC,EAAM4pC,YAAYC,IA10B7B,SAAC7pC,GAoB5B,IADA,IAAI2qC,EAAa9E,EAAc/iC,MAAM,MAC5Bo/B,EAAI,EAAGA,EAAIyI,EAAW9oC,OAAQqgC,IAAI,CAC1C,IAAI0I,EAAoBD,EAAWzI,GAG/B2I,EAAqBD,EAAkBtB,MAAM,kEAEjD,GAA2B,OAAvBuB,QAAsDjwC,IAAvBiwC,EAAnC,CAKA,IAAIC,EAAiB,GACrB,IAAK,IAAIxnC,KAAOunC,EACoB,OAA/BA,EAAmBvnC,GAAK,IAC3BwnC,EAAe9mC,KAAK6mC,EAAmBvnC,IAIzCunC,EAAqBC,EAAevuC,UACpC4B,QAAQC,IAAI,WAAYysC,GAexB,IADA,IAAIE,EAAmB,GACflB,EAAK,EAAGA,EAAKe,EAAkB/oC,OAAQgoC,IAChB,MAA1Be,EAAkBf,IAAuB,IAAPA,GAAwC,OAA5Be,EAAkBf,EAAG,IACtEkB,EAAiB/mC,KAAK6lC,GAKxB,IAAImB,EAAuB,GAC3B,IACC,IAAI,IAAIV,EAAM,EAAGA,EAAMO,EAAmBhpC,OAAQyoC,IACjDU,EAAqBhnC,KAAK6mC,EAAmBP,GAAKzoC,OAEvC,CAAX,MAAO/L,GAAI,CAKb,IAOC,IANI+0C,EAAmBhpC,OAMdyoC,EAAM,EAAGA,EAAMO,EAAmBhpC,OAAQyoC,IAAM,CAGxD,IAAMW,EAAgBnD,GAAY+C,EAAmBP,IAC/BzD,GAAmB7jC,SAASioC,GAKjDjrC,EAAMkrC,SAAS,CAACpB,KAAK5H,EAAG2H,GAAGkB,EAAiBT,IAAO,CAACR,KAAK5H,EAAG2H,GAAGmB,EAAqBV,GAAKS,EAAiBT,IAAO,CAAC,IAAO,mFAHzHtqC,EAAMkrC,SAAS,CAACpB,KAAK5H,EAAG2H,GAAGkB,EAAiBT,IAAO,CAACR,KAAK5H,EAAG2H,GAAGmB,EAAqBV,GAAKS,EAAiBT,IAAO,CAAC,IAAO,iGAM3H,CAGD,CAFE,MAAOx0C,GACRqI,QAAQC,IAAI,gCAAiCtI,EAC9C,CAhEA,MAFCqI,QAAQC,IAAI,gCAmEd,CACD,CA4uBK+sC,CAAoBnrC,EACrB,EACAF,SAAU,SAACE,GACV8lC,EAAiB9lC,EAAMorC,YAvsBL,SAAC3sB,GAGvB,IAAM4V,EAAQ5V,EAAM6qB,MAAM,yDAM1BnrC,QAAQC,IAAI,UAAWi2B,GAIvB,IACC,IAAK,IAAI6N,EAAI,EAAGA,EAAI7N,EAAMxyB,OAAQqgC,IACjC,IAOC,IALA,IAAM+I,EAAgBnD,GAAYzT,EAAM6N,IAIpCmJ,GAAa,EACRC,EAAI,EAAGA,EAAIlG,EAAWvjC,OAAQypC,IACtC,GAAGL,EAAc70C,MAAM,GAAIoN,gBAAkB4hC,EAAWkG,GAAGrnC,aAAaT,cAAc,CACrF6nC,GAAa,EAEbltC,QAAQC,IAAI,eAAgB6sC,EAAe7F,EAAWkG,GAAGt9B,SAEzD,IAEEyQ,EADG2mB,EAAWkG,GAAGt9B,QAAQ0P,OAAO3a,WAAW,MAAQqiC,EAAWkG,GAAGt9B,QAAQ0P,OAAO3a,WAAW,KACnF0b,EAAMrU,QAAQ6gC,EAAenhC,KAAKS,UAAU66B,EAAWkG,GAAGt9B,UAE1DyQ,EAAMrU,QAAQ6gC,EAAe7F,EAAWkG,GAAGt9B,QAIrD,CAFE,MAAOlY,GACR2oB,EAAQA,EAAMrU,QAAQ6gC,EAAe7F,EAAWkG,GAAGt9B,QACpD,CACD,CAID,IAAKq9B,GAAcxE,GAAmB7jC,SAASioC,GAE9C,IADA,IAAIM,GAAc,EACTC,EAAE,EAAGA,EAAIpG,EAAWvjC,OAAQ2pC,IAAI,CACxC,IAAI5D,EAAc,GAKlB,IAAK,IAAItkC,IAJ4B,kBAA1B8hC,EAAWoG,GAAGx9B,UACxB45B,EAAcnkC,GAAe2hC,EAAWoG,GAAGx9B,QAAS,KAGrC45B,EAAa,CAC5B,IAAMC,EAAW,IAAIzC,EAAWoG,GAAGvnC,aAAaT,cAAcokC,EAAYtkC,GAAKW,aAC/E,GAAI4jC,IAAaoD,EAAe,CAK/B,IAAIQ,EAAY,GAChB,IACCA,EAAY/oC,GAAamlC,EAAUzC,EAAWoG,GAAGx9B,QAGlD,CAFE,MAAOlY,GACRqI,QAAQC,IAAI,iBAAkBtI,EAC/B,CAIA,GAAyB,kBAAd21C,EACVA,EAAY3hC,KAAKS,UAAUkhC,QAE3B,GAAyB,kBAAdA,OAEJ,CACNttC,QAAQC,IAAI,mBAAoBqtC,GAChC,IACCA,EAAYA,EAAUvoC,UAGvB,CAFE,MAAOpN,GACR21C,EAAY,EACb,CACD,CAIDhtB,EAAQA,EAAMrU,QAAQ6gC,EAAeQ,GAMrCF,GAAc,EACd,KACD,CACD,CAEA,GAAIA,EACH,KAEF,CAIF,CAFE,MAAOz1C,GACRqI,QAAQC,IAAI,kBAAmBtI,EAChC,CAIF,CAFE,MAAOA,GACRqI,QAAQC,IAAI,wBAAyBtI,EACtC,CAEA,IAAM41C,EAAgBnV,GAAa9X,EAAMliB,YAEb,IAAxBmvC,EAAc7iC,OACjBvD,GAAc,GACd0gC,EAAa0F,EAAc16B,UAE3Bg1B,EAAavnB,EAAMliB,WACnB+I,GAAc,GAEhB,CAslBKqmC,CAAe3rC,EAAMorC,aAElBprC,EAAM3B,QAAQogB,MAAMmtB,UAAU7oC,WAAW,MAAQ/C,EAAM3B,QAAQogB,MAAMmtB,UAAUxD,SAAS,OAC1FjC,GAAmB,EAKrB,EACA0F,QAAS,CACRC,mBAAmB,EACnBh1C,MAAOovC,EACP6F,OAAQ,UACR/5B,KAAM,SACNg6B,aAAc/F,OA+CjB,qBACCpvC,MAAO,CACP,IAmEC8uC,EAAe,KACf,gCACE7rC,WAAW,KACX,eAACwZ,GAAA,EAAW,CACXzc,MAAO,CACN+H,UAAW,GACX4D,YAAa,IACZ,UAEF,sBACC3L,MAAO,CACNqB,MAAO,SACN,6BAIH,cAACsX,GAAA,EAAU,CAACgC,SAAU41B,GAAWlvC,MAAM,UAAUrB,MAAO,CAACgB,OAAO,aAAD,OAAef,EAAME,QAAQC,QAAQC,MAAQkB,WAAY,IAAKN,QAAS,GAAI6G,QAAQ,YAAY3B,QAAS,YA9rBlJ,SAAC4F,IAKT,IAAfyC,IACHzC,EAAYkH,KAAKS,UAAU3H,IAG5B,IACMqpC,EAAa,CAAC,YAAc,6BAA6B,GAAK,GAAG,KAAO,oBAAoB,MAAQ,GAAG,UAAY,GAAG,YAAc,GAAG,SAAU,EAAM,WAAa,GAAG,UAAY,GAAG,OAAS,mCAAmC,KAAO,KAAK,eAAiB,GAAG,QAAS,EAAM,WAAa,CAAC,CAAC,YAAc,wBAAwB,GAAK,GAAG,KAAO,OAAO,QAAU,yBAAyB,MAAQrpC,EAAU,WAAY,EAAK,QAAU,KAAK,aAAe,GAAG,QAAU,eAAe,UAAW,EAAK,eAAgB,EAAM,KAAO,KAAK,OAAS,CAAC,KAAO,UAAU,iBAAkB,EAAM,cAAgB,KAAK,gBAAiB,EAAM,eAAgB,IAAQ,mBAAqB,CAAC,YAAc,GAAG,GAAK,GAAG,KAAO,GAAG,MAAQ,IAAI,QAAU,CAAC,YAAc,GAAG,QAAU,GAAG,GAAK,GAAG,OAAS,CAAC,KAAO,WAAW,kBAAoB,GAAG,QAAU,GAAG,mBAAoB,EAAM,gBAAkB,GAAG,kBAAmB,EAAM,iBAAkB,EAAM,gBAAkB,EAAE,SAAW,gBAAgB,YAAc,QAAQ,uBAAyB,CAAC,GAEhgCukC,GAAmB,CAClB,OAAS,EACT,OA3diB,KA8dlBE,IAAa,GAEbj/B,MAAMrO,0DAA4C,CACjDsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,mBAChB,OAAU,oBAEXsM,KAAMF,KAAKS,UAAU0hC,GACrB1jC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,yCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GAEN,IAA6B,IAAzBA,EAAae,SAA4C,OAAxBf,EAAaqI,aAA2CpW,IAAxB+N,EAAaqI,QAAwBrI,EAAaqI,OAAOnP,OAAS,EAAG,CAC1H8G,EAAaqI,OAAO5a,MAAM,EAAG,IAA5C,IAGM81C,EAAW3V,GAAa5tB,EAAaqI,QAC3Cm2B,GAAmB+E,EACpB,MAAoC,IAAzBvjC,EAAae,cAA6C9O,IAAxB+N,EAAasJ,QAAgD,OAAxBtJ,EAAasJ,QAC9FxN,MAAM6E,MAAMX,EAAasJ,QACzBk1B,GAAmB,CAAC,OAAS,EAAO,OAAUx+B,EAAasJ,WACxB,IAAzBtJ,EAAae,QACvBy9B,GAAmB,CAAC,OAAS,EAAO,OAAU,6FAE9CA,GAAmB,CAAC,OAAS,EAAO,OAAU,oGAG/CE,IAAa,EACd,IACCh+B,OAAM,SAAAC,GAENnL,QAAQC,IAAI,UAAWkL,GACvB+9B,IAAa,EACd,GACD,CAooBQ8E,CAAoBpG,EACrB,EAAE,SACD,cAACv5B,GAAA,EAAO,CAACvR,MAAM,kHAAkHoV,UAAU,MAAK,SAC9I+2B,GAAY,cAAC11B,EAAA,EAAgB,CAAC7a,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,MAAY,cAAC,KAAa,CAACvF,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,aAMnHtC,WAAW,MACI,IAAfuL,EACC,cAAC,KAAS,CACT9G,IAAKwnC,EACLjvC,MAAOA,EAAME,QAAQW,UACrBd,MAAO,CACNY,aAAc,EACdI,OAAO,aAAD,OAAef,EAAME,QAAQO,YACnCO,QAAS,GACT4D,UAAW,IACX0wC,UAAW,IACXjwC,SAAU,QAEXkwC,WAAW,EACXC,gBAAiB,SAACC,GACjB,EAEDC,kBAAkB,EAClBC,SAAU,SAACvyB,GACV,EAED5d,KAAM,wBAGP,mBACCpG,GAAG,YACHW,MAAO,CACN61C,WAAY,WACZx0C,MAAO,UACPS,WAAY,YACZX,gBAAiB,UACjBF,QAAS,GACT8G,WAAY,EACZ/G,OAAO,aAAD,OAAef,EAAME,QAAQO,YACnCE,aAAcX,EAAME,QAAQS,aAC5BiE,UAAW,IACXS,SAAU,QACT,SAED4pC,KAGuB,IAA1BmB,GAAgBr+B,MAChB,cAAC,KAAS,CACTtK,IAAK2oC,GAAgBl2B,OACrBla,MAAOA,EAAME,QAAQW,UACrBd,MAAO,CACNY,aAAc,EACdI,OAAO,aAAD,OAAef,EAAME,QAAQO,YACnCO,QAAS,GACT4D,UAAW,IACX0wC,UAAW,IACXjwC,SAAU,QAEXkwC,WAAW,EACXC,gBAAiB,SAACC,GACjB,EAEDC,kBAAkB,EAClBC,SAAU,SAACvyB,GACV,EAED5d,KAAM,gBAGR,+BACE4qC,GAAgBl2B,OAAOnP,OAAS,EAChC,eAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC6E,UAAW,IAAKS,SAAU,QAAS,0BACxD+qC,GAAgBl2B,UAE9B,UAML,sBAAKna,MAAO,CACVwH,QAAS,OACTyR,WAAa,IACZ,UAEF,wBACCjZ,MAAO,CACNqB,MAAO,QACP8iB,WAAY,UACZnjB,OAAQ,OACR2H,OAAQ,GACRsM,KAAM,EACN1T,WAAY,EACZwG,UAAW,GACX3C,OAAQ,WAETe,QAAS,WACRwoC,GAAsB,EACvB,EAAE,oBAIH,wBACC3uC,MAAO,CACNqB,MAAO,QACP8iB,WAAY,UACZnjB,OAAQ,OAER2H,OAAQ,GACRsM,KAAM,EACN1T,WAAY,GACZwG,UAAW,GACX3C,OAAQ,WAETe,QAAS,SAACE,IAGY,IAAjByoC,GACHC,EAAcC,GACdH,EAAYG,GACZL,GAAsB,KAGvBF,EAAgCpoC,EAAOioC,EAAYU,GACnDL,GAAsB,GACtBE,EAAYG,GACb,EAAE,uBAMR,ECvxCMlS,GAAYC,YAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,sBAEfkmB,KAAM,CACJ,6BAA8B,CAC5B/0C,OAAQ,iBACRK,MAAO,QACPI,SAAU,GACV,uBAAwB,CACtBN,gBAAiB,QAEnB,sBAAuB,CACrBA,gBAAiB,UAIvB60C,UAAW,CACT30C,MAAO,QAEP,2CAA4C,CAC1CwuB,YAAa,cAKbomB,GAAmB,oCA0gHVC,GAzgHM,SAACtzC,GAAW,IAAD,EAE5B6a,EA2CE7a,EA3CF6a,SACFtS,EA0CIvI,EA1CJuI,MACE6f,EAyCEpoB,EAzCFooB,YAEAlc,GAuCElM,EAxCFuzC,UAwCEvzC,EAvCFkM,mBACA6b,EAsCE/nB,EAtCF+nB,UAEA3c,GAoCEpL,EArCFwzC,mBAqCExzC,EApCFoL,aACAmQ,EAmCEvb,EAnCFub,mBACAk4B,EAkCEzzC,EAlCFyzC,kBACAxnC,EAiCEjM,EAjCFiM,eACAZ,EAgCErL,EAhCFqL,eAIAvK,GA4BEd,EA/BF0zC,mBA+BE1zC,EA9BF2zC,gBA8BE3zC,EA7BF4zC,eA6BE5zC,EA5BFc,IACAia,EA2BE/a,EA3BF+a,2BAEA84B,GAyBE7zC,EA1BF8zC,sBA0BE9zC,EAzBF6zC,kBACAE,EAwBE/zC,EAxBF+zC,mBACAC,EAuBEh0C,EAvBFg0C,kBACAC,EAsBEj0C,EAtBFi0C,gBACAC,EAqBEl0C,EArBFk0C,0BACAC,EAoBEn0C,EApBFm0C,aACAC,EAmBEp0C,EAnBFo0C,qBACAC,EAkBEr0C,EAlBFq0C,gBACA/zC,EAiBEN,EAjBFM,UACAg0C,EAgBEt0C,EAhBFs0C,6BACAC,EAeEv0C,EAfFu0C,uBACAC,EAcEx0C,EAdFw0C,eACAC,EAaEz0C,EAbFy0C,aACAC,EAYE10C,EAZF00C,gBACAzyB,EAWEjiB,EAXFiiB,mBAGF0yB,GAQI30C,EAVF8a,kBAUE9a,EATFkiB,qBASEliB,EARJ20C,mBACAC,EAOI50C,EAPJ40C,WACA/zC,EAMIb,EANJa,QAEAg0C,GAII70C,EALJ80C,UAKI90C,EAJJ60C,cACAE,EAGI/0C,EAHJ+0C,aAMM5X,EAAUjD,KACVlvB,EAAQC,cAEd,EAAoD3J,IAAMC,UAAS,GAAM,mBAAlEuqC,EAAkB,KAAEC,EAAqB,KAChD,GAAgCzqC,IAAMC,UAAS,GAAK,qBAA7CyzC,GAAQ,MAAEC,GAAW,MAC5B,GAAgE3zC,IAAMC,UAAS,GAAM,qBAA9E2zC,GAAwB,MAAEC,GAA2B,MAE7D,GAAgC7zC,IAAMC,SAAS,IAAG,qBAA3CyqC,GAAQ,MAAEC,GAAW,MAC5B,GAAoC3qC,IAAMC,SAAS,GAAE,qBAA9CmqC,GAAU,MAAEE,GAAa,MAChC,GAAkDtqC,IAAMC,UAAS,GAAK,qBAA/D6zC,GAAiB,MAAEC,GAAoB,MAG7C5vC,qBAAU,gBACWtE,IAAjB0zC,GACHA,GAAa,EAEf,GAAG,CAAC/I,IAEHrmC,qBAAU,WACV,GAAkC,OAA9BwG,EAAeuK,iBAAqDrV,IAA9B8K,EAAeuK,WAA0B,CAClF,IAAM8+B,EAAarpC,EAAeuK,WAAWlB,MAAK,SAAA4K,GAAK,MAAmB,SAAfA,EAAMrd,IAAe,SAE7D1B,IAAfm0C,GAA2C,OAAfA,IACT,YAAlBA,EAAW74C,IACbw4C,IAAY,GACZE,IAA4B,GAC7BzwC,QAAQC,IAAI,mBAEXswC,IAAY,GAES,cAAlBK,EAAW74C,KACb04C,IAA4B,GAC7BzwC,QAAQC,IAAI,gBAIhB,CACD,GAAG,IAEF,IA8JM4wC,GAAqB,SAACv1C,GAC1B,MAAgEsB,IAAMC,SAAS,IAAG,mBAA3Ei0C,EAAwB,KAAEC,EAA2B,KAC5D,EAAkEn0C,IAAMC,SAAS,IAAG,mBAA7Em0C,EAAyB,KAAEC,EAA4B,KAC9D,EAAoCr0C,IAAMC,SAAS,IAAG,mBAA/CoqC,EAAU,KAAEiK,EAAa,KAChC,EAAgCt0C,IAAMC,SAAS,IAAG,mBAA3Cs0C,EAAQ,KAAEC,EAAW,KAC5B,EAAwCx0C,IAAMC,UAAS,GAAM,mBAAtDw0C,EAAY,KAAEC,GAAe,KACpC,GAAoD10C,IAAMC,SAAS,GAAE,qBAA9D00C,GAAkB,MAAEC,GAAqB,MAChD,GAAgD50C,IAAMC,UAAS,GAAM,qBAA9D40C,GAAgB,MAAE3I,GAAmB,MAC5C,GAAwCjsC,mBAAS,MAAK,qBAA/C+rC,GAAY,MAAEC,GAAe,MAEpC9nC,qBAAU,WAuBR,GArB+B,OAA7B+vC,GACoC,IAApCA,EAAyBptC,QAGO,OAA9B6D,EAAeuK,YACfvK,EAAeuK,WAAWpO,OAAS,GAEnCqtC,EAA4BxpC,EAAeuK,aAKd,OAA9Bk/B,QAC+Bv0C,IAA9Bu0C,IAC8B,OAAhC76B,EAASiD,oBACTjD,EAASiD,mBAAmB1V,OAAS,GAGrCutC,EAA6B96B,EAASiD,mBAAmB,GAAGjb,MAGpC,IAAtB8oC,EAAWvjC,OAAc,CAE/B,GAAImT,EAAmBnT,OAAS,EAC/B,IAAK,IAAIyB,KAAO0R,EACf,QACgDpa,IAA/Coa,EAAmB1R,GAAKwX,oBACuB,OAA/C9F,EAAmB1R,GAAKwX,oBAC8B,IAAtD9F,EAAmB1R,GAAKwX,mBAAmBjZ,OAH5C,CAQA,IAAMgH,EAAQ0tB,GAAavhB,EAAmB1R,GAAKwX,oBACnD,GAAIjS,EAAMA,MAAO,CAChBu8B,EAAWphC,KAAK,CACf3M,KAAM,qBACNiF,KAAM,qBACN0D,MAAO,QACP6vC,UAAW,OACX5rC,aAAc,OACd+J,QAASnF,EAAMmI,SAEhB,KACD,CAbA,CAsCE,GApBsB,IAAtBo0B,EAAWvjC,QACdujC,EAAWphC,KAAK,CACf3M,KAAM,qBACNiF,KAAM,qBACN0D,MAAO,QACP6vC,UAAW,OACX5rC,aAAc,OACd+J,QAAS,KAIPo3B,EAAWphC,KAAK,CACd3M,KAAM,aACNiF,KAAM,aACN0D,MAAO,iBACP6vC,UAAW,gBACX5rC,aAAc,gBACd+J,QAAS,KAIuB,OAAhCsG,EAASiD,yBACuB3c,IAAhC0Z,EAASiD,oBACTjD,EAASiD,mBAAmB1V,OAAS,EAErC,IAAK,IAAIyB,KAAOgR,EAASiD,mBAAoB,CAC3C,IAAMtL,EAAOqI,EAASiD,mBAAmBjU,GACzC8hC,EAAWphC,KAAK,CACd3M,KAAM,oBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS/B,EAAKjM,OAElB,CAIF,GACmC,OAAjCsU,EAAS8d,0BACwBx3B,IAAjC0Z,EAAS8d,qBACT9d,EAAS8d,oBAAoBvwB,OAAS,EAEtC,IAAK,IAAIyB,KAAOgR,EAAS8d,oBAAqB,CAC5C,IAAMnmB,EAAOqI,EAAS8d,oBAAoB9uB,GAC1C8hC,EAAWphC,KAAK,CACd3M,KAAM,qBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS,IAEb,CAIN,QAAmBpT,IAAfyzC,EAA0B,CACzB,IAAIyB,EAAUzB,EAAW3oC,GAEzB,GAAIoqC,EAAQjuC,OAAS,EAAG,CAAC,IAAD,aAEpB,IAAMoK,EAAO6jC,EAAQxsC,GACrB,GAAmB,uBAAf2I,EAAK5O,MACP,iBAMF,GAHI0yC,OAA+Bn1C,IAAjBqR,EAAK+B,SAA0C,OAAjB/B,EAAK+B,QAAmB,GAAK/B,EAAK+B,QAG9EgH,EAAmBnT,OAAS,EAAG,CAGjC,IAASyB,KAAO0R,EACd,QACsCpa,IAApCoa,EAAmB1R,GAAK0sC,SACY,OAApCh7B,EAAmB1R,GAAK0sC,cAQNp1C,KAHhBq1C,EAAcj7B,EAAmB1R,GAAK0sC,QAAQjhC,MAChD,SAACiC,GAAM,OAAKA,EAAO5T,OAAOlH,KAAO+V,EAAK/V,EAAE,MAEO,OAAhB+5C,EAAjC,MAImBr1C,IAAvBq1C,EAAYj/B,QAA+C,OAAvBi/B,EAAYj/B,SACnDi/B,EAAcA,EAAYj/B,QAG3B,IAAMnI,EAAQ0tB,GAAa0Z,GAC3B,GAAIpnC,EAAMA,OACT,IAA6B,IAAzBA,EAAMmI,OAAOtH,QAEV,CACGqmC,EAAclnC,EAAMmI,OACpB,KACV,OAES++B,EAAcE,CAfhB,CAkBJ,CAGA,IAAMC,EACW,OAAfjkC,EAAK5O,YAAiCzC,IAAfqR,EAAK5O,MACxB,GACA4O,EAAK5O,MAAMyF,MAAM,KAAKM,KAAK,KAE3B+sC,EAAc,CAClB94C,KAAM,SACNnB,GAAI+V,EAAK/V,GACToG,KAAM2P,EAAK5O,MACX4G,aAAcisC,EACdliC,QAAS+hC,GAGX3K,EAAWphC,KAAKmsC,EAAa,EA3D/B,IAAK,IAAI7sC,KAAOwsC,EAAU,KAMpBC,EAcIE,EAAW,GAdJ,CAuDnB,CAGAZ,EAAcjK,EACnB,CACE,CACF,IAGF,IAAMgL,GAAsB,SAACC,GAC5B,IAAIr8B,EAAa,GACbs8B,EAAa,GAEbjc,EAAQgc,EAAW/G,MAAM,kEAE7B,GAAc,OAAVjV,QAA4Bz5B,IAAVy5B,EAAqB,CAC1C,IAAIyW,EAAiB,GACrB,IAAK,IAAIxnC,KAAO+wB,EACO,OAAlBA,EAAM/wB,GAAK,IACdwnC,EAAe9mC,KAAKqwB,EAAM/wB,IAI5BnF,QAAQC,IAAI,cAAe0sC,GAC3BzW,EAAQyW,EAAevuC,SACxB,CAEA,GAAc,OAAV83B,EACH,IAEC,IAAK,IAAI6N,EAAI,EAAGA,EAAI7N,EAAMxyB,OAAQqgC,IAAK,CAChB7N,EAAM6N,GAAGp/B,MAAM,MAClBjB,OAAO,EAAK,GAEJ,IAAtByuC,EAAWzuC,SACdyuC,GAAc,iDAKhB,IADA,IAAIC,GAAa,EACRjF,EAAI,EAAGA,EAAIlG,EAAWvjC,OAAQypC,IAGnCjX,EAAM6N,GAAGp/B,MAAM,KAAK,GAAG1M,MAAM,GAAIoN,eAAiB4hC,EAAWkG,GAAGrnC,aAAaT,gBAI/E+sC,GAAa,GAIVA,IACCv8B,EAAWhR,SAAS,uBACxBgR,GAAa,uBAEdA,GAAaqgB,EAAM6N,GAAK,KAE1B,CAGD,CAFE,MAAOpsC,GACRqI,QAAQC,IAAI,kBAAmBtI,EAChC,CAWD,OARIw6C,EAAWzuC,OAAS,IACnBmS,EAAWnS,OAAS,IACvBmS,GAAc,MAGfA,GAAcs8B,GAGRt8B,CACR,EAEQw8B,GAAwB,SAACtzC,EAAOuzC,EAAO/5C,GAE3C,GAAIA,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,KAAM,CAEzD,IAAM2G,EAAarpC,EAAeuK,WAAWlB,MAC3C,SAAC4K,GAAK,MAAoB,SAAfA,EAAMrd,IAAe,IAElC,QAAmB1B,IAAfm0C,EAA0B,CAE5B,IAAI2B,EAAYxzC,EAAM2R,OAAO7O,MAAM0d,OAQnC,GALAgzB,EAAU3tC,WAAW,MAAS2tC,EAAU3tC,WAAW,OACvD2tC,EAAYA,EAAU/zC,WAAW,MAAO,KAAKA,WAAW,IAAK,QAGzDwB,QAAQC,IAAI,iBAAkBsyC,QAEI91C,IAAhCm0C,EAA0B,eACM,OAAhCA,EAA0B,cAE1BA,EAA0B,cAAI,CAC5B,CACEzrC,IAAK5M,EAAK4F,KACV0D,MAAO0wC,IAIXvyC,QAAQC,IAAI,UAAW2wC,OAClB,CACL,IAAM4B,EAAgB5B,EAA0B,cAAEh3B,WAChD,SAAC4B,GAAK,OAAKA,EAAMrW,MAAQ5M,EAAK4F,IAAI,KAEb,IAAnBq0C,EACF5B,EAA0B,cAAE/qC,KAAK,CAC/BV,IAAK5M,EAAK4F,KACV0D,MAAO0wC,IAGT3B,EAA0B,cAAE4B,GAAsB,MAAID,EAGxDvyC,QAAQC,IAAI,YAAa2wC,EAC3B,CAqBA,YAZoCn0C,IAAhCm0C,EAA0B,eAC5BE,EAAyBwB,GAAsB,cAAI1B,EACnDrpC,EAAeuK,WAAWwgC,GAAsB,cAAI1B,IAEpDE,EAAyBwB,GAAsB,cAC7C1B,EAA0B,cAC5BrpC,EAAeuK,WAAWwgC,GAAsB,cAC9C1B,EAA0B,eAE9B5wC,QAAQC,IAAI,WAAYsH,QACxBC,EAAkBD,EAGpB,CACF,CAgBA,GAb0D,MAAtDxI,EAAM2R,OAAO7O,MAAM9C,EAAM2R,OAAO7O,MAAM6B,OAAS,GAC5C2tC,IACHvI,IAAoB,GACpBwI,IAAgB,GAChBE,GAAsBc,IAGpBjB,GACFC,IAAgB,GAMoC,MAAtDvyC,EAAM2R,OAAO7O,MAAM9C,EAAM2R,OAAO7O,MAAM6B,OAAS,IAC/CujC,EAAWvjC,OAAS,EACpB,CACA1D,QAAQC,IAAI,mCAmBZ,IAAIwyC,EAAY,GACZ5P,GAAS,EACb,IAAK,IAAI19B,KAAO2rC,EAAyBwB,GAAOzwC,MAAO,CACrD,IAAMiM,EAAOgjC,EAAyBwB,GAAOzwC,MAAMsD,GAC/C09B,IACF4P,GAAa3kC,GAGF,MAATA,IACF+0B,GAAS,EACT4P,EAAY,GAEhB,CAGA,GAAIA,EAAU/uC,OAAS,GAAoB,OAAfujC,EAAqB,CAE/CwL,EAAYA,EAAU9tC,MAAM,KAAKM,KAAK,KAAKI,cAC3C,IAAIqtC,EAAazL,EAAWr2B,MAC1B,SAACrY,GAAI,OACHA,EAAKuN,aAAanB,MAAM,KAAKM,KAAK,KAAKI,gBAAkBotC,CAAS,IAEtE,QAAmBh2C,IAAfi2C,EAA0B,CAC5B1yC,QAAQC,IAAI,eAAgByyC,GAM5B,IAAI5iC,GAAY,EAChB,IACcE,OAAOrE,KAAKC,MAAM8mC,EAAW7iC,UAEtC6iC,EAAW7iC,QAAQhL,SAAS,MAC5B6tC,EAAW7iC,QAAQhL,SAAS,OAE7BiL,GAAY,EAIhB,CAFE,MAAOnY,GACPmY,GAAY,CACd,CAEIA,IACFshC,EAAY9rC,GAAeqG,KAAKC,MAAM8mC,EAAW7iC,SAAU,KAEtDwhC,IACHvI,IAAoB,GACpBwI,IAAgB,GAChBE,GAAsBc,IAG5B,CACF,CACF,MACMnB,EAASztC,OAAS,GACpB0tC,EAAY,IAKnBN,EAAyBwB,GAAOK,eAAgB,EAChDprC,EAAeuK,WAAWwgC,GAAOK,eAAgB,EAC9C7B,EAAyBwB,GAAOzwC,MAAQ9C,EAAM2R,OAAO7O,MACrD0F,EAAeuK,WAAWwgC,GAAOzwC,MAAQ9C,EAAM2R,OAAO7O,MAEzD,IAAI6S,GAAc,EAKlB,IAJIvY,GAAwC,kBAA5BoL,EAAe0Q,UAA4D,UAA5B1Q,EAAe0Q,UAAkD,uBAAxB1Q,EAAepJ,MAAyD,qBAAxBoJ,EAAepJ,MAA8C,WAAd5F,EAAK4F,MAC3M6B,QAAQC,IAAI,oCAGmB,kBAA5BsH,EAAe0Q,UAAwD,gBAAxB1Q,EAAepJ,MAAwC,eAAd5F,EAAK4F,KAAuB,CAEvH,IAAMy0C,EAAc7zC,EAAM2R,OAAO7O,MACjC,GAAI+wC,EAAY/tC,SAAS,KAAM,CAC9B,IAAMguC,EAAcD,EAAYjuC,MAAM,OAElCkuC,EAAYnvC,OAAS,IACxBnL,EAAKsJ,MAAQgxC,EAAY,GAEzB/B,EAAyBwB,GAAOzwC,MAAQgxC,EAAY,GACpDtrC,EAAeuK,WAAWwgC,GAAOzwC,MAAQgxC,EAAY,GAGhD/B,EAAyB,GAAGjvC,MAAQgxC,EAAY,GAClDtrC,EAAeuK,WAAW,GAAGjQ,MAAQgxC,EAAY,GACpDn+B,GAAc,EAEhB,CACD,CAEGlN,EAAkBD,GACjBmN,GACA2O,EAAUqB,KAAKC,SAGlB,EAGIwiB,GAAkC,SAACpoC,EAAOuzC,EAAO/5C,GACtD,GAAIA,EAAKqM,WAAW,OAASrM,EAAK0xC,SAAS,KAAM,CAEhD,IAAM2G,EAAarpC,EAAeuK,WAAWlB,MAAK,SAAA4K,GAAK,MAAmB,SAAfA,EAAMrd,IAAe,IAChF,QAAmB1B,IAAfm0C,EAA0B,CAE7B,IAAM2B,EAAYxzC,EAAM2R,OAAO7O,MAAM0d,OAAO/gB,WAAW,MAAQ,KAAMA,WAAW,IAAM,OAEtF,GADAwB,QAAQC,IAAI,iBAAkBsyC,QACM91C,IAAhCm0C,EAA0B,eAAmD,OAAhCA,EAA0B,cAC1EA,EAA0B,cAAI,CAAC,CAC9B,IAAOr4C,EAAK4F,KACZ,MAASo0C,IAGVvyC,QAAQC,IAAI,UAAW2wC,OAEjB,CACN,IAAM4B,EAAgB5B,EAA0B,cAAEh3B,WAAU,SAAA4B,GAAK,OAAIA,EAAMrW,MAAQ5M,EAAK4F,IAAI,KACrE,IAAnBq0C,EACH5B,EAA0B,cAAE/qC,KAAK,CAChC,IAAOtN,EAAK4F,KACZ,MAASo0C,IAGV3B,EAA0B,cAAE4B,GAAsB,MAAID,EAGvDvyC,QAAQC,IAAI,YAAa2wC,EAC1B,CAmBA,YAVoCn0C,IAAhCm0C,EAA0B,eAC7BE,EAAyBwB,GAAsB,cAAI1B,EACnDrpC,EAAeuK,WAAWwgC,GAAsB,cAAI1B,IAEpDE,EAAyBwB,GAAsB,cAAI1B,EAA0B,cAC7ErpC,EAAeuK,WAAWwgC,GAAsB,cAAI1B,EAA0B,eAE/E5wC,QAAQC,IAAI,WAAYsH,QACxBC,EAAkBD,EAGnB,CACD,CAeA,GAbwD,MAApDxI,EAAM2R,OAAO7O,MAAM9C,EAAM2R,OAAO7O,MAAM6B,OAAO,GAC3C2tC,IACJvI,IAAoB,GACpBwI,IAAgB,GAChBE,GAAsBc,IAGnBjB,GACHC,IAAgB,GAKsC,MAApDvyC,EAAM2R,OAAO7O,MAAM9C,EAAM2R,OAAO7O,MAAM6B,OAAO,IAAcujC,EAAWvjC,OAAS,EAAG,CACrF1D,QAAQC,IAAI,mCAkBZ,IAAIwyC,EAAY,GACZ5P,GAAS,EACb,IAAK,IAAI19B,KAAO2rC,EAAyBwB,GAAOzwC,MAAO,CACtD,IAAMiM,EAAOgjC,EAAyBwB,GAAOzwC,MAAMsD,GAC/C09B,IACH4P,GAAa3kC,GAGD,MAATA,IACH+0B,GAAS,EACT4P,EAAY,GAEd,CAGA,GAAIA,EAAU/uC,OAAS,GAAoB,OAAfujC,EAAqB,CAEhDwL,EAAYA,EAAU9tC,MAAM,KAAKM,KAAK,KAAKI,cAC3C,IAAIqtC,EAAazL,EAAWr2B,MAAK,SAAArY,GAAI,OAAIA,EAAKuN,aAAanB,MAAM,KAAKM,KAAK,KAAKI,gBAAkBotC,CAAS,IAC3G,QAAmBh2C,IAAfi2C,EAA0B,CAC7B1yC,QAAQC,IAAI,eAAgByyC,GAM5B,IAAI5iC,GAAY,EAChB,IACaE,OAAOrE,KAAKC,MAAM8mC,EAAW7iC,UACpC6iC,EAAW7iC,QAAQhL,SAAS,MAAS6tC,EAAW7iC,QAAQhL,SAAS,OACrEiL,GAAY,EAId,CAFE,MAAOnY,GACRmY,GAAY,CACb,CAEIA,IACHshC,EAAY9rC,GAAeqG,KAAKC,MAAM8mC,EAAW7iC,SAAU,KAEtDwhC,IACJvI,IAAoB,GACpBwI,IAAgB,GAChBE,GAAsBc,IAGzB,CACD,CACD,MACKnB,EAASztC,OAAS,GACrB0tC,EAAY,IAIdN,EAAyBwB,GAAOK,eAAgB,EAChDprC,EAAeuK,WAAWwgC,GAAOK,eAAgB,EACjD7B,EAAyBwB,GAAOzwC,MAAQtJ,EACxCgP,EAAeuK,WAAWwgC,GAAOzwC,MAAQtJ,EACzCiP,EAAkBD,EAGnB,EAiFMurC,GAAmB,SAAC30C,EAAM0D,GAC/B,QAAapF,IAAT0B,QAAgC1B,IAAVoF,EACzB,MAAO,GAGR,IAAIgU,EAAa,GAQjB,OANI1X,EAAK0G,SAAS,SACbhD,EAAMgD,SAAS,cAAgBhD,EAAMgD,SAAS,gBACjDgR,EAAa,qEAIRA,CACR,EAgBE,QAb2BpZ,IAAvB8gB,GAA2D,OAAvBA,GAA+BA,EAAmBrkB,KAcxFd,OAAO05B,oBAAoBvqB,GAAgB7D,OAAS,GACpDotC,EAAyBptC,OAAS,EAClC,CACA,IAAIqvC,IAAc,EAClB,OACE,sBAAKr6C,MAAO,CAAE+H,UAAWqvC,EAAiB,GAAK,IAAK,UACvD,cAACzhC,GAAA,EAAO,CACPtU,MAAM,YACN+C,MAAO,wCACPoV,UAAU,MAAK,SAEf,cAACrD,EAAA,EAAM,CACNrO,QAAQ,OACRzG,MAAM,YACNrB,MAAO,CAACiK,eAAgB,aAAc9E,UAAW,OAAQ2c,cAAe,OAAQvc,MAAO,QACvFkD,WAAS,EACTkS,cAAyC5W,IAA/B8K,EAAeiG,aAA4D,OAA/BjG,EAAeiG,aAA8D,IAAtCjG,EAAeiG,YAAY9J,OACxH7E,QAAS,WACR8xC,IAAsBD,GACvB,EAAE,SAEF,gDAG2B,IAA5BnpC,EAAeyrC,eAAyDv2C,IAApC8K,EAAe0rC,kBAAsE,OAApC1rC,EAAe0rC,kBAA6B1rC,EAAe0rC,iBAAiBvvC,OAAS,EAC1K,gCACC,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAO,2CAGtB,cAAC0yC,GAAA,EAAY,CACXn7C,GAAG,yBACHo7C,eAAa,EACbtxC,MAAO0F,EACPkxB,QAAS,CAAEiW,UAAWjW,EAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGXs5C,eAAgB,SAACC,GAEf,OADPtzC,QAAQC,IAAI,UAAWqzC,QAEH72C,IAAX62C,GACW,OAAXA,QACoB72C,IAApB62C,EAAOr7B,UACa,OAApBq7B,EAAOr7B,SAEA,MAIPq7B,EAAOr7B,SAAS5Z,OAAO,GAAGC,cAAgBg1C,EAAOr7B,SAAS1Z,UAAU,IACpEC,WAAW,IAAK,IAEpB,EACAkvC,QAASnmC,EAAe0rC,iBACxB9xC,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,GACvBvzC,QAAQC,IAAI,WAAYlB,EAAOw0C,EAK1B,EACAC,aAAc,SAACj7C,GACb,IAAIsZ,EAAgBtZ,EAAK0f,cAERxb,IAAflE,EAAK2G,OACU,OAAf3G,EAAK2G,OACL3G,EAAK2G,MAAMwE,OAAS,IAEpBmO,EAAgBtZ,EAAK2G,OAGvB,IACMu0C,EADW5d,GAAY,CAAE13B,KAAM5F,EAAK0f,WACjBwe,aAOhC,OALO5kB,GACEA,EAAcxT,OAAO,GAAGC,cACxBuT,EAActT,UAAU,IACxBC,WAAW,IAAK,KAGxB,sBAAK9F,MAAO,CAAEwH,QAAS,QAAS,UAC/B,sBACCxH,MAAO,CACN0L,YAAa,GACb3D,UAAW,OACXuJ,aAAc,QACb,SAEDypC,IAEF,sBAAM/6C,MAAO,CAAC,EAAE,SAAEmZ,MAGf,EACA6hC,YAAa,SAAC9Q,GACnB,QAA0BnmC,IAAtBmmC,EAAO+Q,YAAkD,OAAtB/Q,EAAO+Q,iBAAmDl3C,IAA5BmmC,EAAO+Q,WAAW9xC,OAAmD,OAA5B+gC,EAAO+Q,WAAW9xC,MAAgB,CAC/I,IAAM+xC,EAAW,CAAC,OAAQ,MAAO,SACjC,IAAK,IAAIzuC,KAAOyuC,EACf,GAAIhR,EAAO+Q,WAAW9xC,MAAM+C,WAAWgvC,EAASzuC,IAAO,CACtDy9B,EAAO+Q,WAAW9xC,MAAQ+gC,EAAO+Q,WAAW9xC,MAAMoK,QAAQ2nC,EAASzuC,GAAK,IAAK,IAAK,GAC9Ey9B,EAAO+Q,WAAW9xC,MAAM6B,OAAS,IACpCk/B,EAAO+Q,WAAW9xC,MAAQ+gC,EAAO+Q,WAAW9xC,MAAMxD,OAAO,GAAGC,cAAcskC,EAAO+Q,WAAW9xC,MAAMtD,UAAU,IAE7G,KACD,CAEF,CAEO,OACL,cAAC2C,EAAA,EAAS,yBACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,wBACNsB,QAAQ,aAGN,OAGP,UACkC/D,IAA/B8K,EAAeiG,aAA4D,OAA/BjG,EAAeiG,aAAwBjG,EAAeiG,YAAY9J,OAAS,IAA4B,IAAtBgtC,GACjI,sBACCh4C,MAAO,CACNgB,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BmH,UAAW,GACXuJ,aAAc,GACdzM,UAAW,GACXS,SAAU,OACVrE,QAAS,IACR,UAEF,cAAC4G,EAAA,EAAU,CAAC7H,MAAO,CAAC,EAAE,SACrB,8CAED,cAAC6H,EAAA,EAAU,CAAC7H,MAAO,CAAC,EAAE,SACpB6O,EAAeiG,iBAGf,KACEsjC,EAAyB35C,KAAI,SAACoB,EAAM+5C,GAAW,IAAD,EAO7C,GANqB,KAAjB/5C,EAAKiI,UACPjI,EAAKiI,QAAU,iBAMd+G,EAAessC,wBAC0Bp3C,IAA1C8K,EAAeyZ,6BACkCvkB,IAAjD8K,EAAeyZ,uBAAuBnC,aAEpCpiB,IADF8K,EAAeyZ,uBAAuBnC,OAAOtmB,EAAK4F,MAWlD,OAPA2yC,EAAyBwB,GAAOzwC,MAC9B0F,EAAeyZ,uBAAuBnC,OAAOtmB,EAAK4F,MACpDoJ,EAAeuK,WAAWwgC,GAAOzwC,MAC/B0F,EAAeyZ,uBAAuBnC,OAAOtmB,EAAK4F,MACpDqJ,EAAkBD,GAGdwrC,GACK,MAGTA,IAAc,EAEZ,cAACxyC,EAAA,EAAU,CAETxI,GAAG,YACHyI,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,GAAI,6CAJnB6xC,IAYjB,GAAIn2C,IAAwC,kBAA5BoL,EAAe0Q,UAA4D,UAA5B1Q,EAAe0Q,YAAkD,uBAAxB1Q,EAAepJ,MAAyD,qBAAxBoJ,EAAepJ,OAA8C,WAAd5F,EAAK4F,KAM3M,OAL+C,IAA3C2yC,EAAyBwB,GAAO5uC,SACnC6D,EAAeuK,WAAWwgC,GAAOzwC,MAAQ,kDACzC2F,EAAkBD,IAGZ,KAGF,IAGI8sB,OAEiB53B,IAAnBlE,EAAK87B,WACc,OAAnB97B,EAAK87B,YACc,IAAnB97B,EAAK87B,YAELA,GAAY,QAIG53B,IAAflE,EAAKsJ,OACU,OAAftJ,EAAKsJ,OACLtJ,EAAKsJ,MAAM+C,WAAW,MACtBrM,EAAKsJ,MAAMooC,SAAS,OAEpB5V,GAAY,GAGd,IAAI3yB,EAAc,QAClB,QACmBjF,IAAjBlE,EAAKsX,SACY,OAAjBtX,EAAKsX,SACLtX,EAAKsX,QAAQnM,OAAS,IAEtBhC,EAAcnJ,EAAKsX,QAED,QAAdtX,EAAK4F,WAAiC1B,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,OAAwC,IAAtBtJ,EAAKsJ,MAAM6B,SACvFnL,EAAKsJ,MAAQtJ,EAAKsX,cAIRpT,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,QACpCtJ,EAAKsJ,MAAQ,IAGY,IAAtBtJ,EAAKsJ,MAAM6B,QACyB,YAA5BnL,EAAK4F,KAAKkH,eAA6B,CACjDrF,QAAQC,IAAI,mDAIZ,IAAM6zC,EAAYhD,EAAyBlgC,MAAK,SAAA4K,GAAK,MAAmB,YAAfA,EAAMrd,IAAkB,IAEhF5F,EAAKsJ,WADYpF,IAAdq3C,GAAyC,OAAdA,EACjBv7C,EAAKsX,QAGL,EAEf,CAWI,GAAItX,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,KAAM,CACzD,IAAM2G,EAAarpC,EAAeuK,WAAWlB,MAC3C,SAAC4K,GAAK,MAAoB,SAAfA,EAAMrd,IAAe,IAGlC,QAAmB1B,IAAfm0C,GAA2C,OAAfA,QAEIn0C,IAAhCm0C,EAA0B,eACM,OAAhCA,EAA0B,cAC1B,CAEA,IAAM4B,EAAgB5B,EAA0B,cAAEh3B,WAChD,SAAC4B,GAAK,OAAKA,EAAMrW,MAAQ5M,EAAK4F,IAAI,KAEb,IAAnBq0C,IACFj6C,EAAKsJ,MACH+uC,EAA0B,cAAE4B,GAAsB,MAExD,CAEJ,CAEA,IAAIn/B,GAAW,EACXiiB,EAAO,IACPye,EAAoB,oCAgBpBrtC,EAAYqE,WAAaxS,EAAK4F,KAOlC,IAAI61C,EAAiB,GACfC,EACJ,qBAEEv7C,MAAO,CACL+H,UAAW,GACX/G,OAAQ,kCACR+hB,UAAW,kCACXniB,aAAcX,EAAME,QAAQS,aAC5BoJ,WAAY,SACZ7E,UAAW,UACX,SAEF,cAACwQ,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAO,4BACPoV,UAAU,MAAK,SAEf,cAACijB,GAAA,EAAgB,CACfC,QACE,cAAC1U,GAAA,EAAQ,CACPwzB,SAAS,KACTvzB,QAAS2vB,GACT53C,MAAO,CACLqB,MAAOpB,EAAME,QAAQC,QAAQE,WAE/B2I,SAAU,SAAC5C,GACtB,IAAIiP,EAAM,UAOG,IAAK,IAAI7I,KANlBmrC,KACHtiC,EAAM,aAGMuiC,IAAaD,IAEGQ,EAA0B,CACxC,IAAIqD,EAAcrD,EAAyB3rC,GACrDgvC,EAAYh2C,KAIS,SAArBg2C,EAAYh2C,OAGfg2C,EAAYp8C,GAAKiW,GAGAmmC,EAAY3mC,cAAgBmhC,KAC9BwF,EAAYC,cAAgB9D,GAGhC,CACF,EACAnyC,KAAK,oBAGTe,MAAO,8BApDd3G,EAAK4F,MA0DN,GAAIuI,EAAYqE,WAA2B,SAAdxS,EAAK4F,KAAiB,CACjD,IACM+3B,EAAQx0B,EAAYypC,MADZ,cAId,GADA6I,EAAiBC,EACH,OAAV/d,GAAmBoa,GAMhB,CAGLhb,EAAO,IACPjiB,GAAW,EACX0gC,EAAoB,2CAEpB,IAAIrtB,GAAU,EACd,IAAK,IAAI2tB,KAAWne,EAAO,CACzB,IAAM4T,EAAU5T,EAAMme,GAClBC,GAAO,EACX,IAAK,IAAIC,KAAYzD,EACnB,GAAIA,EAAyByD,GAAUp2C,OAAS2rC,EAAS,CACvDwK,GAAO,EACP,KACF,CAGEA,IAKJ5tB,GAAU,EACVoqB,EAAyBjrC,KAAK,CAC5B2uC,aAAc,GACdviC,eAAe,EACfzE,YAAamhC,GACb9+B,QAAS,GACT9X,GAAI,GACJs8B,WAAW,EACXl2B,KAAM2rC,EACN4D,QAAS,KACT17B,UAAU,EACVoO,OAAQ,CAAElnB,KAAM,UAChBu7C,iBAAiB,EACjB1mC,KAAM,KACNlM,MAAO,GACPrB,QAAS,eACT4zC,cAAc,IAElB,CAMA,OAJI1tB,GACFqqB,EAA4BD,GAGvBkD,CACT,CArDgB,OAAV9d,EACFua,IAA4B,GAErCzwC,QAAQC,IAAI,aAAci2B,EAAOoa,GAmD9B,EAEiC,IAA7BE,KACFwD,EAAiB,IAGnB,IAAMU,EAAiB,mBAAqBpC,EAE5CqC,EAAc3N,KAAesL,EAAQ,KAE1C,cAACsC,GAAiB,CACjB5N,WAAcA,GACdE,cAAiBA,GACjBD,WAAcA,EACdE,gCAAmCA,GACnCG,SAAUA,GACVC,YAAaA,GACbH,mBAAoBA,EACpBC,sBAAuBA,EACvBzrC,UAAWA,IAOHi5C,EAAiB,QACdp4C,IAATlE,GAA+B,OAATA,QAAgCkE,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,OAAkBtJ,EAAKsJ,MAAM6B,OAAS,IACjHmxC,EAAiB5C,GAAoB15C,EAAKsJ,QAIrC,IAAIioC,EAAUvxC,EAAK4F,KAAKC,UACpB7F,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,OACnDH,EAAUA,EAAQ7xC,MAAM,EAAGM,EAAK4F,KAAKuF,OAAS,IAGhC,iBAAZomC,IACTA,EAAU,QAOW,oBAJhBA,GACEA,EAAQzrC,OAAO,GAAGC,cAAgBwrC,EAAQvrC,UAAU,IACpDC,WAAW,IAAK,MAGhBsrC,EAAU,WACW,mBAAZA,IACTA,EAAU,YAGlBzV,KAAY97B,EAAK4F,KAAKyG,WAAW,QAASrM,EAAK4F,KAAK8rC,SAAS,OAAc5V,EAErE,IAAIygB,GACF,cAAC5zC,EAAA,GAAS,GACRmS,SAAUA,EACV3a,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,aAC5BI,OACEo3C,EAAyBwB,GAAOtgC,UAChC8+B,EAAyBwB,GAAOrgC,cAC5B,oBACA,GACNlY,MAAO,QACPkE,MAAO,OACP9D,SAAU,OAEZiH,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,EACZC,SAAU,MACVC,SAAU,OAEZyb,aAAck6B,EAAiB,KAC7B,cAACvuC,EAAA,EAAc,CAACxD,SAAS,MAAK,SACvC,eAACgf,EAAA,EAAW,CAACg4B,YAAa1gB,EAAY,WAAa,aAAa,UAC/D,cAAChmB,GAAA,EAAO,CAACvR,MAAM,gBAAgBoV,UAAU,MAAK,SAC7C,cAAC,KAAe,CACfxZ,MAAO,CAAEoF,OAAQ,UAAWqE,OAAQkyB,EAAY,EAAI,GACpDx1B,QAAS,SAACE,GACTA,EAAMsE,iBACN6jC,GAAcoL,GACd/K,GAAYhvC,EAAKsJ,OACjBwlC,GAAsB,EACvB,MAGF,cAACh5B,GAAA,EAAO,CAACvR,MAAM,oBAAoBoV,UAAU,MAAK,SACjD,cAAC8W,GAAA,EAAoB,CACpBtwB,MAAO,CAAEoF,OAAQ,UAAWqE,OAAQkyB,EAAY,EAAI,GACpDx1B,QAAS,SAACE,GACTA,EAAMsE,iBACNwlC,GAAgB,CACf73B,IAAKjS,EAAMurC,MAAQ,GACnBzoB,KAAM9iB,EAAMwrC,MAAQ,KAErBiH,GAAsBc,GACtBhB,IAAgB,GAChBxI,IAAoB,EACrB,YAOEzU,aAAW97B,EAAK4F,KAAKyG,WAAW,QAASrM,EAAK4F,KAAK8rC,SAAS,OAAc5V,EAC1Exe,WAAYi9B,GAAiBv6C,EAAK4F,KAAM5F,EAAKsJ,OAC7ChD,QAAS,WACPmB,QAAQC,IAAI,kBAAmBy0C,EAAgBn8C,EAAK4F,MAC3C,YAAd5F,EAAK4F,OACR6B,QAAQC,IAAI,yBACSxD,IAAjB4zC,GACHA,EAAa,mDAmBS5zC,IAApBuzC,GAAkD,OAAjBD,QAA0CtzC,IAAjBszC,GAA8BA,EAAatvB,WAAai0B,IACrH3E,EAAatvB,SAAWi0B,EACxB1E,EAAgBD,GAGV,EACAh4C,GAAI28C,EACJpf,KAAM/8B,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,KAAO,EAAI3U,EAClEv7B,MAAM,UACN0H,aAAclJ,EAAKsJ,MASnB3I,KACEwI,EAAYmD,SAAS,QACpBtM,EAAK0Z,gBACH1Z,EAAK4F,KAAKkH,cAAcR,SAAS,QAChCtM,EAAK4F,KAAKkH,cAAcR,SAAS,QACjCtM,EAAK4F,KAAKkH,cAAcR,SAAS,SACjC,WACA,OAENnD,YAAaA,EACbC,SAAU,SAAC5C,GAETszC,GAAsBtzC,EAAOuzC,EAAO/5C,EACtC,GAAE,2BACUs8C,EAAenxC,OAAS,EAAImxC,EACtCnuC,EAAYqE,WACZrE,EAAYoE,WACE,SAAdvS,EAAK4F,KACH,sBACEzF,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,EAAGuhC,WAAY,GAAI,SAEzDwI,KAEDx7C,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,KAC7D,OAAW,wBAEG,SAAClrC,GAChB81C,EAAiB5C,GAAoBlzC,EAAM2R,OAAO7O,YAC7BpF,IAAjB0zC,GACHA,GAAa,EAEP,IAAC,IAwDX,GAAgC,YAA5B53C,EAAK4F,KAAKkH,cAEb,KAAI2vC,GArDe,SAACvwC,GACpB,IAAIwwC,EAAYxwC,EAAUE,MAAM,MAE5BuwC,GAAe,EACfC,EAAY,GAChB,IAAK,IAAIhwC,KAAO8vC,EAAW,CAC1B,IAAMtJ,EAAOsJ,EAAU9vC,GACvB,GAAa,KAATwmC,EAAJ,CAKA,IAAIyJ,EAAa,GASjB,GARIzJ,EAAK9mC,SAAS,OACjBuwC,EAAa,KAGVzJ,EAAK9mC,SAAS,OACjBuwC,EAAa,KAGY,IAAtBA,EAAW1xC,OAAf,CAQA,IAAI2xC,EAAY1J,EAAKhnC,MAAMywC,GACvBC,EAAU3xC,OAAS,EACtByxC,EAAUtvC,KAAK,CACdV,IAAKkwC,EAAU,GAAG91B,OAClB1d,MAAOwzC,EAAU,GAAG91B,SAGrBvf,QAAQC,IAAI,eAAgB0rC,EAT7B,MALCwJ,EAAUtvC,KAAK,CACdV,IAAKwmC,EACL9pC,MAAO,IAdT,MAFCqzC,GAAe,CA8BjB,CAUA,OAPIA,GACHC,EAAUtvC,KAAK,CACdV,IAAK,GACLtD,MAAO,KAIFszC,CACR,CAIkBG,CAAYxE,EAAyBwB,GAAOzwC,OAG1DmzC,GAAW79C,KAAI,SAACsN,EAAW/G,GAC3B,IAAM63C,EAAS9wC,EAAUU,IACnBqwC,EAAS/wC,EAAU5C,MAEzB,OACC,+BACC,sBAAKnJ,MAAO,CAACwH,QAAS,QAAQ,UAC7B,cAACgB,EAAA,EAAS,CACTQ,YAAY,MACZhJ,MAAO,CAACiV,KAAM,GACdlM,aAAcgD,EAAUU,IACxBmV,OAAQ,SAAC3iB,GACRqI,QAAQC,IAAI,8BAA+Bs1C,EAAQ59C,EAAE+Y,OAAO7O,OAI5D,IAAM4zC,EAAW3E,EAAyBwB,GAAOzwC,MAAM8C,MAAM,MACzD+wC,EAAW,GACXC,GAAY,EAChB,IAAK,IAAIxwC,KAAOswC,EACO,KAAlBA,EAAStwC,GAKbuwC,EAAS7vC,KAAK4vC,EAAStwC,IAJtBwwC,GAAY,EAOVA,GACHD,EAAS7vC,KAAK,IAEf7F,QAAQC,IAAI,UAAWy1C,GAEvB,IAAIE,EAAS,GACb,IAAK,IAAIzwC,KAAOuwC,EAAU,CACzB,IAAI/J,EAAO+J,EAASvwC,GAEhBA,GAAOzH,EACK,KAAX63C,EACC5J,EAAK9mC,SAAS,MAAQ8mC,EAAK9mC,SAAS,KACvC+wC,EAAO/vC,KAAKlO,EAAE+Y,OAAO7O,MAAQ8pC,GAE7BiK,EAAO/vC,KAAKlO,EAAE+Y,OAAO7O,MAAQ,KAAO8pC,GAGrCiK,EAAO/vC,KAAK8lC,EAAK1/B,QAAQspC,EAAQ59C,EAAE+Y,OAAO7O,MAAO,IAIlD+zC,EAAO/vC,KAAK8lC,EAEd,CAEA,IAAIkK,EAASD,EAAO3wC,KAAK,MACzBjF,QAAQC,IAAI,UAAW41C,GAEpB/E,EAAyBwB,GAAOzwC,MAAQg0C,EACxCtuC,EAAeuK,WAAWwgC,GAAOzwC,MAAQg0C,EACzCruC,EAAkBD,GAChBwpC,EAA4BD,EAClC,IAED,cAAC5vC,EAAA,EAAS,CACTQ,YAAY,QACZhJ,MAAO,CAACiV,KAAM,GACdlM,aAAcgD,EAAU5C,MACxByY,OAAQ,SAAC3iB,GACRqI,QAAQC,IAAI,8BAA+Bu1C,EAAQ79C,EAAE+Y,OAAO7O,OAI5D,IAAI4zC,EAAW3E,EAAyBwB,GAAOzwC,MAAM8C,MAAM,MACvD+wC,EAAW,GACXC,GAAY,EAChB,IAAK,IAAIxwC,KAAOswC,EACO,KAAlBA,EAAStwC,GAKbuwC,EAAS7vC,KAAK4vC,EAAStwC,IAJtBwwC,GAAY,EAOVA,GACHD,EAAS7vC,KAAK,IAEf7F,QAAQC,IAAI,UAAWy1C,GAEvB,IAAIE,EAAS,GACb,IAAK,IAAIzwC,KAAOuwC,EAAU,CACzB,IAAI/J,EAAO+J,EAASvwC,GAEhBA,GAAOzH,EACK,KAAX83C,EACC7J,EAAK9mC,SAAS,MAAQ8mC,EAAK9mC,SAAS,KACvC+wC,EAAO/vC,KAAK8lC,EAAOh0C,EAAE+Y,OAAO7O,OAE5B+zC,EAAO/vC,KAAK8lC,EAAO,KAAOh0C,EAAE+Y,OAAO7O,OAGpC+zC,EAAO/vC,KAAK8lC,EAAK1/B,QAAQupC,EAAQ79C,EAAE+Y,OAAO7O,MAAO,IAIlD+zC,EAAO/vC,KAAK8lC,EAEd,CAEA,IAAIkK,EAASD,EAAO3wC,KAAK,MACzBjF,QAAQC,IAAI,UAAW41C,GAEpB/E,EAAyBwB,GAAOzwC,MAAQg0C,EACxCtuC,EAAeuK,WAAWwgC,GAAOzwC,MAAQg0C,EACzCruC,EAAkBD,GAChBwpC,EAA4BD,EAClC,QA9GQpzC,EAmHb,IACCmR,EAAA,EASC,IArI+D,CAqK9D,GATgC,kBAA5BtW,EAAK4F,KAAKkH,gBAEnBrF,QAAQC,IAAI,UAAW4D,QACEpH,IAArBoH,EAAMiyC,YAAiD,OAArBjyC,EAAMiyC,YAAuBjyC,EAAMiyC,WAAWpyC,OAAS,IAC5FnL,EAAKm1C,QAAU7pC,EAAMiyC,kBAM4Br5C,IAA3Cq0C,EAAyBwB,GAAOlyB,QACW,OAA3C0wB,EAAyBwB,GAAOlyB,QACgB,SAAhD0wB,EAAyBwB,GAAOlyB,OAAOlnB,KAEvC47C,GACE,cAAC5zC,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,MACZC,SAAU,MACVC,SAAU,OAEZyb,aAAck6B,EAAiB,KAC7B,cAACvuC,EAAA,EAAc,CAACxD,SAAS,MAAK,SAC5B,cAACsQ,GAAA,EAAO,CAACvR,MAAM,wBAAwBoV,UAAU,MAAK,SACpD,cAAC8W,GAAA,EAAoB,CACnBtwB,MAAO,CAAEoF,OAAQ,WACjBe,QAAS,SAACE,GACR8pC,GAAgB,CACd73B,IAAKjS,EAAMurC,MAAQ,GACnBzoB,KAAM9iB,EAAMwrC,MAAQ,KAEtBiH,GAAsBc,GACtBhB,IAAgB,GAChBxI,IAAoB,EACtB,SAMXjzB,WAAYi9B,GAAiBv6C,EAAK4F,KAAM5F,EAAKsJ,OAC5CV,WAAS,EACTkzB,UAAWA,EACXiB,KAAK,IACLv7B,MAAM,UACN0H,aAAclJ,EAAKsJ,MACnB3I,KAAM,OACNwI,YAAa,qBACb3J,GAAI,mBAAqBu6C,EACzB3wC,SAAU,SAAC5C,GACTszC,GAAsBtzC,EAAOuzC,EAAO/5C,EACtC,EACA+hB,OAAQ,SAACvb,GAAW,SAYnB,QACatC,IAAjBlE,EAAKm1C,SACW,OAAjBn1C,EAAKm1C,SACLn1C,EAAKm1C,QAAQhqC,OAAS,QAEuBjH,IAA5Cq0C,EAAyBwB,GAAO5E,SACW,OAA5CoD,EAAyBwB,GAAO5E,SAChCoD,EAAyBwB,GAAO5E,QAAQhqC,OAAS,EACjD,CACP,IAAMqyC,QAAiCt5C,IAAjBlE,EAAKm1C,SAA0C,OAAjBn1C,EAAKm1C,SAAoBn1C,EAAKm1C,QAAQhqC,OAAS,EAAInL,EAAKm1C,QAAUoD,EAAyBwB,GAAO5E,QAE/I,GAA8C,KAA1CoD,EAAyBwB,GAAOzwC,MAAc,CAGhD,IAAMlK,GAAI,CACR+Y,OAAQ,CACN7O,MAAOk0C,GAAc,KAIzB1D,GAAsB16C,GAAG26C,EAAO/5C,EAClC,CAEAu8C,GACE,cAACrkC,GAAA,EAAM,CACdwM,UAAW,CACVmE,mBAAmB,GAEXlQ,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhB4H,MAAOivC,EAAyBwB,GAAOzwC,MACvCV,WAAS,EACTpJ,GAAI,mBAAqBu6C,EACzB3wC,SAAU,SAAChK,GACT06C,GAAsB16C,EAAG26C,EAAO/5C,GAChC8qB,EAAUqB,KAAKC,SACjB,EACAjsB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPsH,OAAQ,OACR/H,aAAcX,EAAME,QAAQS,cAC5B,SAEDy8C,GAAc5+C,KACb,SAACoB,EAAMmF,GACL,IAAMs4C,EAAaz9C,EAAKoM,MAAM,MAC1BsxC,EAAc19C,EAKlB,OAJIy9C,EAAWtyC,OAAS,IACtBuyC,EAAcD,EAAW,IAIzB,cAAC/lC,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EAAK,SAEX09C,GAPI19C,EAUX,KAIR,KAA4B,iBAAjBA,EAAKiI,SACA,UAGhB,IAA0B,IAAtBjI,EAAK67C,aACP,OAAO,KAKT,IAAM8B,GAAoB,SAAC56C,GACzB,IAeMyuC,EAAkB,SAAChU,GACvB,QACat5B,IAAXs5B,GACW,OAAXA,GACkB,IAAlBA,EAAOryB,OAHT,CAQA,IAAIsmC,EAAa8G,EAAyBwB,GAAOzwC,MAAM0d,OACpD0qB,SAAS,KACRlU,EAAO,GAAGjwB,aACV,IAAMiwB,EAAO,GAAGjwB,aAGpB,IAAK,IAAIX,KADT6kC,EAAaA,EAAW3kC,cAAc7G,WAAW,IAAK,KACtCu3B,EACH,GAAP5wB,GAAgD,IAApC4wB,EAAO5wB,GAAKW,aAAapC,SAIzCsmC,GAAcjU,EAAO5wB,GAAKW,cAI5B,GAAIvN,EAAK4F,KAAKyG,WAAW,OAASrM,EAAK4F,KAAK8rC,SAAS,KAAM,CACzDjqC,QAAQC,IAAI,yBAA0B1H,EAAK4F,KAAM6rC,GAEjD,IAAM4G,EAAarpC,EAAeuK,WAAWlB,MAC3C,SAAC4K,GAAK,MAAoB,SAAfA,EAAMrd,IAAe,IAElC,QAAmB1B,IAAfm0C,EAA0B,CAC5B,QACkCn0C,IAAhCm0C,EAA0B,eACM,OAAhCA,EAA0B,cAE1BA,EAA0B,cAAI,CAC5B,CACEzrC,IAAK5M,EAAK4F,KACV0D,MAAOmoC,QAGN,CACL,IAAMwI,EAAgB5B,EACL,cACfh3B,WAAU,SAAC4B,GAAK,OAAKA,EAAMrW,MAAQ5M,EAAK4F,IAAI,KACvB,IAAnBq0C,EACF5B,EAA0B,cAAE/qC,KAAK,CAC/BV,IAAK5M,EAAK4F,KACV0D,MAAOmoC,IAGT4G,EAA0B,cAAE4B,GAAsB,OAChDxI,CAEN,CAWA,OATA8G,EAAyBwB,GAAsB,cAC7C1B,EACFrpC,EAAeuK,WAAWwgC,GAAsB,cAC9C1B,EACFppC,EAAkBD,GAClB8b,EAAUqB,KAAKC,UAEf2sB,IAAgB,QAChBzI,GAAgB,KAElB,CACF,CAEAiI,EAAyBwB,GAAOzwC,OAASmoC,EACzCziC,EAAeuK,WAAWwgC,GAAOzwC,MAC/BivC,EAAyBwB,GAAOzwC,MAClC2F,EAAkBD,GAClB8b,EAAUqB,KAAKC,UAEf2sB,IAAgB,GAChBzI,GAAgB,KArEhB,CAsEF,EAMA,OACE,cAACnI,GAAA,EAAI,CACH8J,gBAAgB,iBAChBC,eAAgB7B,GAChB3zB,QAAS,WArGX6zB,IAAoB,GAKZ,OAFLgI,EAAyBwB,GAAOzwC,MAC/BivC,EAAyBwB,GAAOzwC,MAAM6B,OAAS,IAGjD4tC,IAAgB,GAGlBjuB,EAAUqB,KAAKC,UACfkkB,GAAgB,KA4Fd,EACA7zB,OAAQ4zB,GACRlwC,MAAO,CACLqB,MAAO,QACP0G,UAAW,EACXlD,UAAW,KACX,SAED0pC,EAAW9vC,KAAI,SAAC2xB,GACf,IAAMwN,EACe,WAAnBxN,EAAU5vB,KACR,cAAC,KAAQ,CAACR,MAAO,CAAE0L,YAAa,MACX,sBAAnB0kB,EAAU5vB,MACO,uBAAnB4vB,EAAU5vB,KACV,cAACmhB,GAAA,EAAkB,CAAC3hB,MAAO,CAAE0L,YAAa,MAE1C,cAAC,KAAY,CAAC1L,MAAO,CAAE0L,YAAa,MAGlCsmC,EAA0B,SAACC,GAC/B,IAAIC,EAAkB9gC,SAASsE,eAC7B,kCAWF,GATwB,OAApBw8B,IAEAA,EAAgBlyC,MAAMgB,OADpBixC,EAC6B,oBAEA,SAMXluC,IAAtB0Z,EAASmD,UACa,OAAtBnD,EAASmD,UACTnD,EAASmD,SAAS5V,OAAS,EAE3B,IAAK,IAAIyB,KAAOgR,EAASmD,SAAU,CACjC,IAAMxL,EAAOqI,EAASmD,SAASnU,GAE/B,QAAW1I,IAAPL,EAAkB,CACpB,IAAIuwB,EAAOvwB,EAAGgS,eAAeN,EAAK/V,IAC9B40B,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,CACF,CAEJ,EAEMC,EAAoB,SAAC1L,EAAQ2L,GACjC,QAAW75C,IAAPL,EAAkB,CACpB,IAAIuwB,EAAOvwB,EAAGgS,eAAekoC,GACzB3pB,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,CACF,EAkBI3M,EAAc,GACe,kBAAtB3gB,EAAUjZ,UACnB45B,EAAcnkC,GAAewjB,EAAUjZ,QAAS,KAG5D,IAAMg7B,EAAa,UAIfC,EAAgBlC,GAcV,OAbY,OAAlBkC,EACHA,EAAgB,CACf,KAAQ,EACR,IAAO,GAEwB,OAAtBA,EAAc95B,UAAsCvU,IAAtBquC,EAAc95B,IACtD85B,EAAc95B,IAAM,EACa,OAAvB85B,EAAcjpB,WAAwCplB,IAAvBquC,EAAcjpB,OACvDipB,EAAcjpB,KAAO,GAKL4nB,EAAY/lC,OAAS,EAC1B,cAAC,KAAc,CAEbxE,MACE,sBAAKxG,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,GAAK,UAC7Cq8B,EAAI,IAAGxN,EAAU3qB,QAGtB4sC,iBAAkBnC,GAClBlwC,MAAO,CACLqB,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVqD,UAAW,GACXS,SAAU,UAEZa,QAAS,WACPmB,QAAQC,IAAI,YAAa6oB,GACzB9oB,QAAQC,IAAI6oB,EAAUjZ,SACtBk6B,EAAgB,CAACjhB,GACnB,EAAE,SAEd,eAACrqB,EAAA,EAAK,CAAC/F,MAAO,CAACsB,UAAW,IAAKuD,UAAW,IAAK+C,SAAU,IAAKpG,SAAU,IAAK6D,SAAU,QAASiT,IAAK85B,EAAc95B,IAAI,IAAK6Q,KAAMipB,EAAcjpB,KAAK,IAAKloB,QAAS,qBAAsBE,gBAAiBlB,EAAME,QAAQO,WAAY4E,SAAU,SAAUR,UAAW,OAAQ9D,OAAQ,mCAAoC,UACtT,cAACuW,GAAA,EAAQ,CAERvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/Ba,WAAY,GACZF,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVP,QAAS,EACToE,SAAU,YAEX8D,MAAOinB,EACPnqB,YAAa,WACZ,EAEDE,QAAS,WACRkrC,EAAgB,CAACjhB,GAClB,EAAE,SAEF,cAACvoB,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACkZ,cAAe,GAAG,SACrCkX,EAAU3qB,QAnBnB2qB,EAAU3qB,MAsBHsrC,EAAYtyC,KAAI,SAAC6zC,EAAUttC,GAG1B,IAAM44B,EACc,UAAlB0U,EAAS9xC,KACtB,sBAAMR,MAAO,CAACuB,WAAY,KACS,SAAlB+wC,EAAS9xC,KACX,cAAC,KAAsB,CAACR,MAAO,CAACuB,WAAY,EAAGmK,YAAa,MAE3E,cAAC6mC,GAAA,EAAU,CAACvyC,MAAO,CAACuB,WAAY,EAAGmK,YAAa,GAAIrK,MAAO8wC,KAIvDK,GAAqBF,EAAS7sC,KAAKgtC,MAAM,QAAU,IAAIznC,OAAO,EAC9D6yC,EAAa,qBAAK79C,MAAO,CAACuB,WAAY,GAAIoH,OAAQ,GAAIpD,MAAO,EAAGpE,gBAAiBgxC,KAGjFO,EAAYJ,EAAS7sC,KAAKwG,MAAM,KAChC0mC,EAAUD,EAAUA,EAAU1nC,OAAO,GAC9B,OACE,cAACuM,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,IACVpG,SAAU,IAC1BP,QAXgB,GAaFkI,MAAOmpC,EACPrsC,YAAa,WACX,EAEFE,QAAS,WACPkrC,EAAgB,CAACjhB,EAAWkiB,GAC9B,EAAE,SAEF,cAAC38B,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,qBAAgBkuC,EAASnpC,OAC9BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,IAAM,UAC3D4E,MAAMilC,GAAmB/S,OAAOhhC,KAAI,SAACyxB,EAASf,GAC9C,OACC0uB,CAEF,IACkBjgB,EAAI,IAAG+U,EACN,SAAlBL,EAAS9xC,KAAkB,cAACoyC,GAAA,EAAc,CAAC5yC,MAAO,CAAC6yC,WAAY,IAAO1sC,QAAS,SAAClH,GAChFA,EAAE0L,iBACF1L,EAAE2L,kBAEFtD,QAAQC,IAAI,UAAW6oB,EAAWkiB,GAGlC,IAAIK,EAAUL,EAAS7sC,KACnBktC,EAAQ3nC,OAAS,IACpB2nC,EAAUA,EAAQpzC,MAAM,EAAGozC,EAAQ3nC,OAAO,IAE3CotC,EAAyBwB,GAAOzwC,OAAK,cAAWinB,EAAU3qB,KAAI,YAAIktC,EAAO,cACjE9jC,EAAeuK,WAAWwgC,GAAOzwC,MAAQivC,EAAyBwB,GAAOzwC,MACzE2F,EAAkBD,GAClB8b,EAAUqB,KAAKC,UACf2sB,IAAgB,GAChBzI,GAAgB,KAMzB,IAAQ,WAlDUmC,EAAS7sC,KAuDpB,QAxHI2qB,EAAU3qB,MA4HjB,cAAC8R,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVkK,YAAa,GAEfvC,MAAOinB,EACPnqB,YAAa,WA9KQ,uBAAnBmqB,EAAU5vB,KACZwxC,GAAwB,GACI,WAAnB5hB,EAAU5vB,MACnBm9C,GAAkB,EAAMvtB,EAAU/wB,GA2KE,EACpC6G,WAAY,WAvKS,uBAAnBkqB,EAAU5vB,KACZwxC,GAAwB,GACI,WAAnB5hB,EAAU5vB,MACnBm9C,GAAkB,EAAOvtB,EAAU/wB,GAsKnC,EACA8G,QAAS,WACPkrC,EAAgB,CAACjhB,GACnB,EAAE,SAEF,cAACza,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,iBAAYgsB,EAAUjnB,OAC3BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAGxN,EAAU3qB,WAvBjB2qB,EAAU3qB,KA4BrB,KAGN,EAEMqP,QACiB/Q,IAArBlE,EAAKiV,YAA4B,GAAKjV,EAAKiV,YACvCgpC,GACJ,iCACE,eAACj2C,EAAA,EAAU,CAACC,QAAQ,QAAO,wBACb,KACO,IAAlBjI,EAAKyZ,WAA4C,IAAvBzZ,EAAK0Z,cAC5B,OACA,WAEN,eAAC1R,EAAA,EAAU,CAACC,QAAQ,QAAO,wBACbjI,EAAKsX,WAEnB,eAACtP,EAAA,EAAU,CAACC,QAAQ,QAAO,4BACTgN,SAetBipC,GAAW,uBAAmB/vC,EAAYvI,KAAKK,WAAW,IAAK,MAC/Dk4C,IAAyC,IAAvBn+C,EAAKo6C,cACvB,OACE,gCACGqB,EACD,sBACEt7C,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,EAAG9J,QAAS,QAAS,WAEnC,IAAvB3H,EAAK0Z,cACJ,cAAC5D,GAAA,EAAO,CACNvR,MAAO25C,GACPvkC,UAAU,MAAK,SAEf,cAAC,KAAY,CACXxZ,MAAO,CACLoF,OAAQ,UACRG,MAAO,GACPoD,OAAQ,GACR+C,YAAa,GAC1BrK,MAAO,yBAEI8E,QAAS,WACPwX,GAA2B,EAC7B,MAGF,MAEQ,IAApBqgC,GACA,cAACroC,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,6FACPoV,UAAU,MAAK,SAEf,cAACqY,GAAA,EAAe,CAAC7xB,MAAO,CACvBqB,MAAO,wBACPqK,YAAa,QAIhB,KAES,qBACE1L,MAAO,CACLiV,KAAM,KACNlN,UAAW,OACXuJ,aAAc,QACd,SAEF,cAACqE,GAAA,EAAO,CAACvR,MAAO05C,GAAoBtkC,UAAU,MAAK,SACjD,8BAAI43B,EAAO,cA2DhBgL,GACRH,EACQtD,GACDE,KAAuBe,GACN,iBAAjB/5C,EAAKiI,SACL2wC,EAASztC,OAAS,EAChB,eAACiS,GAAA,EAAW,CAACxU,WAAS,EAACzI,MAAO,CAAE+H,UAAW,GAAI,UAC7C,cAACi0B,GAAA,EAAU,CACT38B,GAAG,uBACHW,MAAO,CAAEuB,WAAY,GAAIF,MAAO,SAAU,0BAI5C,cAAC0W,GAAA,EAAM,CAChBwM,UAAW,CACLmE,mBAAmB,GAEdu1B,QAAQ,uBACRzlC,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBgb,QAAS,WACP6zB,IAAoB,GAKZ,OAFLgI,EAAyBwB,GAAOzwC,MAC/BivC,EAAyBwB,GAAOzwC,MAAM6B,OAAS,IAGjD4tC,IAAgB,GAGlBjuB,EAAUqB,KAAKC,SACjB,EACA9lB,QAAS,kBAAMiqC,IAAoB,EAAK,EACxC3nC,WAAS,EACT6T,KAAMy8B,GACN/4C,MAAO,CACLqB,MAAO,QACPsH,OAAQ,GACRZ,UAAW,EACXnH,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAChK,GAID,MAFNm5C,EAAyBwB,GAAOzwC,MAC9BivC,EAAyBwB,GAAOzwC,MAAM6B,OAAS,KAGjD/L,EAAE+Y,OAAO7O,MAAMiE,aACbnO,EAAE+Y,OAAO7O,MAAMiE,aAAa7N,MAC1B,EACAN,EAAE+Y,OAAO7O,MAAMiE,aAAapC,SAIlCotC,EAAyBwB,GAAOzwC,OAC9BlK,EAAE+Y,OAAO7O,MAAMiE,aACjByB,EAAeuK,WAAWwgC,GAAOzwC,MAC/BivC,EAAyBwB,GAAOzwC,MAClC2F,EAAkBD,GAClB8b,EAAUqB,KAAKC,UAEf2sB,IAAgB,EAClB,EAAE,SAEDH,EAASh6C,KAAI,SAACoB,GACb,IAAMq+C,EAAY,CAChBxyC,YAAa,IAGTkyB,EACU,UAAd/9B,EAAKW,KACH,cAAC,KAAU,CAACR,MAAOk+C,IACH,SAAdr+C,EAAKW,KACP,cAAC,KAAsB,CAACR,MAAOk+C,IAE/B,cAACjuB,GAAA,EAAc,CAACjwB,MAAOk+C,IAE3B,OACE,cAAC3mC,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EACPoG,YAAa,WAAO,EAAE,SAEtB,cAAC0P,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,qBAAgBvE,EAAKsJ,OAC1BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAG/9B,EAAK4F,WAdZ5F,EAAK4F,KAmBhB,SAGF,KACHkzC,GACAE,KAAuBe,GACN,iBAAjB/5C,EAAKiI,SACe,IAApB2wC,EAASztC,OACP,cAACwyC,GAAiB,CAACjP,WAAYA,IAC9B,OAzNI1uC,EAAK4F,KA4NnB,MAGN,CACA,OAAO,IACT,EAQI04C,GAAYtvC,EAAerI,MAC/B,OACE,sBAAKxG,MAAOi3C,EAAiB53C,GAAG,qBAAoB,WAE9B,IAAnB+3C,EAA0B,KACzB,iCACE,sBAAKp3C,MAAO,CAAEwH,QAAS,OAAQlG,UAAW,GAAIgQ,aAAc,IAAK,UAC/D,sBAAKtR,MAAO,CAAEiV,KAAM,GAAI,UACtB,oBAAIjV,MAAO,CAAEsR,aAAc,GAAI,UAE3BzC,EAAe0Q,SAAS5Z,OAAO,GAAGC,cAClCiJ,EAAe0Q,SAAS1Z,UAAU,IAClCC,WAAW,IAAK,OAEpB,sBAAK9F,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC7C,cAAC4Q,GAAA,EAAU,CACT3Y,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRgD,YAAa,EACbC,aAAc,GAEhBzF,QAAS,WAEP,GADAmB,QAAQC,IAAI,4BAA6BsH,GACrCsP,EAAmBnT,OAAS,EAAG,CAGjC,IAAK,IAAIyB,KAAO0R,EACd,QACsCpa,IAApCoa,EAAmB1R,GAAK0sC,SACY,OAApCh7B,EAAmB1R,GAAK0sC,QAF1B,CAOA,IAAIC,EAAcj7B,EAAmB1R,GAAK0sC,QAAQjhC,MAChD,SAACiC,GAAM,OAAKA,EAAO5T,OAAOlH,KAAOwP,EAAexP,EAAE,IAGpD,QAAoB0E,IAAhBq1C,GAA6C,OAAhBA,EAAjC,CAIV,IAAMgF,EAAe16C,EAAGgS,eAAe7G,EAAexP,IAEtD,GADFiI,QAAQC,IAAI,eAAgB62C,QACLr6C,IAAjBq6C,GAA+C,OAAjBA,EAAuB,CAC1D,IAAMC,EAAYD,EAAav+C,KAAK,cAClBkE,IAAds6C,GAAyC,OAAdA,IAC9BjF,EAAY7yC,OAAOC,MAAQ63C,EAE7B,CAEYhI,EAAkB+C,QACOr1C,IAArB0yC,GACFA,GAAiB,GAGnB,KAhBA,CARA,CA0BJ,CACF,EAAE,SAEF,cAAC9gC,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,uCACNoV,UAAU,MAAK,SAEf,cAAC,KAAa,CAACxZ,MAAO,CAAEqB,MAAO,+BAGnC,cAACsX,GAAA,EAAU,CACT3Y,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRpH,WAAY,GACZqK,aAAc,GAEhBzF,QAAS,WACPwX,GAA2B,EAC7B,EAAE,SAEF,cAAChI,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,yBACNoV,UAAU,MAAK,SAEf,cAACuW,GAAA,EAAe,CAAC/vB,MAAO,CAAEqB,MAAO,+BAGrC,cAACsX,GAAA,EAAU,CACT3Y,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRpH,WAAY,GACZqK,aAAc,GAEhBzF,QAAS,WAAO,EAAE,SAElB,mBACEuS,KAAK,2CACLD,IAAI,aACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,cAACsU,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,oBACNoV,UAAU,MAAK,SAEf,cAAC8kC,GAAA,EAAe,CAACt+C,MAAO,CAAEqB,MAAO,iCAwCvC,cAACsX,GAAA,EAAU,CACT3Y,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRpH,WAAY,GACZqK,aAAc,GAEhBzF,QAAS,WACT,EAAE,SAEF,cAACwP,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAO,yBACPoV,UAAU,MAAK,SAEzB,mBAAGd,KAAI,qDAAgD7J,EAAe0Q,UAAYvH,OAAO,SAAQ,SAChG,cAAC,KAAU,CAAChY,MAAO,CAAEqB,MAAO,uCAO3B,qBAAKrB,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,UAAW,SAW7B,OAAzBnH,EAAY8J,eACY/T,IAAzBiK,EAAY8J,UACZ9J,EAAY8J,SAAS9M,OAAS,EAC5B,cAAC+M,GAAA,EAAM,CACdwM,UAAW,CACVmE,mBAAmB,GAEX3f,aAAc8F,EAAekG,YAC7B9L,SAAU,SAAC5C,GACnBiB,QAAQC,IAAI,QAASlB,EAAM2R,OAAO7O,OAClC7B,QAAQC,IAAI,QAASyG,GACX,IAtnFFtH,EAAO2U,EAsnFCpD,EAAajK,EAAY8J,SAASI,MACtC,SAACC,GAAM,OAAKA,EAAOC,SAAW/R,EAAM2R,OAAO7O,KAAK,IAGlD7B,QAAQC,IAAI,eAAgB0Q,QACTlU,IAAfkU,GAA2C,OAAfA,IA3nFlCvR,EA4nFWuR,EAAW5Y,GA5nFfgc,GA4nFmB,EA3nFxC9J,MAAMrO,EAAY,gBAAkBwD,EAAQ,wBAAyB,CACnEG,QAAS,CACP4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANwB,MAApBA,EAASC,QAGXhE,EAAM6E,MAAM,sBAGPd,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,aAAcuK,GAE1B,IAAMysC,OACiBx6C,IAArB+N,EAAaI,KAA0C,OAArBJ,EAAaI,IAC3Ce,KAAKC,MAAMH,KAAKjB,EAAaI,MAC7B,CAAC,EAIP,GAHA5K,QAAQC,IAAI,WAAYg3C,GAItBljC,QACsBtX,IAAtBw6C,EAAUhsC,SACY,OAAtBgsC,EAAUhsC,QACV,CACAjL,QAAQC,IAAI,wBAEexD,IAAzBiK,EAAY8J,UACa,OAAzB9J,EAAY8J,WAEZymC,EAAUzmC,SAAW9J,EAAY8J,eAIH/T,IAA9BiK,EAAYsN,eACkB,OAA9BtN,EAAYsN,gBAEZijC,EAAUjjC,cAAgBtN,EAAYsN,eAOxChU,QAAQC,IAAI,oBACZ,IAAIi3C,EAAcD,EAAUhsC,QAAQ2F,MAClC,SAAC3R,GAAM,OACLA,EAAOd,KAAKkH,gBAAkBkC,EAAepJ,KAAKkH,aAAa,IAGnE,GADArF,QAAQC,IAAI,gBAAiBi3C,GACT,OAAhBA,QAAwCz6C,IAAhBy6C,EAA2B,CACrD,IAAqB,aAEnB,IAAM17B,EAAQ07B,EAAYplC,WAAWgG,GAE/Bq/B,EAAa5vC,EAAeuK,WAAWlB,MAC3C,SAAC9C,GAAI,OAAKA,EAAK3P,KAAKkH,gBAAkBmW,EAAMrd,KAAKkH,aAAa,SAE7C5I,IAAf06C,EACFn3C,QAAQC,IAAI,uBAAwBub,GAEpC07B,EAAYplC,WAAWgG,GAAYq/B,CAErC,EAXF,IAAK,IAAIr/B,KAAYo/B,EAAYplC,WAAa,GAahD,MACExL,EAAM6E,MAAM,wBAA0B5D,EAAepJ,MAGvDoJ,EAAeuR,OAAS,GACxBvR,EAAesD,UAAW,EAG1BtD,EAAeuK,WAAaolC,EAAYplC,WACxCvK,EAAe0M,OAAS7U,EACxBmI,EAAekG,YAAcwpC,EAAUxpC,YAEvCjG,EAAkBD,GAClBZ,EAAeswC,EACjB,CACF,IACC/rC,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,IAqiFY,EACArM,OAAK,GACH+H,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQM,cAAY,gCAC1BR,EAAME,QAAQO,YAAU,sBAClC,SAAO,uBACN,IAAE,2BACE,IAAE,6BACAT,EAAME,QAAQS,cAAY,GAE1C4X,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAEd,SAEDyM,EAAY8J,SAASrZ,KAAI,SAACoB,EAAMmF,GAC/B,OACE,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EAAKuY,QAAQ,SAEnBvY,EAAKuY,SAPDpT,EAUX,MAEA,UAGR,cAACgU,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAG1B,sBAAKnB,MAAO,CAACwH,QAAS,QAAQ,UAC7B,sBAAKxH,MAAO,CAACiV,KAAM,GAAG,UACrB,cAACpN,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,yBAAyB,kBACpD,cAACmH,EAAA,EAAS,CACTxI,MAAOC,EAAME,QAAQe,eACrBwH,WAAY,CACX1I,MAAOC,EAAME,QAAQiB,qBAEtBqH,WAAS,EACTpH,MAAM,UACN2H,YAAa6F,EAAerI,MAC5BuC,aAAc8F,EAAerI,MAC7ByC,SAAU0tC,EACV/0B,OAAQ,SAAC3iB,GACR,IAAMwG,EAAOxG,EAAE+Y,OAAO7O,MAChBu1C,EAAkB,IAAIP,GAAUxxC,cAAc7G,WAAW,IAAK,KAC9D6sC,EAAU,IAAIltC,EAAKkH,cAAc7G,WAAW,IAAK,KAMvD,QAA0B/B,IAAtB0Z,EAAS4d,UAAgD,OAAtB5d,EAAS4d,SAC/C,IAAK,IAAI5uB,KAAOgR,EAAS4d,SACxB,IAAK,IAAI/tB,KAAUmQ,EAAS4d,SAAS5uB,GAAKkyC,WAAY,CACrD,IAAMC,EAAYnhC,EAAS4d,SAAS5uB,GAAKkyC,WAAWrxC,GAC9CuxC,EAAcD,EAAUjzB,OACxBmzB,EAAmBF,EAAU7yB,YAInC,GAAI8yB,EAAY11C,MAAMgD,SAAS,KAC9B,IAGC,IAFA,IAAI4yC,GAAO,EACPC,EAAW,IACF,CACZD,GAAO,EAKP,IAAM99B,EAAa49B,EAAY11C,MAAMwD,cAAcub,QAAQw2B,EAAiBM,GAC5E,GAAI/9B,IAAe+9B,GAA2B,IAAf/9B,EAC9B,MAGD,KAAIA,GAAc,GAoBjB,MAdA,GALA+9B,EAAW/9B,EAAW0xB,EAAQ3nC,OAK1B6zC,EAAY11C,MAAM6B,OAASiW,EAAWy9B,EAAgB1zC,OAAQ,CAGjE,GAAc,OADA6zC,EAAY11C,MAAM8X,EAAWy9B,EAAgB1zC,QAAQynC,MADrD,iBAGb,QAEF,CAEAnrC,QAAQC,IAAI,cAAekW,EAAS4d,SAAS5uB,GAAKkyC,WAAWrxC,GAAQqe,OAAOxiB,OAC5E,IAAM81C,EAActM,EAAQ3nC,OAAO0zC,EAAgB1zC,OASpD,GARC6zC,EAAY11C,MAAQ01C,EAAY11C,MAAMtD,UAAU,EAAGob,GAAc0xB,EAAUkM,EAAY11C,MAAMtD,UAAUob,EAAWg+B,EAAYtM,EAAQ3nC,OAAQ6zC,EAAY11C,MAAM6B,QAEhK1D,QAAQC,IAAI,QAASkW,EAAS4d,SAAS5uB,GAAKkyC,WAAWrxC,GAAQqe,OAAOxiB,OAMnE41C,GAAO,EACV,KAGF,CAGD,CAFQ,MAAO9/C,GACdqI,QAAQC,IAAI,4CAA6CtI,EAC1D,CAGD,GAAI6/C,EAAiB31C,MAAMgD,SAAS,KACnC,IAGC,IAFI4yC,GAAO,EACPC,EAAW,IACF,CACZD,GAAO,EAKP,IAAM99B,EAAa69B,EAAiB31C,MAAMwD,cAAcub,QAAQw2B,EAAiBM,GACjF,GAAI/9B,IAAe+9B,GAA2B,IAAf/9B,EAC9B,MAGD,KAAIA,GAAc,GAoBjB,MAdA,GALA+9B,EAAW/9B,EAAW0xB,EAAQ3nC,OAK1B8zC,EAAiB31C,MAAM6B,OAASiW,EAAWy9B,EAAgB1zC,OAAQ,CAGtE,GAAc,OADA8zC,EAAiB31C,MAAM8X,EAAWy9B,EAAgB1zC,QAAQynC,MAD1D,iBAGb,QAEF,CAEAnrC,QAAQC,IAAI,cAAekW,EAAS4d,SAAS5uB,GAAKkyC,WAAWrxC,GAAQye,YAAY5iB,OACjF,IAAM81C,EAActM,EAAQ3nC,OAAO0zC,EAAgB1zC,OASpD,GARC8zC,EAAiB31C,MAAQ21C,EAAiB31C,MAAMtD,UAAU,EAAGob,GAAc0xB,EAAUmM,EAAiB31C,MAAMtD,UAAUob,EAAWg+B,EAAYtM,EAAQ3nC,OAAQ8zC,EAAiB31C,MAAM6B,QAEpL1D,QAAQC,IAAI,QAASkW,EAAS4d,SAAS5uB,GAAKkyC,WAAWrxC,GAAQye,YAAY5iB,OAMxE41C,GAAO,EACV,KAGF,CAGD,CAFQ,MAAO9/C,GACdqI,QAAQC,IAAI,4CAA6CtI,EAC1D,CAEF,CAIF,IAAK,IAAIwN,KAAOgR,EAASlL,QACxB,GAAIkL,EAASlL,QAAQ9F,GAAKpN,KAAOwP,EAAexP,GAIhD,IAAK,IAAIiO,KAAUmQ,EAASlL,QAAQ9F,GAAK2M,WAAY,CACpD,IAAM0J,EAAQrF,EAASlL,QAAQ9F,GAAK2M,WAAW9L,GAC/C,GAAKwV,EAAM3Z,MAAMgD,SAAS,KAS1B,IAGC,IAFI4yC,GAAO,EACPC,EAAW,IACF,CACZD,GAAO,EAKP,IAAM99B,EAAa6B,EAAM3Z,MAAMwD,cAAcub,QAAQw2B,EAAiBM,GACtE,GAAI/9B,IAAe+9B,GAA2B,IAAf/9B,EAC9B,MAGD,KAAIA,GAAc,GAoBjB,MAdA,GALA+9B,EAAW/9B,EAAW0xB,EAAQ3nC,OAK1B8X,EAAM3Z,MAAM6B,OAASiW,EAAWy9B,EAAgB1zC,OAAQ,CAG3D,GAAc,OADA8X,EAAM3Z,MAAM8X,EAAWy9B,EAAgB1zC,QAAQynC,MAD/C,iBAGb,QAEF,CAEAnrC,QAAQC,IAAI,cAAekW,EAASlL,QAAQ9F,GAAK2M,WAAW9L,GAAQnE,OACpE,IAAM81C,EAActM,EAAQ3nC,OAAO0zC,EAAgB1zC,OASpD,GARC8X,EAAM3Z,MAAQ2Z,EAAM3Z,MAAMtD,UAAU,EAAGob,GAAc0xB,EAAU7vB,EAAM3Z,MAAMtD,UAAUob,EAAWg+B,EAAYtM,EAAQ3nC,OAAQ8X,EAAM3Z,MAAM6B,QAExI1D,QAAQC,IAAI,QAASkW,EAASlL,QAAQ9F,GAAK2M,WAAW9L,GAAQnE,OAM3D41C,GAAO,EACV,KAGF,CAGD,CAFQ,MAAO9/C,GACdqI,QAAQC,IAAI,4CAA6CtI,EAC1D,CACD,CAGDqI,QAAQC,IAAI,2EACZyjB,EAAYvN,GACHkN,EAAUqB,KAAKC,UACxBkyB,GAAY14C,CACb,OAID,qBAAKzF,MAAO,CAACiV,KAAM,EAAG1T,WAAY,GAAI,SACrC,cAACoU,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,4CACPoV,UAAU,MAAK,SAEf,iCACC,cAAC3R,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,yBAAyB,mBACpD,cAACmH,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,aAC5BS,MAAO,QACPkE,MAAO,GACPoD,OAAQ,GACRlH,SAAU,OAEXiH,WAAY,CACX1I,MAAOC,EAAME,QAAQiB,qBAEtB4H,YAAa6F,EAAeqwC,gBAC5Bn2C,aAAc8F,EAAeqwC,gBAC7Bj2C,SAAU,SAAC5C,QACgBtC,IAAtBwzC,GACHA,EAAkBlxC,EAEpB,sBASiBtC,IAArBiK,EAAYvI,MACmB,OAAlCoJ,EAAeqR,qBACmBnc,IAAlC8K,EAAeqR,gBAC0B,IAAzCrR,EAAeqR,eAAelV,QAC9BmsC,EACI,qBAAKn3C,MAAO,CAAE+H,UAAW,IAAK,SAC5B,cAAC4N,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAO,4BACPoV,UAAU,MAAK,SAEf,+BACE,eAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACRyI,WAAS,EACTX,QAAQ,YACR3B,QAAS,WACPmB,QAAQC,IAAIsd,GAKZlH,GAA2B,EAC7B,EAAE,UAEF,cAAC,KAAO,CAAC3d,MAAO,CAAE0L,YAAa,MAAQ,gBAAc,IACpDsC,EAAYvI,cAKnB,UAC+B1B,IAAlC8K,EAAeqR,gBACgB,OAAlCrR,EAAeqR,gBACfrR,EAAeqR,eAAelV,OAAS,EACnC,sBAAKhL,MAAO,CAAE+H,UAAW,IAAK,UAC5B,cAACF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,yBAAyB,4BACpD,sBAAKrB,MAAO,CAAEwH,QAAS,QAAS,UAC9B,eAACuQ,GAAA,EAAM,CACZwM,UAAW,CACVmE,mBAAmB,GAEbu1B,QAAQ,kBACR90C,MAGe,IAFbzJ,OAAO05B,oBACLvqB,EAAeyZ,wBACftd,OACE,eACA6D,EAAeyZ,uBAErB9P,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,GACrBC,SAAU,MAGLiH,WAAS,EACTQ,SAAU,SAAChK,GACT,GAAuB,iBAAnBA,EAAE+Y,OAAO7O,MAA0B,CAIrC,IAAK,IAAIsD,KAHToC,EAAeyZ,uBAAyB,CAAC,EACzCzZ,EAAeoR,kBAAoB,GAEnBpR,EAAeuK,WAEzBvK,EAAeuK,WAAW3M,GAAK8M,gBACjC1K,EAAeuK,WAAW3M,GAAKtD,MAAQ,IAG3C2F,EAAkBD,GAClB8b,EAAUqB,KAAKC,SACjB,MACEpd,EAAeyZ,uBAAyBrpB,EAAE+Y,OAAO7O,MACjD0F,EAAeoR,kBAAoBhhB,EAAE+Y,OAAO7O,MAAM9J,GAClDyP,EAAkBD,GAClB8b,EAAUqB,KAAKC,SAEnB,EACAjsB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPsH,OAAQ,GACRnH,SAAUo1C,EAAkBp1C,SAAW,GACvCZ,aAAcX,EAAME,QAAQS,cAC5B,UAEF,cAAC2W,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAM,eAAc,SAEpB,gDAED0F,EAAeqR,eAAezhB,KAAI,SAACoB,GAElC,OACE,eAAC0X,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EAAK,UAEXA,EAAK2G,MAAK,OAAM3G,EAAKqS,IAAI6C,YAAW,MAPhClV,EAAKR,GAUhB,OAWF,cAACsW,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAO,4BACPoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACTtX,MAAM,UACdyG,QAAQ,WACA9H,MAAO,CAAC,EACRmG,QAAS,WACPwX,GAA2B,EAC7B,EAAE,SAEF,cAAC,KAAO,cAKd,UAEiB5Z,IAApB8yC,GAAiCA,GAAmBE,EAAa/rC,OAAS,EACzE,sBAAKhL,MAAO,CAAE+H,UAAW,QAAS,UAChC,cAACF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,yBAAyB,yBACpD,cAAC0W,GAAA,EAAM,CACXwM,UAAW,CACVmE,mBAAmB,GAEdvf,WACgCpF,IAA9B+yC,GAAyE,OAA9BA,QACR/yC,IAAnC+yC,EAA0BqI,MAAyD,OAAnCrI,EAA0BqI,KACtE17C,EAAU,QAAU,UACpBqzC,EAA0BqI,KAEhC3mC,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBkH,WAAS,EACTQ,SAAU,SAAChK,GACT,IAAMmgD,EAAMrI,EAAa7+B,MAAK,SAACmnC,GAAC,OAAKA,EAAEF,OAASlgD,EAAE+Y,OAAO7O,KAAK,IAC9D+tC,EAA6BkI,GAC7BvwC,EAAew3B,YAAc+Y,EAAID,KACjCrwC,EAAkBD,EACpB,EACA7O,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPsH,OAAQ,OACR/H,aAAcX,EAAME,QAAQS,cAC5B,SAEDm2C,EAAat4C,KAAI,SAACoB,EAAMmF,GACvB,OAAsB,IAAlBnF,EAAKy/C,SACA,KAIP,cAAC/nC,GAAA,EAAQ,CAGPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EAAKs/C,KAAK,SAEhBt/C,EAAKs/C,MAPDt/C,EAAKs/C,KAUhB,SAGF,UAE8Bp7C,IAAjC0Z,EAAS8d,qBACuB,OAAjC9d,EAAS8d,qBACT9d,EAAS8d,oBAAoBvwB,OAAS,EACpC,sBAAKhL,MAAO,CAAE+H,UAAW,QAAS,UAChC,cAACF,EAAA,EAAU,4CACX,eAACkQ,GAAA,EAAM,CACXwM,UAAW,CACVmE,mBAAmB,GAEdvf,WACwCpF,IAAtC8K,EAAe0wC,oBAC0B,OAAtC1wC,EAAe0wC,yBAC4Bx7C,IAA3C8K,EAAe0wC,mBAAmB95C,MACS,OAA3CoJ,EAAe0wC,mBAAmB95C,MAClCoJ,EAAe0wC,mBAAmB95C,KAAKuF,OAAS,EAC/C6D,EAAe0wC,mBAAmB95C,KAClC,eAEN+S,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBkH,WAAS,EACTQ,SAAU,SAAChK,GACT,GAAuB,iBAAnBA,EAAE+Y,OAAO7O,MACX0F,EAAe0wC,mBAAqB,CAAE95C,KAAM,oBACvC,CACL,IAAM0D,EAAQsU,EAAS8d,oBAAoBrjB,MACzC,SAACmnC,GAAC,OAAKA,EAAE55C,OAASxG,EAAE+Y,OAAO7O,KAAK,IAElC0F,EAAe0wC,mBAAqBp2C,CACtC,CACA2F,EAAkBD,GAClB8b,EAAUqB,KAAKC,SACjB,EACAjsB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPsH,OAAQ,OACR/H,aAAcX,EAAME,QAAQS,cAC5B,UAEF,cAAC2W,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAM,eAAc,SAEpB,gDAEF,cAAC6P,GAAA,EAAO,CAAChZ,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,cAChD+c,EAAS8d,oBAAoB98B,KAAI,SAACoB,GAAI,OACrC,cAAC0X,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOtJ,EAAK4F,KAAK,SAEhB5F,EAAK4F,MACG,UAIf,KAEJ,cAACuT,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,sBAAKnB,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,eAOjBhE,IAAzBizC,EACC,cAACwD,GAAA,EAAY,CACXn7C,GAAG,gBACHo7C,eAAa,EACbtxC,MAAO0F,EACPkxB,QAAS,CAAEiW,UAAWjW,EAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGjBm+C,cAAe,SAACxK,EAAQ,GAAqB,IAEtCyK,EAF8B,EAAVC,WAEQ/yC,cAGlC,OAFAqoC,EAAUA,EAAQn7B,QAAO,SAAAgf,GAAC,OAAIA,EAAEpzB,KAAKK,WAAW,IAAK,KAAK6G,cAAcR,SAASszC,IAAmB5mB,EAAE/jB,YAAYnI,cAAcR,SAASszC,EAAe,GAGzJ,EACM9E,eAAgB,SAACC,GACf,YACa72C,IAAX62C,GACW,OAAXA,QACgB72C,IAAhB62C,EAAOn1C,MACS,OAAhBm1C,EAAOn1C,KAEA,MAIPm1C,EAAOn1C,KAAKE,OAAO,GAAGC,cAAgBg1C,EAAOn1C,KAAKI,UAAU,IAC5DC,WAAW,IAAK,IAGpB,EACAkvC,QAAS2K,GAAU3xC,EAAYuE,QAAS,SACxC9J,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,QAEC92C,IAAb82C,GAAuC,OAAbA,GAC5B7D,EAAqB,CAC5Bh/B,OAAQ,CACP7O,MAAO0xC,EAASp1C,OAId,EACAq1C,aAAc,SAACj7C,GACb,IAAIsZ,EAAgBtZ,EAAK4F,UAER1B,IAAflE,EAAK2G,OACU,OAAf3G,EAAK2G,OACL3G,EAAK2G,MAAMwE,OAAS,IAEpBmO,EAAgBtZ,EAAK2G,OAGvB,IAAIo5C,EAAuB//C,EAAKiV,YAKtC8qC,OAF6B77C,IAArBlE,EAAKiV,aAAkD,OAArBjV,EAAKiV,YAExB,sDAEA,gBAAgB8qC,EAGjC,IACM7E,EADW5d,GAAY,CAAE13B,KAAM5F,EAAK4F,OACjBs4B,aAEzB5kB,GACEA,EAAcxT,OAAO,GAAGC,cACxBuT,EAActT,UAAU,IACxBC,WAAW,IAAK,KAEzB,IAAI0L,EAAS,GACTquC,EAAmB,GAkBvB,GAjBIhgD,EAAK4F,KAAK0G,SAAS,QACtBqF,EAAS,MACC3R,EAAK4F,KAAK0G,SAAS,SAC7BqF,EAAS,OACC3R,EAAK4F,KAAK0G,SAAS,QAC7BqF,EAAS,MACC3R,EAAK4F,KAAK0G,SAAS,UAC7BqF,EAAS,QACC3R,EAAK4F,KAAK0G,SAAS,WAC7BqF,EAAS,SACC3R,EAAK4F,KAAK0G,SAAS,YAC7BqF,EAAS,UACC3R,EAAK4F,KAAK0G,SAAS,cAC7BqF,EAAS,WAINA,EAAOxG,OAAS,QAA0BjH,IAArBlE,EAAKiV,aAAkD,OAArBjV,EAAKiV,aAAwBjV,EAAKiV,YAAY3I,SAAS,QAAS,CAC1H,IAAI2zC,EAAW,GACTC,EAAYlgD,EAAKiV,YAAY7I,MAAM,MACzC,IAAK,IAAIgnC,KAAQ8M,EAChB,GAAIA,EAAU9M,GAAM9mC,SAAS,SAAW4zC,EAAU9M,GAAM9mC,SAAS,OAAQ,CACxE,IAAM6zC,EAAWD,EAAU9M,GAAMhnC,MAAM,KACvC,IACC6zC,EAAW,IAAIE,EAASzgD,MAAM,EAAGygD,EAASh1C,QAAQuB,KAAK,IAIxD,CAHE,MAAOtN,GACRqI,QAAQC,IAAI,4BACZu4C,EAAW,IAAIE,EAASzgD,MAAM,EAAGygD,EAASh1C,OAAO,GAAGuB,KAAK,IAC1D,CAIA,KACD,CAGGuzC,EAAS90C,OAAS,GACjB80C,EAAS3zC,SAAS,OACrB2zC,EAAWA,EAAS7zC,MAAM,KAAK,IAG5B6zC,EAAS3zC,SAAS,OACrB2zC,EAAWA,EAAS7zC,MAAM,KAAK,IAEhC4zC,EAAgB,UAAMruC,EAAM,YAAIsuC,IAEhCx4C,QAAQC,IAAI,+BAEd,CAEO,OACE,cAACoO,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAOw7C,EACPpmC,UAAU,OAAM,SAEzB,gCACC,sBAAKxZ,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,GAAI,UAChD,sBACCtR,MAAO,CACN0L,YAAa,GACb3D,UAAW,OACXuJ,aAAc,GACb,SAEDypC,IAEF,sBAAM/6C,MAAO,CAACsR,aAAc,GAAI,SAAE6H,OAElC0mC,EAAiB70C,OAAS,EAC1B,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,GAAK,SACxE83C,IAED,SAIA,EACA7E,YAAa,SAAC9Q,GACnB,QAA0BnmC,IAAtBmmC,EAAO+Q,YAAkD,OAAtB/Q,EAAO+Q,iBAAmDl3C,IAA5BmmC,EAAO+Q,WAAW9xC,OAAmD,OAA5B+gC,EAAO+Q,WAAW9xC,MAAgB,CAC/I,IAAM+xC,EAAW,CAAC,OAAQ,MAAO,SACjC,IAAK,IAAIzuC,KAAOyuC,EACf,GAAIhR,EAAO+Q,WAAW9xC,MAAM+C,WAAWgvC,EAASzuC,IAAO,CACtDy9B,EAAO+Q,WAAW9xC,MAAQ+gC,EAAO+Q,WAAW9xC,MAAMoK,QAAQ2nC,EAASzuC,GAAK,IAAK,IAAK,GAC9Ey9B,EAAO+Q,WAAW9xC,MAAM6B,OAAS,IACpCk/B,EAAO+Q,WAAW9xC,MAAQ+gC,EAAO+Q,WAAW9xC,MAAMxD,OAAO,GAAGC,cAAcskC,EAAO+Q,WAAW9xC,MAAMtD,UAAU,IAE7G,KACD,CAEF,CAEO,OACN,cAAC2C,EAAA,EAAS,yBACTnH,MAAM,UACNyG,QAAQ,QACR9H,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,eACNsB,QAAQ,aAGL,IAEA,KAwCJ,qBACE9H,MAAO,CACL+H,UAAW,OACX8nB,YAAa,QACb6d,YAAa,MACbp8B,aAAc8lC,EAAiB,GAAK,KACpC,SAEF,cAACe,GAAkB,CAEjBtpC,eAAgBA,GADXA,EAAexP,WAOhC,ECx/GMoB,IClIU0xB,UAAU,8iDDkIL,WACfzxB,GAAa,UA0BZ,SAASi/C,GAAUM,EAAOxzC,GAC/B,YAAc1I,IAAVk8C,EACK,GAGLxzC,EAAIP,WAAW,MAAQO,EAAIzB,OAAS,GACtCyB,EAAMA,EAAIlN,MAAM,EAAGkN,EAAIzB,QAChBi1C,EACJC,MAAK,SAAUb,EAAGc,GACjB,IAAItnB,EAAIwmB,EAAE5yC,GACNqsB,EAAIqnB,EAAE1zC,GACV,OAAOosB,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,CAClC,IACCsnB,gBAGSr8C,IAAVk8C,GAAiC,OAAVA,EAClB,GAGFA,EAAMC,MAAK,SAAUb,EAAGc,GAC7B,IAAItnB,EAAIwmB,EAAE5yC,GACNqsB,EAAIqnB,EAAE1zC,GACV,OAAOosB,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,CAClC,GACF,CAEO,SAASunB,GAAY5zC,EAAK6zC,GAC/B,QAAkBv8C,IAAdu8C,EAAJ,CAIA,IAAIC,EAAMD,EAAUr0C,MAAM,KAAK,GAE7Bu0C,EAAa,GACbC,GAA0C,IAA5BH,EAAUp4B,QAAQ,KAAco4B,EAAUr0C,MAAM,KAAK,GAAK,GAE1E,GAAoB,KAAhBw0C,EAAoB,CAEtB,IAAK,IAAIpV,GADTmV,EAAaC,EAAYx0C,MAAM,MACPjB,OAAS,EAAGqgC,GAAK,EAAGA,GAAK,EACvCmV,EAAWnV,GAAGp/B,MAAM,KAAK,KACnBQ,GACZ+zC,EAAWzkB,OAAOsP,EAAG,GAGzBkV,EAAMA,EAAM,IAAMC,EAAWj0C,KAAK,IACpC,CAEA,MAAY,MAARg0C,EACK,GAGFA,CAtBP,CAuBF,CA5EAvuB,OAAcC,IACdD,OAAc7O,IACd6O,OAAc0uB,MACd1uB,OAAc2uB,MA2Ed,I,GAAM7jB,GAAYC,YAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,sBAEfkmB,KAAM,CACJ,6BAA8B,CAC5B/0C,OAAQ,oBACRK,MAAO,QACPI,SAAU,GACV,uBAAwB,CACtBN,gBAAiB,QAEnB,sBAAuB,CACrBA,gBAAiB,UAIvB60C,UAAW,CACT30C,MAAO,QAEP,2CAA4C,CAC1CwuB,YAAa,cAKb+wB,GAAW,MACX1uB,GAAU,GAIVzvB,GAAeC,KAAc,aAAc,oCAgndlCm+C,GA/mdS,SAACC,GAAkB,IAAD,EAChC59C,EAA8C49C,EAA9C59C,UAAWwK,EAAmCozC,EAAnCpzC,WAAYC,EAAuBmzC,EAAvBnzC,SAAUnK,EAAas9C,EAAbt9C,SACnCwa,EAAe9a,EAAY,iBAC3B0K,EAAQC,cACXC,EAAWC,cAETm8B,EAAS6W,cACXn+C,EAAQqQ,KAAKC,MAAMD,KAAKS,UAAUotC,IACtCl+C,EAAM6vC,MAAQ,CAAC,EACf7vC,EAAM6vC,MAAMvI,OAASA,EAEpB,IAAM8W,EAAQ,UACRC,EAAS,UAIXC,EAAe,GACnB,EAAwCh9C,IAAMC,UAAS,GAAK,mBAArD+J,EAAY,KAAEC,EAAe,KACpC,EAAkBhK,mBAASg9C,IAAe,mBAAnCC,GAAO,KACd,GAAoBl9C,IAAMC,WAAU,qBAA7BT,GAAE,MAAEovB,GAAK,MAEhB,GAAsC5uB,IAAMC,SAAS,GAAE,qBAAhDk9C,GAAW,MAAE7K,GAAc,MAClC,GAA0DtyC,IAAMC,SAAS,CAAC,GAAE,qBAArEm9C,GAAqB,MAAEC,GAAwB,MACtD,GAA4Cr9C,IAAMC,SAAS,IAAG,qBAAvDq9C,GAAc,MAAEC,GAAiB,MACxC,GAAkCv9C,IAAMC,SAAS,IAAG,qBAA7C67B,GAAS,MAAEC,GAAY,MAC9B,GAA8C/7B,IAAMC,UAAS,GAAM,qBAA5D0yC,GAAe,MAAE6K,GAAkB,MAC1C,GAAsDx9C,IAAMC,UAAS,GAAM,qBAApEw9C,GAAmB,MAAEC,GAAsB,MAElD,GAAgC19C,IAAMC,SAAS,CAAC,GAAE,qBAA3CsZ,GAAQ,MAAEuN,GAAW,MAC5B,GAAwC9mB,IAAMC,SAAS,CAAC,GAAE,qBAArC09C,IAAF,MAAiB,OACpC,GAAsC39C,IAAMC,SAAS,CAAC,GAAE,qBAAjD29C,GAAW,MAAEC,GAAc,MAClC,GAAwD79C,IAAMC,SAAS,IAAG,qBAAnE69C,GAAoB,MAAEC,GAAuB,MACpD,GAAwC/9C,IAAMC,UAASlB,YAAwB,qBAAxEi/C,GAAY,MAAEC,GAAe,MACpC,GAAsCj+C,IAAMC,SAASlB,WAAW,EAAI,KAAI,qBAAjEm/C,GAAW,MAAEC,GAAc,MAClC,GAA4Cn+C,IAAMC,SAAS,CAAC,GAAE,qBAAvDm+C,GAAc,MAAEC,GAAiB,MACxC,GAAgCr+C,IAAMC,SAAS,IAAG,qBAA3CgoB,GAAQ,MAAEmW,GAAW,MAC5B,GAA0Bp+B,IAAMC,SAAS,CACzC,WAAc,CACb,aAEA,qBAJMgH,GAAK,MAAEq3C,GAAQ,MAKtB,GAAgCt+C,IAAMC,SAAS,IAAG,qBAA3C0jC,GAAQ,MAAE4a,GAAW,MAC5B,GAAwCv+C,IAAMC,SAAS,IAAG,qBAAnDu+C,GAAY,MAAEC,GAAe,MACpC,GAA0Cz+C,IAAMC,SAAS,IAAG,qBAArDy+C,GAAa,MAAEC,GAAgB,MACtC,GACE3+C,IAAMC,UAAS,GAAM,qBADhB2+C,GAAuB,MAAEC,GAA0B,MAE1D,GAAwC7+C,IAAMC,SAAS,CACrDmU,IAAK,EACL6Q,KAAM,EACNpB,SAAU,KACV,qBAJKsvB,GAAY,MAAEC,GAAe,MAMpC,GAA8BpzC,IAAMC,SAAS,IAAG,qBAAzC6+C,GAAO,MAAEC,GAAU,MAC1B,GAAwC/+C,IAAMC,SAAS6+C,GAAQh4C,QAAO,qBAA/Dk4C,GAAY,MAAEC,GAAe,MACrC,GAAwCj/C,IAAMC,SAAS,CAAC,GAAE,qBAAnDi/C,GAAY,MAAEC,GAAe,MAEnC,GAAkDn/C,IAAMC,SAAS,IAAG,qBAA7DuZ,GAAiB,MAAEuN,GAAoB,MAC9C,GAAoD/mB,IAAMC,UAAS,GAAM,qBAAlEm/C,GAAkB,MAAE5M,GAAqB,MAChD,GACExyC,IAAMC,UAAS,GAAM,qBADhBo/C,GAA2B,MAAEC,GAA8B,MAElE,GACEt/C,IAAMC,UAAS,GAAM,qBADhB+mB,GAAuB,MAAEvN,GAA0B,MAE1D,GAAsDzZ,IAAMC,UAAS,GAAM,qBAApEs/C,GAAmB,MAAEC,GAAsB,MAClD,GAAoDx/C,IAAMC,SAAS,IAAG,qBAA/D0gB,GAAkB,MAAE5G,GAAqB,MAGhD,GAAwC/Z,IAAMC,UAAS,GAAM,qBAAtDm8B,GAAY,MAAEC,GAAe,MACpC,GAAoCr8B,IAAMC,UAAS,GAAM,qBAAlDw/C,GAAU,MAAEC,GAAa,MAChC,GAAkD1/C,IAAMC,UAAS,GAAK,qBAA/D0/C,GAAiB,MAAEC,GAAoB,MAC9C,GACE5/C,IAAMC,UAAS,GAAM,qBADhBgzC,GAAsB,MAAE4M,GAAyB,MAExD,GAAgD7/C,IAAMC,UAAS,GAAM,qBAA9D6/C,GAAgB,MAAEC,GAAmB,MAC5C,GAAoD//C,IAAMC,UAAS,GAAM,qBAAlE+/C,GAAkB,MAAEC,GAAqB,MAChD,GAA0CjgD,IAAMC,SAAS,IAAG,qBAArDigD,GAAa,MAAEC,GAAgB,MACtC,GACEngD,IAAMC,UAAS,GAAM,qBADhB2mB,GAA0B,MAAElN,GAA6B,MAG1D0mC,GACc,qBAAX3gD,aAA8CI,IAApBJ,OAAOC,SACpC,GACAD,OAAOC,SAASgP,SAGtB,GAAsC1O,IAAMC,SAAS,GAAE,qBAAhDogD,GAAW,MAAEC,GAAc,MAElC,GAA4CtgD,IAAMC,SAAS,CAAC,GAAE,qBAAvDsgD,GAAc,MAAEpO,GAAiB,MACxC,GAA0CnyC,IAAMC,UAAS,GAAM,qBAAxDugD,GAAa,MAAEjO,GAAgB,MAEtC,GAAgDvyC,IAAMC,SAAS,MAAK,qBAA7DwgD,GAAgB,MAAEC,GAAmB,MAE5C,GAAsC1gD,IAAMC,SAAS,CAAC,GAAE,qBAAjD0gD,GAAW,MAAEC,GAAc,MAClC,GAAgD5gD,IAAMC,SAAS,CAAC,GAAE,qBAA3D4gD,GAAgB,MAAEC,GAAmB,MAC5C,GAA4C9gD,IAAMC,SAAS,CAAC,GAAE,qBAAvD8gD,GAAc,MAAEC,GAAiB,MACxC,GAAgChhD,IAAMC,UAAS,GAAM,qBACrD,IADe,MAAa,MACYD,IAAMC,SAAS,CACrD00B,EAAG,EACHC,EAAG,KACH,qBAGF,IANmB,MAAiB,MAMU50B,IAAMC,SAAS,CAAC,IAAE,qBAAzDghD,GAAe,MAAEC,GAAkB,MAC1C,GAA8ClhD,IAAMC,SAAS,CAAC,GAAE,qBAAzDkhD,GAAe,MAAE/O,GAAkB,MAC1C,GAAwDpyC,IAAMC,SAAS,CAAC,GAAE,qBAAnEmhD,GAAoB,MAAEC,GAAuB,MACpD,GAAwCrhD,IAAMC,SAAS,CAAC,GAAE,qBAAnDqhD,GAAY,MAAEjP,GAAe,MACpC,GAAkDryC,IAAMC,SAAS,CAAC,GAAE,qBAA7DshD,GAAiB,MAAEC,GAAoB,MAE9C,GAA8BxhD,IAAMC,SAAS,IAAG,qBAAzCwhD,GAAO,MAAEC,GAAU,MAE1B,GAAwB1hD,IAAMC,SAAS,IAAG,qBAAnCiK,GAAI,MAAEC,GAAO,MACpB,GAAwCnK,IAAMC,SAAS,IAAG,qBAAnDmK,GAAY,MAAEC,GAAe,MACpC,GAA8CrK,IAAMC,SAAS,IAAG,qBAAzD0hD,GAAe,MAAEC,GAAkB,MAE1C,GAAwC5hD,IAAMC,SAAS,IAAG,qBAAnD4yC,GAAY,MAAEgP,GAAe,MACpC,GAAsC7hD,IAAMC,UAAS,GAAM,qBAApD6hD,GAAW,MAAEC,GAAc,MAClC,GAAkC/hD,IAAMC,UAAS,GAAM,qBAAhD+hD,GAAS,MAAEC,GAAY,MAE9B,GAAoCjiD,IAAMC,UAAS,GAAM,qBAAlDiiD,GAAU,MAAEC,GAAa,MAEhC,GAAsCniD,IAAMC,SAAS,CAAC,GAAE,qBAAjD6J,GAAW,MAAEC,GAAc,MAClC,GAA4C/J,IAAMC,SAAS,CAAC,GAAE,qBAAvD0K,GAAc,MAAEC,GAAiB,MACxC,GAAkE5K,IAAMC,SAAS,CAAC,GAAE,qBAA7E2yC,GAAyB,MAAEI,GAA4B,MAE9D,GAAgDhzC,IAAMC,SAAS,CAAC,GAAE,qBAA3DmiD,GAAgB,MAAEC,GAAmB,MAE5C,GAAgDriD,IAAMC,UAAS,GAAM,qBAA9DqiD,GAAgB,MAAEC,GAAmB,MAC5C,GAAoDviD,IAAMC,UAAS,GAAM,qBAAlEuiD,GAAkB,MAAEC,GAAqB,MAChD,GAAoDziD,IAAMC,SAAS,GAAE,qBAA9DyiD,GAAkB,MAAEC,GAAqB,MAChD,GAA0C3iD,IAAMC,SAAS,CAAC,GAAE,qBAArD2iD,GAAa,MAAEC,GAAgB,MACtC,GAAoC7iD,IAAMC,UAAS,GAAM,qBAAlD6iD,GAAU,MAAEC,GAAa,MAChC,GAAkC/iD,IAAMC,SAAS,IAAG,qBAA7C+iD,GAAS,MAAEvP,GAAY,MAC/B,GAA0DzzC,IAAMC,UAAS,GAAM,qBAAxEgjD,GAAqB,MAAEC,GAAwB,MACrD,GAAsCljD,IAAMC,UAAS,GAAM,qBAApDkjD,GAAW,MAAEC,GAAc,MAElC,GAAkCpjD,IAAMC,UAAS,GAAK,qBAA/CuzC,GAAS,MAAED,GAAY,MAG9B,GAAuBtzC,mBAAS,IAAG,qBAAzBwmB,IAAF,MAAW,OAEnB,GAAoDzmB,IAAMC,SAAS,IAAG,qBAA/Dga,GAAkB,MAAEopC,GAAqB,MAChD,GAA8DrjD,IAAMC,SAAS,GAAE,qBAAxEqjD,GAAuB,MAAEC,GAA0B,MAIpDC,QACe3jD,IAAnBnB,EAAMY,UACwB,OAA9BZ,EAAMY,SAASmU,iBACe5T,IAA9BnB,EAAMY,SAASmU,aAC8B,IAAzC/U,EAAMY,SAASmU,WAAWgwC,WAE1BlkD,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KACZ+jD,GAAankD,GAAU,GAAK,GAC5BokD,GAAsBpkD,GAAU,CAAC,SAAW,CAAC,SAAU,SAEvDs8B,GAAUjD,KAEhB,GAjQF,WACE,MAAwB34B,mBAAS,CAAC,EAAG,IAAG,mBAAjC2W,EAAI,KAAEgtC,EAAO,KASpB,OARAC,2BAAgB,WACd,SAASC,IACPF,EAAQ,CAACnkD,OAAOupC,WAAYvpC,OAAOskD,aACrC,CAGA,OAFAtkD,OAAO2H,iBAAiB,SAAU08C,GAClCA,IACO,kBAAMrkD,OAAO4H,oBAAoB,SAAUy8C,EAAY,CAChE,GAAG,IACIltC,CACT,CAsPkCotC,GAAe,qBAAxCC,GAAS,MAAEC,GAAU,MAEvBC,GAAiBplD,WAAWklD,GAAY/F,GAAc+F,GAAY/F,GAAc,GAGrF,GAAgCj+C,mBAAS,IAAG,qBAArCilB,GAAQ,MAAEk/B,GAAW,MAG5B,GAAwBz3C,YAAY,CAClCC,SAAU,IACVC,gBAAgB,EAChBC,SAAU,WACRu3C,IACF,IALMr3C,GAAK,GAALA,MAAOC,GAAI,GAAJA,KAyCf9I,qBAAU,WACV,IAAgC,IAA5B6iB,SAAgEnnB,IAA5B8K,GAAe0Q,WACtDjY,QAAQC,IAAI,4BAAD,OAA6BsH,GAAe0Q,gBAIlBxb,IAAjC8K,GAAeoe,eAAgE,OAAjCpe,GAAeoe,eAAkE,IAAxCpe,GAAeoe,cAAcjiB,QAAc,CAGrI,IAAM0pB,GAAoC,IAA1B1mB,GAAYqE,UAAsB,SAAW,UA1C3C+P,EA2CPvT,GAAe0Q,SA3CC3b,EA2CS8wB,EA3CCtc,EA2CQvJ,GAAekG,YA1C5DxD,MAAM,GAAD,OAAIrO,EAAS,wBAAgBkf,EAAO,qBAAaxe,EAAQ,oBAAYwU,GAAW,CACnFvR,QAAS,CACP4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANIA,EAASC,OAMND,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,cACY9O,IAAxB+N,EAAasJ,aAAgDrX,IAAxB+N,EAAasJ,QAAwBtJ,EAAasJ,OAAOpQ,OAAS,IACrG8G,EAAasJ,OAAOjP,SAAS,mBAAqB2F,EAAasJ,OAAOpQ,OAAS,KACnFgD,GAAYif,cAAgBnb,EAAasJ,OACzCnN,GAAeD,IACf2c,GAAUqB,KAAKC,UAKhB,IACCzZ,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GAcH,CA5CkB,IAAC+V,EAASxe,EAAUwU,CA8CxC,GAAG,CAAC8S,KAEH,IAAMuZ,GAAwB,SAAC+jB,GAC7Bj3C,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAIb,OAAOD,EAASE,OAHdvK,QAAQC,IAAI,mCAIhB,IACCvI,MAAK,SAAC8S,GACL,QAAqB/N,IAAjB+N,IACFmuB,GAAanuB,GAGT02C,GAAiB,GAAG,CAC5B,IAAIC,EAAc,CAAC,EACP5nC,EAAUpD,GAASmD,SAAS4nC,GAClC,GAAI3nC,EAAQzH,WAAWpO,QAAU,EAAG,CAAC,IAAD,aAEhC,IAAM8X,EAAQjC,EAAQzH,WAAW3M,GAEjC,GAAmB,aAAfqW,EAAMrd,KACR,GAAIqd,EAAM3Z,QAAUsU,GAASpe,GAC3B0iD,GAAetkC,IACzBgrC,EAAchrC,OACC,CACL,IAAMirC,EAAM52C,EAAaoG,MACvB,SAACrY,GAAI,OAAKA,EAAKR,KAAOyjB,EAAM3Z,KAAK,SAEvBpF,IAAR2kD,GAAqB5G,GAAYziD,KAAOqpD,EAAIrpD,KACzDopD,EAAcC,EACH3G,GAAe2G,GAEnB,CAGF,GACiB,cAAf5lC,EAAMrd,WACU1B,IAAhB+e,EAAM3Z,OACU,OAAhB2Z,EAAM3Z,MAEZ,GAAIzJ,OAAO05B,oBAAoBqvB,GAAaz9C,OAAS,EAAG,CAC1D,IAAMwzC,EAAciK,EAAYl2C,QAAQ2F,MAAK,SAAA3R,GAAM,OAAIA,EAAOlH,KAAOyjB,EAAM3Z,KAAK,IAC5D,OAAhBq1C,QAAwCz6C,IAAhBy6C,GAClByD,GAAwBzD,EAEnC,MACUyD,GAAwBn/B,EAAM3Z,MAEhC,EA/BH,IAAK,IAAIsD,KAAOoU,EAAQzH,WAAa,GAiCvC,CACF,CAEJ,IACC5G,OAAM,SAACC,GAENnL,QAAQC,IAAI,mBAAoBkL,EAAMpG,WACxC,GACJ,EAkEA,IAwBMs8C,GAAc,WAClBp3C,MAAMrO,EAAY,sBAAuB,CACvCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,uCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IAEiB,IAAzBA,EAAae,cACiB9O,IAAxB+N,EAAa82C,QACiB,IAA/B92C,EAAa82C,OAAO59C,QACI,OAAxB8G,EAAa82C,QA5CnBr3C,MAAMrO,EAAY,yBAA0B,CAC1CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL+vC,GAAgB/vC,EAClB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAI,iBAAkBkL,EAChC,KA6B2B,IAAzBX,EAAae,SACZgvC,GAAgB/vC,EAEnB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAI,mBAAoBkL,EAClC,GACJ,EAEMsS,GAAgB,SAACwD,GACrBhX,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU6U,GACrB7W,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,2CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,SAGhBiS,IAAqB,GAAM,GAC3BnH,IAA2B,IAH3B/P,EAAM6E,MAAM,2BAA6BX,EAAasJ,OAQ1D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,mBAAoBkL,EAAMpG,WACxC,GACJ,EAEM+R,GAAuB,SAAC/e,EAAIwpD,GAChCt3C,MAAMrO,EAAY,qBAAuB7D,EAAK,cAAe,CAC3DmS,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,6CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,GAAIA,EAAa9G,OAAS,EAAG,CAI3B,IAAM89C,EAAUnJ,GAAU7tC,EAAc,eACxCy1C,GAAsBuB,GAEtB,IAAM54C,EACc,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SACpC,GACAD,OAAOC,SAAS+V,OAElB6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,gBAUjD,QARmBjlD,IAAjB8kD,GACiB,OAAjBA,GACAA,EAAa79C,OAAS,SACTjH,IAAZyhC,GAAqC,OAAZA,GAAuC,IAAnBA,EAAQx6B,UAEtDw6B,EAAUqjB,QAGI9kD,IAAZyhC,GAAqC,OAAZA,GAAoBA,EAAQx6B,OAAS,EAAG,CACnE,IAAMi+C,EAAYn3C,EAAaoG,MAC7B,SAACrY,GAAI,OAAKA,EAAKgpD,eAAiBrjB,CAAO,IAGzC,GAAkB,OAAdyjB,QAAoCllD,IAAdklD,EAAyB,CACjDlC,GAAiBkC,GACjBpC,GAAsB,GACtB31C,KAEAq1C,GAAoB,CAClBsC,aAAcI,EAAUJ,aACxBK,cAAeD,EAAUC,gBAG3B,IAAMz9B,EAAU40B,GAAY,eAAgBnwC,GACnDpC,EAASw2C,GAAU74B,EAEd,KAAO,CACZnkB,QAAQC,IAAI,qEAAsEi+B,GAG5E,IAAM2jB,EAAgB,CACpBN,aAAcrjB,GAGfqhB,GAAsB,GACtBN,GAAoB4C,GACvBj4C,KAEG,IAAMua,EAAU40B,GAAY,eAAgBnwC,GACnDpC,EAASw2C,GAAU74B,GAEnB9O,YAAW,WACVxL,IACD,GAAG,IACJ,CACI,CACF,CACF,IACCqB,OAAM,SAACC,GAENnL,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC7C,GACJ,EAEMk8C,GAAe,WACnBh3C,MAAMrO,EAAY,0BAA2B,CAC3CsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU4yC,IACrB50C,YAAa,YAEZ1S,MAAK,SAAC2S,GAML,OALwB,MAApBA,EAASC,SACXtK,QAAQC,IAAI,yCACZ4J,MAGKQ,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAELs3C,GAAoBt3C,EAAcw0C,GACpC,IACC9zC,OAAM,SAACC,GACNnL,QAAQC,IAAI,2BAA4BkL,GACxCtB,IACF,GACJ,EAEMk4C,GAAiB,WACrB5C,IAAoB,GAEpBl1C,MACErO,EACE,qBACAN,EAAM6vC,MAAMvI,OAAOz9B,IACnB,eACA65C,GAAiBuC,aACjB,SACF,CACEr3C,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAGd1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,0CAGPoK,EAASE,MAClB,IACCW,OAAM,SAACC,GAENnL,QAAQC,IAAI,gBAAiBkL,EAAMpG,WACrC,GACJ,EAIM+8C,GAAsB,SAACt3C,EAAcw0C,GAK3Cpe,IAASC,yBAAwB,WAsB9B,GArBIl1B,KAAKS,UAAU5B,KAAkBmB,KAAKS,UAAUozC,WAIjB/iD,IAA/B+iD,GAAc+B,cACb/2C,EAAa+2C,eAAiB/B,GAAc+B,mBAClB9kD,IAAzB+N,EAAaqnC,SACY,OAAzBrnC,EAAaqnC,WAGb2N,GAAcl1C,SAAWE,EAAaF,QACtCk1C,GAAc3sC,SAAWrI,EAAaqI,QACtC2sC,GAAc3N,QAAQnuC,SAAW8G,EAAaqnC,QAAQnuC,QAEtD+7C,GAAiBj1C,IAOnBA,EAAa+2C,eAAiBvC,EAAiBuC,aAAnD,CAOA,GAA6B,OAAzB/2C,EAAaqnC,SAAoBrnC,EAAaqnC,QAAQnuC,OAAS,EACjE,IAAK,IAAIyB,KAAOqF,EAAaqnC,QAAS,CACpC,IAAI/jC,EAAOtD,EAAaqnC,QAAQ1sC,GAC5B68C,EAAc5lD,GAAGgS,eAAeN,EAAK7O,OAAOlH,IAChD,GAA2B,IAAvBiqD,EAAYt+C,OAAhB,CAKA,IAAMu+C,GADND,EAAcA,EAAY,IACQE,SAAS,QACrCC,EAAgBH,EAAYI,SAAS,QAE3C,OAAQt0C,EAAKxD,QACX,IAAK,YACH03C,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,2BACxB+L,EAAchM,SAAS,qBACvB6L,EAAY7L,SAAS,uBACrB,MACF,IAAK,UACH6L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,uBACxB4L,EAAY7L,SAAS,qBACrB,MACF,IAAK,UACH6L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY7L,SAAS,uBAEhBkI,GAAQx5C,SAASiJ,EAAK7O,OAAOC,QAC5BggD,KACFb,GAAQx4C,KAAKiI,EAAK7O,OAAOC,OACzBo/C,GAAWD,KAMX4D,EAAcv+C,OAAS,GACzBu+C,EAAc9L,SAAS,qBAEzB,MACF,IAAK,UAuBH,GAtBA6L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,uBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY7L,SAAS,qBACrBgM,EAAchM,SAAS,qBACvB8L,EAAc9L,SAAS,0BAGT15C,IAAZ4hD,IACY,OAAZA,IACCA,GAAQx5C,SAASiJ,EAAK7O,OAAOC,QAE1BggD,KACFb,GAAQx4C,KAAKiI,EAAK7O,OAAOC,OACzBo/C,GAAWD,KAMX4D,EAAcv+C,OAAS,EACzB,IAAK,IAAIqgC,EAAI,EAAGA,EAAIke,EAAcv+C,OAAQqgC,IAAK,CAC7C,IAAMrR,EAAOuvB,EAAcle,GACrBse,EAAajmD,GAAGgS,eAAeskB,EAAKn6B,OAAOmY,aAEhCjU,IAAf4lD,GACCA,EAAW5pB,UAAU5zB,SAAS,sBAC9Bw9C,EAAW5pB,UAAU5zB,SAAS,uBAE/Bw9C,EAAWjM,YAAY,2BACvBiM,EAAWjM,YAAY,qBACvBiM,EAAWjM,YAAY,2BACvBiM,EAAWjM,YAAY,qBACvBiM,EAAWjM,YAAY,2BACvBiM,EAAWlM,SAAS,uBAExB,CAEF,MACF,IAAK,UAEC+I,IACFC,IAAoB,GAGtB6C,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,uBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY7L,SAAS,qBAEhBkI,GAAQx5C,SAASiJ,EAAK7O,OAAOC,cAEPzC,IAAvBqR,EAAK7O,OAAO4T,QACW,OAAvB/E,EAAK7O,OAAO4T,QACX/E,EAAK7O,OAAO4T,OAAOhO,SAAS,qBAE7ByB,EAAM6E,MACJ,aACE2C,EAAK7O,OAAOC,MACZ,gBACA4O,EAAK+E,QAGXwrC,GAAQx4C,KAAKiI,EAAK7O,OAAOC,OACzBo/C,GAAWD,KAEb,MACF,IAAK,gBACH2D,EAAY5L,YAAY,2BACxB4L,EAAY5L,YAAY,uBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,qBACxB4L,EAAY5L,YAAY,2BACxB4L,EAAY7L,SAAS,2BACrB,MACF,QACEn2C,QAAQC,IAAI,YA/HhB,CAkIF,CAGF,GAC0B,YAAxBuK,EAAaF,QACW,YAAxBE,EAAaF,QACW,YAAxBE,EAAaF,QACW,YAAxBE,EAAaF,OACb,CACAT,KAEIq1C,IACFC,IAAoB,GAGtB,IAAImD,EAAclmD,GAAG0lB,WACrB,IAASiiB,EAAI,EAAGA,EAAIue,EAAY5+C,OAAQqgC,IAClCue,EAAYve,GAAGtL,UAAU5zB,SAAS,yBACpCy9C,EAAYve,GAAGqS,YAAY,uBAC3BkM,EAAYve,GAAGoS,SAAS,sBAI5Br/B,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,GAC/C,KAAmC,aAAxBqF,EAAaF,SACtB60C,IAAoB,GACpBt1C,KACAiN,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,IAC7Cke,GAAUqB,KAAKC,UAtKjB,MAJEvoB,GAAG0lB,WAAWs0B,YACZ,0DA2KP,GACA,EAEKmM,GAAoB,SAAC12C,GAC1B7L,QAAQC,IAAI,4BA8Bb,EAEOsW,GAAe,SAACisC,EAAaC,EAAmBC,GACpD,IAAIn3C,GAAU,EAEd,GAAIpP,KAAYiK,EAGd,OAFApG,QAAQC,IAAI,mDACZ5D,OAAOC,SAAS8U,KAAI,oCAAgC9V,EAAM6vC,MAAMvI,OAAOz9B,IAAG,4DAI3E+3C,GAAe,GAIfrzC,KACA,IAAI84C,EAAcxsC,QACE1Z,IAAhB+lD,IACFG,EAAcH,GAGhB,IAAII,EAAaxmD,GAAG0lB,WAChB+gC,EAAa,GACbC,EAAc,GACdC,EAAc,GACdC,EAAe,GACfC,EAAc,GAClB,IAAK,IAAI99C,KAAOy9C,EACd,QAA6BnmD,IAAzBmmD,EAAWz9C,GAAK5M,KAApB,CAIA,IAAIW,EAAO0pD,EAAWz9C,GAAK5M,OAAa,KACxC,QAAakE,IAATvD,EAAoB,CACtB,QACoCuD,IAAlCmmD,EAAWz9C,GAAK5M,OAAO8rB,aACW5nB,IAAlCmmD,EAAWz9C,GAAK5M,OAAOmY,OAEvB,SAGF,IAAIwyC,EAAgB,CAClBnrD,GAAI6qD,EAAWz9C,GAAK5M,OAAOR,GAC3B8mC,UAAW+jB,EAAWz9C,GAAK5M,OAAO8rB,OAClCya,eAAgB8jB,EAAWz9C,GAAK5M,OAAOmY,OACvC2mC,WAAYuL,EAAWz9C,GAAK5M,OAAO8+C,WACnC8L,UAAWP,EAAWz9C,GAAK5M,OAAO4qD,WAGhCD,EAAcC,UAChBH,EAAan9C,KAAKq9C,GAElBH,EAAYl9C,KAAKq9C,EAErB,KAAO,CACmB,IAOlBE,EAkCAC,EAzCN,GAAa,WAATnqD,GA0CU,WAzCZ,IAAMoqD,EAAYV,EAAWz9C,GAAK5M,OAC5BgrD,OACa9mD,IAAjB6mD,EAAUvrD,IAAqC,OAAjBurD,EAAUvrD,GACpCurD,EAAe,IACfA,EAAUvrD,GAqChB,IAASoN,UA9BiB1I,KALtB2mD,EAAoBT,EAAY13C,QAAQ2F,MAC1C,SAACmnC,GAAC,YACMt7C,IAANs7C,IACCA,EAAM,KAAMwL,GAAaxL,EAAO,MAAMwL,EAAU,OAGnDH,EAAoBR,EAAWz9C,GAAK5M,QAGtC6qD,EAAkBrlD,SAAW6kD,EAAWz9C,GAAKpH,WAIV,KAAjCqlD,EAAkBtxC,YACe,OAAjCsxC,EAAkBtxC,aAElBsxC,EAAkBtxC,WAAa,SAIDrV,IAA9B2mD,EAAkBvzC,SACY,KAA9BuzC,EAAkBvzC,SACY,OAA9BuzC,EAAkBvzC,cAEqBpT,IAAnCmmD,EAAWz9C,GAAK5M,OAAOsX,UACzBuzC,EAAkBvzC,QAAU+yC,EAAWz9C,GAAK5M,OAAOsX,SAKvDuzC,EAAkBtqC,OAAS,GAC3BsqC,EAAkBlyB,SAAU,EAGxBmyB,EAAY,GACAD,EAAkBtxC,WAAY,CAC5C,IAAM0xC,EAAWJ,EAAkBtxC,WAAW3M,GAC1Cq+C,EAASrlD,KAAKyG,WAAW,OAAS4+C,EAASrlD,KAAK8rC,SAAS,MAI7DoZ,EAAUx9C,KAAK29C,EACjB,CAEAJ,EAAkBtxC,WAAauxC,EAC/BR,EAAWh9C,KAAKu9C,EAAmB,CAVvB,QAWP,GAAa,YAATlqD,EAAoB,MACAuD,IAAzBkmD,EAAYrpC,UAAmD,OAAzBqpC,EAAYrpC,WACpDqpC,EAAYrpC,SAAW,IAGzB,IAAImqC,EAAqBd,EAAYrpC,SAAS1I,MAC5C,SAACmnC,GAAC,OAAKA,EAAEhgD,KAAO6qD,EAAWz9C,GAAK5M,OAAW,EAAC,IAOnD,QALgCkE,IAAvBgnD,IACFA,EAAqBb,EAAWz9C,GAAK5M,QAGvCkrD,EAAmB1lD,SAAW6kD,EAAWz9C,GAAKpH,YACb,IAAlC0lD,EAAmBC,WACtB,SAGIZ,EAAYj9C,KAAK49C,EACnB,MAAO,GAAa,YAATvqD,EAAoB,MACAuD,IAAzBkmD,EAAY3uB,UAAmD,OAAzB2uB,EAAY3uB,WACpD2uB,EAAY3uB,SAAW,IAGzB,IAAI2vB,EAAqBhB,EAAY3uB,SAASpjB,MAC5C,SAACmnC,GAAC,OAAKA,EAAEhgD,KAAO6qD,EAAWz9C,GAAK5M,OAAW,EAAC,IAG9C,QAA2BkE,IAAvBknD,EAAkC,CACpCA,EAAqBf,EAAWz9C,GAAK5M,OAC3C,IACCorD,EAAmB5lD,SAASwzB,EAAI7B,SAASi0B,EAAmB5lD,SAASwzB,EAGtE,CAFE,MAAO55B,GACRqI,QAAQC,IAAI,0CAA2C0jD,EAAmB5lD,SAASwzB,EACpF,CAEA,IACCoyB,EAAmB5lD,SAASyzB,EAAI9B,SAASi0B,EAAmB5lD,SAASyzB,EAGtE,CAFE,MAAO75B,GACRqI,QAAQC,IAAI,0CAA2C0jD,EAAmB5lD,SAASyzB,EACpF,CACI,CAEL,IAAMoyB,EAAel0B,SAASi0B,EAA2B,QACpD/9C,MAAMg+C,GAGVD,EAAmB1lD,MAAQ,IAF3B0lD,EAAmBtiD,OAASuiD,EAK7B,IAAMC,EAAcn0B,SAASi0B,EAA0B,OAClD/9C,MAAMi+C,GAGVF,EAAmB1lD,MAAQ,IAF3B0lD,EAAmB1lD,MAAQ4lD,EAKvBF,EAAmB5lD,SAAW6kD,EAAWz9C,GAAKpH,WAG9CklD,EAAYp9C,KAAK89C,EACnB,MACEr9C,EAAM+E,KAAK,wBAA0BnS,EAEzC,CA7IA,CA8JJ,IAdoB,IAAhB6mD,KACH4C,EAAYmB,cAAe,GAG1BnB,EAAY13C,QAAU43C,EACtBF,EAAYrpC,SAAWwpC,EACvBH,EAAY5uB,SAAWgvB,EACvBJ,EAAY3uB,SAAWivB,EACvBN,EAAYoB,gBAAkBf,EAG9BL,EAAY7pC,OAAS,GACrB6pC,EAAY57B,kBAAmB,OAEtBtqB,IAAPL,GAAkB,CAGrB,IAAM4nD,EAAc5nD,GAAG6nD,IAAI,CAC1BC,OAAQ,YACRhqD,SAAU,IACVqD,UAAW,WAGQd,IAAhBunD,GAA6C,OAAhBA,GAAwBA,EAAYtgD,OAAS,IAC7Ei/C,EAAY37B,MAAQg9B,EAEtB,CAyFC,OAvFC7T,IAAa,GACblmC,MAAMrO,EAAY,qBAAuBN,EAAM6vC,MAAMvI,OAAOz9B,IAAK,CAC/D+E,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUu2C,GACrBv4C,YAAa,YAEZ1S,MAAK,SAAC2S,GAML,OALA6yC,GAAe,GACS,MAApB7yC,EAASC,QACXtK,QAAQC,IAAI,4CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,QAA0B/N,IAAtBgmD,QAAiDhmD,IAAdimD,EAMvC,GAAKl4C,EAAae,QAOX,CAgBL,GAdLg3C,GAGOpsC,GAASpe,SAIe0E,IAAxB+N,EAAa25C,QACW,OAAxB35C,EAAa25C,SAEb9nD,OAAOC,SAASgP,SAAW,cAAgBd,EAAa25C,QAG1D54C,GAAU,OACkB9O,IAAxB+N,EAAasO,OAAsB,CAErC,GADA3C,GAAS2C,OAAStO,EAAasO,OACI,IAA/BtO,EAAasO,OAAOpV,OAAc,CACpCyS,GAAS+a,SAAU,EACnB/a,GAAStL,UAAW,EAIpB,IAFA,IAAM+3C,EAAaxmD,GAAG0lB,WAEbiiB,EAAI,EAAGA,EAAI6e,EAAWl/C,OAAQqgC,IAErC6e,EAAW7e,GAAGxrC,OAAOsS,UAAW,EAChC+3C,EAAW7e,GAAGxrC,OAAOugB,OAAS,GAGhC,IAAK,IAAI3T,KAAOgR,GAASlL,QACvBkL,GAASlL,QAAQ9F,GAAK0F,UAAW,EACjCsL,GAASlL,QAAQ9F,GAAK2T,OAAS,EAEnC,CAEA,IAAK,IAAI3T,KAAOgR,GAAS2C,QAIzB4K,GAAYvN,GACd,CAEA+mC,GAAe,GACf7nC,YAAW,WACT6nC,GAAe,EACjB,GAAG,KACL,MArDEl9C,QAAQC,IAAIuK,QACW/N,IAAxB+N,EAAasJ,QAAgD,OAAxBtJ,EAAasJ,OAChDxN,EAAM6E,MAAM,mBAAqBX,EAAasJ,QAE9CxN,EAAM6E,MAAM,2GATbi5C,GAAgB3B,EAAmBC,GAAW,EA2DlD,IACCx3C,OAAM,SAACC,GACN+xC,GAAe,GAEfl9C,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC7C,IAEIwG,CACT,EA6BM64C,GAAkB,SAAC3B,EAAmBC,EAAW2B,GACvDzjB,IAASC,yBAAwB,WAC9B,IAAiB,IAAbwjB,EAIF,OAHA5I,IAA2B,GAC3BllC,GAAaJ,GAAUssC,EAAmBC,QAC1C1iD,QAAQC,IAAI,yDASd,GALIkW,GAASmnB,QACXh3B,EAAM+E,KAAK,gCArCO,WACrB,IAAIi5C,EAAYloD,GAAGgS,eAAe+H,GAASvM,OAC3C,GAAyB,IAArB06C,EAAU5gD,OAAc,CAC1B,IAAIwyB,GAAQ,EACZ,IAAK,IAAI/wB,KAAOgR,GAASlL,QACvB,GAAIkL,GAASlL,QAAQ9F,GAAKo/C,YAAa,CACrCvkD,QAAQC,IAAI,sBACZkW,GAASvM,MAAQuM,GAASlL,QAAQ9F,GAAKpN,GACvCusD,EAAYloD,GAAGgS,eAAe+H,GAASlL,QAAQ9F,GAAKpN,IACpDm+B,GAAQ,EACR,KACF,CAGF,IAAKA,EACH,OAAO,CAEX,CAOA,OALA95B,GAAG0lB,WAAWs0B,YACZ,2DAEFkO,EAAU,GAAGnO,SAAS,wBAEf,CACT,CAeqBqO,GAClB,CAKAlG,GAAW,IACXW,GAAoB,CAAC,GACrBp1C,KAGA,IADA,IAAIy4C,EAAclmD,GAAG0lB,WACZiiB,EAAI,EAAGA,EAAIue,EAAY5+C,OAAQqgC,IACtCue,EAAYve,GAAGoS,SAAS,2BAG1B,IAAM59C,EAAO,CAAEokB,mBAAoB8lC,EAAmB74C,MAAO84C,GAC7Dz4C,MACErO,EAAY,qBAAuBN,EAAM6vC,MAAMvI,OAAOz9B,IAAM,WAC5D,CACE+E,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,UACbyB,KAAMF,KAAKS,UAAU7T,KAGtBb,MAAK,SAAC2S,GAML,OALJoxC,IAA2B,GACC,MAApBpxC,EAASC,QACXtK,QAAQC,IAAI,6CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,GAAKA,EAAae,QAelB,GAJE4zC,IAAoB,GACpB1D,IAA2B,GAIG,KAA9BjxC,EAAa+2C,mBACiB9kD,IAA9B+N,EAAa+2C,cACkB,KAA/B/2C,EAAao3C,oBACkBnlD,IAA/B+N,EAAao3C,cAcf3C,GAAoB,CAClBsC,aAAc/2C,EAAa+2C,aAC3BK,cAAep3C,EAAao3C,gBAE9BnC,GAAiB,CAAC,GAClBJ,IAAsB,GACtBE,GAAsB,GACtB31C,SAzBA,CAMEtD,EAAM6E,MAAM,iDACZnL,QAAQC,IAAI,+BAAgCuK,GAC5C20C,IAAoB,GACpB1D,IAA2B,GAC3B5xC,KAEA,IAASk6B,EAAI,EAAGA,EAAIue,EAAY5+C,OAAQqgC,IACtCue,EAAYve,GAAGqS,YAAY,0BAG/B,KA/BA,CACE9vC,EAAM6E,MAAM,oBAAsBX,EAAasJ,QAC/CqrC,IAAoB,GACpB1D,IAA2B,GAC3B5xC,KAEA,IAAK,IAAIk6B,EAAI,EAAGA,EAAIue,EAAY5+C,OAAQqgC,IACtCue,EAAYve,GAAGqS,YAAY,0BAM/B,CA4BF,IACClrC,OAAM,SAACC,GAEVswC,IAA2B,GACvBz7C,QAAQC,IAAI,yBAA0BkL,EAAMpG,WAC9C,GA/EF,MAFEuB,EAAM6E,MAAM,oBAkFhB,GACD,EAKMs5C,GAAc,CAAC,gBAAiB,OAAQ,SAExCjnC,GAAuB,SAACknC,EAAOz/B,GACnChb,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,mCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,GAAIA,EAAae,QAAS,CACxB,IAAIo5C,EAAU,GACd,IAAK,IAAIx/C,KAAOqF,EAAajS,MACY,IAAnCiS,EAAajS,KAAK4M,GAAKy/C,SAI3BD,EAAQ9+C,KAAK2E,EAAajS,KAAK4M,IAajC,QAVW1I,IAAPL,KAEFA,GAAGyoD,eAAe,UAClBzoD,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAAKs4B,GAAat4B,EAAGgtD,EAAQ,IACvDvoD,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAAKq4B,GAAar4B,EAAE,KAGhDgsB,GAAqBghC,GACrBrI,IAAc,IAEO,IAAjBr3B,EACF,GAAIve,GAAYkS,eAAe5G,SAAU,CAEvC,IAAI8yC,GAAa,EACX/rC,EAAwB,GAE1BgsC,EAAUp5C,KAAKC,MAAMD,KAAKS,UAAU5B,EAAajS,OACjDysD,EAAS,EACb,IAAK,IAAI7/C,KAAO4/C,EAAS,CACvB,IAAIj3C,EAAOi3C,EAAQ5/C,GAEb8/C,EAAY,CAAC,EACnB,IAAK,IAAIC,KAAap3C,EAAK+Q,OACzBomC,EAAUn3C,EAAK+Q,OAAOqmC,GAAW//C,KAC/B2I,EAAK+Q,OAAOqmC,GAAWrjD,MAI3B,GADAiM,EAAK+Q,OAASomC,EACVn3C,EAAKlD,IAAIzM,OAASuI,GAAYvI,OAChC4a,EAAsBlT,KAAKiI,GAGvBA,EAAKq3C,OAASH,GAIhB,IAAK,IAAI7/C,KAHT6/C,EAASl3C,EAAKq3C,OACd59C,GAAeyZ,uBAAyBlT,EAExBqI,GAASlL,QACnBkL,GAASlL,QAAQ9F,GAAK8S,WAAavR,GAAYvI,OACjDgY,GAASlL,QAAQ9F,GAAK6b,uBAAyBlT,EAC/CqI,GAASlL,QAAQ9F,GAAKwT,kBAAoB7K,EAAK/V,GAC/C+sD,GAAa,EAKvB,CAEAv9C,GAAeqR,eAAiBG,EAEY,OAA1CxR,GAAeyZ,6BAC2BvkB,IAA1C8K,GAAeyZ,wBACkC,KAAjDzZ,GAAeyZ,uBAAuBtd,SAEtC6D,GAAeyZ,uBAAyB,CAAC,IAGxB,IAAf8jC,GACV9kD,QAAQC,IAAI,+BAEJoW,IAA2B,GAC3B7O,GAAkBD,IAClBmc,GAAYvN,IACZI,GAAaJ,IACb7P,EAAM+E,KAAK,uCAEnBrL,QAAQC,IAAI,4BAEJqG,EAAM6E,MAAM,mGAEhB,MACE7E,EAAM+E,KAAK,8BAGjB,MACEixC,IAAc,EAElB,IACCpxC,OAAM,SAACC,GACNmxC,IAAc,GAEdt8C,QAAQC,IAAI,kBAAoBkL,EAAMpG,WACxC,GACJ,EAEM4E,GAAU,WACdM,MAAMrO,EAAY,eAAgB,CAChCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAML,OALJs1C,IAAc,GACc,MAApBt1C,EAASC,QACXtK,QAAQC,IAAI,+BAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACT,GAAqB,OAAjBA,EAAuB,CAC1BxK,QAAQC,IAAI,eACZ,IAAMmlD,EAAe,CAAC,CACrB,KAAQ,MACR,SAAY,MACZ,YAAe,MACf,YAAe,MACf,QAAW,MACX,YAAe,KAKhB,OAHAr+C,GAAQq+C,GACRn+C,GAAgBm+C,QACX5G,GAAmB4G,EAEzB,CAEA,IAA6B,IAAzB56C,EAAae,QAWb,GAFAxE,GAAQyD,GAEJrO,GACF8K,GACEuD,EAAa+H,QAAO,SAAC3H,GAAG,OAAM65C,GAAY5/C,SAAS+F,EAAIzM,KAAK,KAE9DqgD,GACEh0C,EAAa+H,QAAO,SAAC3H,GAAG,OAAK65C,GAAY5/C,SAAS+F,EAAIzM,KAAK,SAExD,CASV,IAAIknD,EAAc76C,EAAa+H,QAAO,SAAC3H,GAAG,OAAM65C,GAAY5/C,SAAS+F,EAAIzM,KAAK,IAEzE8I,GAAgBo+C,GAGhB7G,GACEh0C,EAAa+H,QAAO,SAAC3H,GAAG,OAAK65C,GAAY5/C,SAAS+F,EAAIzM,KAAK,IAE/D,CACF,IACC+M,OAAM,SAACC,GACVw0C,IAAc,GAEV3/C,QAAQC,IAAI,sBAAsBkL,EAAMpG,WAC1C,GACJ,EAwCKugD,GAAW,WACdr7C,MAAMrO,EAAY,gBAAiB,CACjCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,QACsB/N,IAAvB+N,EAAa3G,OAA8C,OAAvB2G,EAAa3G,MACnDq3C,GAAS1wC,GAET0wC,GAAS,CAAC,WAAc,CAC5B,kBAKgCz+C,IAA5B+N,EAAasrC,YACbtrC,EAAasrC,UAIjB,IACC5qC,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEMwgD,GAAc,SAACxmC,EAAaymC,GAChCv7C,MAAMrO,EAAY,qBAAuBmjB,EAAa,CACpD7U,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAML,OALwB,MAApBA,EAASC,SACXtK,QAAQC,IAAI,oCACZ5D,OAAOC,SAASgP,SAAW,cAGtBjB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAkBL,QAhB6B/N,IAAzB+N,EAAa0mB,UACf1mB,EAAa0mB,SAAU,QAGGz0B,IAAxB+N,EAAasO,SACftO,EAAasO,OAAS,SAGKrc,IAAzB+N,EAAaS,SAAkD,OAAzBT,EAAaS,UACrDT,EAAaS,QAAU,SAGKxO,IAA1B+N,EAAa8O,UAAoD,OAA1B9O,EAAa8O,WACtD9O,EAAa8O,SAAW,IAGtB9O,EAAa8yB,OAAQ,CAG3Bgf,IAAc,GACft8C,QAAQC,IAAI,SAAUuK,GACoC,IAAtDpS,OAAO05B,oBAAoBkpB,IAAgBt3C,SAnH3B+iC,EAqHJj8B,EAAazS,GArHC0tD,GAqHG,EApHlCx7C,MAAM,GAAD,OAAIrO,EAAS,kCAA0B6qC,GAAY,CACtDv8B,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAMN,OALwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,6CAINoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAChBvL,QAAQC,IAAI,kBAAmBuK,GAC/BywC,GAAkBzwC,IAElBxK,QAAQC,IAAI,+CAAgDuK,EAAci7C,EAS5E,IACCv6C,OAAM,SAACC,GACPnL,QAAQC,IAAI,0BAA2BkL,EACxC,KAwFG,IAAI60B,EAAY,GAAE,aAEjB,IAAMC,EAAez1B,EAAaS,QAAQ9F,GAC1C,QAAiC1I,IAA7BwjC,EAAa7yB,aAA0D,OAA7B6yB,EAAa7yB,aAAqD,KAA7B6yB,EAAa7yB,YAC/F,iBAEG4yB,EAAUpmB,WAAU,SAAArhB,GAAI,OAAIA,EAAK0f,WAAagoB,EAAahoB,QAAQ,IAAI,GAC1E+nB,EAAUn6B,KAAKo6B,EACf,EAPF,IAAK,IAAI96B,KAAOqF,EAAaS,QAAS,IAUtCkwC,GAAYnb,GAEZA,EAAY,GAAE,iBAEb,IAAMC,EAAez1B,EAAa8O,SAASnU,GACvC66B,EAAUpmB,WAAU,SAAArhB,GAAI,OAAIA,EAAK0f,WAAagoB,EAAahoB,QAAQ,IAAI,GAC1E+nB,EAAUn6B,KAAKo6B,EACf,EAJF,IAAK,IAAI96B,KAAOqF,EAAa8O,SAAW,IAOxC+hC,GAAgBrb,EACb,MACHxiB,KACAkoC,KACA5uC,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,IAC7Cg4B,IAAuB,GACvBkkB,KACAiE,KAtJmB,IAAC7e,EAAUgf,EA0J3B,QAAsBhpD,IAAlB+oD,EAAWztD,GAAkB,CAC/BiI,QAAQC,IAAI,aAAcuK,GAE1B,IAAIm7C,GAAY,EACVj1C,EAAS80C,EAAW1zC,WAAWlB,MACnC,SAAC9C,GAAI,MAAmB,cAAdA,EAAK3P,IAAoB,IAErC6B,QAAQC,IAAIulD,EAAW1zC,YACvB9R,QAAQC,IAAIyQ,GACZ,IAAMk1C,OAAuBnpD,IAAXiU,EAAuB,GAAKA,EAAO7O,MAC/CoJ,EAAUT,EAAaS,QAAQ9T,KAAI,SAAC8H,GACxC,IAAM0tB,EAAO,CACXiD,MAAO,SAITjD,EAAK5uB,SAAW,CACdwzB,EAAGi0B,EAAWznD,SAASwzB,EAAItyB,EAAOlB,SAASwzB,EAC3CC,EAAGg0B,EAAWznD,SAASyzB,EAAIvyB,EAAOlB,SAASyzB,GAG7C7E,EAAKp0B,KAAO0G,EAElB0tB,EAAKp0B,KAAKmrD,YAAa,EACvB/2B,EAAKp0B,KAAKsS,UAAW,EACrB8hB,EAAKp0B,KAAK24B,SAAU,EACdvE,EAAKp0B,KAAKstD,IAAM5mD,EAAW,GAC3B0tB,EAAKp0B,KAAKW,KAAO,SACjByzB,EAAKp0B,KAAKutD,gBAAkBt7C,EAAazS,GACrCkH,EAAOlH,KAAO6tD,IAChBD,GAAY,GAGZn7C,EAAa8yB,SACpB3Q,EAAKp0B,KAAKsS,UAAW,EACrB8hB,EAAK9hB,UAAW,GAGX,IAAIgF,EAAU,GAUd,YARqBpT,IAAnBwC,EAAO4Q,SACY,OAAnB5Q,EAAO4Q,SACP5Q,EAAO4Q,QAAQnM,OAAS,IAExBmM,EAAU5Q,EAAO4Q,SAGnB8c,EAAKp0B,KAAKsX,QAAUA,EACb8c,CACT,IAECrT,EAAW9O,EAAa8O,SAASniB,KAAI,SAACoiB,GACxC,IAAMoT,EAAO,CAAC,EAGjB,OADA3sB,QAAQC,IAAI,sBAAuBsZ,EAAQtB,UAClB,qBAArBsB,EAAQtB,UAAwD,eAArBsB,EAAQtB,SAC/C,MAGL0U,EAAK5uB,SAAWwb,EAAQxb,SACxB4uB,EAAKp0B,KAAOghB,EAEfoT,EAAKp0B,KAAKmrD,YAAa,EACpB/2B,EAAKp0B,KAAKR,GAAKwhB,EAAY,GAC3BoT,EAAKp0B,KAAKstD,IAAMtsC,EAAY,GAC5BoT,EAAKp0B,KAAKW,KAAO,UAEVyzB,EACT,IAEGrT,EAAWA,EAAS/G,QAAO,SAACgH,GAAO,OAAiB,OAAZA,CAAgB,IAC3D,IAAMwsC,EAAgB,GAAGC,OAAO/6C,EAASqO,GAClC8V,EAAQ5kB,EAAaupB,SAAS58B,KAAI,SAACyd,EAAQlX,GAC7C,IAAMg1B,EAAO,CAAC,EACV2kB,EAAa7sC,EAAaupB,SAASr2B,GAAO25C,gBAC3B56C,IAAf46C,GAA2C,OAAfA,IAC9BA,EAAa,IAGf,IAAIn4C,EAAQ,GAUZ,OAT0B,IAAtBm4C,EAAW3zC,OACbxE,EAAQm4C,EAAW3zC,OAAS,aACnB2zC,EAAW3zC,OAAS,IAC7BxE,EAAQm4C,EAAW3zC,OAAS,eAGVqiD,EAAcnsC,WAChC,SAAC3a,GAAM,OAAKA,EAAO1G,KAAKR,KAAO6c,EAAOiqB,SAAS,IAE/B,GAIOknB,EAAcnsC,WACrC,SAAC3a,GAAM,OAAKA,EAAO1G,KAAKR,KAAO6c,EAAOkqB,cAAc,IAE/B,EANd,MAWTpM,EAAKn6B,KAAO,CACVR,GAAI6c,EAAO7c,GACX8tD,IAAKjxC,EAAO7c,GACZssB,OAAQzP,EAAOiqB,UACfnuB,OAAQkE,EAAOkqB,eACf5/B,MAAOA,EACPm4C,WAAYA,EACZ4O,UAAWrxC,EAAOsxC,WAClB/C,WAAW,EACX2C,gBAAiBt7C,EAAazS,IAG9ByS,EAAa8yB,SACpB5K,EAAKn6B,KAAKsS,UAAW,EACrB6nB,EAAK7nB,UAAW,GAGJ6nB,EACT,IAOA,GALAtD,EAAQA,EAAM7c,QAAO,SAACmgB,GAAI,OAAc,OAATA,CAAa,IAC5Ct2B,GAAGyoD,eAAe,OAClBzoD,GAAGuzB,IAAIo2B,GACP3pD,GAAGuzB,IAAIP,IAEW,IAAdu2B,EAAoB,CACtB,IAAMhnB,EAAQ3f,cACd5iB,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM,CACJR,GAAI4mC,EACJknB,IAAKlnB,EACLta,OAAQmhC,EAAWztD,GACnB2Y,OAAQk1C,EACR1mD,MAAO,UACPikD,WAAW,EACX2C,gBAAiBt7C,EAAazS,KAGpC,CAEAqE,GAAG0zB,IAAI,KAAM,KACb1zB,GAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAC,OAAKwuD,GAAYxuD,EAAE,IAC1CyE,GAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAC,OAAKyuD,GAAYzuD,EAAE,GAC5C,MACE+rB,GAAYlZ,GACZyuB,IAAgB,GAGhBj5B,QAAQC,IAAI,aAAcuK,GACrBA,EAAa8yB,QAEb9yB,EAAauc,kBACbvc,EAAaK,eACUpO,IAAxB+N,EAAasO,QACW,OAAxBtO,EAAasO,QACbtO,EAAasO,SACXtO,EAAasO,OAAOpV,OAAS,GAE/B4S,IAA8B,EAItC,IACCpL,OAAM,SAACC,GAENnL,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC7C,GACJ,EAsHMirB,GAAe,SAACjxB,GACtB6hC,IAASC,yBAAwB,WAS9B,GARA8b,IAAoB,GACpBxM,IAAa,GAQmB,YAA9BpxC,EAAM2R,OAAOnY,KAAK,SAClBwG,EAAM2R,OAAOnY,OAAO4qD,UAEpB78C,EAAM+E,KAAK,kCACN,CAEL,IAAMg7C,EAAgBtnD,EAAM2R,OAAOnY,KAAK,UAElC+tD,EAAYnwC,GAASlL,QAAQ2F,MAAK,SAACmnC,GAAC,OAAKA,EAAEhgD,KAAOsuD,CAAa,IAErE,QAAkB5pD,IAAd6pD,GAAyC,OAAdA,GAEJ,kBAAvBA,EAAUruC,UACS,WAAnBquC,EAAUnoD,KAIV,OAFAmI,EAAM+E,KAAK,qDACXtM,EAAM2R,OAAOqR,WAKjBq8B,GACEjoC,GAAS4d,SAASna,WAChB,SAACrhB,GAAI,OAAKA,EAAKR,KAAOgH,EAAM2R,OAAOnY,OAAW,EAAC,KAGnD02C,GAAgBlwC,EAAM2R,OAAOnY,OAC/B,CAEAiP,GAAkB,CAAC,GACnBwnC,GAAmB,CAAC,EACvB,GACA,EAGIuX,GAAiB,GACjBC,GAAmB,CACrBj1B,EAAG,EACHC,EAAG,GA2CCi1B,GAAiB,SAAC1nD,EAAOwI,GAC7B,IAAMm/C,EAAW3nD,EAAM2R,OAAOnY,OAC9B,GAAImuD,EAAS3uD,KAAOwP,EAAexP,KAIT,IAAtB2uD,EAASxrC,SAAb,CAIF,IAAMyrC,EAAY5nD,EAAM2R,OAAOk2C,iBAAiBl6B,QAChD,IAAK,IAAIvnB,KAAOwhD,EAAW,CAC1B,IAAMj0B,EAAOi0B,EAAUxhD,GAKdqgD,EAAappD,GAAGgS,eAAeskB,EAAKn6B,KAAK8rB,QACzCwiC,EAAkBzqD,GAAGgS,eAAeskB,EAAKn6B,KAAKmY,QACvD,QAAmBjU,IAAf+oD,GAA2C,OAAfA,QAA2C/oD,IAApBoqD,GAAqD,OAApBA,EAAxF,CAIA,IAAMC,EAAYC,GAAmBvB,EAAWznD,WAAY8oD,EAAgB9oD,YACnEipD,EAAc5qD,GAAGgS,eAAeskB,EAAKn6B,KAAKR,SAC/B0E,IAAhBuqD,GAA6C,OAAhBA,IAChCA,EAAYtuD,MAAM,yBAA0BouD,EAAUG,UACtDD,EAAYtuD,MAAM,uBAAwBouD,EAAUI,QANrD,CAQD,CAEE,GAA8B,IAA1BX,GAAe7iD,OAAc,CAM/B,GALA1D,QAAQC,IACN,uCACAsmD,GACAh/C,GAEyB,IAAvBi/C,GAAiBj1B,GAAkC,IAAvBi1B,GAAiBh1B,EAAS,CACxD,IAAMwwB,EAAc5lD,GAAGgS,eAAes4C,EAAS3uD,IAC3B,OAAhBiqD,QAAwCvlD,IAAhBulD,IAC1BA,EAAYjkD,SAAS,IAAKyoD,GAAiBj1B,GAC3CywB,EAAYjkD,SAAS,IAAKyoD,GAAiBh1B,IAG7Cg1B,GAAmB,CAAEj1B,EAAG,EAAGC,EAAG,EAChC,CAEA,IAAM21B,EAAar9C,SAASsE,eAAem4C,GAAe,IAC1D,GAAmB,OAAfY,QAAsC1qD,IAAf0qD,EAA0B,CACnDA,EAAWzuD,MAAMgB,OAASytD,EAAWzuD,MAAM0uD,gBAC3C,IAAI7T,EAAW,IAAMmT,EAASxnD,MAAMmG,cAAc7G,WAAW,IAAK,KACtE,GAAsB,YAAlBkoD,EAASxtD,OACkB,YAA1BwtD,EAASltC,cAAwD,aAA1BktC,EAASltC,cAAyD,UAA1BktC,EAASltC,cACnF+5B,EAAW,QAGjB,IAAI8T,EAAY,GACZC,GAAY,EAChB,GAAIH,EAAWpvD,GAAG6M,WAAW,oBAAqB,CAChD5E,QAAQC,IAAI,4BAA6BknD,EAAWpvD,IAKpD,IAAMwvD,EAAUJ,EAAWpvD,GAAG4M,MAAM,KACpC3E,QAAQC,IAAIsnD,GACW,IAAnBA,EAAQ7jD,QAAiBkC,MAAM2hD,EAAQ,MACzCvnD,QAAQC,IAAI,mBAAoBsnD,EAAQ,IAExChgD,EAAeuK,WAAWy1C,EAAQ,IAAI1lD,OAAS0xC,EAC/C8T,EAAY9/C,EAAeuK,WAAWy1C,EAAQ,IAAIppD,KAClDmpD,EAAWC,EAAQ,GAEvB,CAEA,GAAID,GAAY,GAAKD,EAAU3jD,OAAS,EAAG,CACzC,IAAMkuC,EAAc4V,GAAiBd,GAC/BxoD,EAAampD,EAChBhiD,cACAka,OACA/gB,WAAW,IAAK,KAEbipD,EAAcC,GAAcxpD,EAAY0zC,EAAa,IACvD6V,EAAY/jD,OAAS,IACvB1D,QAAQC,IAAI,iBAAkBonD,EAAWI,GACzClU,EAAQ,UAAMA,GAAQ,OAAGkU,IAG3BlgD,EAAeuK,WAAWw1C,GAAUzlD,MAAQ0xC,CAC9C,CAEA4T,EAAWtlD,MAAQ0xC,CACrB,CACF,CAEA,QACwB92C,IAAtBiqD,EAASzuC,WACe,kBAAtByuC,EAASzuC,UACa,YAAtByuC,EAASzuC,UACa,qBAAtByuC,EAASzuC,UACa,eAAtByuC,EAASzuC,UACa,YAAtByuC,EAASzuC,UACa,aAAtByuC,EAASzuC,UACa,UAAtByuC,EAASzuC,UACTyuC,EAASnC,aACX,CACA,IAAMoD,EAAWvrD,GAAGqwB,QAAQC,QACxBwJ,GAAQ,EACZ,IAAK,IAAI/wB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,GAC7B,GACEyiD,EAAYrvD,KAAKsvD,aAAenB,EAAS3uD,IACzC6vD,EAAYrvD,KAAKuvD,aACjB,CACA5xB,GAAQ,EACRl2B,QAAQC,IAAI,mBACZ,KACF,CACF,CAGA,GAAKi2B,EAyBHl2B,QAAQC,IAAI,uDAzBF,CACV,IAAM8nD,EAAWlyB,GAAY6wB,GACvB1uB,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAErDiwB,EAASvB,EAASnC,YAAc,GAAK,GACrC2D,EAAgB,CACpBnqD,SAAU,CACRwzB,EAAGxyB,EAAM2R,OAAO3S,WAAWwzB,EAAI02B,EAC/Bz2B,EAAGzyB,EAAM2R,OAAO3S,WAAWyzB,EAAIy2B,GAEjCE,QAAQ,EACR5vD,KAAM,CACJuvD,cAAc,EACd52B,SAAS,EACTrmB,UAAU,EACV3L,MAAO,GACP8nB,MAAOghC,EACPI,WAAYL,EAASvxB,oBACrBqxB,WAAYnB,EAAS3uD,KAIzBqE,GAAGuzB,IAAIu4B,GAAeG,aACxB,CAGF,CAEA7B,GAAmB,CACjBj1B,EAAG,EACHC,EAAG,GAGP+wB,IAGOmE,EAAS3uD,GAETgH,EAAM2R,OAAO3S,SAAS,KACtBgB,EAAM2R,OAAO3S,SAAS,MAzJ3B,CA4JF,EAEMuqD,GAAa,SAACvpD,EAAOwI,GACzB,IAAMm/C,EAAW3nD,EAAM2R,OAAOnY,OAC9B,IAA0B,IAAtBmuD,EAASxrC,SAAb,CAKA,QAA0Bze,IAAtBiqD,EAASzuC,SAAwB,CACnC,IAAM0vC,EAAWvrD,GAAGqwB,QAAQC,QAC5B,IAAK,IAAIvnB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,GACzByiD,EAAYrvD,KAAKsvD,aAAenB,EAAS3uD,IAC3CqE,GAAGgS,eAAew5C,EAAYrvD,KAAKR,IAAIw3B,QAW3C,CACF,CAIF,GAA4B,gBAAxBm3B,EAAS6B,WAA8B,CAC1CvoD,QAAQC,IAAI,uBACZD,QAAQC,IAAI,gBAAiBymD,EAASmB,YACtC,IAAMW,EAAapsD,GAAGgS,eAAes4C,EAASmB,YAC3B,OAAfW,QAAsC/rD,IAAf+rD,GAC1BxoD,QAAQC,IAAI,6BAGd,CAEE,GAAIymD,EAAS3uD,KAAOwP,EAAexP,GAAnC,CAuByB,IAAvByuD,GAAiBj1B,GACM,IAAvBi1B,GAAiBh1B,QACK/0B,IAAtBiqD,EAAS3oD,WAETyoD,GAAiBj1B,EAAIm1B,EAAS3oD,SAASwzB,EACvCi1B,GAAiBh1B,EAAIk1B,EAAS3oD,SAASyzB,GAsDzC1nB,SAAS9F,iBAAiB,aAjDJ,SAAhBykD,EAAiB9wD,GACrB,IAAM45B,EAAI55B,EAAE4yC,MACN/Y,EAAI75B,EAAE2yC,MAENoe,EAAqB5+C,SAAS6+C,iBAAiBp3B,EAAGC,GACxD,QAA2B/0B,IAAvBisD,GAA2D,OAAvBA,EAA6B,CAEnE,IAAME,EAAY,6BAClB,GACEF,EAAmBhwD,MAAMgB,SAAWkvD,GACpCF,EAAmB3wD,GAAG8M,SAAS,aAC/B,CAUA,IAAK,IAAIM,UAT+B1I,IAApCisD,EAAmBhwD,MAAMgB,OAC3BgvD,EAAmBhwD,MAAM0uD,gBACvBsB,EAAmBhwD,MAAMgB,OAE3BgvD,EAAmBhwD,MAAM0uD,gBAAkB,GAG7CsB,EAAmBhwD,MAAMgB,OAASkvD,EAClC5oD,QAAQC,IAAI,WAAYsmD,IACRA,GAAgB,CAC9B,IAAMY,EAAar9C,SAASsE,eAAem4C,GAAephD,IACvC,OAAfgiD,QAAsC1qD,IAAf0qD,IACzBA,EAAWzuD,MAAMgB,OAASytD,EAAWzuD,MAAM0uD,gBAE/C,EAEAb,GAAiB,IACF1gD,KAAK6iD,EAAmB3wD,GACzC,MAAO,GACqB,mBAA1B2wD,EAAmB3wD,IACO,KAA1B2wD,EAAmB3wD,GACnB,CACA,IAAK,IAAIoN,KAAOohD,GAAgB,CAC9B,IAAMY,EAAar9C,SAASsE,eAAem4C,GAAephD,IACvC,OAAfgiD,QAAsC1qD,IAAf0qD,IACzBA,EAAWzuD,MAAMgB,OAASytD,EAAWzuD,MAAM0uD,gBAE/C,CAEAb,GAAiB,EACnB,CACF,CAGAz8C,SAAS7F,oBAAoB,YAAawkD,GAAe,EAC3D,IAEsD,EAhFtD,CAnCA,MAFDzoD,QAAQC,IAAI,mDAsHb,EAGA4oD,cAAgB,WACd,IAAKzY,GACH,MAhkEe,2DAkkEM,IAApBj6B,GAASmnB,SAEZxzB,SAAS7F,oBAAoB,UAAW6kD,IAAe,GACvDh/C,SAAS7F,oBAAoB,QAAS8kD,IAAa,GAGrD,IAKA,IAAM94B,GAAe,SAAClxB,EAAOiqD,GAE7BpoB,IAASC,yBAAwB,WAC9B,IAAMtoC,EAAOwG,EAAM2R,OAAOnY,OAC1B,GAAIA,EAAK0wD,SAAT,CACE,GAAwB,WAApB1wD,EAAKgwD,WAAyB,CAChC,IAAMC,EAAapsD,GAAGgS,eAAe7V,EAAKsvD,YAM9C,YALuB,OAAfW,QAAsC/rD,IAAf+rD,GAC7BU,GAAW3wD,EAAKsvD,YAKhB,CAAO,GAAwB,kBAApBtvD,EAAKgwD,YAAgD,YAAdhwD,EAAKW,KAAoB,CACzE,IAAMsvD,EAAapsD,GAAGgS,eAAe7V,EAAKsvD,YAC1C,GAAmB,OAAfW,QAAsC/rD,IAAf+rD,EAA0B,CACnD,IAAI1R,EAAe16C,GAAGgS,eAAe+H,GAASvM,OAC9C,GACmB,OAAjBktC,QACiBr6C,IAAjBq6C,GACAA,EAAapzC,OAAS,EAEtB,IACEozC,EAAa,GAAGv+C,KAAK,eAAe,EAGtC,CAFE,MAAOZ,GACPqI,QAAQC,IAAI,oBAAqBtI,EACnC,CAGFwe,GAASvM,MAAQ4+C,EAAWjwD,KAAK,MACjC43C,IAAa,GACbqY,EAAWjwD,KAAK,eAAe,EACjC,CAIJ,YADAokD,IAAoB,EAGlB,CAAO,GAAwB,SAApBpkD,EAAKgwD,WAAuB,CACrCvoD,QAAQC,IAAI,SAKZ,IAAMuoD,EAAapsD,GAAGgS,eAAe7V,EAAKsvD,YAC1C,GAAmB,OAAfW,QAAsC/rD,IAAf+rD,EAA0B,CACnD,IAAIW,EAAcx9C,KAAKC,MAAMD,KAAKS,UAAUo8C,EAAWjwD,SAsBvD,GArBA4wD,EAAYpxD,GAAKinB,mBACYviB,IAAzB0sD,EAAYprD,WACdorD,EAAYprD,SAAW,CACrBwzB,EAAG43B,EAAYprD,SAASwzB,EAAI,IAC5BC,EAAG23B,EAAYprD,SAASyzB,EAAI,MAIhC23B,EAAY5E,aAAc,EAC1B4E,EAAYrwC,OAAS,GACrBqwC,EAAYt+C,UAAW,EACvBs+C,EAAYj4B,SAAU,EACtBi4B,EAAYjqD,MAAQspD,EAAWjwD,KAAK,SAAW,QAE/C6D,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM4wD,EACNprD,SAAUorD,EAAYprD,WAKG,YAAzBorD,EAAYlxC,UACa,qBAAzBkxC,EAAYlxC,cAEP,CACL,IAAM8vC,EAAWlyB,GAAYszB,GACvBnxB,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAErDiwB,EAASkB,EAAY5E,YAAc,GAAK,GACxC2D,EAAgB,CACpBnqD,SAAU,CACRwzB,EAAG43B,EAAYprD,SAASwzB,EAAI02B,EAC5Bz2B,EAAG23B,EAAYprD,SAASyzB,EAAIy2B,GAE9BE,QAAQ,EACR5vD,KAAM,CACJuvD,cAAc,EACd52B,SAAS,EACTrmB,UAAU,EACV3L,MAAO,GACP8nB,MAAOghC,EACPI,WAAYL,EAASvxB,oBACrBqxB,WAAYsB,EAAYpxD,KAI5BqE,GAAGuzB,IAAIu4B,GAAeG,aACxB,CAEAlyC,GAASlL,QAAQpF,KAAKsjD,GAEtB,IAAMC,EAAiBjzC,GAAS4d,SAASxhB,QACvC,SAAC82C,GAAW,OAAKA,EAAYxqB,YAAc2pB,EAAWjwD,KAAK,KAAK,IAE5D+wD,EAAsBnzC,GAAS4d,SAASxhB,QAC5C,SAAC82C,GAAW,OACVA,EAAYvqB,iBAAmB0pB,EAAWjwD,KAAK,KAAK,IAGxD,IAAK,IAAI4M,KAAOikD,EAAgB,EAC1BG,EAAY59C,KAAKC,MAAMD,KAAKS,UAAUg9C,EAAejkD,MAC/CpN,GAAKinB,cACfuqC,EAAU1qB,UAAYsqB,EAAYpxD,GAElCwxD,EAAU1D,IAAM0D,EAAUxxD,GAC1BwxD,EAAUllC,OAASklC,EAAU1qB,UAC7B0qB,EAAU74C,OAAS64C,EAAUzqB,eAC7B1iC,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAMgxD,GAEV,CAEA,IAAK,IAAIpkD,KAAOmkD,EAAqB,CACnC,IAAIC,KAAY59C,KAAKC,MACnBD,KAAKS,UAAUk9C,EAAoBnkD,MAE3BpN,GAAKinB,cACfuqC,EAAUzqB,eAAiBqqB,EAAYpxD,GAEvCwxD,EAAU1D,IAAM0D,EAAUxxD,GAC1BwxD,EAAUllC,OAASklC,EAAU1qB,UAC7B0qB,EAAU74C,OAAS64C,EAAUzqB,eAC7B1iC,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAMgxD,GAEV,CAGL,MACG,CACF,CAOF,KAhJA,CA4IO,GAAIhxD,EAAKuvD,aAGd,OAFA9nD,QAAQC,IAAI,gCACZlB,EAAM2R,OAAOqR,WAIf,GAAkB,WAAdxpB,EAAKW,KAAmB,CAC7B4kD,GAAmB,CAAC,GAIjB,IAAIwI,EAAYnwC,GAASlL,QAAQ2F,MAAK,SAACmnC,GAAC,OAAKA,EAAEhgD,KAAOQ,EAAKR,EAAE,IAC7D,IAAKuuD,QAA2B7pD,IAAd6pD,EAAyB,CAE7C,GADAtmD,QAAQC,IAAI,mBAAoBlB,EAAM2R,OAAOnY,aAC7BkE,IAAZlE,EAAKR,SAAsC0E,IAAlBlE,EAAK0f,SAUjC,OAL0B,IAApB9B,GAASmnB,QACVh3B,EAAM6E,MAAM,4CAGjBpM,EAAM2R,OAAO6e,SARbpZ,GAASlL,QAAQpF,KAAKtN,GACtBmrB,GAAYvN,IACZmwC,EAAY/tD,CASX,CAGH,IAAI+Z,EAAUxL,GACD,OAATA,SAA0BrK,IAATqK,IAAsC,IAAhBA,GAAKpD,SAC/C4O,EAAUtL,IAKX,IAAIwiD,EAASl3C,EAAQ1B,MAAK,SAACmnC,GAAC,OAC3BA,EAAEhgD,KAAOuuD,EAAUryC,MAAM,IAc1B,QAXexX,IAAX+sD,GAAmC,OAAXA,IAC3BxpD,QAAQC,IAAI,mDAEZupD,EAASl3C,EAAQ1B,MAAK,SAACmnC,GAAC,OACvBA,EAAE55C,OAASmoD,EAAUruC,WACpB8/B,EAAEtqC,cAAgB64C,EAAU74C,aACR,OAApBsqC,EAAE/jC,eACH+jC,EAAE/jC,cAAcnP,SAASyhD,EAAU74C,aAAc,MAIxB,IAAvB64C,EAAUtT,SAAmB,CAEhC,IAAM90C,EAAaooD,EAAUnoD,KAAKK,WAAW,IAAK,KAAK6G,cAIvD,IAAK,IAAIF,KAHTnF,QAAQC,IAAI,oDAAqD/B,GAEjEooD,EAAUrT,iBAAmB,GACb3gC,EACf,IAAK,IAAItM,KAAUsM,EAAQnN,GAAK8F,QAAS,CACxC,IAAMkO,EAAY7G,EAAQnN,GAAK8F,QAAQjF,GACnCmT,EAAUhb,KAAKK,WAAW,IAAK,KAAK6G,gBAAkBnH,IACzD8B,QAAQC,IAAI,WAAYqS,EAAQnN,IAChCmhD,EAAUrT,iBAAiBptC,KAAK,CAC/B,SAAYyM,EAAQnN,GAAKhH,KACzB,YAAemU,EAAQnN,GAAKsI,YAC5B,OAAU6E,EAAQnN,GAAKpN,GACvB,OAAUohB,EACV,YAAe7G,EAAQnN,GAAKiI,YAC5B,UAAajI,EACb,aAAgBa,IAGnB,CAEF,CAEG,GAAKwjD,QAAqB/sD,IAAX+sD,EAcR,CAKTlD,EAAUryC,OAASu1C,EAAOzxD,GAEtB4e,GACiC,WAA/B6yC,EAAO5wC,eAAe1f,WAA4DuD,IAAvC+sD,EAAO5wC,eAAe6B,cAAqE,OAAvC+uC,EAAO5wC,eAAe6B,aAAwB,CAChJvhB,KAAM,SACNuhB,aAAc+uC,EAAO5wC,eAAe6B,aACpCoF,YAAa2pC,EAAO5wC,eAAeiH,YACnCnF,UAAW8uC,EAAO5wC,eAAe8B,UACjCC,MAAO6uC,EAAO5wC,eAAe+B,MAC7BgD,UAAW6rC,EAAO5wC,eAAe+E,UACjCC,cAAe4rC,EAAO5wC,eAAegF,eAC9B,CACD1kB,KAAM,KAIX,IAAMuwD,EAAeD,EAAO5wC,eAAe5G,SAE3C,GADAyqC,GAA0BgN,GACtBD,EAAO5wC,eAAe5G,SAAU,CAGlC,IAAM+G,EAAwB,GAC1B2wC,EAAa,GAEiB,OAAhCpD,EAAU3tC,wBACsBlc,IAAhC6pD,EAAU3tC,mBACV2tC,EAAU3tC,kBAAkBjV,OAAS,IAErCgmD,EAAapD,EAAU3tC,mBAGzB,IAAMosC,EAAUp5C,KAAKC,MAAMD,KAAKS,UAAU48C,IAG1C,IAAK,IAAI7jD,KAAO4/C,EAAS,CACvB,IAAIj3C,EAAOi3C,EAAQ5/C,GAEb8/C,EAAY,CAAC,EACnB,IAAK,IAAIC,KAAap3C,EAAK+Q,OACzBomC,EAAUn3C,EAAK+Q,OAAOqmC,GAAW//C,KAAO2I,EAAK+Q,OAAOqmC,GAAWrjD,MAGjEiM,EAAK+Q,OAASomC,EACVn3C,EAAKlD,IAAIzM,OAASqrD,EAAOrrD,OAC3B4a,EAAsBlT,KAAKiI,GACvBA,EAAK/V,KAAO2xD,IACdpD,EAAUtlC,uBAAyBlT,GAGzC,CAEAw4C,EAAU1tC,eAAiBG,EAEY,OAArCutC,EAAUtlC,6BAC2BvkB,IAArC6pD,EAAUtlC,wBACkC,KAA5CslC,EAAUtlC,uBAAuBtd,SAEjC4iD,EAAUtlC,uBAAyB,CAAC,EAExC,MACEslC,EAAU1tC,eAAiB,GAC3B0tC,EAAU3tC,kBAAoB,GAC9B2tC,EAAUtlC,uBAAyB,CAAC,EAGtC,QAC2BvkB,IAAzB6pD,EAAUx0C,YACe,OAAzBw0C,EAAUx0C,YACVw0C,EAAUx0C,WAAWpO,OAAS,EAE9B,IAAK,IAAIyB,KAAOmhD,EAAUx0C,gBAEgBrV,IAAtC6pD,EAAUx0C,WAAW3M,GAAKuoC,SACY,OAAtC4Y,EAAUx0C,WAAW3M,GAAKuoC,SAC1B4Y,EAAUx0C,WAAW3M,GAAKuoC,QAAQhqC,OAAS,GACP,KAApC4iD,EAAUx0C,WAAW3M,GAAKtD,QAE1BykD,EAAUx0C,WAAW3M,GAAKtD,MAAQykD,EAAUx0C,WAAW3M,GAAKuoC,QAAQ,SAK7E,IAAK,IAAIvoC,KADTnF,QAAQC,IAAI,wDACIupD,EAAOv+C,QAAS,CAC/B,IAAMkO,EAAYqwC,EAAOv+C,QAAQ9F,GACjC,GAAIgU,EAAUhb,OAASmoD,EAAUnoD,KAAM,CACtC6B,QAAQC,IAAI,+BAAgCkZ,QACf1c,IAAzB0c,EAAUrH,YAAqD,OAAzBqH,EAAUrH,YAAuBqH,EAAUrH,WAAWpO,OAAS,IACxG4iD,EAAUx0C,WAAanG,KAAKC,MAAMD,KAAKS,UAAU+M,EAAUrH,cAE5D,KACD,CACD,CAGD9R,QAAQC,IAAI,iBAAkBqmD,GAC1B3/C,GAAe6iD,GACfhiD,GAAkB8+C,GAElBlqD,GAAGyoD,eAAe,QAClBzoD,GAAGyoD,eAAe,QAClBzoD,GAAG2zB,GAAG,OAAQ,QAAQ,SAACp4B,GAAC,OAAK2wD,GAAW3wD,EAAG2uD,EAAU,IACrDlqD,GAAG2zB,GAAG,OAAQ,QAAQ,SAACp4B,GAAC,OAAK8uD,GAAe9uD,EAAG2uD,EAAU,GAC3D,KAzHqC,CACvCtmD,QAAQC,IAAI,4BAA6BqS,GAGrC,IAAMq3C,EAAS,CACbxrD,KAAMmoD,EAAUruC,SAChBA,SAAUquC,EAAUruC,SACpBxK,YAAa64C,EAAU74C,YACvB1V,GAAIuuD,EAAUryC,OACdhJ,QAAS,CAACq7C,IAGZ3/C,GAAegjD,GACfniD,GAAkB8+C,EACpB,CA6GA,QAAqB7pD,IAAjBgzC,IAA+C,OAAjBA,KAAkD,iBAAjBA,IAAoD,kBAAjBA,IAA4B,CACpI,IAKUma,EALMna,GAKW7+B,MAAK,SAACmnC,GAAC,OAAKA,EAAEF,OAASyO,EAAUvnB,WAAW,IAC/D+Y,EAAMrI,GAAayQ,SACdzjD,IAATmtD,GAA+B,OAATA,IACzB9R,EAAM8R,GAGHha,GAA6BkI,EAC/B,CACF,MAAO,GAAkB,YAAdv/C,EAAKW,KAAoB,CACrC4kD,GAAmB,CAAC,GACM,OAAtB3nC,GAASmD,WACZnD,GAASmD,SAAW,IAGlB,IAAI4nC,EAAgB/qC,GAASmD,SAASM,WACpC,SAACm+B,GAAC,OAAKA,EAAEhgD,KAAOQ,EAAKR,EAAE,KAIL,IAAnBmpD,IACH/qC,GAASmD,SAASzT,KAAKtN,GACvB2oD,EAAgB/qC,GAASmD,SAAS5V,OAAO,EACzCggB,GAAYvN,KAcY,qBAAlB5d,EAAK0f,UACPklB,GAAsB+jB,GACtBG,MAC2B,YAAlB9oD,EAAK0f,eACsCxb,IAAhD0Z,GAASmD,SAAS4nC,GAAepvC,aACnCqE,GAASmD,SAAS4nC,GAAepvC,WAAW,GAAK,CAC/C3T,KAAM,MACN0D,MAAO6U,EAAe,WAAaP,GAASmD,SAAS4nC,GAAenpD,KAK7EiI,QAAQC,IAAI,SAAU1H,GACnB0lD,GAAwBiD,GACxBlS,GAAmBz2C,GACnBq3C,GAA6Br3C,EAAKu/C,IACpC,KAAO,IAAkB,YAAdv/C,EAAKW,KAId,YADAoN,EAAM6E,MAAM,gBAAkB5S,EAAKW,MAFnC4kD,GAAmBvlD,EAIrB,CAEAokD,IAAoB,GACpBxM,IAAa,GACbH,GAAgB,CACdh/B,IAAK,EACL6Q,KAAM,EACNpB,SAAU,KAGdzgB,QAAQC,IAAI,2BAEZsiD,IAGOhqD,EAAKR,GACDmE,EAASnE,GAEbgH,EAAM2R,OAAO3S,SAAS,KACtBgB,EAAM2R,OAAO3S,SAAS,MArR3B,CAyRH,GACA,EAEK6c,GAAc,SAACqN,EAAO4hC,GAC3B5/C,MAAMrO,EAAU,gBAAgBqsB,EAAM,YAAa,CAC9C/d,OAAQ,MACX3K,QAAS,CACR,eAAgB,mBAChB,OAAU,oBAEV6K,YAAa,YAEf1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,sBAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,QAChBjF,EAAM6E,MAAM,+BAEZ7E,EAAMiF,QAAQ,0EAEE,IAAZs+C,GACAlgD,KAGN,IACCuB,OAAM,SAAAC,GAENnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC3C,GACD,EAEOyiD,GAAmB,SAAC15C,GACxB,IAAI8jC,OAA+Bn1C,IAAjBqR,EAAK+B,QAAwB,GAAK/B,EAAK+B,QACzD,GAAIgH,GAAmBnT,OAAS,EAE9B,IAAK,IAAIyB,KAAO0R,GACd,QACsCpa,IAApCoa,GAAmB1R,GAAK0sC,SACY,OAApCh7B,GAAmB1R,GAAK0sC,QAF1B,CAOA,IAAIC,EAAc,CAAEj/B,OAAQ,IAC5B,GAAgB,SAAZ/E,EAAK/V,GAAe,CACtB,UACiD0E,IAA/Coa,GAAmB1R,GAAKwX,oBACuB,OAA/C9F,GAAmB1R,GAAKwX,oBACxB9F,GAAmB1R,GAAKwX,mBAAmBjZ,OAAS,GAIpD,SAFAouC,EAAYj/B,OAASgE,GAAmB1R,GAAKwX,kBAIjD,MAIE,QAAoBlgB,KAHpBq1C,EAAcj7B,GAAmB1R,GAAK0sC,QAAQjhC,MAC5C,SAACiC,GAAM,OAAKA,EAAO5T,OAAOlH,KAAO+V,EAAK/V,EAAE,KAGxC,SAIJ+5C,EAAYj/B,OAASi/B,EAAYj/B,OAAO0M,OACxCuyB,EAAYj/B,OAASi/B,EAAYj/B,OAAOlO,MAAM,SAASM,KAAK,WAC5D6sC,EAAYj/B,OAASi/B,EAAYj/B,OAAOlO,MAAM,UAAUM,KAAK,UAC7D6sC,EAAYj/B,OAASi/B,EAAYj/B,OAAOlO,MAAM,SAASM,KAAK,SAE5D,IAAI6K,GAAY,EAChB,IAEKgiC,EAAYj/B,OAAOhO,SAAS,MAC5BitC,EAAYj/B,OAAOhO,SAAS,OAE7BiL,GAAY,EAchB,CAZE,MAAOnY,GACP,IACEm6C,EAAYj/B,OAASi/B,EAAYj/B,OAAOlO,MAAM,KAAKM,KAAK,KAErD6sC,EAAYj/B,OAAOhO,SAAS,MAC5BitC,EAAYj/B,OAAOhO,SAAS,OAE7BiL,GAAY,EAIhB,CAFE,MAAOnY,GACPmY,GAAY,CACd,CACF,CAGA,GAAIA,EAAW,CAClB,IACM8hC,EAAcjmC,KAAKC,MAAMkmC,EAAYj/B,OAI3C,CAHI,MAAOlb,GACVqI,QAAQC,IAAI,WAAY2xC,EAEzB,CAEK,KACF,CA3DA,CA+DJ,OAAOA,CACT,EAEM8V,GAAgB,SAAhBA,EAAiBL,EAAWzV,EAAarsC,GAC7C,GAA2B,kBAAhBqsC,EACT,MAAO,GAGT,GAAoB,OAAhBA,EACF,MAAO,GA8CT,IAvCA,IAsCIkY,EAAmB,CAACzC,GACxB,MAA2BjvD,OAAO8M,QAvCjB,CACfnN,GAAI,CACF,KACA,MACA,YACA,YACA,kBACA,WACA,UACA,cACA,aACA,MACA,MACA,OACA,UACA,aACA,cAEF+E,MAAO,CAAC,QAAS,OAAQ,WACzB0Q,YAAa,CAAC,cAAe,cAAe,QAAS,WACrDu8C,MAAO,CAAC,OAAQ,QAAS,SAAU,WAAY,aAC/CxxD,KAAM,CACJ,OACA,KACA,SACA,MACA,OACA,MACA,OACA,SACA,QACA,QAELwV,KAAM,CAAC,OAAQ,gBAMqC,eAAE,CAAhD,0BAAO5I,EAAG,KAAEtD,EAAK,KACpB,GAAIsD,IAAQkiD,GAAaxlD,EAAMgD,SAASwiD,GAAY,CAC7CxlD,EAAMgD,SAASM,IAClBtD,EAAMgE,KAAKV,EAAIE,eAGjBykD,EAAmBjoD,EACnB,KACF,CACF,CAIA,IAFA,IAAImoD,EAAW,GAEf,MAA2B5xD,OAAO8M,QAAQ0sC,GAAY,eAAE,CAAnD,0BAAOzsC,EAAG,KAAEtD,EAAK,KAGpB,GAAqB,kBAAVA,EACT,GAAIoE,MAAMC,QAAQrE,GAAQ,CACxB,IAAIooD,EAAc,GAKlB,IAAK,IAAIC,KAJLtkD,MAAMT,KACR8kD,EAAW,WAAO9kD,IAGAtD,EAMlB,IALAmoD,EAAWtC,EACTL,EACAxlD,EAAMqoD,GAAS,GAAD,OACX3kD,GAAO,OAAG0kD,EAAW,QAEbvmD,OAAS,EACpB,MAIJ,GAAIsmD,EAAStmD,OAAS,EACpB,KAGJ,KAAO,CACDumD,EAAc,GAUlB,GATIrkD,MAAMT,KACR8kD,EAAW,WAAO9kD,KAGpB6kD,EAAWtC,EACTL,EACAxlD,EAAM,GAAD,OACF0D,GAAO,OAAG0kD,KAEFvmD,OAAS,EACpB,KAEJ,MAEA,GAAIomD,EAAiBjlD,SAASM,EAAIE,eAAgB,CAChD2kD,EAAQ,UAAMzkD,EAAO,YAAIJ,GACzB,KACF,CAEJ,CAEA,OAAO6kD,CACT,EAMMG,GAAmB,SAACC,GAIxB,IAAIxY,EAAc4V,GAAiB,CAAEzvD,GAAI,OAAQoG,KAAM,SACnDksD,EAAc,OAClB,IAAK,IAAIvyC,KAAYsyC,EAAQt4C,WAAY,CACvC,IAAM0J,EAAQ4uC,EAAQt4C,WAAWgG,GAEjC,IAAI0D,EAAMvJ,sBAISxV,IAAlB+e,EAAMkyB,SAA2C,OAAlBlyB,EAAMkyB,SAAoBlyB,EAAMkyB,QAAQhqC,OAAS,GAApF,CAIG,IAAM2jD,EAAY7rC,EAAMrd,KAAKkH,cAAcka,OAAO/gB,WAAW,IAAK,KAE5DipD,EAAcC,GAAcL,EAAWzV,EAAa,IACtD6V,EAAY/jD,OAAS,IAC3B1D,QAAQC,IAAI,wBAAyBmqD,EAAQt4C,WAAWgG,GAAU3Z,KAAMspD,GAClB,IAA9C2C,EAAQt4C,WAAWgG,GAAUjW,MAAM6B,SACrC0mD,EAAQt4C,WAAWgG,GAAUjW,MAAK,WAAOwoD,GAAW,OAAG5C,GACvD2C,EAAQt4C,WAAWgG,GAAU66B,eAAgB,GATpD,CAYC,CAEA,IAAIhB,EAAUzB,GAAWka,GACzB,GAAIzY,EAAQjuC,OAAS,EACnB,IAAK,IAAIyB,KAAOwsC,EAAS,CACvB,IAAM7jC,EAAO6jC,EAAQxsC,GACrB,GAAmB,uBAAf2I,EAAK5O,MAST,IAAK,IAAI4Y,KALTuyC,OACiB5tD,IAAfqR,EAAK5O,MACD,GACA4O,EAAK5O,MAAMmG,cAAcka,OAAO/gB,WAAW,IAAK,KACtDozC,EAAc4V,GAAiB15C,GACVs8C,EAAQt4C,WAAY,CACvC,IAAM0J,EAAQ4uC,EAAQt4C,WAAWgG,GAEjC,IAAI0D,EAAMvJ,sBAIOxV,IAAlB+e,EAAMkyB,SAA2C,OAAlBlyB,EAAMkyB,SAAoBlyB,EAAMkyB,QAAQhqC,OAAS,GAApF,CAIK,IAAM2jD,EAAY7rC,EAAMrd,KACrBkH,cACAka,OACA/gB,WAAW,IAAK,KAEbipD,EAAcC,GAAcL,EAAWzV,EAAa,IACtD6V,EAAY/jD,OAAS,GAC2B,IAA9C0mD,EAAQt4C,WAAWgG,GAAUjW,MAAM6B,SACrC0mD,EAAQt4C,WAAWgG,GAAUjW,MAAK,WAAOwoD,GAAW,OAAG5C,GACzD2C,EAAQt4C,WAAWgG,GAAU66B,eAAgB,EAXpD,CAgBG,CAEF,CAGF,OAAOyX,CACT,EAGMhE,GAAc,SAACrnD,GACnBoxC,IAAa,GACb,IAAMzd,EAAO3zB,EAAM2R,OAAOnY,OAG5B,GADAyH,QAAQC,IAAI,eAAgByyB,QACRj2B,IAAhBi2B,EAAKrO,aAAwC5nB,IAAhBi2B,EAAKhiB,OAAtC,CAIA,IAAqB,IAAjBgiB,EAAK43B,QAIR,OAHAtqD,QAAQC,IAAI,gCAEZlB,EAAM2R,OAAOnY,KAAK,WAAW,GAI9B,IAAMitD,EAAappD,GAAGgS,eAAeskB,EAAKrO,QACpCwiC,EAAkBzqD,GAAGgS,eAAeskB,EAAKhiB,QAC/C,QAAmBjU,IAAf+oD,GAA2C,OAAfA,QAA2C/oD,IAApBoqD,GAAqD,OAApBA,OACjF,CACN7mD,QAAQC,IAAI,uFAAwFulD,EAAWjtD,QAC/E,YAA5BitD,EAAWjtD,KAAK,SACiB,qBAAhCitD,EAAWjtD,KAAK,aAAsE,eAAhCitD,EAAWjtD,KAAK,aACzE8c,YAAW,WACV,IAAMk1C,EAAWnuD,GAAGgzB,QAAQ1C,QAC5B1sB,QAAQC,IAAI,UAAWsqD,EAAU73B,GACjC,IAAI83B,EAAaD,EAAS3wC,WACzB,SAACrhB,GAAI,OAAKA,EAAKA,KAAK8rB,SAAWqO,EAAKrO,QAAU9rB,EAAKA,KAAKR,KAAO26B,EAAK36B,EAAE,IAIvE,GADAiI,QAAQC,IAAI,SAAUuqD,IACF,IAAhBA,EAKH,OAJAzrD,EAAM2R,OAAO6e,cAGbjpB,EAAM+E,KAAK,6CAOXrL,QAAQC,IAAI,gCAEd,GAAG,IAIL,IAAM6mD,EAAYC,GAAmBvB,EAAWznD,WAAY8oD,EAAgB9oD,YACtEipD,EAAc5qD,GAAGgS,eAAeskB,EAAK36B,SACvB0E,IAAhBuqD,GAA6C,OAAhBA,IAChCA,EAAYtuD,MAAM,yBAA0BouD,EAAUG,UACtDD,EAAYtuD,MAAM,uBAAwBouD,EAAUI,QAGtD,CAGE,IAAI7E,EAAalsC,GAASmD,SAASM,WACjC,SAACrhB,GAAI,OAAKA,EAAKR,KAAO26B,EAAKhiB,MAAM,KAEf,IAAhB2xC,IACFriD,QAAQC,IAAI,eAAgBoiD,GAEiB,eAA3ClsC,GAASmD,SAAS+oC,GAAYpqC,UACa,qBAA3C9B,GAASmD,SAAS+oC,GAAYpqC,WAG9B3R,EAAM6E,MAAM,2CACZpM,EAAM2R,OAAO6e,WAInB,IAAMk7B,EAAc1rD,EAAM2R,OAAOA,SAE/B,GADF1Q,QAAQC,IAAI,mCAAoCwqD,IACT,IAAjCA,EAAYlyD,KAAK,YAAsB,CAC1C,IAAMiwD,EAAapsD,GAAGgS,eAAeq8C,EAAYlyD,KAAK,eAGxD,GAFAwG,EAAM2R,OAAO6e,SACbvvB,QAAQC,IAAI,6BAA8BuoD,EAAWjwD,aAClCkE,IAAf+rD,GAA2C,OAAfA,EAAqB,CAGhD,IAAMkC,EAAc1rC,cASd2rC,EAAgB,CACpB/6B,MAAO,QACPr3B,KAVkB,CAClB8rB,OAAQtlB,EAAM2R,OAAOnY,KAAK,UAC1BmY,OAAQ+5C,EAAYlyD,KAAK,cACzBstD,IAAK6E,EACL3yD,GAAI2yD,EACJzE,UAAWlnD,EAAM2R,OAAOnY,KAAK,eAQ/B6D,GAAGuzB,IAAIg7B,EACZ,CACD,CAEE,IACuC,IAArCF,EAAYlyD,KAAK,iBACS,YAA7BkyD,EAAYlyD,KAAK,QAId,OAFHyH,QAAQC,IAAI,kDACTlB,EAAM2R,OAAO6e,SAIf8yB,GAAc,EAMd,IAAInsB,GAAQ,EACZ,IAAK,IAAI/wB,KAAOgR,GAAS4d,SAAU,CACjC,GACE5d,GAAS4d,SAAS5uB,GAAK25B,iBAAmBpM,EAAKrO,QAC/ClO,GAAS4d,SAAS5uB,GAAK05B,YAAcnM,EAAKhiB,OAC1C,CACApK,EAAM6E,MAAM,qDACZpM,EAAM2R,OAAO6e,SACb2G,GAAQ,EACR,KACF,CAAO,GACL/f,GAAS4d,SAAS5uB,GAAK25B,iBAAmBpM,EAAKhiB,QAC/CyF,GAAS4d,SAAS5uB,GAAK05B,YAAcnM,EAAKrO,OAC1C,CACArkB,QAAQC,IAAIyyB,EAAKrO,QACjB/d,EAAM6E,MAAM,8BACZpM,EAAM2R,OAAO6e,SACb2G,GAAQ,EACR,KACF,CAAO,GAAIxD,EAAKhiB,SAAWyF,GAASvM,OAIlC,IAAoB,KAHpBy4C,EAAalsC,GAASmD,SAASM,WAC7B,SAACrhB,GAAI,OAAKA,EAAKR,KAAO26B,EAAKrO,MAAM,KAEZ,CAC1B,GAAwB,YAApBg+B,EAAWnpD,KAAoB,CAClCoN,EAAM6E,MAAM,qCACZpM,EAAM2R,OAAO6e,SACb,KACD,CAEA2G,GAAQ,CACL,OACSxD,EAAKrO,OAAWlO,GAAS4d,SAAS5uB,GAAK05B,SA+BpD,CAKA,IAAM+rB,EAAYxuD,GAAGgS,eAAeskB,EAAKrO,QACnCwmC,EAASzuD,GAAGgS,eAAeskB,EAAKhiB,QACtC,QACgBjU,IAAdmuD,GACc,OAAdA,QACWnuD,IAAXouD,GACW,OAAXA,EACA,CACA,IAAMT,EAAUD,GAAiBU,EAAOtyD,QACxCyH,QAAQC,IAAI,aAAcmqD,EAC5B,CAEA,IAAIb,EAAY,CACd1qB,UAAWnM,EAAKrO,OAChBya,eAAgBpM,EAAKhiB,OACrBo6C,IAAKp4B,EAAK36B,GACVA,GAAI26B,EAAK36B,GACTkuD,WAAW,EACX9C,WAAW,GAGRjtB,IACHqzB,EAAqB,WAAI,EAEzBpzC,GAAS4d,SAASluB,KAAK0jD,GACvB7lC,GAAYvN,KAGdulC,GAAQ71C,KAAK,CACX3M,KAAM,OACN+F,OAAQ,QACR1G,KAAMm6B,IAERipB,GAAWD,IACXG,GAAgBH,GAAQh4C,OAlN1B,CAmNA,EAEMyiD,GAAc,SAACpnD,GACnB,IAAM4tB,EAAO5tB,EAAM2R,OACbg2C,EAAW3nD,EAAM2R,OAAOnY,OAM9B,GAJmC,IAAjCH,OAAOD,KAAKuuD,GAAUhjD,QACzB1D,QAAQC,IAAI,wDAGe,IAAtBymD,EAASxrC,gBAAuCze,IAAhBiqD,EAAS3uD,SAA0C0E,IAAtBiqD,EAAS77C,UAA1E,CAaA,GAJAslC,IAAa,GAITxjB,EAAKqC,UAAkC,IAAtB5yB,GAAGqwB,QAAQjZ,OAC9B2C,GAASvM,MAAQ+iB,EAAKp0B,KAAK,MAC3BmuD,EAASnC,aAAc,MAClB,CACL,GAAyB,OAArBpuC,GAASlL,QAEX,YADJjL,QAAQC,IAAI,uCAKV,IAAK,IAAIkF,KAAOgR,GAASlL,QAAS,CAChC,IAAMhM,EAASkX,GAASlL,QAAQ9F,GAC5BlG,EAAOslD,aAAepuC,GAASvM,QAAU3K,EAAOlH,KAClDkH,EAAOslD,aAAc,EAEzB,CACF,CAEA,GAAsB,WAAlBmC,EAASxtD,KAAmB,CAQ9B,GAC8B,IAA5Bid,GAASlL,QAAQvH,QACjByS,GAASlL,QAAQ,GAAGlT,KAAOoe,GAASvM,MACpC,CACA,IAAM8gD,EAAc1rC,cASd2rC,EAAgB,CACpB/6B,MAAO,QACPr3B,KAVkB,CAClB8rB,OAAQlO,GAASvM,MACjB8G,OAAQg2C,EAAS3uD,GACjB8tD,IAAK6E,EACL3yD,GAAI2yD,EACJzE,WAAW,IAQbjmD,QAAQC,IAAI,gCACZ7D,GAAGuzB,IAAIg7B,EACT,CAEA,GAA0B,kBAAtBjE,EAASzuC,SAA8B,CACzC,IAAM8vC,EAAWlyB,GAAY6wB,GACvB1uB,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAC3D0uB,EAASt5C,YAAc46C,EACvBtB,EAAShwB,aAAeqxB,EAASrxB,aACjCgwB,EAASqE,UAAY,aAEOtuD,IAA1BiqD,EAAShwB,cACiB,OAA1BgwB,EAAShwB,cACTgwB,EAAShwB,aAAahzB,OAAS,EAE/BgjD,EAASqE,UAAY,kBAErBrE,EAAS3uB,eAAiBgwB,EAASvxB,mBAEvC,CAGA,QAC0B/5B,IAAxBiqD,EAAS50C,YACe,OAAxB40C,EAAS50C,aACR40C,EAASxnD,MAAM+qC,SAAS,SACzB,CACA,IAAI+gB,EAAgB,GAEpB,IAAK,IAAIhlD,KAAU0gD,EAAS50C,WAAY,CACtC,IAAIm5C,EAAWt/C,KAAKC,MAClBD,KAAKS,UAAUs6C,EAAS50C,WAAW9L,KAErCilD,EAASlzD,GAAKinB,mBAEIviB,IAAnBwuD,EAASppD,OAA0C,OAAnBopD,EAASppD,MACvCopD,EAASppD,MAAQ,GAEjBopD,EAASppD,MAAQopD,EAASppD,MAG3BmpD,EAAcnlD,KAAKolD,EACrB,CAEAvE,EAAS50C,WAAak5C,CACxB,MAEyBvuD,IAArB0Z,GAASlL,SAA8C,OAArBkL,GAASlL,QAC7CkL,GAASlL,QAAU,CAACy7C,GAEpBvwC,GAASlL,QAAQpF,KAAK6gD,GAGxBhjC,GAAYvN,GACd,MAAO,GAAsB,YAAlBuwC,EAASxtD,KAAoB,CACtC,IAA0B,IAAtBwtD,EAAS77C,SAGX,OAFAvE,EAAM+E,KAAK,6CACXshB,EAAK4C,cAImB9yB,IAAtB0Z,GAASmD,SACXnD,GAASmD,SAAW,CAACotC,GAErBvwC,GAASmD,SAASzT,KAAK6gD,GAGzB,IAAMgE,EAAc1rC,cAYd2rC,EAAgB,CACpB/6B,MAAO,QACPr3B,KAbkB,CAClB8rB,OAAQqiC,EAAS3uD,GACjB2Y,OAAQyF,GAASvM,MACjBi1B,UAAW6nB,EAAS3uD,GACpB+mC,eAAgB3oB,GAASvM,MACzBi8C,IAAK6E,EACL3yD,GAAI2yD,EACJzE,WAAW,EACX9C,WAAW,IASO,eAAlBuD,EAASvoD,MACS,qBAAlBuoD,EAASvoD,WAGc1B,IAArB0Z,GAASlL,SACY,OAArBkL,GAASlL,SACTkL,GAASlL,QAAQvH,OAAS,GAE1BtH,GAAGuzB,IAAIg7B,GAIXjnC,GAAYvN,GACd,MAE0B1Z,IAAtBiqD,EAASzuC,WACXyjC,GAAQ71C,KAAK,CACX3M,KAAM,OACN+F,OAAQ,QACR1G,KAAMmuD,IAER/K,GAAWD,IACXG,GAAgBH,GAAQh4C,QAhK1B,CAkKF,EAkIMolD,GAAgB,SAAC/pD,GACrB,OAAQA,EAAMmsD,SACZ,KAAK,IACgC,IAA/B1nC,IACFlN,IAA8B,GAEhC,MACF,KAAK,GACHtW,QAAQC,IAAI,UACZ,MACF,KAAK,GAGL,KAAK,GAGL,KAAK,GAGL,KAAK,GAoFL,KAAK,GAEL,KAAK,GAEL,KAAK,GAIL,QACE,MA1FF,KAAK,GACClB,EAAMosD,SACRnrD,QAAQC,IAAI,UAGd,MACF,KAAK,GACH,GAAIlB,EAAMosD,UAAYpsD,EAAMqsD,SAAU,CACpC,QACiB3uD,IAAfsC,EAAMyF,MACS,OAAfzF,EAAMyF,MACNzF,EAAMyF,KAAKd,OAAS,GAEY,SAA5B3E,EAAMyF,KAAK,GAAG6mD,UAEhB,YADArrD,QAAQC,IAAI,yCAKrB,QACqBxD,IAAjBsC,EAAM2R,QACW,OAAjB3R,EAAM2R,QAEyB,SAA3B3R,EAAM2R,OAAO26C,UAEf,YADArrD,QAAQC,IAAI,yCAMb,GADAD,QAAQC,IAAI,eACDxD,IAAPL,GAAkB,CACpB,IAAIkvD,EAASlvD,GAAGmvD,EAAE,aAAa7+B,QAC/B,QAAejwB,IAAX6uD,GAAmC,OAAXA,GAAmBA,EAAO5nD,OAAS,EAAG,CAChE1D,QAAQC,IAAIqrD,GAEZ,IACI3vC,EAAW7R,SAASsE,eADJ,wBAEpB,GAAiB,OAAbuN,QAAkClf,IAAbkf,EAAwB,CAE/C,QAAkBlf,IADAmf,UAAUC,UAG1B,YADAvV,EAAM6E,MAAM,wCAIdyQ,UAAUC,UAAUC,UAAUnQ,KAAKS,UAAUk/C,IAC7C3vC,EAASI,SACTJ,EAASK,kBAAkB,EAAG,OAC9BlS,SAASmS,YAAY,QACrB3V,EAAMiF,QAAQ,UAAD,OAAW+/C,EAAO5nD,OAAM,eACvC,CACF,CACF,CACF,CACA,MACF,KAAK,GACC3E,EAAMosD,QAoBV,MACF,KAAK,GACCpsD,EAAMosD,SACRnrD,QAAQC,IAAI,UAgBpB,EAEM8oD,GAAc,SAAChqD,GAEnB,UACiBtC,IAAfsC,EAAMyF,MACS,OAAfzF,EAAMyF,MACNzF,EAAMyF,KAAKd,OAAS,GAGY,SAA5B3E,EAAMyF,KAAK,GAAG6mD,kBAQD5uD,IAAjBsC,EAAM2R,QACW,OAAjB3R,EAAM2R,QAEyB,SAA3B3R,EAAM2R,OAAO26C,WAJrB,CAWEtsD,EAAMsE,iBACN,IAAMwY,GAAa9c,EAAMysD,eAAiBzsD,GAAO0sD,cAAcC,QAC7D,cAKF,IACE,IAAMC,EAAahgD,KAAKC,MAAMiQ,GAG9B,IAAK,IAAI1W,KAAOwmD,EAAY,CAC1B,IAAM79C,EAAO69C,EAAWxmD,GACxBnF,QAAQC,IAAI,WAAY6N,GAC1BA,EAAKvV,KAAKR,GAAKinB,cAEb5iB,GAAGuzB,IAAI,CACLC,MAAO9hB,EAAK8hB,MACZr3B,KAAMuV,EAAKvV,KACXwF,SAAU+P,EAAK/P,UAEnB,CAIF,CAHE,MAAOpG,GACPqI,QAAQC,IAAI,kBAAmBtI,EAEjC,CA5BF,CA6BA,EAOM+tD,GAAkB,WACtBz7C,MAAMrO,EAAY,0BAA2B,CAC3CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,oCAEVw+C,GADEtiD,GACc,CAAC,CAAE07C,KAAM,QAAS+T,KAAM,UAExB,CAAC,CAAE/T,KAAM,SAAU+T,KAAM,aAMtCvhD,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,IAAI0rB,GAAQ,EACR21B,EAAa,EACjB,IAAK,IAAI1mD,KAAOqF,EACVA,EAAarF,GAAK2mD,UAAY51B,IAChCiqB,GAA2Bh7C,GAC3B+wB,GAAQ,IAGyB,IAA/B1rB,EAAarF,GAAK6yC,WACpB6T,GAAc,GAQlB,GAJIA,EAAa,GACfzR,IAAmB,IAGhBlkB,EACH,IAAK,IAAI/wB,KAAOqF,EACd,IAAKA,EAAarF,GAAK6yC,SAAU,CAC/BmI,GAA2Bh7C,GAC3B,KACF,CAKJhJ,QACkBM,IAAjB+N,GAA+C,OAAjBA,GAAyBA,EAAa9G,OAAS,EAC5E+6C,GAAgBj0C,GAEfi0C,GAAgB,CAAC,CAAE5G,KAAM,QAAS+T,KAAM,WAG1CnN,GAAgBj0C,EAEnB,IACCU,OAAM,SAACC,GAENnL,QAAQC,IAAI,2BAA4BkL,EAAMpG,WAChD,GACJ,GAGG6B,GACDk4C,IACAJ,IACApjD,EAAM6vC,MAAMvI,OAAOz9B,MAAQgR,GAASpe,SACpB0E,IAAhB0Z,GAASpe,IACO,OAAhBoe,GAASpe,IACToe,GAASpe,GAAG2L,OAAS,IAErBrH,OAAOC,SAASgP,SAAW,cAAgBhQ,EAAM6vC,MAAMvI,OAAOz9B,KAGhE,IAqEM4mD,GAAc,wBACdC,GAAwB,UA0CxBC,GAAgB,SAACltD,GACrB,IAAIypD,EAAapsD,GAAGmvD,EAAE,IAAMxsD,EAAM2R,OAAOnY,KAAK,OAC9C,IAAIiwD,EAAWjwD,KAAK,cAAeiwD,EAAWjwD,KAAK,YAAnD,CAEA,IAAM2zD,EAAK1D,EAAWzqD,SAAS,KAAO,GAChCouD,EAAK3D,EAAWzqD,SAAS,KAAO,EAChCquD,EAAYC,GAAYrtC,cAE9BwpC,EAAWjwD,KAAK,WAAY6zD,GAE5B,IAAMrE,EACE,2IADFA,EAEOgE,GAFPhE,EAGiBiE,GAGjBh0B,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAAa,mBAAWA,EAAkB,mBACjMC,EAAan9B,UAAU,4BAA8BmN,GAE3D57B,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM,CACJ2uD,OAAQ,GACRnvD,GAAIq0D,EACJjuD,KAAM,SACN8qD,UAAU,EACVV,WAAY,OACZV,WAAY9oD,EAAM2R,OAAOnY,KAAK,MAC9B+9B,KAAM0xB,EACNjwB,eAAgBgwB,EAChBl9C,UAAU,GAEZ9M,SAAU,CAAEwzB,EAAG26B,EAAI16B,EAAG26B,GACtBhE,QAAQ,GA/B4D,CAiCxE,EAoHM93B,GAAc,SAACtxB,GACnB,IAAM2nD,EAAW3nD,EAAM2R,OAAOnY,OAE9B,IAA0B,IAAtBmuD,EAASxrC,SAAb,CAKF,IAAMkV,EAAmBtmB,SAASsE,eAAe,kBAQ/C,QAPuB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,gBAMLrB,IAAtBiqD,EAASzuC,WAA+C,KAApB9B,GAASmnB,OAAiB,CAChE,IAAMqqB,EAAWvrD,GAAGqwB,QAAQC,QAExBwJ,GAAQ,EACZ,IAAK,IAAI/wB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,IAE1ByiD,EAAYrvD,KAAK0wD,UAAYrB,EAAYrvD,KAAK+zD,eAC/C1E,EAAYrvD,KAAKsvD,aAAenB,EAAS3uD,IAEzCqE,GAAGgS,eAAew5C,EAAYrvD,KAAKR,IAAIw3B,SAWvCq4B,EAAYrvD,KAAK0wD,UACjBrB,EAAYrvD,KAAKsvD,aAAenB,EAAS3uD,KAEzCm+B,GAAQ,EAEZ,CAEKA,IAhFe,SAACn3B,GACvB,IAAIypD,EAAapsD,GAAGmvD,EAAE,IAAMxsD,EAAM2R,OAAOnY,KAAK,OAC9C,IAAIiwD,EAAWjwD,KAAK,cAAeiwD,EAAWjwD,KAAK,YAAnD,CAEA,IAAM2zD,EAAK1D,EAAWzqD,SAAS,KAAO,GAChCouD,EAAK3D,EAAWzqD,SAAS,KAAO,GAChCquD,EAAYC,GAAYrtC,cAE9BwpC,EAAWjwD,KAAK,WAAY6zD,GAE5B,IAAMrE,EACE,gFADFA,EAEOgE,GAFPhE,EAGiBiE,GAEjBh0B,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAAa,mBAAWA,EAAkB,mBACjMC,EAAan9B,UAAU,4BAA8BmN,GAE3D57B,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM,CACJ2uD,OAAQ,GACRnvD,GAAIq0D,EACJjuD,KAAM,SACN8qD,UAAU,EACVV,WAAY,SACZV,WAAY9oD,EAAM2R,OAAOnY,KAAK,MAC9B+9B,KAAM0xB,EACNjwB,eAAgBgwB,EAChBl9C,UAAU,GAEZ9M,SAAU,CAAEwzB,EAAG26B,EAAI16B,EAAG26B,GACtBhE,QAAQ,GA9B4D,CAgCxE,CA+CMoE,CAAgBxtD,GAEE,YAAlB2nD,EAASxtD,KACkB,YAA1BwtD,EAASltC,cAAwD,cAA1BktC,EAASltC,cACnDyyC,GAAcltD,IAGfktD,GAAcltD,GApPU,SAACA,GAC1B,IAAIypD,EAAapsD,GAAGmvD,EAAE,IAAMxsD,EAAM2R,OAAOnY,KAAK,OAC9C,IAAIiwD,EAAWjwD,KAAK,cAAeiwD,EAAWjwD,KAAK,cAE/CiwD,EAAWjwD,KAAK,eAApB,CAIA,IAAM2zD,EAAK1D,EAAWzqD,SAAS,KAAO,GAChCouD,EAAK3D,EAAWzqD,SAAS,KAAO,GAChCquD,EAAYC,GAAYrtC,cAE9BwpC,EAAWjwD,KAAK,WAAY6zD,GAE5B,IAAMrE,EACE,2IADFA,EAEOgE,GAFPhE,EAGiBiE,GAGjBh0B,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAAa,mBAAWA,EAAkB,mBACjMC,EAAan9B,UAAU,4BAA8BmN,GAE3D57B,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM,CACJ2uD,OAAQ,GACRnvD,GAAIq0D,EACJjuD,KAAM,SACN8qD,UAAU,EACVV,WAAY,gBACZV,WAAY9oD,EAAM2R,OAAOnY,KAAK,MAC9B+9B,KAAM0xB,EACNjwB,eAAgBgwB,EAChBl9C,UAAU,GAEZ9M,SAAU,CAAEwzB,EAAG26B,EAAI16B,EAAG26B,GACtBhE,QAAQ,GA/BV,CAiCF,CA8MGqE,CAAmBztD,IAQpB,CAEA,IAAI0tD,EAAc,CAChB,eAAgB,MAChB,iBAAkB,KAClB,YAAa,QAIXC,EAAUtwD,GAAG0lB,SAAS,iBAAiB4K,QAC7C,IAAK,IAAIigC,KAASD,EAAS,CAE1B,GADaA,EAAQC,GACZp0D,KAAKR,KAAO2uD,EAAS3uD,GAAI,CAEjC00D,EAAY,gBAAkB,OAC9B,KACD,CACD,CAEwB,YAAlB/F,EAASxtD,OACXuzD,EAAY1yD,MAAQ,cAyBH0C,IAAjBsC,EAAM2R,QAAyC,OAAjB3R,EAAM2R,QACvC3R,EAAM2R,OAAOwf,QACZ,CACCx3B,MAAO+zD,GAER,CACCjjD,SAvXuB,MA4XxB,IAAMy4C,EAAgBljD,EAAM2R,OAAOwxC,SAAS,QACtCC,EAAgBpjD,EAAM2R,OAAO0xC,SAAS,QACxCH,EAAcv+C,OAAS,GACzBu+C,EAAc9L,SAAS,mBAGrBgM,EAAcz+C,OAAS,GACzBu+C,EAAc9L,SAAS,kBAtHzB,MAFDn2C,QAAQC,IAAI,SAAUymD,EA0HvB,EA4GKK,GAAqB,SAAC6F,EAAoBC,GAC/C,IAAMC,EAAUD,EAAwBt7B,EAAIq7B,EAAmBr7B,EACzDw7B,EAAUF,EAAwBr7B,EAAIo7B,EAAmBp7B,EAGzDw7B,EAAWF,EADPpoC,KAAKuoC,KAAKH,EAAUA,EAAUC,EAAUA,GAE5CG,EAAQ,IA+Bd,MAAO,CACN,SA/B0B,EAAC,IAASH,EAAUC,EAAUE,EAAQH,EAAUC,GAgC1E,OA/BwB,CAACE,EAAO,KAiClC,EAsOOhE,GAAa,SAACiE,GAClB,IAAMC,EAAehxD,GAAGgS,eAAe++C,GACvC,QAA4B1wD,IAAxB2wD,EAAa70D,OAAjB,CASA,GAAiC,YAA7B60D,EAAa70D,OAAOW,KAAoB,CAC1C8G,QAAQC,IAAI,0BACZD,QAAQC,IAAImtD,EAAa70D,QACzB,IAAM80D,EAAel3C,GAASmD,SAASM,WACrC,SAACrhB,GAAI,OAAKA,EAAKR,KAAOq1D,EAAa70D,OAAOR,EAAE,IAE9CkmD,GAAwBoP,GACiB,aAArCD,EAAa70D,OAAOihB,cACtBw1B,GAAmBoe,EAAa70D,QAChC+0D,GAAaF,EAAa70D,OAAQ80D,IACY,YAArCD,EAAa70D,OAAOihB,cAC7Bw1B,GAAmBoe,EAAa70D,QAChCg1D,GAAcH,EAAa70D,OAAQ80D,IACW,UAArCD,EAAa70D,OAAOihB,eAC7Bw1B,GAAmBoe,EAAa70D,QAChCi1D,GAAYzP,GAAiBsP,GAEjC,CAQsBjxD,GAAGmvD,EAAE,cACW,IAAlC6B,EAAa70D,OAAO4qD,WAAoD,YAA9BiK,EAAa70D,KAAK,QAC9D+N,EAAM+E,KAAK,+BAEX+hD,EAAa79B,QAnCf,MAFDvvB,QAAQC,IAAI,oBAsDb,EAGGoG,IAA0B,IAAdu4C,KACdC,IAAa,GAEd0D,GAGWrmD,EAASnE,KAmClB,IAAI6O,EAAJ,CA2CsB,IAApBkb,GAASpe,aACYjH,IAArB0Z,GAASlL,UACR6zC,IACD1mD,OAAO05B,oBAAoB3b,IAAUzS,OAAS,GAG9Cq7C,IAAc,GA1XC,WACjB,IAAM9zC,EAAUkL,GAASlL,QAAQ9T,KAAI,SAAC8H,GACpC,IAAM0tB,EAAO,CAAC,EAEd,IAAK1tB,EAAOslD,aAAmC,kBAApBtlD,EAAOgZ,SAA8B,CAC9D,IAAM8vC,EAAWlyB,GAAY52B,GACvB+4B,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAC3D/4B,EAAOmO,YAAc46C,EACrB/oD,EAAOy3B,aAAeqxB,EAASrxB,aAC/Bz3B,EAAO8rD,UAAY,aAEOtuD,IAAxBwC,EAAOy3B,cACiB,OAAxBz3B,EAAOy3B,cACPz3B,EAAOy3B,aAAahzB,OAAS,EAE7BzE,EAAO8rD,UAAY,kBAEnB9rD,EAAO84B,eAAiBgwB,EAASvxB,mBAErC,CAEA7J,EAAK5uB,SAAWkB,EAAOlB,SACvB4uB,EAAKp0B,KAAO0G,EAEZ0tB,EAAKp0B,KAAKR,GAAKkH,EAAW,GAC1B0tB,EAAKp0B,KAAKstD,IAAM5mD,EAAW,GAC3B0tB,EAAKp0B,KAAKW,KAAO,SACjByzB,EAAK43B,YAActlD,EAAW,KAAMkX,GAASvM,OAExB,IAApBuM,GAASmnB,SACZ3Q,EAAKp0B,KAAKsS,UAAW,EACrB8hB,EAAK9hB,UAAW,GAGd,IAAIgF,EAAU,GAWd,YATqBpT,IAAnBwC,EAAO4Q,SACY,OAAnB5Q,EAAO4Q,SACP5Q,EAAO4Q,QAAQnM,OAAS,IAExBmM,EAAU5Q,EAAO4Q,SAGnB8c,EAAKp0B,KAAKsX,QAAUA,EAEb8c,CACT,IAEM8gC,EAAiBt3C,GAASlL,QAAQ9T,KAAI,SAAC8H,GAC3C,IAAKA,EAAOslD,YAAa,CACvB,GAAwB,YAApBtlD,EAAOgZ,SACT,OAAO,KACF,GAAwB,kBAApBhZ,EAAOgZ,SAChB,OAAO,IAEX,CAEA,IAAM8vC,EAAWlyB,GAAY52B,GACvB+4B,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAErDiwB,EAAShpD,EAAOslD,YAAc,GAAK,GAiBzC,MAhBsB,CACpBxmD,SAAU,CACRwzB,EAAGtyB,EAAOlB,SAASwzB,EAAI02B,EACvBz2B,EAAGvyB,EAAOlB,SAASyzB,EAAIy2B,GAEzBE,QAAQ,EACR5vD,KAAM,CACJuvD,cAAc,EACd52B,SAAS,EACTrmB,UAAU,EACV3L,MAAO,GACP8nB,MAAOghC,EACPI,WAAYL,EAASvxB,oBACrBqxB,WAAY5oD,EAAOlH,IAIzB,IAEMuhB,EAAWnD,GAASmD,SAASniB,KAAI,SAACoiB,GACtC,IAAMoT,EAAO,CAAC,EAQd,OAPAA,EAAK5uB,SAAWwb,EAAQxb,SACxB4uB,EAAKp0B,KAAOghB,EAEZoT,EAAKp0B,KAAKstD,IAAMtsC,EAAY,GAC5BoT,EAAKp0B,KAAKR,GAAKwhB,EAAY,GAC3BoT,EAAKp0B,KAAKW,KAAO,UAEVyzB,CACT,IAEIqH,EAAW,QAESv3B,IAAtB0Z,GAAS6d,UACa,OAAtB7d,GAAS6d,UACT7d,GAAS6d,SAAStwB,OAAS,IAE3BswB,EAAW7d,GAAS6d,SAAS78B,KAAI,SAACu2D,GAChC,IAAM/gC,EAAO,CAAC,EAOd,OANAA,EAAK5uB,SAAW2vD,EAAQ3vD,SACxB4uB,EAAKp0B,KAAOm1D,EAEZ/gC,EAAKp0B,KAAKstD,IAAM6H,EAAY,GAC5B/gC,EAAKp0B,KAAKW,KAAO,UAEVyzB,CACT,KAIF,IAAIo5B,EAAgB,GAAGC,OAAO/6C,EAASqO,EAAUm0C,EAAgBz5B,GACjE+xB,EAAgBA,EAAcxzC,QAAO,SAACoa,GAAI,OAAc,OAATA,CAAa,IAE5D,IAAIyC,EAAQjZ,GAAS4d,SAAS58B,KAAI,SAACyd,EAAQlX,GACzC,IAAMg1B,EAAO,CAAC,EACV2kB,EAAalhC,GAAS4d,SAASr2B,GAAO25C,gBACvB56C,IAAf46C,GAA2C,OAAfA,IAC9BA,EAAa,IAGf,IAAIn4C,EAAQ,GACc,IAAtBm4C,EAAW3zC,OACbxE,EAAQm4C,EAAW3zC,OAAS,aACnB2zC,EAAW3zC,OAAS,IAC7BxE,EAAQm4C,EAAW3zC,OAAS,eAG9BgvB,EAAKn6B,KAAO,CACVR,GAAI6c,EAAO7c,GACX8tD,IAAKjxC,EAAO7c,GACZssB,OAAQzP,EAAOiqB,UACfnuB,OAAQkE,EAAOkqB,eACf5/B,MAAOA,EACPm4C,WAAYA,EACZ4O,UAAWrxC,EAAOsxC,WAClB/C,WAAW,GAMhB,IAAIqC,EAAav6C,EAAQ2F,MAAK,SAAA+b,GAAI,OAAIA,EAAKp0B,KAAKstD,MAAQjxC,EAAOiqB,WAAalS,EAAKp0B,KAAKR,KAAO6c,EAAOiqB,SAAS,IACzGgoB,EAAkB57C,EAAQ2F,MAAK,SAAA+b,GAAI,OAAIA,EAAKp0B,KAAKstD,MAAQjxC,EAAOkqB,gBAAkBnS,EAAKp0B,KAAKR,KAAO6c,EAAOkqB,cAAc,IAU5H,QARmBriC,IAAf+oD,IACHA,EAAalsC,EAAS1I,MAAK,SAAA+b,GAAI,OAAIA,EAAKp0B,KAAKstD,MAAQjxC,EAAOiqB,WAAalS,EAAKp0B,KAAKR,KAAO6c,EAAOiqB,SAAS,UAGnFpiC,IAApBoqD,IACHA,EAAkBvtC,EAAS1I,MAAK,SAAA+b,GAAI,OAAIA,EAAKp0B,KAAKstD,MAAQjxC,EAAOkqB,gBAAkBnS,EAAKp0B,KAAKR,KAAO6c,EAAOkqB,cAAc,UAGvGriC,IAAf+oD,QAAgD/oD,IAApBoqD,GAAiCjyC,EAAOiqB,YAAcjqB,EAAOkqB,eAAgB,CAC5G,IAAMgoB,EAAYC,GAAmBvB,EAAWznD,SAAU8oD,EAAgB9oD,UAC1E20B,EAAKh6B,MAAQ,CACZ,yBAA2BouD,EAAUG,SACrC,uBAAwBH,EAAUI,OAEpC,MACClnD,QAAQC,IAAI,8BAGV,OAAOyyB,CACT,IAEA,QAC+Bj2B,IAA7B0Z,GAAS4tC,iBACoB,OAA7B5tC,GAAS4tC,iBACT5tC,GAAS4tC,gBAAgBrgD,OAAS,EAClC,CACA,IAAMiqD,EAAcx3C,GAAS4tC,gBAAgB5sD,KAAI,SAACyd,EAAQlX,GACxD,IAAMg1B,EAAO,CAAC,EAEd,QAAiCj2B,IAA7B0Z,GAAS4d,SAASr2B,GACpB,MAAO,CAAC,EAGV,IAAI25C,EAAalhC,GAAS4d,SAASr2B,GAAO25C,WAe1C,YAdmB56C,IAAf46C,GAA2C,OAAfA,IAC9BA,EAAa,IAIf3kB,EAAKn6B,KAAO,CACVR,GAAI6c,EAAO7c,GACX8tD,IAAKjxC,EAAO7c,GACZssB,OAAQzP,EAAOiqB,UACfnuB,OAAQkE,EAAOkqB,eACf5/B,MANY,UAOZikD,WAAW,GAGNzwB,CACT,IAEAtD,EAAQA,EAAM42B,OAAO2H,EACvB,CAEAjqC,GAAYvN,IAGZ,IAAIsZ,EAAW,GACf,IAAK,IAAItqB,KAAOiqB,EAAO,CACrB,IAAIthB,EAAOshB,EAAMjqB,GACjB,QAAkB1I,IAAdqR,EAAKvV,KAAT,CAIA,IAAMq1D,EAAc7H,EAAcn1C,MAChC,SAACrY,GAAI,OAAKA,EAAKA,KAAKR,KAAO+V,EAAKvV,KAAK8rB,MAAM,IAEvCwpC,EAAY9H,EAAcn1C,MAC9B,SAACrY,GAAI,OAAKA,EAAKA,KAAKR,KAAO+V,EAAKvV,KAAKmY,MAAM,SAEzBjU,IAAhBmxD,QAA2CnxD,IAAdoxD,GAIjCp+B,EAAS5pB,KAAKiI,EAZd,CAaF,CAEAi4C,EAAgBA,EAAcC,OAAOv2B,GACrCuxB,GAAY+E,EACd,CAyJI+H,GACH9tD,QAAQC,IAAI,oBAGCy+C,SAAsBjiD,IAAPL,KAA+B,OAAT0K,SAA0BrK,IAATqK,IAAsBA,GAAKpD,OAAS,IAA0B,IAApByS,GAASmnB,SAAoBllC,OAAO05B,oBAAoB3b,IAAUzS,OAAS,GAAK24C,KAE7Lr8C,QAAQC,IAAI,wBAMT0+C,IAAe,GAGlB3+C,QAAQC,IAAI,YAAa7D,GAAG2xD,gBAIPtxD,IAAjBL,GAAG2xD,UACN3xD,GAAG2xD,UAAU,CACZC,YAAa,GACbC,gBAAiB,CAChBC,YAAa,UACbC,wBAAyB,IACzBC,MAAO,IACPC,aAAc,GACdC,oBAAqB,GACrBC,oBAAqB,UACrBC,kBAAmB,UACnBC,sBAAuB,UACvBC,SAAU,CAAC,EAAG,GACdC,mBAAoB,CAAC,EAAG,GACxBC,iBAAkB,CAAC,EAAG,GACtBC,qBAAsB,CAAC,EAAG,MAI5B7uD,QAAQC,IAAI,yDAGUxD,IAAnBL,GAAGuuB,aACN3qB,QAAQC,IAAI,sBACZ7D,GAAGuuB,YAAY,CACdmE,YAAa,SAACC,GAGb,OAFA/uB,QAAQC,IAAI,qBAER8uB,EAAGC,UACND,EAAGx2B,KAAK,aACRw2B,EAAGx2B,KAAK,iBACRw2B,EAAGx2B,KAAK,iBACW,YAApBw2B,EAAGx2B,KAAK,QAKT,EACA02B,SAAS,EACTC,kBAAkB,EAClBC,YAAa,SAAUxC,GACtB,OAAO,CACR,KASD3sB,QAAQC,IAAI,2CAIV7D,GAAG0zB,IAAI,KAAM,KAEb1zB,GAAG2zB,GAAG,YAAa,QAAQ,SAACp4B,IACtBA,EAAE+Y,OAAOnY,KAAK,aAAeZ,EAAE+Y,OAAOnY,KAAK,iBAAmBZ,EAAE+Y,OAAOnY,KAAK,kBAC9EZ,EAAE+Y,OAAOqR,WAGXpqB,EAAE+Y,OAAOylC,SAAS,WACpB,IAEA/5C,GAAG2zB,GAAG,YAAY,SAACp4B,GACjBqI,QAAQC,IAAI,SACZ7D,GAAGyoD,eAAe,SACpB,IAEAzoD,GAAG2zB,GAAG,UAAU,SAACp4B,GACnBqI,QAAQC,IAAI,QAAS7D,IACrB,IAAIkvD,EAASlvD,GAAGmvD,EAAE,aAAa7+B,aAChBjwB,IAAX6uD,GAAmC,OAAXA,GAAmBA,EAAO5nD,OAAS,GAC1D4C,EAAMiF,QAAQ,YAAD,OAAa+/C,EAAO5nD,OAAM,qCAE1C,IAEAtH,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GACxBs4B,GAAat4B,EAAGye,GACjB,IACAha,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAAKq4B,GAAar4B,EAAE,IAE9CyE,GAAG2zB,GAAG,YAAY,SAACp4B,GAAC,OA5+FL,SAACoH,GAClB,IAAM2nD,EAAW3nD,EAAM2R,OAAOnY,OAC9ByH,QAAQC,IAAI,aAAcymD,GAQ5B,IAAMgG,EAAUtwD,GAAG0lB,SAAS,iBAAiB4K,QAC7C,IAAK,IAAIigC,KAASD,EAAS,CAC1B,IAAM5+C,EAAO4+C,EAAQC,GACrB,IAA2B,IAAvB7+C,EAAKvV,KAAK0wD,SAMb,YAH6B,WAAzBn7C,EAAKvV,KAAKgwD,aAA2Bz6C,EAAKvV,KAAKsvD,WAAenB,EAAS3uD,IAK7E,CA8DA6oC,IAASC,yBAAwB,WAChCr5B,GAAkB,CAAC,GACnBb,GAAe,CAAC,GAChBqoC,GAAmB,CAAC,GACpB8O,GAAmB,CAAC,GACpB7O,GAAgB,CAAC,GAEjBA,GAAgB,CAAC,GACjBW,GAA6B,CAAC,GAC9BqK,GAAyB,CAAC,GAC1BgE,IAAyB,GACzB9D,GAAkB,IAClBM,GAAe,CAAC,GACf+B,IAAqB,GAGtBG,IAAoB,GACpB3M,GAAgB,CACfh/B,IAAK,EACL6Q,KAAM,EACNpB,SAAU,IAGZ,IAEA8hC,GAGWrmD,EAASnE,GAGpB,CA03F6B+2D,CAAWn3D,EAAE,IAEtCyE,GAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAC,OAAKwuD,GAAYxuD,EAAE,IAC1CyE,GAAG2zB,GAAG,MAAO,QAAQ,SAACp4B,GAAC,OAAKyuD,GAAYzuD,EAAE,IAC1CyE,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OA1zCR,SAACoH,GACrB,IACMxG,EADOwG,EAAM2R,OACDnY,OAElB,IAAsB,IAAlBA,EAAK2iB,SAAT,CAMA,GAFA/E,GAASlL,QAAUkL,GAASlL,QAAQsH,QAAO,SAACwlC,GAAC,OAAKA,EAAEhgD,KAAOQ,EAAKR,EAAE,IAClEoe,GAASmD,SAAWnD,GAASmD,SAAS/G,QAAO,SAACwlC,GAAC,OAAKA,EAAEhgD,KAAOQ,EAAKR,EAAE,IAChEoe,GAASvM,QAAUrR,EAAKR,IAAMoe,GAASlL,QAAQvH,OAAS,EAG1D,GAAIyS,GAASlL,QAAQ,GAAGlT,KAAOQ,EAAKR,GAAI,CACtC,IAAMmuC,EAAM9pC,GAAGgS,eAAe+H,GAASlL,QAAQ,GAAGlT,SACtC0E,IAARypC,GAA6B,OAARA,IACvBA,EAAI3tC,KAAK,eAAe,GACxB4d,GAASvM,MAAQs8B,EAAInuC,KAEzB,MACE,GAAIoe,GAASlL,QAAQvH,OAAS,EAAG,CAC/B,IAAMwiC,EAAM9pC,GAAGgS,eAAe+H,GAASlL,QAAQ,GAAGlT,SACtC0E,IAARypC,GAA6B,OAARA,IACvBA,EAAI3tC,KAAK,eAAe,GACxB4d,GAASvM,MAAQs8B,EAAInuC,KAEzB,CAIJ,QAAsB0E,IAAlBlE,EAAK0f,SAAwB,CAC/B,IAAM0vC,EAAWvrD,GAAGqwB,QAAQC,QAC5B,IAAK,IAAIvnB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,GACzByiD,EAAYrvD,KAAKsvD,aAAetvD,EAAKR,IACvCqE,GAAGgS,eAAew5C,EAAYrvD,KAAKR,IAAIw3B,QAE3C,CAEAmsB,GAAQ71C,KAAK,CACX3M,KAAM,OACN+F,OAAQ,UACR1G,KAAMA,IAIRojD,GAAWD,IACXG,GAAgBH,GAAQh4C,OAC1B,CAEAggB,GAAYvN,IACM,YAAd5d,EAAKW,MACPqd,GAAaJ,GA9Cf,CAgDF,CAowCmC44C,CAAcp3D,EAAE,IAC/CyE,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAl4CR,SAACoH,GACrBoxC,IAAa,GAEb,IAAMzd,EAAO3zB,EAAM2R,OACnB,IAA+B,IAA3BgiB,EAAKn6B,KAAK,aAAd,CAKFyH,QAAQC,IAAI,YAAayyB,EAAKn6B,QAC5B,IAAMovD,EAAWvrD,GAAGqwB,QAAQC,QAC9B,IAAK,IAAIvnB,KAAOwiD,EAAU,CACzB,IAAMqH,EAAUrH,EAASxiD,GACzB,GAA0B,YAAtB6pD,EAAQz2D,KAAKW,MAIb81D,EAAQz2D,KAAKR,KAAO26B,EAAKn6B,KAAK,YACjCyH,QAAQC,IAAI,kCAAmC+uD,GACjB,qBAA1BA,EAAQz2D,KAAK0f,UAA6D,eAA1B+2C,EAAQz2D,KAAK0f,UAEpC,YAAxB+2C,EAAQz2D,KAAK+R,QAAsB,CACtCtK,QAAQC,IAAI,+BAAgCyyB,EAAKn6B,QAGjD,IAAI02D,EAAUv8B,EAAKn6B,OACnB02D,EAAQ3E,SAAU,EAElB,IACCluD,GAAGuzB,IAAI,CACNC,MAAO,QACPr3B,KAAM02D,IAGP3oD,EAAM6E,MAAM,yDAGb,CAFE,MAAOxT,GACRqI,QAAQC,IAAI,0BAA2BtI,EACxC,CACD,CAKH,CAEEwe,GAAS4d,SAAW5d,GAAS4d,SAASxhB,QACpC,SAACwlC,GAAC,OAAKA,EAAEhgD,KAAO26B,EAAKn6B,OAAOR,EAAE,IAEhC2rB,GAAYvN,IACZpX,EAAM2R,OAAO6e,UAMO,IAHDpZ,GAASmD,SAASM,WACnC,SAACrhB,GAAI,OAAKm6B,EAAKn6B,KAAK,YAAcA,EAAKR,EAAE,KAGzCiI,QAAQC,IAAI,4CAGaxD,IAAvBi2B,EAAKn6B,OAAO8rB,SACdq3B,GAAQ71C,KAAK,CACX3M,KAAM,OACN+F,OAAQ,UACR1G,KAAMm6B,EAAKn6B,SAGbojD,GAAWD,IACXG,GAAgBH,GAAQh4C,QA7D1B,CA+DF,CA6zCmCwrD,CAAcv3D,EAAE,IAE/CyE,GAAG2zB,GAAG,YAAa,QAAQ,SAACp4B,GAAC,OAzmBb,SAACoH,GACnB,GAAc,OAAVA,QAA4BtC,IAAVsC,IAKK,IADVA,EAAM2R,OAAOnY,OACjB4qD,UAAb,CAIF,IAAM/yB,EAAmBtmB,SAASsE,eAAe,uBACxB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,gBA8CZrB,IAAjBsC,EAAM2R,QAAwB3R,EAAM2R,MAlDtC,CAyEF,CAwhBsCy+C,CAAYx3D,EAAE,IAChDyE,GAAG2zB,GAAG,WAAY,QAAQ,SAACp4B,GAAC,OA9nBT,SAACoH,GACtB,GAAc,OAAVA,QAA4BtC,IAAVsC,GAMtB,IAA2B,IADVA,EAAM2R,OAAOnY,OACjB4qD,UAAb,CAIF,IAAM/yB,EAAmBtmB,SAASsE,eAAe,uBACxB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,UAJ/B,OAPEiB,EAAM2R,OAAO0+C,aAejB,CA6mBqCC,CAAe13D,EAAE,IAClDyE,GAAG2zB,GAAG,YAAa,QAAQ,SAACp4B,GAAC,OAAK04B,GAAY14B,EAAE,IAChDyE,GAAG2zB,GAAG,WAAY,QAAQ,SAACp4B,GAAC,OAtgCT,SAACoH,GACtB,IAAM2nD,EAAW3nD,EAAM2R,OAAOnY,OAC9B,QAA0BkE,IAAtBiqD,EAASzuC,SAAwB,CACnC,IAAM0vC,EAAWvrD,GAAGqwB,QAAQC,QAC5B,IAAK,IAAIvnB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,GAE3ByiD,EAAYrvD,KAAK0wD,UACjBrB,EAAYrvD,KAAKsvD,aAAenB,EAAS3uD,IAEzCqE,GAAGgS,eAAew5C,EAAYrvD,KAAKR,IAAIw3B,QAG3C,CACF,CAEF,IAAMa,EAAmBtmB,SAASsE,eAAe,kBAMjD,QALyB3R,IAArB2zB,GAAuD,OAArBA,IACrCA,EAAiB13B,MAAMoF,OAAS,gBAItBrB,IAAPL,GAAkB,CACrB,IAAMswD,EAAUtwD,GAAG0lB,SAAS,iBAAiB4K,QAC7C,IAAK,IAAIigC,KAASD,EAEjB,GADaA,EAAQC,GACZp0D,KAAKR,KAAO2uD,EAAS3uD,GAC7B,MAGH,CAKE,IAAI00D,EAAc,CAChB,eAAgB,MAChB,YAAa,QAIY,YAAtB/F,EAASzuC,UAAgD,kBAAtByuC,EAASzuC,UAAkCyuC,EAASnC,cAC1FkI,EAAc,CACZ,eAAgB,MAChB,YAAa,QAIjB1tD,EAAM2R,OAAOwf,QACX,CACEx3B,MAAO+zD,GAET,CACEjjD,SAtDoB,MA0DxB,IAAMy4C,EAAgBljD,EAAM2R,OAAOwxC,SAAS,QACtCC,EAAgBpjD,EAAM2R,OAAO0xC,SAAS,QACxCH,EAAcv+C,OAAS,GACzBu+C,EAAc7L,YAAY,mBAGxB+L,EAAcz+C,OAAS,GACzBu+C,EAAc7L,YAAY,kBAE9B,CAo8BqC9lB,CAAe34B,EAAE,IAGlDyE,GAAG2zB,GAAG,OAAQ,QAAQ,SAACp4B,GAAC,OAAK2wD,GAAW3wD,EAAG4P,GAAe,IAC1DnL,GAAG2zB,GAAG,OAAQ,QAAQ,SAACp4B,GAAC,OAAK8uD,GAAe9uD,EAAG4P,GAAe,IAE9DnL,GAAG2zB,GAAG,SAAU,QAAQ,SAACp4B,GAAC,OAp1Fb,SAACoH,GAChB,IAAM2nD,EAAW3nD,EAAM2R,OAAOnY,OAE9B,GADAyH,QAAQC,IAAIymD,GAEQ,YAAlBA,EAASxtD,MACa,qBAAtBwtD,EAASzuC,SACT,CACA,GAA4B,OAAxByuC,EAAS50C,WAEX,YADAxL,EAAM6E,MAAM,wBAIjB,QAA4B1O,IAAxBiqD,EAAS50C,WACZ,OAGE,IAAMiN,EAAc2nC,EAAS50C,WAAWlB,MACtC,SAAC4K,GAAK,MAAoB,aAAfA,EAAMrd,IAAmB,IAGtC,GAAIgY,GAASpe,KAAOgnB,EAAYuwC,KAC9B,OAGFlzD,GAAGmzD,UAAU,CACXC,KAAM,EACNC,OAAQ,CACNC,KAAM3wD,EAAM2R,UAGbi/C,OACAC,UACAl4D,MAAK,WACJsI,QAAQC,IAAI,SAAU8e,GACtBwmC,GAAYxmC,EAAYld,MAAO6kD,GAC/BtqD,GAAG0zB,IAAI,KAAM,GACf,GACJ,CACF,CA8yFmC+/B,CAASl4D,EAAE,IAE1CmS,SAAShN,MAAQ,cAAgBqZ,GAAShY,KAlmC5C2L,SAAS9F,iBAAiB,UAAW8kD,IACrCh/C,SAAS9F,iBAAiB,QAAS+kD,KAsmCrC,IAAMuE,GAAe,SAAC/zC,EAAS8zC,GAC7BpjD,MAAM,GAAD,OACArO,EAAS,6BAAqBN,EAAM6vC,MAAMvI,OAAOz9B,IAAG,qBAAaoU,EAAQxhB,IAC5E,CACEmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAGd1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,yCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAEAA,EAAae,QAKhBjF,EAAMiF,QAAQ,sCAJc9O,IAAxB+N,EAAasJ,QACfxN,EAAM6E,MAAM,4BAA8BX,EAAasJ,QAM3DqC,GAASmD,SAAS+zC,GAAc/iD,OAAS,UACzCiP,EAAQjP,OAAS,UACjB0kC,GAAmBz1B,GACnBmK,GAAYvN,IACZI,GAAaJ,GACf,IACCjL,OAAM,SAACC,GAENnL,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC7C,GACJ,EAEM0R,GAAiB,SAAC8C,EAAS8zC,GAC/B,GAAI9zC,EAAQpb,KAAKuF,QAAU,EACzB4C,EAAM6E,MAAM,kCADd,CAKF,IAAI2kD,EAAkB,GAChBvF,EAAWnuD,GAAGgzB,QAAQ1C,QAC5B,IAAK,IAAIvnB,KAAOolD,EAAU,CACzB,IAAMx6C,EAAMw6C,EAASplD,GAErB,GADAnF,QAAQC,IAAI,QAAS8P,EAAKA,EAAIxX,KAAK8rB,QAC/BtU,EAAIxX,KAAK8rB,SAAW9K,EAAQxhB,GAAI,CACnC+3D,EAAkB//C,EAAIxX,KAAKmY,OAC3B,KACD,CACD,CAEEpK,EAAM+E,KAAK,+BAAiCkO,EAAQpb,MACpD,IAAM5F,EAAO,CACX4F,KAAMob,EAAQpb,KACd4xD,UAAW55C,GAASmD,SAAS+zC,GAAcv7C,WAAW,GAAGjQ,MACzD8a,mBAAoBxG,GAASmD,SAAS+zC,GAAcv7C,WAAW,GAAGjQ,MAClEk9B,YAAa5oB,GAASmD,SAAS+zC,GAActuB,YAC7ChnC,GAAIwhB,EAAQxhB,GACf6R,MAAOkmD,GAGN7lD,MAAM,GAAD,OACArO,EAAS,6BAAqBN,EAAM6vC,MAAMvI,OAAOz9B,IAAG,aACvD,CACE+E,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAGd1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,yCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,SAGhBjF,EAAMiF,QAAQ,iCACd4K,GAASmD,SAAS+zC,GAAc/iD,OAAS,UACzCiP,EAAQjP,OAAS,UACjB0kC,GAAmBz1B,GACnBmK,GAAYvN,IACZnW,QAAQC,IAAI,6CACZsW,GAAaJ,KARb7P,EAAM6E,MAAM,2BAA6BX,EAAasJ,OAU1D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC5C,GA1DF,CA2DF,EAEMirD,GAAe,CACnB/1D,WAAY,EACZmK,YAAa,EACblE,QAAS,OACT2N,cAAe,SACf7T,UAAW2B,WAAWmlD,GAAsB,EAAXR,GAAe,OAChD/iD,UAAW5B,WAAWmlD,GAAsB,EAAXR,GAAe,QAG5Cv2C,GAAgB,CACpBzQ,aAAcX,EAAME,QAAQS,aAC5BU,UAAW2B,WAAW,GAAK,IAC3B4B,UAAW5B,WAAW,GAAK,IAC3B2E,SAAU3E,WAAW,GAAK,OAC1BzB,SAAUyB,WAAW,GAAK,OAC1B8E,UAAW,MACX1G,MAAO,QACPF,gBAAiBV,GACjB2E,OAAQ,UACRoC,QAAS,QAGL+vD,GAAqB,CACzB32D,aAAcX,EAAME,QAAQS,aAC5BU,UAAW,GACXuD,UAAW,GACX+C,SAAU,OACVpG,SAAU,OACVuG,UAAW,MACX1G,MAAO,QACPF,gBAAiBV,GACjB2E,OAAQ,UACRoC,QAAS,QAGLgwD,GAAgB,WACpB,MAAwBtzD,IAAMC,UAAS,GAAM,mBAAtCmY,EAAI,KAAEmrB,EAAO,KACpB,EAAgCvjC,IAAMC,SAAS,MAAK,mBAA7CujC,EAAQ,KAAEC,EAAW,KAEtB8vB,EAAY,SAACpxD,GACjBohC,GAASnrB,GACTqrB,EAAYthC,EAAM6C,cACpB,EAyBMwuD,EAAsB,CAC1BjuD,OAAQ,GACRnE,SAAU,SACVqD,OAAQ1F,WAAW,OAAS,OAC5B8B,UAAW,OACXD,UAAW,OACXmQ,KAAM,MAGR,OACE,qBAAKjV,MAAOs3D,GAAa,SACvB,sBAAKt3D,MAAO03D,EAAoB,qBACrB,IACT,mBACEj/C,IAAI,sBACJC,KAAK,wDACLV,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,iCAIrB,OAAhCoc,GAASiD,mBACN,KACAjD,GAASiD,mBAAmBjiB,KAAI,SAACkiB,EAAU3b,GACzC,OACE,8BACE,eAACe,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOu3D,GAAoBpxD,QAAS,WAAO,EAAE,UACzD,qBACEnG,MAAO,CACLuB,WAAY,OACZwG,UAAW,MACXuJ,aAAc,MACd/L,MAAO,MACPpE,gBAAiB8/C,EACjBv1C,YAAa,SAGjB,sBAAK1L,MAAO,CAAEwH,QAAS,OAAQjC,MAAO,QAAS,UAC7C,sBACEvF,MAAO,CACLiV,KAAM,KACNlN,UAAW,OACXxG,WAAY,OACZ+D,SAAU,UAEZa,QAAS,WACrBk9C,GAAgB,CACf,KAAQ1iC,EAASlb,KACjB,YAAekb,EAAS7L,YACxB,MAAS6L,EAASxX,MAClB,MAASnE,IAEI0xC,IAAsB,EACxB,EAAE,mBAEK/1B,EAASlb,QAElB,sBAAKzF,MAAO,CAAEiV,KAAM,IAAK1T,WAAY,OAAQ,UAC3C,cAACoX,GAAA,EAAU,CACT,aAAW,OACX,gBAAc,YACd,gBAAc,OACdxS,QAASsxD,EACTz3D,MAAO,CAAEqB,MAAO,SAAU,SAE1B,cAACqoC,GAAA,EAAY,MAEf,eAAC1B,GAAA,EAAI,CACH3oC,GAAG,YACHqoC,SAAUA,EACVO,aAAW,EACX3rB,KAAMA,EACNE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,KAGrB8b,QAAS,WACPkrB,GAAQ,GACRE,EAAY,KACd,EAAE,UAEF,cAACpwB,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,SAET8E,QAAS,WACPshC,GAAQ,GACxB4b,GAAgB,CACf,KAAQ1iC,EAASlb,KACjB,YAAekb,EAAS7L,YACxB,MAAS6L,EAASxX,MAClB,MAASnE,IAEM0xC,IAAsB,EACxB,EAAE,SAGD,QAFI,QAIP,cAACn/B,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,SAET8E,QAAS,WAjIZ,IAACwxD,IAkImB3yD,OAhIRjB,IAAhC0Z,GAASiD,oBAAoE,OAAhCjD,GAASiD,oBAA+BjD,GAASiD,mBAAmB1V,OAAS2sD,GAC7Hl6C,GAASiD,mBAAmBqb,OAAO47B,EAAe,GAMhD3sC,GAAYvN,IA0HcgqB,GAAQ,EACV,EAAE,SAGD,UAFI,uBArFPziC,EA+Fd,IACJ,qBAAKhF,MAAO,CAAEiV,KAAM,KAAM,SACxB,cAACkB,EAAA,EAAM,CACL1N,WAAS,EACTzI,MAAO,CAAEyJ,OAAQ,OAAQ1B,UAAW,QACpC1G,MAAM,UACNyG,QAAQ,WACR3B,QAAS,WACPuwC,IAAsB,GACtBe,IAAa,EACf,EAAE,qCAKN,cAACz+B,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,GACdvJ,UAAW,GACXY,OAAQ,EACRpD,MAAO,OACPpE,gBAAiB,sBAEnB,WACO,IACT,mBACEsX,IAAI,sBACJC,KAAK,yDACLV,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,kCAIpB,OAAjCoc,GAAS8d,0BACuBx3B,IAAjC0Z,GAAS8d,oBACL,KACA9d,GAAS8d,oBAAoB98B,KAAI,SAACkiB,EAAU3b,GAC1C,OACE,8BACE,eAACe,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOu3D,GAAoBpxD,QAAS,WAAO,EAAE,UACzD,qBACEnG,MAAO,CACLuB,WAAY,OACZwG,UAAW,MACXuJ,aAAc,MACd/L,MAAO,MACPpE,gBAAiB8/C,EACjBv1C,YAAa,SAGjB,sBAAK1L,MAAO,CAAEwH,QAAS,OAAQjC,MAAO,QAAS,UAC7C,sBACEvF,MAAO,CACLiV,KAAM,KACNlN,UAAW,OACXxG,WAAY,OACZ+D,SAAU,UAEZa,QAAS,WAErBk9C,GAAgB,CACf,KAAQ1iC,EAASlb,KACjB,YAAekb,EAAS7L,YACxB,MAAS6L,EAASxX,MAClB,MAASnE,IAEIw+C,IAA+B,EACjC,EAAE,mBAEK7iC,EAASlb,QAElB,sBAAKzF,MAAO,CAAEiV,KAAM,IAAK1T,WAAY,OAAQ,UAC3C,cAACoX,GAAA,EAAU,CACT,aAAW,OACX,gBAAc,YACd,gBAAc,OACdxS,QAASsxD,EACTz3D,MAAO,CAAEqB,MAAO,SAAU,SAE1B,cAACqoC,GAAA,EAAY,MAEf,eAAC1B,GAAA,EAAI,CACH3oC,GAAG,YACHqoC,SAAUA,EACVO,aAAW,EACX3rB,KAAMA,EACNE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,KAGrB8b,QAAS,WACPkrB,GAAQ,GACRE,EAAY,KACd,EAAE,UAEF,cAACpwB,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,SAET8E,QAAS,WACPshC,GAAQ,GAExB4b,GAAgB,CACf,KAAQ1iC,EAASlb,KACjB,YAAekb,EAAS7L,YACxB,MAAS6L,EAASxX,MAClB,MAASnE,IAEMw+C,IAA+B,EACjC,EAAE,SAGD,QAFI,QAIP,cAACjsC,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,SAET8E,QAAS,WA5PH,IAACwxD,IA6PmB3yD,OA5PhBjB,IAAjC0Z,GAAS8d,qBAAsE,OAAjC9d,GAAS8d,qBAAgC9d,GAAS8d,oBAAoBvwB,OAAS2sD,GAChIl6C,GAAS8d,oBAAoBQ,OAAO47B,EAAe,GAMjD3sC,GAAYvN,IAsPcgqB,GAAQ,EACV,EAAE,SAGD,UAFI,uBAUrB,IACJ,qBAAKznC,MAAO,CAAEiV,KAAM,KAAM,SACxB,cAACkB,EAAA,EAAM,CACL1N,WAAS,EACTzI,MAAO,CAAEyJ,OAAQ,OAAQ1B,UAAW,QACpC1G,MAAM,UACNyG,QAAQ,WACR3B,QAAS,WACPq9C,IAA+B,GAC/B/L,IAAa,EACf,EAAE,0CAQd,EAEMmgB,GAAe,SAACvxD,EAAOw0C,GAC3BrE,GAAeqE,EACjB,EAEMgd,GAAiB,WAErB,IAAIC,EACF,cAACC,GAAO,CACNC,QAAS5pD,GACT6pD,UAAW,GACXpS,gBAAiBA,GACjBv3C,aAAcA,KAGE,IAAhB+yC,GACFyW,EAAW,cAACI,GAAY,IACC,IAAhB7W,KACTyW,EAAW,cAACN,GAAa,KAG3B,IAAMW,EAAW,CACf32D,SAAUyB,WAAWm/C,GAAcA,GAAc,EACjDx6C,SAAU3E,WAAWm/C,GAAcA,GAAc,EACjDntC,KAAM,EACN6M,cAAe,QAGXo8B,EAAY,CAChBn2C,UAAW,EACX2D,YAAa,GAGXw/C,EAAejoD,WAAWmlD,GAAwB,EAAXR,GAAeQ,GAAaR,GAAa,GACpF,OACE,gCACE,qBACE5nD,MAAO,CACLsB,UAAW4pD,EACXrmD,UAAWqmD,EACjB5lD,SAAU,UACJ,SAEDwyD,IAEH,cAAC9+C,GAAA,EAAO,CAAChZ,MAAO,CAAEmB,gBAAiB,sBACnC,eAACi3D,GAAA,EAAI,CACHjvD,MAAOk4C,GACPgX,eAAe,UACfpvD,SAAU2uD,GACV,aAAW,mBAChBvb,YAAap5C,WAAW,WAAa,aACrCjD,MAAO,CAAC,EAAE,UAEL,cAACs4D,GAAA,EAAG,CACF9xD,MACE,eAAC9B,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,UACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAAC,KAAQ,CAACpV,MAAOk+C,MAElBj7C,WAAW,KAAO,cAACyB,EAAA,EAAI,CAAC0Q,MAAI,uBAGjCpV,MAAOm4D,IAET,cAACG,GAAA,EAAG,CACF9xD,MACE,eAAC9B,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,UACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAACojD,GAAA,EAAY,CAACx4D,MAAOk+C,MAEtBj7C,WAAW,KAAO,cAACyB,EAAA,EAAI,CAAC0Q,MAAI,2BAGjCpV,MAAOm4D,IAET,cAACG,GAAA,EAAG,CACF9xD,MACE,eAAC9B,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,UACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAAC,KAAkB,CAACpV,MAAOk+C,MAE5Bj7C,WAAW,KAAO,cAACyB,EAAA,EAAI,CAAC0Q,MAAI,4BAGjCpV,MAAOm4D,SAKjB,EAEMv3C,GAAW,CACf,CACEnb,KAAM,UACNjF,KAAM,UACNoR,OAAQ,gBACRkP,aAAc,UACdV,OAAQ,KACR1L,YACE,6kSACFvC,UAAU,EACV3L,MAAO,UACP6/B,YAAa,SACbvxB,YAAa,oBACb2jD,iBAAkB,wDAEpB,CACEhzD,KAAM,WACNjF,KAAM,UACNoR,OAAQ,gBACRkD,YAAa,eACbgM,aAAc,WACdV,OAAQ,KACR1L,YACE,izGACFlO,MAAO,WACP2L,UAAU,EACVk0B,YAAa,SACboyB,iBAAkB,mCAEpB,CACEhzD,KAAM,mBACNjF,KAAM,UACNoR,OAAQ,gBACRkP,aAAc,UACdV,OAAQ,KACR1L,YACE,6+hBACFvC,UAAU,EACV3L,MAAO,UACP6/B,YAAa,SACbvxB,YAAa,qBACb2jD,iBAAkB,+CAEpB,CACEhzD,KAAM,aACNjF,KAAM,UACNoR,OAAQ,UACR8C,YACE,yyHACFI,YAAa,sBACbgM,aAAc,YACdV,OAAQ,KACRjO,YAAUu1C,KAAoBjkD,IAC9B+C,MAAO,aACP6/B,YAAa,QACboyB,iBAAkB,yCAEpB,CACEhzD,KAAM,YACNjF,KAAM,UACNoR,OAAQ,gBACRkD,YAAa,qBACbgM,aAAc,QACdV,OAAQ,KACRjO,WAAU1O,GACV+C,MAAO,QACP6/B,YAAa,QACb3xB,YACE,qyHACF+jD,iBAAkB,4CAEpB,CACEhzD,KAAM,QACNjF,KAAM,UACNoR,OAAQ,gBACRkD,YAAa,sBACbgM,aAAc,QACdV,OAAQ,KACRjO,WAAU1O,GACV+C,MAAO,QACP6/B,YAAa,QACb3xB,YACE,qlOACF+jD,iBAAkB,6CAIhBP,GAAe,WAUnB,OACE,qBAAKl4D,MAVmB,CACxBuB,WAAY,OACZmK,YAAa,OACblE,QAAS,OACT2N,cAAe,UAMe,SAC5B,qBAAKnV,MAAO04D,GAAe,SACxB93C,GAASniB,KAAI,SAACoiB,EAAS7b,GACtB,IAAIyP,EAC6B,IAA/BoM,EAAQnM,YAAY1J,OAClB,qBAAKvD,IAAI,GAAGzH,MAAO,CAAEY,aAAcX,EAAME,QAAQS,aAAc2E,MAAOtC,WAAW,GAAK,GAAI2pB,cAAe,UAEzG,qBACEnlB,IAAI,GACJC,IAAKmZ,EAAQnM,YACb1U,MAAO,CAAEY,aAAcX,EAAME,QAAQS,aAAc2E,MAAOtC,WAAW,GAAK,GAAI0F,OAAQ1F,WAAW,GAAK,GAAI2pB,cAAe,UAIzHvrB,EAAQwf,EAAQ1O,SAAW6uC,EAAQC,EACzC,OACE,cAAC,IAAS,CAER0X,OAAQ,SAAC15D,GACP25D,GAAkB35D,EAAG4hB,EACvB,EACAg4C,OAAQ,SAAC55D,GACP65D,GAAe75D,EACjB,EACAsL,UAAU,EACVlF,SAAU,CACRwzB,EAAG,EACHC,EAAG,GACH,SAEF,eAAC/yB,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOqR,GAAelL,QAAS,WAAO,EAAE,UACpD,qBACEnG,MAAO,CACLuB,WAAY0B,WAAW,EAAI,OAC3B8E,UAAW9E,WAAW,GAAK,MAC3BqO,aAAc,MACd/L,MAAO,MACPpE,gBAAiBE,EACjBqK,YAAa,SAGjB,eAAChH,EAAA,EAAI,CACHC,WAAS,EACT3E,MAAO,CAAEyJ,OAAQxG,WAAW,mBAAqB,sBAAuBgS,KAAM,MAAO,UAErF,cAACvQ,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAACF,GAAA,EAAU,UAAET,MAExBxR,WAAW,KACX,eAACyB,EAAA,EAAI,CACJ1E,MAAO,CACNwH,QAAS,OACT2N,cAAe,SACf5T,WAAY,OACZ+D,SAAU,UACT,UAEF,cAACZ,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEiV,KAAM,IAAK3P,SAAU,UAAW,SACnD,oBAAItF,MAAO,CAAEsR,aAAc,MAAOvJ,UAAW,OAAQzC,SAAU,UAAW,SACxEub,EAAQpb,SAGX,cAACf,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEiV,KAAM,KAAM,SAC9B4L,EAAQ/L,wBA9CD9P,EAsDX,OAIR,EAEI2uD,GAAY,GACZoF,GAAY,CAAC,EACXH,GAAoB,SAAC35D,EAAGY,GAC5B,IAAMm5D,EAAct1D,GAAGiB,YAEvB,GACE1F,EAAE4yC,MAAQmnB,EAAYC,YACtBh6D,EAAE4yC,MAAQmnB,EAAYC,WAAaD,EAAYE,aAC/Cj6D,EAAE2yC,MAAQonB,EAAYG,WACtBl6D,EAAE2yC,MAAQonB,EAAYG,UAAYH,EAAYI,aAC9C,CACA,KAAIzF,GAAU3oD,OAAS,GAQhB,CACL,GAAuB,KAAnByS,GAASvM,YAAmCnN,IAAnB0Z,GAASvM,MAEpC,YADAtD,EAAM6E,MAAM,mCAId,IAAM4mD,EAAeC,GAAkBz5D,EAAK4F,MAE5CkuD,GAAYrtC,cACZ,IAAMizC,EAAc,CAClB1gC,EAAG55B,EAAE4yC,MAAQmnB,EAAYC,WACzBngC,EAAG75B,EAAE2yC,MAAQonB,EAAYG,WA0BrBK,EAAgB,CACpBtiC,MAAO,QACPr3B,KAzBiB,CACjB0f,SAAU1f,EAAK4F,KACfsP,YAAa,QACbsxB,YAAa5iC,GAAU,QAAU5D,EAAKwmC,YACtCvxB,YAAajV,EAAKiV,YAClB2jD,iBAAkB54D,EAAK44D,iBACvBr4C,OAAQ,GACRgyC,IAAKuB,GACL8F,KAAM9F,GACNt0D,GAAIs0D,GACJnxC,UAAU,EACVhc,MAAO6yD,EACP74D,KAAMX,EAAKW,KACX2R,UAAU,EACV2O,aAAcjhB,EAAKihB,aACnBpM,YAAa7U,EAAK6U,YAClB9C,OAAQ,gBACRnM,KAAM5F,EAAK4F,KACXomD,aAAa,EACbxmD,SAAUk0D,GAOV3gC,iBAAkB2gC,GAKpB,OAFA71D,GAAGuzB,IAAIuiC,QACPT,GAAYS,EAEd,CArDE,IAAIlQ,EAAc5lD,GAAGgS,eAAei+C,IACpC,GAA2B,IAAvBrK,EAAYt+C,OACd,OAGFs+C,EAAY,GAAG1wB,iBAAiB,IAAK35B,EAAE4yC,MAAQmnB,EAAYC,YAC3D3P,EAAY,GAAG1wB,iBAAiB,IAAK35B,EAAE2yC,MAAQonB,EAAYG,UAgD/D,CACF,EAEML,GAAiB,SAAC75D,EAAGiT,GACzB,IAAIo3C,EAAc5lD,GAAGgS,eAAei+C,IACpC,QACkB5vD,IAAhBulD,GACgB,OAAhBA,GACuB,IAAvBA,EAAYt+C,OAHd,CAWAs+C,EAAYzyB,SACZkiC,GAAUl5D,KAAK2iB,UAAW,EAC1Bu2C,GAAUl5D,KAAKwF,SAAWikD,EAAY1wB,mBACtCmgC,GAAU1zD,SAAWikD,EAAY1wB,mBACjCmgC,GAAUngC,iBAAmB0wB,EAAY1wB,mBAEzC,IAAI8gC,EAAaX,GAAUl5D,KAC3B,GAAwB,WAApB65D,EAAWl5D,KAAmB,CAShC,IAN0B,IAAzBk5D,EAAWtnD,YACd9K,QAAQC,IAAI,oBACZ2a,GAAYw3C,EAAWn+C,QAAQ,SAIFxX,IAAvBmO,EAAIgO,gBAAuD,OAAvBhO,EAAIgO,iBAA2D,IAAhChO,EAAIgO,eAAe5G,SAAmB,CAC/GhS,QAAQC,IAAI,yBAGR,IAAM8Y,EAAwB,GAC1B2wC,EAAa,GAEkB,OAAjC0I,EAAWz5C,wBACsBlc,IAAjC21D,EAAWz5C,mBACXy5C,EAAWz5C,kBAAkBjV,OAAS,IAEtCgmD,EAAa0I,EAAWz5C,mBAG1B,IAAMosC,EAAUp5C,KAAKC,MAAMD,KAAKS,UAAUgK,KAC1C,IAAK,IAAIjR,KAAO4/C,EAAS,CACvB,IAAIj3C,EAAOi3C,EAAQ5/C,GAEb8/C,EAAY,CAAC,EACnB,IAAK,IAAIC,KAAap3C,EAAK+Q,OACzBomC,EAAUn3C,EAAK+Q,OAAOqmC,GAAW//C,KAAO2I,EAAK+Q,OAAOqmC,GAAWrjD,MAGjEiM,EAAK+Q,OAASomC,EACVn3C,EAAKlD,IAAI7S,KAAO6S,EAAI7S,IAAM+V,EAAKlD,IAAIzM,OAASyM,EAAIzM,OAClD4a,EAAsBlT,KAAKiI,IAE7BA,EAAK/V,KAAO2xD,GAIU,KAAfA,KAHV0I,EAAWpxC,uBAAyBlT,EACpCskD,EAAWz5C,kBAAoB7K,EAAK/V,IASnC,CAEA,QAC4B0E,IAA1Bsc,GAC0B,OAA1BA,GACAA,EAAsBrV,OAAS,EAE/B,IAAK,IAAIyB,KAAO4T,EAAuB,CACrC,IAAMu6B,EAASv6B,EAAsB5T,GAErC,GAAImuC,EAAOr6B,QAA2C,KAAjCm5C,EAAWz5C,kBAA0B,CACxDy5C,EAAWpxC,uBAAyBsyB,EACpC8e,EAAWz5C,kBAAoB26B,EAAOv7C,GACtC,KACF,CACF,CAEJ,MACEq6D,EAAWx5C,eAAiB,GAC5Bw5C,EAAWz5C,kBAAoB,GAC/By5C,EAAWpxC,uBAAyB,CAAC,EAGvCywC,GAAUl5D,KAAO65D,EACjBh2D,GAAGuzB,IAAI8hC,GACT,KAA+B,YAApBW,EAAWl5D,MACpBkD,GAAGuzB,IAAI8hC,IAGTpF,GAAY,GACZoF,GAAY,CAAC,CAzFb,CA0FF,EAEML,GAAiB,CACrBpzD,SAAU,SACVT,UAAW5B,WAAWmlD,GAAsB,EAAXR,GAAeQ,GAAaR,GAAa,GAAK,GAC/EtmD,UAAW2B,WAAWmlD,GAAsB,EAAXR,GAAeQ,GAAaR,GAAa,GAAK,GAC/E7/C,UAAW,EACXjD,UAAW,OACXC,UAAW,UAgJPgzD,GAAU,SAACn1D,GACf,IAAQo1D,EAAsDp1D,EAAtDo1D,QAASnS,EAA6CjjD,EAA7CijD,gBAAiBv3C,EAA4B1L,EAA5B0L,aAAc2pD,EAAcr1D,EAAdq1D,UAEhD,EAAsC/zD,IAAMC,SAC7CoJ,MAAMnB,UAAUkhD,OAAOqM,MACnB9T,EACCv3C,EAAauL,QAAO,SAAC+/C,GAAQ,OAAM7N,GAAY5/C,SAASytD,EAASv6D,GAAG,MAEvE,mBALMw6D,EAAW,KAAEC,EAAc,KAU5BC,EAAiB,SAACn3D,GACtB,IAAMsP,EAAMtP,EAAMsP,IAClB,EAA0BhO,IAAMC,UAAS,GAAM,mBAAxC6iC,EAAK,KAAEC,EAAQ,KAGlBryB,EAAa1C,EAAIzM,MACrBmP,EAAaA,EAAWjP,OAAO,GAAGC,cAAgBgP,EAAW/O,UAAU,IACxDmF,OAHA,KAIb4J,EAAaA,EAAWrV,MAAM,EAJjB,IAI8B,MAG7CqV,EAAaA,EAAW9O,WAAW,IAAK,KAExC,IAAMwoB,EAAQpc,EAAIwC,YACZslD,EAAc/mD,KAAKC,MAAMD,KAAKS,UAAUrC,KACxC4oD,EAAajzB,EAAgB,MAAR,MAU3B,OARAgzB,EAAYhtC,WAAa9a,EAAIC,UAA4B,OAAhBD,EAAIK,cAAoCxO,IAAhBmO,EAAIK,SAAyBL,EAAIK,QAAQvH,OAAS,EAAC,UAC7GivD,EAAS,kBAAUjZ,GAAK,UACxBiZ,EAAS,kBAAUhZ,IAExB/uC,EAAIE,WAAaF,EAAIG,YACrB2nD,EAAYhtC,WAAU,UAAMitC,EAAS,kBAAUhZ,IAI/C,cAAC,IAAS,CACR0X,OAAQ,SAAC15D,IArLK,SAACA,EAAGiT,GACxB,IAAM8mD,EAAct1D,GAAGiB,YAMvB,GACE1F,EAAE4yC,MAAQmnB,EAAYC,YACtBh6D,EAAE4yC,MAAQmnB,EAAYC,WAAaD,EAAYE,aAC/Cj6D,EAAE2yC,MAAQonB,EAAYG,WACtBl6D,EAAE2yC,MAAQonB,EAAYG,UAAYH,EAAYI,aAC9C,CACA,KAAIzF,GAAU3oD,OAAS,GAYhB,CAAC,IAAD,EACL,GAAIyS,GAASmnB,OAEX,YADAt9B,QAAQC,IAAI,mCAId,QACkBxD,IAAhBmO,EAAIK,SACY,OAAhBL,EAAIK,SACmB,IAAvBL,EAAIK,QAAQvH,OAOZ,YALA4C,EAAM6E,MACJ,OACEP,EAAIzM,KACJ,2FAKNkuD,GAAYrtC,cACZ,IACM4zC,EAAcZ,GAAkBpnD,EAAIzM,MACtC2T,EAAa,KACbjC,EAAU,GACdrC,EAAc,QAGkB/Q,IAA9BmO,EAAIK,QAAQ,GAAG6G,YACe,OAA9BlH,EAAIK,QAAQ,GAAG6G,YACflH,EAAIK,QAAQ,GAAG6G,WAAWpO,OAAS,IAEnCoO,EAAalH,EAAIK,QAAQ,GAAG6G,iBAINrV,IAA3BmO,EAAIK,QAAQ,GAAG0E,SACY,OAA3B/E,EAAIK,QAAQ,GAAG0E,cACyBlT,IAAnCmO,EAAIK,QAAQ,GAAG0E,QAAQE,SACY,OAAnCjF,EAAIK,QAAQ,GAAG0E,QAAQE,SACvBjF,EAAIK,QAAQ,GAAG0E,QAAQE,QAAQnM,OAAS,IAExCmM,EAAUjF,EAAIK,QAAQ,GAAG0E,QAAQE,cAIFpT,IAA/BmO,EAAIK,QAAQ,GAAGuC,aACgB,OAA/B5C,EAAIK,QAAQ,GAAGuC,aACf5C,EAAIK,QAAQ,GAAGuC,YAAY9J,OAAS,IAEzC8J,EAAc5C,EAAIK,QAAQ,GAAGuC,aAG1B,IAAMqlD,EACa,OAAjBpjB,IAAyBA,KAAiB,SAEIhzC,IAA1CgzC,GAAayQ,IADb,QAGAzQ,GAAayQ,IAAyBrI,KA2CtCqa,EAAgB,CACpBtiC,MAAO,QACPr3B,MA1Cc,GACd0f,SAAUrN,EAAIzM,KACdsP,YAAa7C,EAAI6C,YACjBwG,OAAQrJ,EAAI7S,GACZwV,QAAS3C,EAAI2C,QACbvC,WAAYJ,EAAII,WACrBwC,YAAaA,EACRuxB,YAAa8zB,EACb/5C,OAAQ,GACboC,UAAU,EACL4vC,IAAKuB,GACL8F,KAAM9F,GACNt0D,GAAIs0D,GACJxhD,UAAU,EACV3L,MAAO0zD,EACP15D,KAvDiB,SAwDjBiF,KAAMyM,EAAIK,QAAQ,GAAG9M,KACrB2T,WAAYA,EACZyyC,aAAa,EACbn3C,YAAaxC,EAAIwC,YACtB0lD,kBAAkB,EACbl6C,eAAgB,GAChBq/B,wBAAoBx7C,EACpBoT,QAASA,EACT7Q,SACqB,OAAnB4L,EAAImoD,iBACet2D,IAAnBmO,EAAImoD,YACJnoD,EAAImoD,WAAWrvD,OAAS,EACpBkH,EAAImoD,WAAW,GACf,GACNp6C,kBAAmB,IAAE,0BACX,GAAK,0BACO,IAAjB/N,EAAIooC,UAAgC,GAWzC1hB,iBAAkB,CAChBC,EAAG55B,EAAE4yC,MAAQmnB,EAAYC,WACzBngC,EAAG75B,EAAE2yC,MAAQonB,EAAYG,YAM7B,OAFAJ,GAAYS,OACZ91D,GAAGuzB,IAAIuiC,EAET,CA3HE,IAAIlQ,EAAc5lD,GAAGgS,eAAei+C,IACpC,QACkB5vD,IAAhBulD,GACgB,OAAhBA,GACuB,IAAvBA,EAAYt+C,OAEZ,OAGFs+C,EAAY,GAAG1wB,iBAAiB,IAAK35B,EAAE4yC,MAAQmnB,EAAYC,YAC3D3P,EAAY,GAAG1wB,iBAAiB,IAAK35B,EAAE2yC,MAAQonB,EAAYG,UAkH/D,CACF,CA2CUmB,CAAcr7D,EAAGiT,EACnB,EACA2mD,OAAQ,SAAC55D,GACP65D,GAAe75D,EAAGiT,EACpB,EAEA3H,UAAU,EACVlF,SAAU,CACRwzB,EAAG,EACHC,EAAG,GACH,SAEF,cAAC/yB,EAAA,EAAK,CACJiP,QAAM,EACNhV,MAAOg6D,EACP/zD,YAAa,WACXghC,GAAS,EACX,EACA/gC,WAAY,WACV+gC,GAAS,EACX,EACN9gC,QAAS,WACR,GAAIlD,WAAU,CACT0wD,GAAYrtC,cACZ,IACM4zC,EAAcZ,GAAkBpnD,EAAIzM,MACtC2T,EAAa,KACbjC,EAAU,GACdrC,EAAc,GAGkB,OAA9B5C,EAAIK,QAAQ,GAAG6G,YACflH,EAAIK,QAAQ,GAAG6G,WAAWpO,OAAS,IAEnCoO,EAAalH,EAAIK,QAAQ,GAAG6G,iBAIOrV,IAAnCmO,EAAIK,QAAQ,GAAG0E,QAAQE,SACY,OAAnCjF,EAAIK,QAAQ,GAAG0E,QAAQE,SACvBjF,EAAIK,QAAQ,GAAG0E,QAAQE,QAAQnM,OAAS,IAExCmM,EAAUjF,EAAIK,QAAQ,GAAG0E,QAAQE,cAIFpT,IAA/BmO,EAAIK,QAAQ,GAAGuC,aACgB,OAA/B5C,EAAIK,QAAQ,GAAGuC,aACf5C,EAAIK,QAAQ,GAAGuC,YAAY9J,OAAS,IAEzC8J,EAAc5C,EAAIK,QAAQ,GAAGuC,aAG1B,IAAMqlD,EACa,OAAjBpjB,IAAyBA,KAAiB,SAEIhzC,IAA1CgzC,GAAayQ,IADb,QAGAzQ,GAAayQ,IAAyBrI,KAqC1Cqa,EAAgB,CAChBtiC,MAAO,QACPr3B,KApCc,aACd0f,SAAUrN,EAAIzM,KACdsP,YAAa7C,EAAI6C,YACjBwG,OAAQrJ,EAAI7S,GACZwV,QAAS3C,EAAI2C,QACbvC,WAAYJ,EAAII,WACrBwC,YAAaA,EACRuxB,YAAa8zB,EACb/5C,OAAQ,GACboC,UAAU,EACL4vC,IAAKuB,GACL8F,KAAM9F,GACNt0D,GAAIs0D,GACJxhD,UAAU,EACV3L,MAAO0zD,EACP15D,KApDiB,SAqDjBiF,KAAMyM,EAAIK,QAAQ,GAAG9M,KACrB2T,WAAYA,EACZyyC,aAAa,EACbn3C,YAAaxC,EAAIwC,YACtB0lD,kBAAkB,EACbl6C,eAAgB,GAChBq/B,wBAAoBx7C,EACpBoT,QAASA,EACT7Q,SACqB,OAAnB4L,EAAImoD,iBACet2D,IAAnBmO,EAAImoD,YACJnoD,EAAImoD,WAAWrvD,OAAS,EACpBkH,EAAImoD,WAAW,GACf,GACNp6C,kBAAmB,IAAE,YACX,GAMV2Y,iBAAkB,CAChBC,EAAG,IACHC,EAAG,MAIPigC,GAAYS,EACZ91D,GAAGuzB,IAAIuiC,EAEZ,CACD,EAAE,SAEI,eAAC90D,EAAA,EAAI,CACHC,WAAS,EACT3E,MAAO,CAAEyJ,OAAQ,sBAAuBwL,KAAM,MAAO,UAErD,cAACvQ,EAAA,EAAI,CAAC0Q,MAAI,WACR,qBACE3N,IAAKmN,EACLlN,IAAK4mB,EACLtuB,MAAO,CACL4sB,cAAe,OACf2tC,SAAU,OACVC,WAAY,OACZ55D,aAAcX,EAAME,QAAQS,aAC5B+H,OAAQ1F,WAAW,GAAK,GACxBsC,MAAOtC,WAAW,GAAK,QAInCA,WAAW,KACX,eAACyB,EAAA,EAAI,CACJ1E,MAAO,CACNwH,QAAS,OACT2N,cAAe,SACf5T,WAAY,OACZqG,SAAU,IACVpG,SAAU,IACV8D,SAAU,SACVT,UAAW,IACV,UAEF,cAACH,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEiV,KAAM,GAAI,SAC7B,cAACpN,EAAA,EAAU,CACVC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,EAAGvJ,UAAW,GAAI,SAExC6M,MAGH,cAAClQ,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEiV,KAAM,GAAI,SAC7B,eAACpN,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,sBACtC6Q,EAAI6C,iBAGhB,cAACrQ,EAAA,EAAI,CACJ0Q,MAAI,EACJpV,MAAO,CACNiV,KAAM,EACN1P,MAAO,OACPV,UAAW,GACXS,SAAU,UACT,SAEF,cAACuC,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC/C6Q,EAAI4C,yBA9JD5C,EAAI7S,GAuKf,EAsQI2I,EAAkBC,aAhON,SAAH,GAAyD,IAApDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAe9C,OAbAC,qBAAU,WACT,QAAiBtE,IAAbqN,SAAwB,CAC3B,IAAMqpD,EAAiBrpD,SAASsE,eAAe,kBACxB3R,IAAnB02D,GAAmD,OAAnBA,IACnCnzD,QAAQC,IAAI,WAAYkzD,EAAetxD,YACVpF,IAAzB02D,EAAetxD,OAAgD,OAAzBsxD,EAAetxD,OAAkBsxD,EAAetxD,MAAM6B,OAAS,GACxG7C,EAAOsyD,EAAetxD,OAIzB,CACD,GAAG,IAGD,sBAAM9J,GAAG,cAAciJ,YAAU,EAAC9H,KAAK,YAAY+F,OAAO,GAAGgC,KAAK,SAASvI,MAAO,CAACyJ,OAAQ,EAAGjC,QAAS,QAAUrB,QAAS,WAC3H,EAAE,SACD,cAACqC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aAAcX,EAAME,QAAQS,aAAcY,SAAU4gD,GAAY,IACnH15C,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,GACRc,OAAQ,GAETb,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN2H,YAAY,sDACZG,MAAOjB,EACP7I,GAAG,uBACH8G,QAAS,SAACE,GACTiB,QAAQC,IAAI,SACb,EACAqa,OAAQ,SAACvb,GACR,EAED4C,SAAU,SAAC5C,GAKV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAKX,IAuKMsxD,EAAgBpxD,aApKN,SAAH,GAAkB,IAAD,EAAXhF,EAAI,EAAJA,KAClB,EAA8CH,mBAAS,GAAE,mBAAlDI,EAAe,KAAEC,EAAkB,KAOpCm2D,EAAevpD,SAASwpD,cAAcC,wBAQxCv2D,EAAK0G,OAAS,IACjB1G,EAAOA,EAAK/E,MAAM,EAAG,IAGtB,IACMu7D,EAAY,cAACC,GAAA,EAAgB,IAEnC,OACC,qBAAK/6D,OAAK,GAAGqF,SAAU,WAAY0C,UAAW,GAAIxG,WAAY,EAAGmK,YAAa,IAAE,yBAAY,YAAU,sBAAS,SAAO,uBAAU,MAAI,gCAAmBzL,EAAME,QAAQO,YAAU,yBAAY0hD,GAAY,IAAE,yBAAYA,GAAY,IAAE,2BAAc,QAAM,0BAAa,UAAQ,GAAI,SAC/Q,cAACh+B,EAAA,EAAI,CAACpkB,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,YAAc,SACzC,IAAhB4D,EAAK0G,OACL,eAACsW,EAAA,EAAQ,CAACthB,MAlBa,CAC1BuF,MAAO,OACPR,UAAW,SACXD,UAAW,SACXo4B,aAAc,mCAcyB,UACnC,cAAC3b,EAAA,EAAc,CAACpb,QAAS,kBAAMmB,QAAQC,IAAIjD,EAAK,EAAC,SAChD,cAACkd,EAAA,EAAM,UACN,cAACw5C,GAAA,EAAU,QAGb,cAACv5C,EAAA,EAAY,CACZrhB,QAAS,wBACTE,UAAW,iCAIbgE,EAAK7F,KAAI,SAACw8D,EAAKj2D,GACd,IAAMk2D,EAAqB,CAC1B31D,MAAOo1D,EAAap1D,MAAM,GAC1BR,UAAW,SACXD,UAAW,SACXo4B,aAAc,kCACd/7B,gBAAiBoD,IAAoBS,EAAQ,UAAY,UACzDI,OAAQ,UACR7D,WAAY,EACZmK,YAAa,EACb7G,UAAW,GACXvD,UAAW,GACXE,SAAU,IACVoG,SAAU,QAGLnC,OAAoB1B,IAAbk3D,EAAIx1D,KAChBw1D,EAAIE,SAASx1D,OAAO,GAAGC,cAAgBq1D,EAAIE,SAAS57D,MAAM,GAAGuG,WAAW,IAAK,KAAO,MAAQm1D,EAAI72D,OAC/F62D,EAAIx1D,KAAKE,OAAO,GAAGC,cAAcq1D,EAAIx1D,KAAKlG,MAAM,IAAIuG,WAAW,IAAK,KAElEs1D,OAA6Br3D,IAAbk3D,EAAIp7D,KAAqBo7D,EAAIp7D,KAAKN,MAAM,EAAG,IAAI,MAAQ,GACrE87D,OAA2Bt3D,IAAlBk3D,EAAItzD,UAClBmzD,EAEA,cAACt5C,EAAA,EAAM,CACN9Z,IAAKuzD,EAAItzD,UACTG,QAAQ,iBAIa/D,IAAnBk3D,EAAIZ,YAA+C,OAAnBY,EAAIZ,YAAuBY,EAAIZ,WAAWrvD,OAAS,IACtFowD,EAAgBH,EAAIZ,WAAW96D,MAAM,EAAE,GAAGd,KAAI,SAACoB,EAAMmF,GACpD,OAAc,IAAVA,EACInF,EAGD,KAAKA,CAcb,KAGe4D,GAAO,gBAAYw3D,EAAI/1D,UAAQ,mCAAiC+1D,EAAI/1D,UAGpF,MAFS,mBAAgB+1D,EAAIK,WAG5B,qBAAKt7D,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAW8E,QAAS,SAACE,GAQhEuH,EAAM+E,KAAK,cAAD,OAAelN,IAGzB6B,QAAQC,IAAI,UAAW0zD,GAEvB,IAAM7zD,EAAU6zD,EAAIK,UAGpB,GAFAh0D,QAAQC,IAAI,UAAWH,QAEPrD,IAAZqD,GAAqC,OAAZA,EAAkB,CAC9CX,IAAG,OAAQ,CACTC,MAAO,aACPC,OAAQ,qCAGV,IAAMG,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,aACXC,UAAW,uBACXlC,MAAO,YACPmC,UAAW,CAAC8zD,EAAI/1D,UAChB4B,UAAWA,EACXM,QAASA,EACTC,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,KAGtH,MACCiI,QAAQC,IAAI,sCAGb2a,GAAY+4C,EAAI/1D,UAAU,EAC3B,EAAE,SACD,eAACoc,EAAA,EAAQ,CAAoBthB,MAAOk7D,EAAoBj1D,YAAa,WACpEzB,EAAmBQ,EACpB,EAAE,UACD,cAACuc,EAAA,EAAc,UACb85C,IAEF,cAAC55C,EAAA,EAAY,CACZrhB,QAASqF,EACTnF,UAAW86D,MAREH,EAAI/1D,WAmBrB,OAKN,IAME,OACE,qBAAKlF,MAAOs3D,GAAa,SACvB,sBAAKt3D,MAAO,CAAEiV,KAAM,KAAM,UACxB,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,aAC5BmH,UAAW,EACX2D,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,MACZC,SAAU,MACVC,SAAU,OAEZyb,aACE,cAACrU,EAAA,EAAc,CAACxD,SAAS,MAAK,SAC5B,cAACsQ,GAAA,EAAO,CAACvR,MAAM,aAAaoV,UAAU,MAAK,SACzC,cAAC,IAAU,CAACxZ,MAAO,CAAEoF,OAAQ,kBAKrCqD,WAAS,EACTpH,MAAM,UACN2H,YAAa,qBACb3J,GAAG,YACHk8D,WAAY,SAACl1D,GACO,UAAdA,EAAMoG,KACRpG,EAAM2R,OAAOwjD,KAAKn1D,EAEtB,EACAub,OAAQ,SAACvb,IA1SC,SAAC8C,GACjB,GAAIA,EAAM6B,OAAS,EAAG,CACpB,IAAIywD,EAAUzD,EAAQn+C,QACpB,SAAC3H,GAAG,OACFA,EAAIzM,KAAKkH,cAAcR,SAAShD,EAAM0d,OAAOla,gBAE7CuF,EAAI4C,YAAYnI,cAAcR,SAAShD,EAAM0d,OAAOla,cAAc,IAItE,GAAuB,IAAnB8uD,EAAQzwD,OAAc,CACxB,IAAM0wD,EAAcvyD,EAAM0d,OAAOla,cACjC8uD,EAAUzD,EAAQn+C,QAAO,SAAC3H,GACxB,IAAK,IAAIzF,KAAOyF,EAAIK,QAElB,GADoBL,EAAIK,QAAQ9F,GAChBhH,KAAKkH,cAAcR,SAASuvD,GAC1C,OAAO,EAIX,OAAO,CACT,GACF,CAEA5B,EAAe2B,EACjB,MACE3B,EACEjU,EAAgByH,OACdh/C,EAAauL,QACX,SAAC+/C,GAAQ,OAAM7N,GAAY5/C,SAASytD,EAASv6D,GAAG,KAK1D,CA4QUs8D,CAAUt1D,EAAM2R,OAAO7O,MACzB,IAED0wD,EAAY7uD,OAASitD,EAAUjtD,OAC9B,qBAAKhL,MAAO04D,GAAe,SACxBmB,EAAYp7D,KAAI,SAACyT,EAAKlN,GACrB,GAAIkN,EAAID,QACN,OAAO,KAGjB,IAAI2pD,EAAe,GAMX,OALK,GAAT52D,IACH42D,EAAe,qBAAK57D,MAAO,CAAC+H,UAAW,MAG/B,GASR,gCACE6zD,EACD,cAAC7B,EAAc,CAAa7nD,IAAKA,GAAZlN,KAFZA,EAKL,MAEAoJ,GAAKpD,OAAS,EAChB,sBACEhL,MAAO,CAAEmF,UAAW,SAAUI,MAAO68C,GAAar6C,UAAW,IACpE4M,OAAQ,WACPrN,QAAQC,IAAI,6BACb,EAAE,UAEK,cAACM,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,qJAGxD,eAACkI,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,YAAYrD,QAAS,WACzEmB,QAAQC,IAAI,UACb,EAAE,UACD,cAACS,EAAe,IAChB,cAAC6zD,GAAA,EAAK,CAACryD,UAAU,YAAW,SAC3B,cAACkxD,EAAa,YAKX,sBAAK16D,MAAO,CAAEmF,UAAW,SAAUI,MAAO68C,IAAc,UACtD,cAACvnC,EAAA,EAAgB,CACf7a,MAAO,CACL+H,UAAW,OACXY,OAAQ,GACRpD,MAAO,GACPhE,WAAY,OACZmK,YAAa,UAGjB,cAAC7D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,iCAQ7D,EAEMi4D,GAAoB,SAACwC,GACzB,IAAIC,EAAU,GAERC,EAAWv+C,GAASlL,QAAQ+6C,OAAO7vC,GAASmD,UAClD,IAAK,IAAInU,KAAOuvD,EAAU,CACxB,IAAM5mD,EAAO4mD,EAASvvD,GACtB,GACE2I,EAAKmK,WAAau8C,QACH/3D,IAAfqR,EAAK5O,OACU,OAAf4O,EAAK5O,MACL,CACA,IAAIy1D,EAAS7mD,EAAK5O,MAAMyF,MAAM,KAE5BiB,MAAM+uD,GAAQ,KACdjlC,SAASilC,EAAOA,EAAOjxD,OAAS,IAAM+wD,IAEtCA,EAAUE,EAAOA,EAAOjxD,OAAS,GAErC,CACF,CAIA,OAFF8wD,EAAUA,EAAQh2D,WAAW,IAAK,KAE5Bi2D,EACKD,EAAU,KAAO9kC,SAAS+kC,GAAW,GAErCD,MAEX,EA8MKvkB,GAAoB,SAAClxC,GAC1B,GAAI6G,MAAM7G,EAAM2R,OAAO7O,OACtB7B,QAAQC,IAAI,QAASlB,EAAM2R,OAAO7O,WADnC,CAKA,IAAM+yD,EAAellC,SAAS3wB,EAAM2R,OAAO7O,OACvC+yD,EAAe,MAClB50D,QAAQC,IAAI,gCAIbsH,GAAeqwC,gBAAkBgd,EAC/BptD,GAAkBD,IATpB,CAUD,EAEOstD,GAAwB,SAAC91D,GAC7Bg/C,GAAgB7+C,MAAQH,EAAM2R,OAAO7O,MACrCmtC,GAAmB+O,GACrB,EAIM7N,GAAa,SAACjxC,GACpB,QAAexC,IAAXwC,GAAmC,OAAXA,EAC3B,MAAO,GAWN,IARA,IAAI61D,EAAU,CAAC71D,EAAOlH,IAClBg9D,EAAU,GACVljB,EAAU,GAIVmjB,EAAa,IAEJ,CACX,IAAK,IAAI7vD,KAAO2vD,EAAS,CACvB,IAAI9S,EAAc5lD,GAAGgS,eAAe0mD,EAAQ3vD,IAC5C,QAAoB1I,IAAhBulD,GAA6C,OAAhBA,EAAjC,CAIA,QAA2BvlD,IAAvBulD,EAAYzpD,OACdw8D,EAAQlvD,KAAKivD,EAAQ3vD,IACrB0sC,EAAQhsC,KAAK,CAAE9N,GAAI+8D,EAAQ3vD,GAAMjM,KAAM,gBAClC,CACL,GAAI67D,EAAQlwD,SAASm9C,EAAYzpD,OAAOR,IACtC,SAEAg9D,EAAQlvD,KAAKm8C,EAAYzpD,OAAOR,IAChC85C,EAAQhsC,KAAKm8C,EAAYzpD,OAE7B,CAGA,GAA2B,IAAvBypD,EAAYt+C,OAAhB,CAIA,IAAMy+C,EAAgBH,EAAYI,SAAS,QAC3C,GAA6B,IAAzBD,EAAcz+C,OAIlB,IAAK,IAAIqgC,EAAI,EAAGA,EAAIoe,EAAcz+C,OAAQqgC,IAAK,CAC7C,IAAIh0B,EAAMoyC,EAAcpe,GACzBh0B,EAAIxX,KAAK,eAIHu8D,EAAQjwD,SAASkL,EAAIxX,KAAK,YAC7Bu8D,EAAQjvD,KAAKkK,EAAIxX,KAAK,WAE1B,CAhBA,CAjBA,CAkCF,CAEA,GAAIs5C,EAAQnuC,SAAWoxD,EAAQpxD,QA1CnB,KA0C6BsxD,EACvC,MAGFA,GAAc,CAChB,CAMA,OAFAnjB,GADAA,EAAUA,EAAQt/B,QAAO,SAACha,GAAI,OAAKA,EAAKR,KAAOkH,EAAOlH,EAAE,KACtCwa,QAAO,SAACha,GAAI,MAAmB,WAAdA,EAAKW,MAAuC,qBAAlBX,EAAK0f,UAAqD,eAAlB1f,EAAK0f,QAAyB,KAC3HpS,KAAK,CAAE3G,MAAO,qBAAsBhG,KAAM,aAC3C24C,CACT,EASMlC,GAAkB,CACtBzvC,QAAS,OACT2N,cAAe,SACfhU,gBAAiB,UACjBE,MAAO,QACPuK,aAAc,GACdD,YAAa,GACbrK,UAAW,OACXyI,OAAQ,IACR2iC,OAAQ,WACRpnC,SAAU,QAGRsxC,GAAoB,CACtBvxC,SAAU,QACViT,IAAKsvC,GAAa,GAClBrvC,MAAO,GACP5P,OAAQ,OACRpD,MAAOtC,WAAW,OAAS,IAC3B2E,SAAU,IACVpG,SAAU,IACVqD,UAAW,QACX7D,OAAQ,6BACR+I,OAAQ,IACRnJ,aAAcX,EAAME,QAAQS,aAC5B8rC,OAAQ,OACRpnC,SAAU,QA+CNi3D,GAAwB,SAACpzD,GAC/B7B,QAAQC,IAAI,eAAgB4B,GACS,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,IAG/BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,QAERulB,GAAYvN,GACd,EAEM++C,GAA2B,SAACrzD,GACG,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,IAG/B,IAAMqjD,EACJh/C,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAM8C,MAAM,KAEpE,GADA3E,QAAQC,IAAIk1D,GACRA,EAAWtwD,SAAShD,GACtB,IAAK,IAAIkiC,EAAI,EAAGA,EAAIoxB,EAAWzxD,OAAQqgC,IACjCoxB,EAAWpxB,KAAOliC,GACpBszD,EAAW1gC,OAAOsP,EAAG,QAIzBoxB,EAAWtvD,KAAKhE,GAGlB,IAASkiC,EAAI,EAAGA,EAAIoxB,EAAWzxD,OAAQqgC,IACf,KAAlBoxB,EAAWpxB,IACboxB,EAAW1gC,OAAOsP,EAAG,GAIzB5tB,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpDszD,EAAWlwD,KAAK,KAElBjF,QAAQC,IAAIk1D,GACZzxC,GAAYvN,IACZqmC,IAAsBD,GACxB,EA8BM6Y,GAAsB,SAAC95D,GAC3B,IAAQ+5D,EAAkB/5D,EAAlB+5D,QAASn8D,EAASoC,EAATpC,KACjB,EAAe2D,mBAASw4D,GAAjB98D,EAAyB,iBAArB,GACX,EAAkCsE,oBAAS,GAAM,mBAA1Cw3B,EAAS,KAAEihC,EAAY,KAC9B,EAAgD14D,IAAMC,UAAS,GAAM,mBAA9D40C,EAAgB,KAAE3I,EAAmB,KAC5C,EAAoClsC,IAAMC,SAAS,IAAG,mBAA/CoqC,EAAU,KAAEiK,EAAa,KAEhC,QAAgBz0C,IAAZ44D,EACF,OAAOA,EAQT,GALqB,KAAjB98D,EAAKiI,UACPjI,EAAKiI,QAAU,gBAIS,IAAtBymC,EAAWvjC,OAAc,CAmB3B,GAjBAujC,EAAWphC,KAAK,CACd3M,KAAM,qBACNiF,KAAM,qBACN0D,MAAO,QACP6vC,UAAW,OACX5rC,aAAc,OACd+J,QAAS,QAEXo3B,EAAWphC,KAAK,CACd3M,KAAM,aACNiF,KAAM,aACN0D,MAAO,iBACP6vC,UAAW,gBACX5rC,aAAc,gBACd+J,QAAS,QAIuB,OAAhCsG,GAASiD,yBACuB3c,IAAhC0Z,GAASiD,oBACTjD,GAASiD,mBAAmB1V,OAAS,EAErC,IAAK,IAAIyB,KAAOgR,GAASiD,mBAAoB,CAC3C,IAAMtL,EAAOqI,GAASiD,mBAAmBjU,GACzC8hC,EAAWphC,KAAK,CACd3M,KAAM,oBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS/B,EAAKjM,OAElB,CAIF,GACmC,OAAjCsU,GAAS8d,0BACwBx3B,IAAjC0Z,GAAS8d,qBACT9d,GAAS8d,oBAAoBvwB,OAAS,EAEtC,IAAK,IAAIyB,KAAOgR,GAAS8d,oBAAqB,CAC5C,IAAMnmB,EAAOqI,GAAS8d,oBAAoB9uB,GAC1C8hC,EAAWphC,KAAK,CACd3M,KAAM,qBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS,IAEb,CAGF,IAAM0lD,EAAan5D,GAAGgS,eAAe8vC,GAAaxtC,QAC9CihC,EAAUzB,GAAWqlB,EAAWh9D,QACpC,GAAIo5C,EAAQjuC,OAAS,EACnB,IAAK,IAAIyB,KAAOwsC,EAAS,CACvB,IAAM7jC,EAAO6jC,EAAQxsC,GACrB,GAAmB,uBAAf2I,EAAK5O,MAAT,CAKA,IAAM8yC,EAAc,CAClB94C,KAAM,SACNnB,GAAI+V,EAAK/V,GACToG,KAAM2P,EAAK5O,MACX4G,aAAa,GAAD,OAAKgI,EAAK5O,MAAMyF,MAAM,KAAKM,KAAK,MAC5C4K,aAA0BpT,IAAjBqR,EAAK+B,QAAwB,GAAK/B,EAAK+B,SAElDo3B,EAAWphC,KAAKmsC,EAVhB,CAWF,CAGFd,EAAcjK,EAChB,MAGqBxqC,IAAnBlE,EAAK87B,WACc,OAAnB97B,EAAK87B,YACc,IAAnB97B,EAAK87B,WAELihC,GAAa,GAGf,IAAI5zD,EAAc,oBAECjF,IAAjBlE,EAAKsX,SACY,OAAjBtX,EAAKsX,SACLtX,EAAKsX,QAAQnM,OAAS,IAEtBhC,EAAcnJ,EAAKsX,SAGrB,IAAIilC,EACF,cAAC5zC,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,MACZC,SAAU,MACVC,SAAU,QAGdgH,WAAS,EACTkzB,UAAWA,EACXt6B,MAAM,UACN0H,aAAclJ,EAAKsJ,MACnBH,YAAaA,EACbmU,gBACiBpZ,IAAflE,EAAKsJ,OACU,OAAftJ,EAAKsJ,OACLtJ,EAAKsJ,MAAMgD,SAAS,MAClB,sBAAMnM,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,EAAGuhC,WAAY,GAAI,+EAG9D,KAENjxB,OAAQ,SAAC3iB,GACP69D,EAAqBj9D,EAAKi8C,aAAc78C,EAAE+Y,OAAO7O,OACjDwhB,GAAUqB,KAAKC,SACjB,IAIE6wC,EAAuB,SAACn8C,EAAUxX,GAEtCtJ,EAAKsJ,MAAQA,EACbtJ,EAAKi8C,aAAen7B,EAEP,WAATngB,EACFskD,GAAejlD,GACG,gBAATW,GACTwkD,GAAoBnlD,EAExB,EAEA,OACE,gCACE,sBACEG,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,MAAO9J,QAAS,QAAS,UAEnE,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,8BAAIpV,EAAK4F,KAAI,YAGhB22C,EACsB,IAAtB7N,EAAWvjC,OAAe,KACzB,eAACiS,GAAA,EAAW,CAACxU,WAAS,YACpB,cAACuzB,GAAA,EAAU,CACT38B,GAAG,uBACHW,MAAO,CAAEuB,WAAY,GAAIF,MAAO,SAAU,0BAI5C,cAAC0W,GAAA,EAAM,CACZwM,UAAW,CACVmE,mBAAmB,GAEbu1B,QAAQ,uBACRzlC,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBgb,QAAS,WACP6zB,GAAoB,GAEpBzlB,GAAUqB,KAAKC,SACjB,EACA9lB,QAAS,WACPiqC,GAAoB,EACtB,EACA9zB,KAAMy8B,EACNtwC,WAAS,EACTzI,MAAO,CACLk9B,aAAa,oBACb77B,MAAO,QACPsH,OAAQ,GACRZ,UAAW,GAEbkB,SAAU,SAAChK,GACT,IAAMmO,EAAenO,EAAE+Y,OAAO7O,MAAMiE,aAC9BytC,EAAWztC,EAAalB,WAAW,KACrCrM,EAAKsJ,MAAQiE,EAAY,UACtBvN,EAAKsJ,MAAK,YAAIiE,GACrB0vD,EAAqBj9D,EAAKi8C,aAAcjB,EAC1C,EAAE,SAEDtM,EAAW9vC,KAAI,SAACoB,GACf,IAAM+9B,EACU,WAAd/9B,EAAKW,KACH,cAAC,KAAQ,CAACR,MAAO,CAAE0L,YAAa,MAChB,sBAAd7L,EAAKW,MACO,uBAAdX,EAAKW,KACL,cAAC,KAAkB,CAACR,MAAO,CAAE0L,YAAa,MAE1C,cAAC8sD,GAAA,EAAY,CAACx4D,MAAO,CAAE0L,YAAa,MAGlCsmC,EAA0B,SAACC,GAC/B,IAAIC,EAAkB9gC,SAASsE,eAC7B,kCAWF,GATwB,OAApBw8B,IAEAA,EAAgBlyC,MAAMgB,OADpBixC,EAC6B,oBAEA,SAMXluC,IAAtB0Z,GAASmD,UACa,OAAtBnD,GAASmD,UACTnD,GAASmD,SAAS5V,OAAS,EAE3B,IAAK,IAAIyB,KAAOgR,GAASmD,SAAU,CACjC,IAAMxL,EAAOqI,GAASmD,SAASnU,GAE3BwnB,EAAOvwB,GAAGgS,eAAeN,EAAK/V,IAC9B40B,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,CAEJ,EAEMC,EAAoB,SAAC1L,EAAQ2L,GACjC,IAAI3pB,EAAOvwB,GAAGgS,eAAekoC,GACzB3pB,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,EAEA,OACE,cAACnmC,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EACPoG,YAAa,WACO,uBAAdpG,EAAKW,KACPwxC,GAAwB,GACD,WAAdnyC,EAAKW,MACdm9C,GAAkB,EAAM99C,EAAKR,GAEjC,EACA6G,WAAY,WACQ,uBAAdrG,EAAKW,KACPwxC,GAAwB,GACD,WAAdnyC,EAAKW,MACdm9C,GAAkB,EAAO99C,EAAKR,GAElC,EAAE,SAEF,cAACsW,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,iBAAYvE,EAAKsJ,OACtBqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAG/9B,EAAK4F,WAxBZ5F,EAAK4F,KA6BhB,WAMZ,EAEMs3D,GAAgB,CACpB17D,MAAO,QACPF,gBAAiBT,IAGbs8D,GACJ,eAAC3gD,GAAA,GAAM,GACL1S,eAAgBA,EAChB+iB,qBAAqB,EACrBD,cAAc,EACjBE,sBAAsB,EACnB3sB,MAAO,CAAE4sB,cAAe,SAAS,+BACjBjjB,GAAc,gCACjB,0BAAwB,qBAC/B85C,IAAmB,2BACb,CACVzjD,MAAO,CACL4sB,cAAe,OACfzrB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU3E,WAAW,MAAQ,IAClCjC,OAAQf,EAAME,QAAQU,iBAEpB,yBACQ,WACT,IAAC,0BAED,uBACEb,MAAO,CACLqF,SAAU,WACVy0B,OAAQ,GACR3Q,KAAM,GACN9nB,MAAO,yBACP,sDAEwC,IAC1C,mBACEoX,IAAI,sBACJT,OAAO,SACPU,KAAK,gDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,2BAKxD,eAAC4b,GAAA,EAAW,WACZ,cAACR,GAAA,EAAW,CAACpd,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,SAC9D,sBAAMpF,MAAO,CAAEqB,MAAO,SAAU,yBAElC,cAACqb,GAAA,EAAa,CAAC1c,MAAO,CAAC,EAAE,SACvB,sBAAKA,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACmO,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAO6gD,GAAe1rC,cAAgB,UAAY,UAClDC,UAAU,MAAK,SAEf,sBACExZ,MAAO,CACLyJ,OAAQ,OACRd,OAAQ,GACR2I,aAAc,OACdvJ,UAAW,OACX2D,YAAa,GACb,SAEF,cAACyK,EAAA,EAAM,CACL9U,MAAM,UACNyG,QACEm9C,GAAe1rC,cAAgB,YAAc,WAE/CvZ,MAAO,CACLyJ,OAAQ,OACRd,OAAQ,GACR2I,aAAc,OACdvJ,UAAW,OACX2D,YAAa,GAEfvF,QAAS,SAAClH,GACRgmD,GAAe1rC,eACZ0rC,GAAe1rC,cAClB2rC,GAAkBD,IAClBt6B,GAAUqB,KAAKC,SACjB,EAAE,SAEDg5B,GAAe1rC,cAAgB,IAAM,UAI5C,qBAAKvZ,MAAO,CAAEiV,KAAM,KAAM,SACxB,cAACynD,GAAmB,CAClBC,QAAS9X,GACToY,QAASnY,GACTtkD,KAAM,aAGV,sBACER,MAAO,CACLiV,KAAM,IACNxL,OAAQ,OACR6H,aAAc,EACd/P,WAAY,EACZmK,YAAa,GACb,UAEF,cAACyK,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,WACR9H,MAAO,CAAEyJ,OAAQ,OAAQd,OAAQ,GAAI2I,aAAc,IACnD7I,WAAS,EACT,gBAAc,OACdtC,QAAS,SAAClH,GACR2lD,GAAoB3lD,EAAEiK,cACxB,EAAE,SAED+7C,GAAe97C,QAElB,eAAC6+B,GAAA,EAAI,CACH3oC,GAAG,cACH4oC,aAAW,EACX3rB,KAAMo0B,QAAQiU,IACdjd,SAAUid,GACVnoC,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,KAGrB8b,QAAS,WACPqoC,GAAoB,KACtB,EAAE,UAEF,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,SACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,mBACG,UAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,iBACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,2BACG,kBAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,aACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,wBACG,eAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,WACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,sBACG,aAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,WACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,qBACG,YAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,kBACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,4BACG,mBAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,gBACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,0BACG,iBAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,cACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,wBACG,eAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,YACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,sBACG,aAIP,cAACrtC,GAAA,EAAQ,CACPvX,MAAO+8D,GACP52D,QAAS,SAAClH,GACRgmD,GAAe97C,MAAQ,WACvB+7C,GAAkBD,IAClBL,GAAoB,KACtB,EAAE,qBACG,kBAMX,qBAAK5kD,MAAO,CAAEiV,KAAM,KAAM,SACxB,cAACynD,GAAmB,CAClBC,QAAS5X,GACTkY,QAASjY,GACTxkD,KAAM,uBAKd,eAACsc,GAAA,EAAa,WACjB,cAAC3G,EAAA,EAAM,CACAnW,MAAO,CAAEY,aAAc,OAC7BkH,QAAQ,OACF3B,QAAS,WACVu9C,IAAuB,GACvBoB,GAAe,CAAC,GAChBI,GAAkB,CAAC,GACnBF,GAAoB,CAAC,EACpB,EACA3jD,MAAM,YAAW,oBAInB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OAC7BkH,QAAQ,YACF3B,QAAS,WACPowC,GAAgB,CAAC,GAEjB,IAAI12C,EAAO,CACT++C,UAAWqG,GACXt5B,OAAQk5B,GACR94B,YAAag5B,IAIf,GADArB,IAAuB,QACS3/C,IAA5ByhD,GAAa7G,WACf6G,GAAa7G,WAAa,CAAC9+C,OACtB,CACL,IAAMq9D,EAAe1X,GAAa7G,WAAWz9B,WAC3C,SAACrhB,GAAI,OAAKA,EAAK8rB,OAAOtsB,KAAOwlD,GAAYxlD,EAAE,IAEzC69D,EAAe,EACjB1X,GAAa7G,WAAWxxC,KAAKtN,GAE7B2lD,GAAa7G,WAAWue,GAAgBr9D,CAE5C,CAEA,IAAI2G,EAAQ,GAC2B,IAAnCg/C,GAAa7G,WAAW3zC,OAC1BxE,EAAQg/C,GAAa7G,WAAW3zC,OAAS,aAChCw6C,GAAa7G,WAAW3zC,OAAS,IAC1CxE,EAAQg/C,GAAa7G,WAAW3zC,OAAS,eAG3C,IAAIsjD,EAAc5qD,GAAGgS,eAAe8vC,GAAanmD,SAC7B0E,IAAhBuqD,GAA6C,OAAhBA,QAAkCvqD,IAAVyC,GACvD8nD,EAAYzuD,KAAK,QAAS2G,GAK5B+vC,GAAgBiP,IAChB/nC,GAAS4d,SAASoqB,IAAqBD,GACvCx6B,GAAYvN,GACd,EACApc,MAAM,UAAS,4BAKP,IAIZ87D,GAAc,WAClB,IAAMC,EAAmB,SAACxe,EAAW55C,GACnC,MAAwBd,IAAMC,UAAS,GAAM,mBAAtCmY,EAAI,KAAEmrB,EAAO,KACpB,EAAgCvjC,IAAMC,SAAS,MAAK,mBAA7CujC,EAAQ,KAAEC,EAAW,KA4BtB4vB,EAAqB,CACzBj2D,UAAW,GACXuD,UAAW,GACX+C,SAAU,OACVpG,SAAU,OACVuG,UAAW,MACX1G,MAAO,QACPF,gBAAiBV,GACjB2E,OAAQ,UACRoC,QAAS,QASX,OACE,eAACzB,EAAA,EAAK,CAEJiP,QAAM,EACNhV,MAAOu3D,EACPpxD,QAAS,WAAO,EAAE,UAElB,qBACEnG,MAAO,CACLuB,WAAY,OACZwG,UAAW,MACXuJ,aAAc,MACd/L,MAAO,MACPpE,gBAAiB8/C,EACjBv1C,YAAa,SAGjB,sBAAK1L,MAAO,CAAEwH,QAAS,OAAQjC,MAAO,QAAS,UAC7C,sBACEvF,MAAO,CAAEiV,KAAM,KAAMzN,QAAS,QAC9BrB,QAAS,WACP2+C,GAAelG,EAAUjzB,QACzBu5B,GAAkBtG,EAAUA,WAC5BoG,GAAoBpG,EAAU7yB,aAC9B23B,IAAuB,EACzB,EAAE,UAEF,qBACE1jD,MAAO,CACLiV,KAAM,EACN9P,UAAW,OACX4C,UAAW,OACXxG,WAAY,OACZ+D,SAAU,SACV9D,SAAU,IACV,SAEDo9C,EAAUjzB,OAAOxiB,QAEpB,cAAC6P,GAAA,EAAO,CACNhZ,MAAO,CACL2I,OAAQ,OACRpD,MAAO,MACPhE,WAAY,MACZmK,YAAa,MACbvK,gBAAiB,sBAGrB,qBACEnB,MAAO,CACLiV,KAAM,EACN9P,UAAW,SACX4C,UAAW,OACXzC,SAAU,SACV9D,SAAU,IAEZ2E,QAAS,WAAO,EAAE,SAEjBy4C,EAAUA,UAAUz1C,QAEvB,cAAC6P,GAAA,EAAO,CACNhZ,MAAO,CACL2I,OAAQ,OACRpD,MAAO,MACPhE,WAAY,MACZmK,YAAa,MACbvK,gBAAiB,sBAGrB,qBACEnB,MAAO,CACLiV,KAAM,EACN9P,UAAW,OACX4C,UAAW,OACXuJ,aAAc,OACd/P,WAAY,OACZ+D,SAAU,SACV9D,SAAU,IACV,SAEDo9C,EAAU7yB,YAAY5iB,WAG3B,sBAAKnJ,MAAO,CAAEiV,KAAM,IAAK1T,WAAY,OAAQ,UAC3C,cAACoX,GAAA,EAAU,CACT,aAAW,OACX,gBAAc,YACd,gBAAc,OACdxS,QA9FQ,SAACE,GACjBiB,QAAQC,IAAI,cACZkgC,GAASnrB,GACTqrB,EAAYthC,EAAM6C,cACpB,EA2FUlJ,MAAO,CAAEqB,MAAO,SAAU,SAE1B,cAACqoC,GAAA,EAAY,MAEf,eAAC1B,GAAA,EAAI,CACH3oC,GAAG,YACHqoC,SAAUA,EACVO,aAAW,EACX3rB,KAAMA,EACNE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,KAGrB8b,QAAS,WACPkrB,GAAQ,GACRE,EAAY,KACd,EAAE,UAEF,cAACpwB,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,YA1JM,SAACk3D,GAC1B,IAAIC,EAAUrqD,KAAKC,MACjBD,KAAKS,UAAU8xC,GAAa7G,WAAW0e,KAEnCE,EAAUj3C,cAChBg3C,EAAQ1e,UAAUv/C,GAAKk+D,EACvBD,EAAQ3xC,OAAOtsB,GAAKk+D,EACpBD,EAAQvxC,YAAY1sB,GAAKk+D,EACzB/X,GAAa7G,WAAWxxC,KAAKmwD,GAE7B3yC,GAAUqB,KAAKC,SACjB,CAgJcuxC,CAAmBx4D,EACrB,EAAE,SAGD,aAFI,aAIP,cAACuS,GAAA,EAAQ,CACPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8E,QAAS,WAtJG,IAACk3D,EAuJX51B,GAAQ,GAvJG41B,EAwJKr4D,EAvJ5BsC,QAAQC,IAAIi+C,IAC2B,IAAnCA,GAAa7G,WAAW3zC,OAC1Bw6C,GAAa7G,WAAa,GAE1B6G,GAAa7G,WAAW5iB,OAAOshC,EAAgB,GAGjD9mB,GAAgBiP,IAChB/d,GAAQ,GACR9c,GAAUqB,KAAKC,SA+IL,EAAE,SAGD,UAFI,qBAzHR2yB,EAAUA,UAAUv/C,GAkI/B,EAEIo+D,EAAe,6BAGW15D,IAA5ByhD,GAAa7G,YACe,OAA5B6G,GAAa7G,YACb6G,GAAa7G,WAAW3zC,OAAS,IAEjCyyD,EAAejY,GAAa7G,WAAWlgD,KAAI,SAACmgD,EAAW55C,GACrD,OAAOo4D,EAAiBxe,EAAW55C,EACrC,KAIF,IAAM04D,EAAcp3C,cACpB,OACE,sBAAKtmB,MAAOi3C,GAAgB,UAC1B,qBAAKj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SACpE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,qBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,kCACXm0C,MAExB,mBACEhtC,IAAI,sBACJT,OAAO,SACPU,KAAK,gDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,uCAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,6CACCs8D,EAED,cAACtnD,EAAA,EAAM,CACLnW,MAAO,CAAEyJ,OAAQ,OAAQ1B,UAAW,QACpC1G,MAAM,UACNyG,QAAQ,WACR3B,QAAS,WACTs9C,KAIEqB,GAAe,CACbr/C,KAAM,SACN0D,MAAO,GACPrB,QAAS,eACTg0C,aAAc,GACdz8C,GAAIq+D,IAENxY,GAAkB,CAChBz/C,KAAM,YACN0D,MAAO,SACP9J,GAAIq+D,IAEN1Y,GAAoB,CAClBv/C,KAAM,cACN0D,MAAO,GACPrB,QAAS,eACTg0C,aAAc,GACdz8C,GAAIq+D,IAGNha,IAAuB,GACzB,EACAj7C,WAAS,+BAMjB,EAMMk1D,GAAe,WACnB,GAA2D,IAAvDj+D,OAAO05B,oBAAoBisB,IAAiBr6C,OAC9C,OAAO,KAGT,QAAgDjH,IAA5C0Z,GAASmD,SAAS0kC,IACpB,OAAO,UAIgDvhD,IAAvD0Z,GAASmD,SAAS0kC,IAAsBlsC,YACe,OAAvDqE,GAASmD,SAAS0kC,IAAsBlsC,YACsB,IAA9DqE,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,SAEnDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,CACnD,CAAEjQ,MAAO,0BAA2B1D,KAAM,kBAE5C4/C,GAAgBjsC,WAAa,CAC3B,CAAEjQ,MAAO,0BAA2B1D,KAAM,kBAE5CulB,GAAYvN,IACZ64B,GAAmB+O,KAGrB,IAAMuY,EAAkB,WACtBt2D,QAAQC,IAAI,wBACZgK,MACErO,EACE,gDACAmiD,GAAgBhmD,GAClB,CACEmS,OAAQ,MACR3K,QAAS,CAAE,eAAgB,oBAC3B6K,YAAa,YAGd1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,kBAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,QAEc/N,IAAjB+N,GACiB,OAAjBA,IACyB,IAAzBA,EAAae,SACbf,EAAa9G,OAAS,GAEtBy2C,GAAkB3vC,GAI4C,IAA9D2L,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,QACnD8G,EAAa9G,OAAS,IAEtByS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,CACnD,CACEjQ,MAAO2I,EAAa,GAAG+rD,YACvBp4D,KAAM,gBACNpG,GAAIyS,EAAa,GAAGzS,KAGxBgmD,GAAgBjsC,WAAa,CAC3B,CACEjQ,MAAO2I,EAAa,GAAG+rD,YACvBp4D,KAAM,gBACNpG,GAAIyS,EAAa,GAAGzS,KAGxB2rB,GAAYvN,IACZ64B,GAAmB+O,IAEvB,IACC7yC,OAAM,SAACC,GACNnL,QAAQC,IAAI,2BAA4BkL,EAAMpG,WAChD,GACJ,EAEMyxD,EAAoB,WACxBvsD,MACErO,EACE,kDACAmiD,GAAgBhmD,GAClB,CACEmS,OAAQ,MACR3K,QAAS,CAAE,eAAgB,oBAC3B6K,YAAa,YAGd1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,kBAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAEc,OAAjBA,IACyB,IAAzBA,EAAae,SACbf,EAAa9G,OAAS,IAE5B1D,QAAQC,IAAI,wBAAyBi6C,IAC/BC,GAAkB3vC,IAI4C,IAA9D2L,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,QACnD8G,EAAa9G,OAAS,IAEtByS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,CACnD,CACEjQ,MAAO2I,EAAa,GAAG+rD,YACvBp4D,KAAM,gBACNpG,GAAIyS,EAAa,GAAGzS,KAGxBgmD,GAAgBjsC,WAAa,CAC3B,CACEjQ,MAAO2I,EAAa,GAAG+rD,YACvBp4D,KAAM,gBACNpG,GAAIyS,EAAa,GAAGzS,KAGxB2rB,GAAYvN,IACZ64B,GAAmB+O,IAEvB,IACC7yC,OAAM,SAACC,GACNnL,QAAQC,IAAI,8BAA+BkL,EAAMpG,WACnD,GACJ,EA0BIw3C,KAIL+Z,IACAE,IA5BGvsD,MAAMrO,EAAY,oBAAsBmiD,GAAgBhmD,GAAI,CAC1DmS,OAAQ,MACR3K,QAAS,CAAE,eAAgB,oBAC3B6K,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,uBAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAELyvC,GAAyBzvC,EAC3B,IACCU,OAAM,SAACC,GAENnL,QAAQC,IAAI,2BAA4BkL,EAAMpG,WAChD,IAYFy3C,IAAqB,IAGvB,IAAMia,EACqB,UAAzB1Y,GAAgB5/C,KAAmB,KACjC,eAAC0Q,EAAA,EAAM,CACL1N,WAAS,EACTX,QAAQ,YACR9H,MAAO,CACLiV,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChBlC,UAAW,GACX9G,QAAS,EACTE,gBAAiB,UACjBE,MAAO,SAETA,MAAM,UACN8E,QAAS,WACPmB,QAAQC,IAAI,SAAU5D,OAAOC,SAASC,MACtCyD,QAAQC,IAAI,SAAU5D,OAAOC,UAC7B,IAAMojB,EAAcvjB,GACS,mBAAzBE,OAAOC,SAASC,KACd,uEACA,qEAC2B,UAA7BF,OAAOC,SAASqjB,SAAoB,uBAC5BtjB,OAAOC,SAASC,KAAI,qEAEnBF,OAAOC,SAASC,KAAI,6CAI3BkqC,EAAWvqC,EAASnE,GAC1BiI,QAAQC,IAAIyf,GACZ1f,QAAQC,IAAI,SAAUwmC,EAAUvqC,GAEhC,IAAM0Y,EAASuB,GAAS4d,SAASnjB,MAC/B,SAACgE,GAAM,OAAKA,EAAOiqB,YAAckf,GAAgBhmD,EAAE,IAErD,QAAe0E,IAAXmY,GAAmC,OAAXA,EAA5B,CAOA5U,QAAQC,IAAI,WAAY2U,GACxB,IAAM8hD,EAAY9hD,EAAOkqB,eAEnBvyB,EAAG,qFAlBP,2EAkBiG,yBAAiBmT,EAAW,qCADhH,iDACmJ,gCAAwBpkB,EAAM6vC,MAAMvI,OAAOz9B,IAAG,2BAAmB44C,GAAgBhmD,GAAE,yBAAiB0uC,EAAQ,qCAA6BiwB,GAC3S12D,QAAQC,IAAI,QAASsM,GAErB,IAAIuT,EAASzjB,OAAO2Y,KAAKzI,EAAK,GAAI,wBAG9BxU,EAAKioB,aAAY,WACnB/V,MACErO,EAAY,oBAAsBmiD,GAAgBhmD,GAClD,CACEmS,OAAQ,MACR3K,QAAS,CAAE,eAAgB,oBAC3B6K,YAAa,YAGd1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,uBAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAELyvC,GAAyBzvC,GACzB0V,cAAcnoB,GACd+nB,EAAO4X,QACP4+B,GACF,IACCprD,OAAM,SAACC,GACNnL,QAAQC,IAAI,0BAA2BkL,EAAMpG,WAC/C,GACJ,GAAG,MAEHwR,GAAaJ,GAvCb,MAJE7P,EAAM6E,MACJ,2DA2CN,EAAE,UAEF,qBACEhL,IAAI,GACJzH,MAAO,CAAEyJ,OAAQ,GACjB/B,IAAI,2CAEN,cAACG,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,IAAMuG,QAAQ,QAAO,oCAMjEm2D,EACqB,cAAzB5Y,GAAgB5/C,KAAuB,KACrC,eAAC0Q,EAAA,EAAM,CACL1N,WAAS,EACTX,QAAQ,YACR9H,MAAO,CACLiV,KAAM,EACN6M,cAAe,OACf3c,UAAW,OACX8E,eAAgB,aAChBlC,UAAW,GACX5G,gBAAiB,UACjBE,MAAO,QACbJ,QAAS,oBAELI,MAAM,UACN8E,QAAS,WACbmB,QAAQC,IAAI5D,OAAOC,UACb,IAAMojB,EAAcvjB,GACS,mBAAzBE,OAAOC,SAASC,KACd,yEACA,uEAC2B,UAA7BF,OAAOC,SAASqjB,SAAoB,uBAC5BtjB,OAAOC,SAASC,KAAI,uEAEnBF,OAAOC,SAASC,KAAI,+CAM3BkqC,EAAWvqC,EAASnE,GAC1BiI,QAAQC,IAAIyf,GACZ1f,QAAQC,IAAI,SAAUwmC,EAAUvqC,GAEhC,IAAM0Y,EAASuB,GAAS4d,SAASnjB,MAC/B,SAACgE,GAAM,OAAKA,EAAOiqB,YAAckf,GAAgBhmD,EAAE,IAErD,QAAe0E,IAAXmY,GAAmC,OAAXA,EAA5B,CAOA5U,QAAQC,IAAI,WAAY2U,GACxB,IAAM8hD,EAAY9hD,EAAOkqB,eAEnBvyB,EAAG,kGAnBS,uCAmB8F,yBAAiBmT,EAAW,qKAA6JpkB,EAAM6vC,MAAMvI,OAAOz9B,IAAG,2BAAmB44C,GAAgBhmD,GAAE,yBAAiB0uC,EAAQ,uCAA+BiwB,GAM5Z12D,QAAQC,IAAI,QAASsM,GAErB,IAAIuT,EAASzjB,OAAO2Y,KAAKzI,EAAK,GAAI,wBAG9BxU,EAAKioB,aAAY,WACnB/V,MACErO,EAAY,qBAAuBmiD,GAAgBhmD,GACnD,CACEmS,OAAQ,MACR3K,QAAS,CAAE,eAAgB,oBAC3B6K,YAAa,YAGd1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,uBAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLyvC,GAAyBzvC,GACzB0V,cAAcnoB,GACd+nB,EAAO4X,QACP8+B,GACF,IACCtrD,OAAM,SAACC,GACNnL,QAAQC,IAAI,8BAA+BkL,EAAMpG,WACnD,GACJ,GAAG,MAEHwR,GAAaJ,GA3Cb,MAJE7P,EAAM6E,MACJ,2DA+CN,EAAE,UAEF,qBACEhL,IAAI,GACJzH,MAAO,CAAEyJ,OAAQ,GACjB/B,IAAI,+BAEN,cAACG,EAAA,EAAU,CAAC7H,MAAO,CAAEyJ,OAAQ,EAAGlI,WAAY,IAAMuG,QAAQ,QAAO,uCAOnEo2D,EAAc,wBACdx+D,OAAO05B,oBAAoBkoB,IAAuBt2C,OAAS,IAI5B,YAA/Bs2C,GAAsB9gD,MACS,UAA/B8gD,GAAsB9gD,KAEtB09D,EACE,gCAC8B,YAA3B7Y,GAAgBzzC,OAAuB,KACtC,iCACE,sBACE5R,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,EAAG9J,QAAS,QAAS,UAE3D,qBACExH,MAAO,CACLuF,MAAO,GACPoD,OAAQ,GACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,MAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,kDAGHgpD,EACAF,EACT,eAACl2D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,GAAG,4DACxB,mBAAG2Q,KAAK,8BAA8BD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAW,wBAAe,4BAK1K0C,IAAnBy9C,IAAmD,OAAnBA,GAA0B,KACzD,iCACE,sBACExhD,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,wCAA0C,UAA/BqsC,GAAsB9gD,KAAmB,SAAW,mBAGhD,IAA1BghD,GAAex2C,OACf,eAACnD,EAAA,EAAU,CAACC,QAAQ,QAAO,0HACmF,mBAAG4Q,KAAK,8BAA8BD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAW,wBAAe,OAGxP,cAAC0W,GAAA,EAAM,CACdwM,UAAW,CACVmE,mBAAmB,EACnBy1C,GAAI,CACF,uBAAuB,CACtBh9D,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,WAIFic,SAAyC,UAA/BgkC,GAAsB9gD,KAChC49D,QAAM,EACNxhC,KAAK,KACLzzB,MAAOk8C,GAAgBjsC,WAAW,GAAGjQ,MAAM8C,MAAM20C,IACjD5gD,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,WAAYW,MAAO,SAC3DsZ,SAAqC,YAA3B0qC,GAAgBzzC,OAC1B4G,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhB0H,SAAU,SAAChK,IA97CS,SAACoH,GAGpC,IAFA,IAAQ2uC,EAAY3uC,EAAM2R,OAAlBg9B,QACJ7rC,EAAQ,GACHkiC,EAAI,EAAGgzB,EAAIrpB,EAAQhqC,OAAQqgC,EAAIgzB,EAAGhzB,GAAK,EAC1C2J,EAAQ3J,GAAGtjB,UACb5e,EAAMgE,KAAK6nC,EAAQ3J,GAAGliC,OAIS,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,CAAC,IAC9BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAa,CAAC,KAK7B,cAAzBisC,GAAgB5/C,UAAiC1B,IAAVoF,GAAiC,OAAVA,GAAkBA,EAAM6B,OAAS,IAClG4C,EAAM+E,KAAK,gDACXrL,QAAQC,IAAI,UAAW4B,GACvBA,EAAQ,CAACA,EAAM,KAId,IAAMm1D,EAAan1D,EAAMoD,KAAKq0C,IAC9ByE,GAAgBjsC,WAAW,GAAK,CAC9BjQ,MAAOm1D,EACP74D,KAAM,iBAERgY,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOm1D,EACP74D,KAAM,iBAIRqJ,GAAkB,CAAC,GACnBwnC,GAAmB,CAAC,GACpBroC,GAAe,CAAC,GAChBsoC,GAAgB,CAAC,GAGjBD,GAAmB+O,IACnBr6B,GAAYvN,GACd,CAq5CmB8gD,CAA6Bt/D,EAC/B,EACAwJ,WAAS,EACTmf,MAAO,cAACC,GAAA,EAAK,CAACxoB,GAAG,yBAAyBW,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYW,MAAO,WAAa,SAGzHmgD,GAAe/iD,KAAI,SAAC+/D,GACV,IAAIC,EACF,wBAEEz+D,MAAO,CACLmB,gBAAiBT,GACjBe,SAAU,SAEZ0H,MAAOq1D,EAAOX,YAAY,SAEzBW,EAAOX,aAPHW,EAAOX,aAwBhB,OAbIW,EAAOE,iBAAmB,IAE5BD,EACE,wBAEEt1D,MAAOq1D,EAAOX,YACd79D,MAAO,CAAEuB,WAAY,QAAS,SAE7Bi9D,EAAOX,aAJHW,EAAOX,cASXY,CACT,KA9BKpZ,UAqCwB,UAA/B/D,GAAsB9gD,OAC/B8G,QAAQC,IAAI,SAAU+5C,IACtB4c,EAAc,kBAKlB,IAAMS,EACJj/D,OAAO05B,oBAAoBkoB,IAAuBt2C,OAAS,EACzD,8BAAMkzD,IAEN,gCACE,sBACEl+D,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,MAAO9J,QAAS,QAAS,UAEnE,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,2CAGHgpD,EACAF,EACN,eAACl2D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,GAAG,4DACxB,sBAAM/H,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY8E,QAAS,gBAC5FpC,IAAjBJ,OAAOi7D,MACVj7D,OAAOi7D,MAAMC,IAAIC,iBAAiB,CAAEC,cAAe,SAEnDz3D,QAAQC,IAAI,oFAAqF5D,OAAOi7D,MAE1G,EAAE,wBAAkB,uBAKtB,OACE,sBAAK5+D,MAAOi3C,GAAgB,UAC1B,qBAAKj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SACpE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,qBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,UAChC+zC,GAAgB9lC,SAAQ,KAAI8lC,GAAgBzzC,UAE/C,mBACE6G,IAAI,sBACJT,OAAO,SACPU,KAAK,0CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,2CAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,uCACA,cAACqH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAaq8C,GAAgB7+C,MAC7ByC,SAAUkzD,KAGZ,sBAAKn8D,MAAO,CAAE+H,UAAW,QAAS,yBAEhC,cAACS,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGd6X,UAAQ,EACRqB,UAAQ,EACRlS,WAAS,EACTpH,MAAM,UACN8H,MAAOk8C,GAAgBhf,iBAG3B,cAACrtB,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGpBw9D,EACD,qBAAK3+D,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,SAC3C,gCACE,cAACiR,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,sBACEnB,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,cAAC2O,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEiV,KAAM,KACf0F,SAC6B,YAA3B0qC,GAAgBzzC,aACG7N,IAAnBy9C,IACmB,OAAnBA,IAC0B,IAA1BA,GAAex2C,OAEjB7E,QAAS,WACP64D,GAAa3Z,GAAiBC,GAChC,EACAjkD,MAAM,UAAS,mBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAEiV,KAAM,KACf0F,SAAqC,YAA3B0qC,GAAgBzzC,OAC1BzL,QAAS,WACP2uD,GAAYzP,GAAiBC,GAC/B,EACAjkD,MAAM,UAAS,4BAS7B,EAEM49D,GAAiB,WACrB,MAAwC96D,mBAAS,MAAK,mBAA/C+rC,EAAY,KAAEC,EAAe,KACpC,EAAwCjsC,IAAMC,UAAS,GAAM,mBAAtDw0C,EAAY,KAAEC,EAAe,KACpC,EAAoC10C,IAAMC,SAAS,IAAG,mBAA/CoqC,EAAU,KAAEiK,EAAa,KAEhC,GAA0B,IAAtBjK,EAAWvjC,OAAc,CAkB3B,GAhBAujC,EAAWphC,KAAK,CACd3M,KAAM,qBACNiF,KAAM,qBACN0D,MAAO,QACP6vC,UAAW,OACX5rC,aAAc,OACd+J,QAAS,UAEXo3B,EAAWphC,KAAK,CACd3M,KAAM,mBACNiF,KAAM,mBACN0D,MAAO,iBACP6vC,UAAW,aACX5rC,aAAc,gBACd+J,QAAS,UAGuB,OAAhCsG,GAASiD,yBACuB3c,IAAhC0Z,GAASiD,oBACTjD,GAASiD,mBAAmB1V,OAAS,EAErC,IAAK,IAAIyB,KAAOgR,GAASiD,mBAAoB,CAC3C,IAAMtL,EAAOqI,GAASiD,mBAAmBjU,GACzC8hC,EAAWphC,KAAK,CACd3M,KAAM,oBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS/B,EAAKjM,OAElB,CAIF,GACmC,OAAjCsU,GAAS8d,0BACwBx3B,IAAjC0Z,GAAS8d,qBACT9d,GAAS8d,oBAAoBvwB,OAAS,EAEtC,IAAK,IAAIyB,KAAOgR,GAAS8d,oBAAqB,CAC5C,IAAMnmB,EAAOqI,GAAS8d,oBAAoB9uB,GAC1C8hC,EAAWphC,KAAK,CACd3M,KAAM,qBACNiF,KAAM2P,EAAK3P,KACX0D,MAAOiM,EAAKjM,MACZ9J,GAAI+V,EAAK/V,GACT+N,aAAa,GAAD,OAAKgI,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,MAC3C4K,QAAS,IAEb,CAGF,IAAI8hC,EAAUzB,GAAW6N,IACzB,GAAIpM,EAAQjuC,OAAS,EAAG,CAAC,IAAD,aAEpB,IAAMoK,EAAO6jC,EAAQxsC,GACrB,GAAmB,uBAAf2I,EAAK5O,MACP,iBAKF,GAFI0yC,OAA+Bn1C,IAAjBqR,EAAK+B,QAAwB,GAAK/B,EAAK+B,QAErDgH,GAAmBnT,OAAS,EAE9B,IAASyB,KAAO0R,GAAoB,CAClC,QACsCpa,IAApCoa,GAAmB1R,GAAK0sC,SACY,OAApCh7B,GAAmB1R,GAAK0sC,QAQ1B,QAAoBp1C,KAHhBq1C,EAAcj7B,GAAmB1R,GAAK0sC,QAAQjhC,MAChD,SAACiC,GAAM,OAAKA,EAAO5T,OAAOlH,KAAO+V,EAAK/V,EAAE,KAOjD,GADkBqgC,GAAa0Z,EAAYj/B,QAC7BnI,MAAO,CACpBknC,EAAcxZ,GAAavlB,OAC3B,KACD,CACK,CAIF,IAAMm/B,EAAc,CAClB94C,KAAM,SACNnB,GAAI+V,EAAK/V,GACToG,KAAM2P,EAAK5O,MACX4G,aAAa,GAAD,OAAKgI,EAAK5O,MAAMyF,MAAM,KAAKM,KAAK,MAC5C4K,QAAS+hC,GAEX3K,EAAWphC,KAAKmsC,EAAa,EAzC/B,IAAK,IAAI7sC,KAAOwsC,EAAU,KAMpBC,EAYIE,EAAW,GAZJ,CAqCnB,CAEAZ,EAAcjK,EAChB,CAGA,IAAMiP,EAAoB,SAAC56C,GACRA,EAAT/C,KAAR,IAOMwxC,EAAkB,SAAChU,GAEvB,GADJ/1B,QAAQC,IAAI,WAAY81B,QACLt5B,IAAXs5B,GAAmC,OAAXA,GAAqC,IAAlBA,EAAOryB,OAAtD,CAsBJ,GADA1D,QAAQC,IAAI,qBAAsB89C,IACL,qBAAzBA,GAAgB5/C,KAA6B,CAC5C,IAAM6rC,EAAa+T,GAAgBjsC,WAAW,GAAGjQ,MAAQ,IAAMk0B,EAAO,GAAGjwB,aAC7Ei4C,GAAgBjsC,WAAW,GAAGjQ,MAAQmoC,EACtCgF,GAAmB+O,GACpB,CAEI16B,GAAUqB,KAAKC,UACf2sB,GAAgB,GAChBzI,EAAgB,KA5BhB,CA6BF,EAEM+N,EAAY,CAChBxyC,YAAa,IAGf,OACE,cAACs8B,GAAA,EAAI,CACH8J,gBAAgB,iBAChBC,eAAgB7B,EAChB3zB,QAAS,WA/CXoO,GAAUqB,KAAKC,UACfkkB,EAAgB,KAgDd,EACA7zB,OAAQ4zB,EACRlwC,MAAO,CACLgB,OAAO,oBACPK,MAAO,QACP0G,UAAW,GACX,SAEDwmC,EAAW9vC,KAAI,SAAC2xB,GACf,IAAMwN,EACe,WAAnBxN,EAAU5vB,KACR,cAAC,KAAQ,CAACR,MAAO,CAAE0L,YAAa,MACX,sBAAnB0kB,EAAU5vB,MACO,uBAAnB4vB,EAAU5vB,KACV,cAAC,KAAkB,CAACR,MAAO,CAAE0L,YAAa,MAE1C,cAAC8sD,GAAA,EAAY,CAACx4D,MAAO,CAAE0L,YAAa,MAGlCsmC,EAA0B,SAACC,GAC/B,IAAIC,EAAkB9gC,SAASsE,eAC7B,kCAWF,GATwB,OAApBw8B,IAEAA,EAAgBlyC,MAAMgB,OADpBixC,EAC6B,oBAEA,SAMXluC,IAAtB0Z,GAASmD,UACa,OAAtBnD,GAASmD,UACTnD,GAASmD,SAAS5V,OAAS,EAE3B,IAAK,IAAIyB,KAAOgR,GAASmD,SAAU,CACjC,IAAMxL,EAAOqI,GAASmD,SAASnU,GAE/B,QAAW1I,IAAPL,GAAkB,CACpB,IAAIuwB,EAAOvwB,GAAGgS,eAAeN,EAAK/V,IAC9B40B,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,CACF,CAEJ,EAEMC,EAAoB,SAAC1L,EAAQ2L,GACjC,QAAW75C,IAAPL,GAAkB,CACpB,IAAIuwB,EAAOvwB,GAAGgS,eAAekoC,GACzB3pB,EAAKjpB,OAAS,IACZinC,EACFhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGvB,CACF,EAkBI3M,EAAc,GAKlB,MAJiC,kBAAtB3gB,EAAUjZ,UACnB45B,EAAcnkC,GAAewjB,EAAUjZ,QAAS,KAG3C45B,EAAY/lC,OAAS,EAC1B,cAAC,KAAc,CAEbxE,MACE,sBAAKxG,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAGxN,EAAU3qB,QAGtB4sC,iBAAkBnC,EAClBlwC,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,KAEZzB,QAAS,WACPkrC,EAAgB,CAACjhB,GACnB,EAAE,SAED2gB,EAAYtyC,KAAI,SAAC6zC,EAAUttC,GAE1B,IAAM44B,EACc,UAAlB0U,EAAS9xC,KACP,cAAC0+D,GAAA,EAAU,CAACl/D,MAAOk+C,IACC,SAAlB5L,EAAS9xC,KACX,cAAC2+D,GAAA,EAAsB,CAACn/D,MAAOk+C,IAE/B,cAAC,KAAc,CAACl+C,MAAOk+C,IAG3B,OACE,cAAC3mC,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPuG,SAAU,KAEZuB,MAAOmpC,EACPrsC,YAAa,WAAO,EACpBE,QAAS,WACPkrC,EAAgB,CAACjhB,EAAWkiB,GAC9B,EAAE,SAEF,cAAC38B,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,qBAAgBkuC,EAASnpC,OAC9BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAG0U,EAAS7sC,WAlBhB6sC,EAAS7sC,KAuBpB,KApDK2qB,EAAU3qB,MAuDjB,cAAC8R,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAOinB,EACPnqB,YAAa,WApFQ,uBAAnBmqB,EAAU5vB,KACZwxC,GAAwB,GACI,WAAnB5hB,EAAU5vB,MACnBm9C,GAAkB,EAAMvtB,EAAU/wB,GAiFE,EACpC6G,WAAY,WA7ES,uBAAnBkqB,EAAU5vB,KACZwxC,GAAwB,GACI,WAAnB5hB,EAAU5vB,MACnBm9C,GAAkB,EAAOvtB,EAAU/wB,GA4EnC,EACA8G,QAAS,WACPkrC,EAAgB,CAACjhB,GACnB,EAAE,SAEF,cAACza,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAK,iBAAYgsB,EAAUjnB,OAC3BqQ,UAAU,OAAM,SAEhB,sBAAKxZ,MAAO,CAAEwH,QAAS,QAAS,UAC7Bo2B,EAAI,IAAGxN,EAAU3qB,WApBjB2qB,EAAU3qB,KAyBrB,KAGN,EAEA,GAAI/F,OAAO05B,oBAAoBisB,IAAiBr6C,OAAS,EAAG,CAC1D,QAAgDjH,IAA5C0Z,GAASmD,SAAS0kC,IACpB,OAAO,UAIgDvhD,IAAvD0Z,GAASmD,SAAS0kC,IAAsBlsC,YACe,OAAvDqE,GAASmD,SAAS0kC,IAAsBlsC,YACsB,IAA9DqE,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,SAEnDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,GACrDqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,WACN0D,MAAO,IAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,WACN0D,MAAO,IAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,cACN0D,MAAO,IAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,YACN0D,MAAO,IAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,eACN0D,MAAO,UA8IX,OACE,sBAAKnJ,MAAOi3C,GAAgB,UAC1B,qBACEj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SAEjE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,oBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,SAChC+zC,GAAgB9lC,WAEnB,mBACE9G,IAAI,sBACJT,OAAO,SACPU,KAAK,4CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,qCAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAG1B,sBAAKnB,MAAO,CAACwH,QAAS,QAAQ,UAC7B,sBAAKxH,MAAO,CAACiV,KAAM,GAAG,UAChB,cAACpN,EAAA,EAAU,mBAChB,cAACW,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE7B8H,WAAY,CACX1I,MAAO,CACNqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGZgH,WAAS,EACTpH,MAAM,UACN2H,YAAaq8C,GAAgB7+C,MAC7ByC,SAAUkzD,QAGZ,8BACC,qBAAKn8D,MAAO,CAACiV,KAAM,EAAG1T,WAAY,GAAI,SACrC,cAACoU,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAO,4CACPoV,UAAU,MAAK,SAEf,iCACC,cAAC3R,EAAA,EAAU,oBACX,cAACW,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,aAC5BS,MAAO,QACPkE,MAAO,GACPoD,OAAQ,GACRlH,SAAU,OAEXiH,WAAY,CACX1I,MAAOC,EAAME,QAAQiB,qBAEtB4H,YAAaq8C,GAAgBnG,gBAC7Bn2C,aAAc8F,GAAeqwC,gBAC7Bj2C,SAAU,SAAC5C,GACN6G,MAAM7G,EAAM2R,OAAO7O,OACtB7B,QAAQC,IAAI,QAASlB,EAAM2R,OAAO7O,OAId6tB,SAAS3wB,EAAM2R,OAAO7O,OACxB,MAClB7B,QAAQC,IAAI,gCAIb89C,GAAgBnG,gBAAkBloB,SAAS3wB,EAAM2R,OAAO7O,OACxDmtC,GAAmB+O,IACpB,gBAOD,cAAC5oB,GAAA,EAAgB,CACfC,QACE,cAAC1U,GAAA,EAAQ,CACPC,aAEIlkB,IADF0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAGtC,SADbqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAChDjQ,MAELF,SAAU,WACR,IAAMm2D,OAEFr7D,IADF0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAGtC,UADbqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAChDjQ,MACC,OACA,QACNsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,eACN0D,MAAOi2D,GAGTp0C,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,EACA5qB,MAAM,UACN8H,MAAM,qBAGVnJ,MAAO,CAAE+H,UAAW,IACpBvB,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,gCAExC,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,qBAAKnB,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,SAC3C,gCACL,sBAAK/H,MAAO,CAACwH,QAAS,QAAQ,UAC7B,qBACCxH,MAAO,CACN+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,OACTyN,KAAM,GACL,SAEF,qBAAKjV,MAAO,CAAEiV,KAAM,MAAO,SAC1B,kEAIoB,IADbwI,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD6B,QAAsByS,GAASmD,SAAS0kC,IACtClsC,WAAW,GAAGjQ,QAAUvG,EAAM6vC,MAAMvI,OAAOz9B,IAD9B,KAExB,qBAAKzM,MAAO,CAACuB,WAAY,EAAG0T,KAAM,GAAG,SACpC,mBACCwD,IAAI,sBACJC,KAAI,qBAAgB+E,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,OAC1E6O,OAAO,SACPhY,MAAO,CACNuW,eAAgB,OAChBlV,MAAO,UACPE,WAAY,EACZwG,UAAW,IACV,SAEF,cAAC6Q,GAAA,EAAa,gBAKL7U,IAAdi8B,IACa,OAAdA,IACqB,IAArBA,GAAUh1B,OAAe,KACxB,cAACwvC,GAAA,EAAY,CACNn7C,GAAG,iBACHo7C,eAAa,EACXtxC,MAAO24C,GACT/hB,QAAS,CAAEiW,UAAWjW,GAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGjBg+D,kBAAmB,SAACzkB,EAAQzxC,GAAK,OAAKyxC,EAAOv7C,KAAO8J,EAAM9J,EAAE,EACtDs7C,eAAgB,SAACC,GACf,YACa72C,IAAX62C,GACW,OAAXA,QACgB72C,IAAhB62C,EAAOn1C,MACS,OAAhBm1C,EAAOn1C,KAEA,wBAIPm1C,EAAOn1C,KAAKE,OAAO,GAAGC,cAAgBg1C,EAAOn1C,KAAKI,UAAU,IAC5DC,WAAW,IAAK,IAEpB,EACAkvC,QAAShV,GACTv3B,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,IA7PS,SAAC57C,GAGtC,GAFA0rB,GAAUqB,KAAKC,eAEQloB,IAAnB9E,EAAE+Y,OAAO7O,OAA0C,OAAnBlK,EAAE+Y,OAAO7O,YAAwCpF,IAAtB9E,EAAE+Y,OAAO7O,MAAM9J,GAC7E,OAAO,KASR,GANAoe,GAASmD,SACR0kC,IACClsC,WAAW,GAAGjQ,MAAQlK,EAAE+Y,OAAO7O,MAAM9J,GACvC0iD,GAAe9iD,EAAE+Y,OAAO7O,OAGpBlK,EAAE+Y,OAAO7O,MAAM9J,KAAOoe,GAASpe,GAAI,CACtCiI,QAAQC,IAAI,aAActI,EAAE+Y,OAAO7O,OAEnC,IAAM60D,EAAY/+D,EAAE+Y,OAAO7O,MAAMoJ,QAAQ2F,MACxC,SAAC3R,GAAM,OAAKA,EAAOlH,KAAOJ,EAAE+Y,OAAO7O,MAAM+H,KAAK,IAE/C,QAAkBnN,IAAdi6D,GAAyC,OAAdA,EAAoB,CAClD12D,QAAQC,IAAI,cAAey2D,GAC3B/b,GAAwB+b,GAExB,IACCvgD,GAASmD,SACR0kC,IACClsC,WAAW,GAAGjQ,MAAQ60D,EAAU3+D,EAQnC,CAPE,SACDoe,GAASmD,SACR0kC,IACClsC,WAAW,GAAK,CACjB3T,KAAM,YACN0D,MAAO60D,EAAU3+D,GAEnB,CAEA2rB,GAAYvN,GACb,CACAnW,QAAQC,IAAI,cAAey2D,EAC5B,MACC12D,QAAQC,IAAI,aAAckW,IAG3BuN,GAAYvN,GACb,CAkNM6hD,CAA8B,CAAEtnD,OAAQ,CAAE7O,MAAO0xC,IAC5C,EACAC,aAAc,SAACj7C,EAAMmF,GAAW,IAAD,EAMpC,OALInF,EAAKR,KAAOoe,GAASpe,KACxBQ,EAAO4d,IAKN,cAAC9H,GAAA,GAAO,GAACyzB,OAAK,EAAC5vB,UAAU,OAAOpV,MAC/B,uBAAMpE,MAAO,CAAC,EAAE,eACC+D,IAAflE,EAAKyuB,OAAsC,OAAfzuB,EAAKyuB,OAAkBzuB,EAAKyuB,MAAMtjB,OAAS,EACvE,qBAAKtD,IAAK7H,EAAKyuB,MAAO7mB,IAAK5H,EAAK4F,KAAMzF,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQM,aAAcoE,UAAW,IAAKwkC,UAAW,IAAKzoC,aAAcX,EAAME,QAAQS,gBACtJ,KACF,eAACiH,EAAA,EAAU,qBACFhI,EAAK4F,YAGf,0BAAW,UAAQ,yBACpB,cAAC8R,GAAA,EAAQ,CACRvX,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAOxB,EAAKR,KAAOoe,GAASpe,GAAK,MAAQ,SAG1C8J,MAAOtJ,EAAK,SAEXA,EAAK4F,MAHDT,IAIK,GAGR,EACAg2C,YAAa,SAAC9Q,GACZ,OACL,cAAC1hC,EAAA,EAAS,yBACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,qBACNsB,QAAQ,aAGN,SAIiB/D,IAAhB+9C,IACe,OAAhBA,SACmB/9C,IAAnB+9C,GAAYziD,IACY,OAAxByiD,GAAYvvC,cACYxO,IAAxB+9C,GAAYvvC,SACmB,IAA/BuvC,GAAYvvC,QAAQvH,OAAe,KACjC,iCACE,qBACEhL,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,SAEF,qBAAKxH,MAAO,CAAEiV,KAAM,MAAO,SACzB,yDAGb,cAACulC,GAAA,EAAY,CACNn7C,GAAG,sBACHo7C,eAAa,EACTtxC,MAAO64C,GACXjiB,QAAS,CAAEiW,UAAWjW,GAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGjBg+D,kBAAmB,SAACzkB,EAAQzxC,GAAK,OAAKyxC,EAAOv7C,KAAO8J,EAAM9J,EAAE,EACtDs7C,eAAgB,SAACC,GACf,YACa72C,IAAX62C,GACW,OAAXA,QACiB72C,IAAjB62C,EAAOp0C,OACU,OAAjBo0C,EAAOp0C,OAEXo0C,EAAO5vC,OAII,QAIP4vC,EAAOp0C,MAAMb,OAAO,GAAGC,cAAgBg1C,EAAOp0C,MAAMX,UAAU,IAC9DC,WAAW,IAAK,IAEpB,EACIkvC,QAAS8M,GAAYvvC,QACzB9J,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,IAhbS,SAAC57C,GAGxC,GAFAgjD,GAAwBhjD,EAAE+Y,OAAO7O,OAEV,OAAnBlK,EAAE+Y,OAAO7O,YAAqCpF,IAAnB9E,EAAE+Y,OAAO7O,MAAxC,CAIA,IAAMo2D,EAAWj5C,cACXuqC,EAAY,CACjB1qB,UAAW1oB,GAASmD,SAAS0kC,IAAsBjmD,GACnD+mC,eAAgBnnC,EAAE+Y,OAAO7O,MAAM9J,GAC/BssB,OAAQlO,GAASmD,SAAS0kC,IAAsBjmD,GAChD2Y,OAAQ/Y,EAAE+Y,OAAO7O,MAAM9J,GACvBmuD,YAAY,EACZnuD,GAAIkgE,EACJpS,IAAKoS,EACL/4D,MAAO,UACPikD,WAAW,GAGZ,QAAiC1mD,IAA7B0Z,GAAS4tC,gBACZ,GAAiC,OAA7B5tC,GAAS4tC,gBACZ5tC,GAAS4tC,gBAAkB,CAACwF,QACtB,GAAwC,IAApCpzC,GAAS4tC,gBAAgBrgD,OACnCyS,GAAS4tC,gBAAgBl+C,KAAK0jD,OACxB,CACN,IAAM2O,EAAa/hD,GAAS4tC,gBAAgBnqC,WAC3C,SAAChF,GAAM,OAAKA,EAAOiqB,YAAc0qB,EAAU1qB,SAAS,IAErD,IAAoB,IAAhBq5B,EAAmB,CACtB,IAAMC,EAAc/7D,GAAGgS,eACtB+H,GAAS4tC,gBAAgBmU,GAAYngE,SAGrB0E,IAAhB07D,GACgB,OAAhBA,GAEAA,EAAY5oC,QAEd,CAEApZ,GAAS4tC,gBAAgBtvB,OAAOyjC,EAAY,GAC5C/hD,GAAS4tC,gBAAgBl+C,KAAK0jD,EAC/B,CAGD,GAAIpzC,GAASpe,KAAOyiD,GAAYziD,GAAI,CACnC,IAAMqgE,EAAW,CAChBxoC,MAAO,QACPvL,OAAQklC,EAAU1qB,UAClBnuB,OAAQ64C,EAAUzqB,eAClB/mC,GAAIkgE,EACJ1/D,KAAMgxD,GAGPntD,GAAGuzB,IAAIyoC,EACR,CAEAp4D,QAAQC,IAAI,oBAAqBtI,EAAE+Y,OAAO7O,OAC1C,IACCsU,GAASmD,SACR0kC,IACClsC,WAAW,GAAGjQ,MAAQlK,EAAE+Y,OAAO7O,MAAM9J,EAOxC,CANE,SACDoe,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAClD,CACC3T,KAAM,YACN0D,MAAOlK,EAAE+Y,OAAO7O,MAAM9J,GAEzB,CAEA2rB,GAAYvN,GAlEZ,CAmED,CAyWQkiD,CAAgC,CAAE3nD,OAAQ,CAAE7O,MAAO0xC,IAC9C,EACAC,aAAc,SAACv0C,GACpB,IAAMq5D,EAAWpoB,GAAW6N,IAAiBntC,MAChC,SAAC2nD,GAAM,OAAKA,EAAOxgE,KAAOkH,EAAOlH,EAAE,IAGrC,OACE,cAACkY,GAAA,EAAQ,CACTtR,YAAa,WACnB67C,GAAYziD,KAAOoe,GAASpe,IAC/Bs+C,IAAkB,EAAMp3C,EAAOlH,GAEjC,EACW6G,WAAY,WAClB47C,GAAYziD,KAAOoe,GAASpe,IAC/Bs+C,IAAkB,EAAOp3C,EAAOlH,GAElC,EACasb,SAAUlX,IAAWm8D,EACrB5/D,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAOu+D,EAAW,MAAQ,SAE5Bz2D,MAAO5C,EAAO,SAEbA,EAAOC,OAGlB,EACAw0C,YAAa,SAAC9Q,GACZ,OACL,cAAC1hC,EAAA,EAAS,yBACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,uBACNsB,QAAQ,aAGN,OAIF,qBACE9H,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,SAEF,qBAAKxH,MAAO,CAAEiV,KAAM,MAAO,SACzB,uDAGJ,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,OAEZyb,aACE,cAACrU,EAAA,EAAc,CAACxD,SAAS,MAAK,SAC5B,cAACsQ,GAAA,EAAO,CAACvR,MAAM,oBAAoBoV,UAAU,MAAK,SAChD,cAAC,KAAoB,CACnBxZ,MAAO,CAAEoF,OAAQ,WACjBe,QAAS,SAACE,GACR8pC,EAAgB,CACd73B,IAAKjS,EAAMurC,MAAQ,GACnBzoB,KAAM9iB,EAAMwrC,MAAQ,KAGtB+G,GAAgB,EAClB,SAMVhc,KAAK,IACLjB,WAAS,EACTlzB,WAAS,EACTpH,MAAM,UACN2H,YAAY,sBACZD,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExDyY,OAAQ,SAAC3iB,GACPqI,QAAQC,IAAI,SAAUtI,EAAE+Y,OAAO7O,OAC/BsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpDlK,EAAE+Y,OAAO7O,MACX6hB,GAAYvN,GACd,IAEDk7B,EACC,cAAC6E,EAAiB,CAChBjP,WAAYA,EACZ1uC,KAAM4d,GAASmD,SAAS0kC,MAExB,YA4Cd,CAEA,OAAO,IACT,EAEMwa,GAAiB,WACrB,OAAIpgE,OAAO05B,oBAAoB+rB,IAAiBn6C,OAAS,EA2BrD,sBAAKhL,MAAOi3C,GAAgB,UAC1B,qBACEj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SAEjE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,oBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,qBACnC,mBACEmH,IAAI,sBACJT,OAAO,SACPU,KAAK,8CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,qCAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,GACdvJ,UAAW,GACXY,OAAQ,EACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,uCACA,cAACqH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,QAGdk6B,WAAS,EACTiB,KAAK,IACLn0B,WAAS,EACTpH,MAAM,UACN0H,aAAco8C,GAAgB3+C,MAC9BwC,YAAY,UACZC,SAAU,SAAC5C,GACT8+C,GAAgB3+C,MAAQH,EAAM2R,OAAO7O,MACrCi8C,GAAmBD,GACrB,IAEF,sBAAKnlD,MAAO,CAAEwH,QAAS,OAAQO,UAAW,IAAK,UAC7C,gCACE,yCACA,cAACS,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACd2H,YAAa,MACLD,aAAco8C,GAAgBx8C,OAC9BM,SAAU,SAAC5C,GACT8+C,GAAgBx8C,OAAStC,EAAM2R,OAAO7O,MACtCi8C,GAAmBD,GACrB,OAGJ,sBAAKnlD,MAAO,CAACuB,WAAY,GAAI,UAC3B,wCACA,cAACiH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACd2H,YAAa,MACLD,aAAco8C,GAAgB5/C,MAC9B0D,SAAU,SAAC5C,GACT8+C,GAAgB5/C,MAAQc,EAAM2R,OAAO7O,MACrCi8C,GAAmBD,GACrB,UAIN,sBAAKnlD,MAAO,CAAEwH,QAAS,OAAQO,UAAW,IAAK,UAC7C,gCACE,6CACA,cAACS,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACd2H,YAAa,UACLD,aAAco8C,GAAiC,gBAC/Cl8C,SAAU,SAAC5C,GACT8+C,GAAgB4a,gBAAkB15D,EAAM2R,OAAO7O,MAC/Ci8C,GAAmBD,GACrB,OAGJ,sBAAKnlD,MAAO,CAACuB,WAAY,GAAG,UAC1B,6CACA,cAACiH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACd2H,YAAa,UACLD,aAAco8C,GAAgB9jD,MAC9B4H,SAAU,SAAC5C,GACT8+C,GAAgB9jD,MAAQgF,EAAM2R,OAAO7O,MACrCi8C,GAAmBD,GACrB,UAIX,qBAAKnlD,MAAO,CAAC+H,UAAW,IAAK,8BAC7B,cAACS,EAAA,EAAS,CACTxI,MAAO,CACNmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE7B8H,WAAY,CACX1I,MAAO,CACNqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGZgH,WAAS,EACTpH,MAAM,UACN2H,YAAa,sGACbD,aAAco8C,GAAiC,gBAC/Cl8C,SAAU,SAAC5C,GACV8+C,GAAgB6a,gBAAkB35D,EAAM2R,OAAO7O,MAC/C7B,QAAQC,IAAI,YAAa49C,IACzBC,GAAmBD,GACpB,OAMK,IACT,EAEM8a,GAAiB,WACrB,GAAIvgE,OAAO05B,oBAAoBisB,IAAiBr6C,OAAS,EAAG,CAC1D,QAAgDjH,IAA5C0Z,GAASmD,SAAS0kC,IACpB,OAAO,KAGT,QACyDvhD,IAAvD0Z,GAASmD,SAAS0kC,IAAsBlsC,YACe,OAAvDqE,GAASmD,SAAS0kC,IAAsBlsC,YACsB,IAA9DqE,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,OAEnDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,GACrDqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,MACN0D,MAAO6U,EAAe,WAAaqnC,GAAgBhmD,IAErDoe,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,MACN0D,MAAO,WAAak8C,GAAgBhmD,IAEtCoe,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,eACN0D,MAAO,IAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,uBACN0D,MAAO,IAET6hB,GAAYvN,QACP,CAEL,IAAMyiD,EAASliD,EAAe,WAAaqnC,GAAgBhmD,GAE3B,UAAhCgmD,GAAgBhf,aACf65B,IAAWziD,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,OACpE7B,QAAQC,IAAI,gDAKZ,CAEA,IAAM44D,EACJ1iD,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,OAAS,EACxDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACtD,GAEN,OACE,sBAAKnJ,MAAOi3C,GAAgB,UAC1B,qBACEj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SAEjE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,qBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,UAChC+zC,GAAgB9lC,SAAQ,KAAI8lC,GAAgBzzC,UAE/C,mBACE6G,IAAI,sBACJT,OAAO,SACPU,KAAK,4CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,qCAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,uCACA,cAACqH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAaq8C,GAAgB7+C,MAC7ByC,SAAUkzD,UAEPp4D,IAATqK,IAA+B,OAATA,IAAiBA,GAAKpD,OAAS,EACrD,qBAAKhL,MAAO,CAAE+H,UAAW,IAAM,SAC1B,cAACyyC,GAAA,EAAY,CACXn7C,GAAG,gBACHo7C,eAAa,EACbtxC,MAAOk8C,GAAgBtkC,gBACvBgf,QAAS,CAAEiW,UAAWjW,GAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGjBm+C,cAAe,SAACxK,EAAQ,GAAqB,IAEtCyK,EAF8B,EAAVC,WAEQ/yC,cAGlC,OAFAqoC,EAAUA,EAAQn7B,QAAO,SAAAgf,GAAC,OAAIA,EAAEpzB,KAAKK,WAAW,IAAK,KAAK6G,cAAcR,SAASszC,IAAmB5mB,EAAE/jB,YAAYnI,cAAcR,SAASszC,EAAe,GAGzJ,EACM9E,eAAgB,SAACC,GACf,YACa72C,IAAX62C,GACW,OAAXA,QACgB72C,IAAhB62C,EAAOn1C,MACS,OAAhBm1C,EAAOn1C,KAEA,MAIPm1C,EAAOn1C,KAAKE,OAAO,GAAGC,cAAgBg1C,EAAOn1C,KAAKI,UAAU,IAC5DC,WAAW,IAAK,IAGpB,EACAkvC,QAAS2K,GAAUvxC,GAAM,QACzB3F,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,GAGhB,GADPvzC,QAAQC,IAAIlB,EAAOw0C,QACK92C,IAAb82C,GAAuC,OAAbA,EAAmB,CACvD,IAAIX,EAAcjnC,KAAKC,MAAMD,KAAKS,UAAUmnC,IAC5CX,EAAY3nC,QAAU,GACtB2nC,EAAYh6B,eAAiB,CAAC,EAC9BmlC,GAAgBtkC,gBAAkBm5B,EAC1BvvB,GAAUqB,KAAKC,SACxB,CAOK,EACA6uB,aAAc,SAAC5oC,GACpB,IAAIkQ,EAAUlQ,EAAIzM,KAAKK,WAAW,IAAK,KAGvC,OAFAsc,EAAUA,EAAQzc,OAAO,GAAGC,cAAgBwc,EAAQvc,UAAU,GAG7D,cAAC8P,GAAA,EAAO,CACPtU,MAAM,YACN+C,MAAOge,EACP5I,UAAU,OAAM,SAEhB,8BACC,sBAAKxZ,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,GAAI,UAChD,cAACkQ,EAAA,EAAM,CAAC1Z,QAAQ,UAAS,SACxB,qBACCL,IAAK2a,EACL1a,IAAKwK,EAAIwC,YACT1U,MAAO,CAAEuF,MAAO,GAAIoD,OAAQ,QAG9B,cAACd,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,IAAM,SACpD6gB,UAMP,EACM44B,YAAa,SAAC9Q,GACnB,OACC,cAAC1hC,EAAA,EAAS,yBACTnH,MAAM,UACNyG,QAAQ,QACR9H,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,iCACNsB,QAAQ,aAGL,MAIN,KAC0B,YAA3Bu9C,GAAgBzzC,OAAuB,KAClC,sBAAK5R,MAAO,CAAE+H,UAAW,QAAS,UAChC,cAACF,EAAA,EAAU,0BACX,cAACkQ,GAAA,EAAM,CACZwM,UAAW,CACVmE,mBAAmB,GAEbvf,MAAOk8C,GAAgBhf,YACvB1rB,SAAqC,YAA3B0qC,GAAgBzzC,OAC1B4G,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBkH,WAAS,EACTQ,SAAU,SAAChK,GAET,GADAomD,GAAgBhf,YAAcpnC,EAAE+Y,OAAO7O,MAChB,UAAnBlK,EAAE+Y,OAAO7O,MAAmB,CAC9B,IAAMi3D,EAAW3iD,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAM8C,MAAM,KAE7Eo0D,EAAS,uBADCD,EAAS7gE,MAAM,EAAG6gE,EAASp1D,QACKuB,KAAK,KACrDkR,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAQk3D,CAChE,KAAO,CACL,IAAMD,EAAW3iD,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAM8C,MAAM,KAC7Eq0D,EAAUF,EAAS7gE,MAAM,EAAG6gE,EAASp1D,QACrCq1D,EAAS18D,OAAOC,SAAS28D,OAAS,IAAMD,EAAQ/zD,KAAK,KAC3DkR,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAQk3D,CAChE,CAER/4D,QAAQC,IAAI,cAAekW,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAC9EisC,GAAgBjsC,WAAW,GAAKqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAC3Ek9B,GAAmB+O,IACnBr6B,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,EACAjsB,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,QACPsH,OAAQ,IACR,SAEDk/C,GAAoBppD,KAAI,SAACoB,GACxB,OAAIA,EAAKy/C,SACA,KAIP,cAAC/nC,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJIA,EAOX,SAIL,cAACmZ,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,qBAAKnB,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,SAC3C,gCACE,2CACA,sBACE/H,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,kDAGJ,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9BvB,GAAG,oBACH8G,QAAS,WACT,EACAgX,gBACkEpZ,IAAhE0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,OACU,OAAhEsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,QACrDsU,GAASmD,SACR0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,cAC7BsR,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,cAC/B,sBACEnM,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,EAAGuhC,WAAY,GAAI,+EAK1D,KAENnqC,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,GACRpH,WAAY,MACZC,SAAU,MACVC,SAAU,OAEfyb,aACL,cAACrU,EAAA,EAAc,CAACxD,SAAS,MAAK,SAC5B,cAACsT,GAAA,EAAU,CACX,aAAW,eACXxS,QAAS,WACC,IAAI8c,EAAW7R,SAASsE,eAAe,qBACvC,QAAiB3R,IAAbkf,GAAuC,OAAbA,EAAmB,CAG/C,GAFA3b,QAAQC,IAAI,cAAe2b,gBAETnf,IADAmf,UAAUC,UAG1B,YADAvV,EAAM6E,MAAM,wCAIdyQ,UAAUC,UAAUC,UAAUH,EAAS9Z,OACvC8Z,EAASI,SACTJ,EAASK,kBACP,EACA,OAIFlS,SAASmS,YAAY,QACrB3V,EAAMiF,QAAQ,qBAChB,MACEvL,QAAQC,IAAI,oCAAqC0b,EAE7D,EACA+W,KAAK,MAAK,SAEV,cAACwmC,GAAA,EAAe,SAIZ/3D,WAAS,EACTkS,UAAQ,EACRxR,MACEsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExD9H,MAAM,UACN2H,YAAY,eACZ4Y,OAAQ,SAAC3iB,GACPs9D,GAAsBt9D,EAAE+Y,OAAO7O,MACjC,IAEF,sBACEnJ,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,cAAC2O,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEiV,KAAM,KACf0F,SAAqC,YAA3B0qC,GAAgBzzC,OAC1BzL,QAAS,WACP2X,GAAWL,GAASmD,SAAS0kC,IAC/B,EACAjkD,MAAM,UAAS,mBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEiV,KAAM,KACf0F,SAAqC,YAA3B0qC,GAAgBzzC,OAC1BzL,QAAS,WACP0uD,GAAcxP,GAAiBC,GACjC,EACAjkD,MAAM,UAAS,qBAKnB,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAG5B,sBACSnB,MAAO,CACL+H,UAAW,GACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB8/C,EACjBv1C,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,4DAGJ,8BACE,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9BvB,GAAG,qBACH8G,QAAS,WAAO,EAChBuC,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,QAGdgH,WAAS,EACTkzB,WAAS,EACTiB,KAAK,IACL7zB,aAAco3D,EACd9+D,MAAM,UACNsZ,SAAqC,YAA3B0qC,GAAgBzzC,OAC1B5I,YAAa,0BACb4Y,OAAQ,SAAC3iB,GACP,IAAMkK,EAAQlK,EAAE+Y,OAAO7O,MACY,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,IAG/BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,gBAERulB,GAAYvN,GACd,MAGX,sBACSzd,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB8/C,EACjBv1C,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,qDAGJ,qBAAKjV,MAAO,CAACsR,aAAc,IAAM,SAC/B,cAAC9I,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9BvB,GAAG,qBACH8G,QAAS,WAAO,EAChBuC,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVC,SAAU,QAGdgH,WAAS,EACTkzB,WAAS,EACTiB,KAAK,IACL7zB,aAAco3D,EACd9+D,MAAM,UACNsZ,SAAqC,YAA3B0qC,GAAgBzzC,OAC1B5I,YAAa,KACb4Y,OAAQ,SAAC3iB,GACP,IAAMkK,EAAQlK,EAAE+Y,OAAO7O,MACY,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,IAG/BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,wBAERulB,GAAYvN,GACd,aAOd,CAEA,OAAO,IACT,EAEMq3C,GAAc,SAACj0C,EAAS8zC,GAE5B,QAAmB5wD,IAAf8c,EAAQxhB,GAAZ,CAIAuO,EAAM+E,KAAK,yBACX,IAAM8tD,EAAcnf,GAAsB9gD,KAC1C+Q,MAAM,GAAD,OACArO,EAAS,6BAAqBN,EAAM6vC,MAAMvI,OAAOz9B,IAAG,YAAIg0D,EAAW,YAAI5/C,EAAQxhB,IAClF,CACEmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAGd1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,yCAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACDA,EAAae,SACfjF,EAAMiF,QAAQ,gCAEd4K,GAASmD,SAAS+zC,GAAc/iD,OAAS,UACzCiP,EAAQjP,OAAS,UACjBoZ,GAAYvN,IACZ64B,GAAmBz1B,GACnBhD,GAAaJ,KAEb7P,EAAM6E,MAAM,4BAA8BX,EAAasJ,OAE3D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,uBAAwBkL,EAAMpG,WAC5C,GAtCF,CAuCF,EAEM2yD,GAAe,SAACn+C,EAAS8zC,GAC7B,IAAI+L,EAAU,GAEd,GAAuB,OAAnBlf,SAA8Cz9C,IAAnBy9C,GAC7B,OAAO,KAGT,IAAMmf,EACJljD,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAM8C,MAC1D20C,IAGNt5C,QAAQC,IAAI,sBAAuBkW,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAAOw3D,GAAW,iBAEvG,IAAMvrD,EAAOurD,EAAUl0D,GACjBm0D,EAAYpf,GAAetpC,MAAK,SAACmnC,GAAC,OAAKA,EAAEwe,cAAgBzoD,CAAI,IACnE,QAAkBrR,IAAd68D,EAEF,OADAhzD,EAAM6E,MAAM,+CAAiD2C,GACvD,CAAN,UAGFsrD,EAAQvzD,KAAKyzD,EAAUvhE,GAAI,EAR7B,IAAK,IAAIoN,KAAOk0D,EAAW,CAAC,IAAD,uCAS3B,CAEA,IAAM9gE,EAAO,CACX4F,KAAMob,EAAQpb,KACdi7D,QAASA,EACTrhE,GAAIwhB,EAAQxhB,IAGRohE,EAAcnf,GAAsB9gD,KAC1CoN,EAAM+E,KACJ,YAAc8tD,EAAc,2BAA6B5/C,EAAQpb,MAGnE8L,MACErO,EACE,qBACAN,EAAM6vC,MAAMvI,OAAOz9B,IACnB,IACAg0D,EACF,CACEjvD,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAGd1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,yCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,SAGhBjF,EAAMiF,QACJ,0FAGF4K,GAASmD,SAAS+zC,GAAc/iD,OAAS,UACzCiP,EAAQjP,OAAS,UACjBoZ,GAAYvN,IACZ64B,GAAmBz1B,GACnBhD,GAAaJ,KAVb7P,EAAM6E,MAAM,4BAA8BX,EAAasJ,OAY3D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,wBAAyBkL,EAAMpG,WAC7C,GACJ,EAEMyR,GAAa,SAAC+C,GAClB,IAAMggD,EAAWhgD,EAAQra,MACzB,GAAwB,IAApBq6D,EAAS71D,OAKb,GAA0B,KAAtB6V,EAAQxhB,GAAG2L,OAAf,CAMA,IAAIg/C,EAAYvsC,GAASvM,MACnBgL,EAASuB,GAAS4d,SAASnjB,MAC/B,SAACgE,GAAM,OAAKA,EAAOiqB,YAActlB,EAAQxhB,EAAE,SAGhC0E,IAAXmY,QACoBnY,IAAnB0Z,GAASvM,OACW,OAAnBuM,GAASvM,OACiB,IAA1BuM,GAASvM,MAAMlG,QAEjB4C,EAAM6E,MAAM,2BAGd7E,EAAM+E,KAAK,yBACI5O,IAAXmY,IACF8tC,EAAY9tC,EAAOkqB,gBAGrB,IAAMtjB,EAAQjC,EAAQzH,WAAWlB,MAC/B,SAAC4K,GAAK,MAAoB,iBAAfA,EAAMrd,IAAuB,IAEtC6a,EAAO,QACGvc,IAAV+e,GAAiC,OAAVA,IACzBxC,EAAOwC,EAAM3Z,OAGjB,IAAM23D,EAAkBjgD,EAAQzH,WAAWlB,MACvC,SAAC4K,GAAK,MAAoB,yBAAfA,EAAMrd,IAA+B,IAE9Cs7D,EAAkB,QACEh9D,IAApB+8D,GAAqD,OAApBA,IACnCC,EAAkBD,EAAgB33D,OAGpC7B,QAAQC,IAAI,SAAUsZ,GACtB,IAAMhhB,EAAO,CACX4F,KAAMo7D,EACNrgE,KAAM,UACNnB,GAAIwhB,EAAQxhB,GACZoe,SAAUA,GAASpe,GACnB6R,MAAO84C,EACP3jB,YAAaxlB,EAAQwlB,YACrB/lB,KAAMA,EACTygD,gBAAiBA,GAGhBxvD,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,OACR3K,QAAS,CAAE,eAAgB,oBAC3BsM,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAAQ,OAAKA,EAASE,MAAM,IAClC7S,MAAK,SAAC8S,GACDA,EAAae,SAEfjF,EAAMiF,QAAQ,gCACdgO,EAAQjP,OAAS,UACjB0kC,GAAmBz1B,GACnBpD,GAASmD,SAAS0kC,IAAsB1zC,OAAS,UACjDoZ,GAAYvN,IACZI,GAAaJ,KAEb7P,EAAM6E,MAAM,4BAA8BX,EAAasJ,OAE3D,IACC5I,OAAM,SAACC,GAENnL,QAAQC,IAAI,sBAAuBkL,EAAMpG,WAC3C,GAxEF,MAFEuB,EAAM6E,MAAM,mBALZ7E,EAAM6E,MAAM,eAgFhB,EAEMoiD,GAAgB,SAACh0C,EAAS8zC,QACX5wD,IAAf8c,EAAQxhB,IAIZkS,MAAMrO,EAAY,iBAAmB2d,EAAQxhB,GAAK,UAAW,CAC3DmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,yCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,QACmC/N,IAApC0Z,GAASmD,SAAS+zC,KACpBl3C,GAASmD,SAAS+zC,GAAc/iD,OAAS,WAGvCE,EAAae,QAEfgL,GAAaJ,SAEe1Z,IAAxB+N,EAAasJ,QACfxN,EAAM6E,MAAM,4BAA8BX,EAAasJ,QAI3DyF,EAAQjP,OAAS,UACjBoZ,GAAYvN,IACZ64B,GAAmBz1B,EACrB,IACCrO,OAAM,SAACC,GAEN7E,EAAM6E,MAAM,yBAA0BA,EAAMpG,WAC9C,GACJ,EAEM20D,GAAmB,WACvB,OACEthE,OAAO05B,oBAAoBisB,IAAiBr6C,OAAS,QACTjH,IAA5C0Z,GAASmD,SAAS0kC,UAGuCvhD,IAAvD0Z,GAASmD,SAAS0kC,IAAsBlsC,YACe,OAAvDqE,GAASmD,SAAS0kC,IAAsBlsC,YACsB,IAA9DqE,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,SAEnDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,GACrDqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,YACN0D,MAAO,0BAITsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,UACN0D,MAAO,WAITsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,OACN0D,MAAO,SAGTsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,QACN0D,MAAO,iBAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,MACN0D,MAAO,WAETsU,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,UACN0D,MAAO,IAGT6hB,GAAYvN,KAIZ,sBAAKzd,MAAOi3C,GAAgB,UAC1B,qBACEj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SAEjE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,qBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,UAChC+zC,GAAgB9lC,SAAQ,KAAI8lC,GAAgBzzC,UAE/C,mBACE6G,IAAI,sBACJT,OAAO,SACPU,KAAK,+CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,kDAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,uCACA,cAACqH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAaq8C,GAAgB7+C,MAC7ByC,SAAUkzD,KAGZ,sBAAKn8D,MAAO,CAAE+H,UAAW,QAAS,yBAEhC,cAACS,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGd6X,UAAQ,EACRqB,UAAQ,EACRlS,WAAS,EACTpH,MAAM,UACN8H,MAAOk8C,GAAgBhf,iBAG3B,cAACrtB,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,sBAAKnB,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,UAC3C,2CACA,sBACE/H,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,iDAGJ,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVuG,UAAW,MACXtG,SAAU,QAGdgH,WAAS,EACTm0B,KAAK,IACLjB,WAAS,EACT5yB,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExD9H,MAAM,UACN2H,YAAY,eACZ4Y,OAAQ,SAAC3iB,GAhqHoB,IAACkK,IAiqHKlK,EAAE+Y,OAAO7O,MAhqHnB,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,IAG/BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,aAERulB,GAAYvN,GAypHF,IAEF,sBACEzd,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,qDAGJ,eAACgsD,GAAA,EAAS,CACRjhE,MAAO,CAAE2L,YAAa,GAAIxK,gBAAiBT,IAC3C67B,KAAG,YAEH,cAACE,GAAA,EAAgB,CACfC,QACE,cAAC1U,GAAA,EAAQ,CACPC,aAEIlkB,IADF0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAEnDqE,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,WAEjClD,SAAU,WACRuzD,GAAyB,UAC3B,EACAn7D,MAAM,UACN8H,MAAM,UAChBwR,UAAQ,IAGFnU,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,uBAExC,cAACo7B,GAAA,EAAgB,CACfC,QACE,cAAC1U,GAAA,EAAQ,CACPC,aAEIlkB,IADF0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAEnDqE,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,SAEjClD,SAAU,WACRuzD,GAAyB,QAC3B,EACAn7D,MAAM,UACN8H,MAAM,UAGV3C,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,qBAExC,cAACo7B,GAAA,EAAgB,CACfC,QACE,cAAC1U,GAAA,EAAQ,CACPC,QAASxK,GAASmD,SAChB0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,OAC/BlD,SAAU,WACRuzD,GAAyB,MAC3B,EACAn7D,MAAM,UACN8H,MAAM,QAGV3C,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,2BAIxC0C,IADD0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAEpDqE,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,SAC7B,cAAC3D,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACdiY,UAAQ,EACAtQ,YAAa,sCACbD,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExDyY,OAAQ,SAACvb,GACPoX,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD9C,EAAM2R,OAAO7O,MACf6hB,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,IAEA,UAEFloB,IADD0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAEpDqE,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,OAC7B,cAAC3D,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAa,6BACbD,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExDyY,OAAQ,SAACvb,GACPoX,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD9C,EAAM2R,OAAO7O,MACf6hB,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,IAEA,UAEFloB,IADP0Z,GAASmD,SAAS0kC,IAAsBlsC,WAAW,IAE9CqE,GAASmD,SACP0kC,IACAlsC,WAAW,GAAGjQ,MAAMgD,SAAS,WAC7B,cAAC3D,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAa,yBACbD,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExDyY,OAAQ,SAACvb,GACPoX,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD9C,EAAM2R,OAAO7O,MACf6hB,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,IAEA,YAML,IACT,EAEMi1C,GAAkB,WACtB,OACExhE,OAAO05B,oBAAoBisB,IAAiBr6C,OAAS,QACTjH,IAA5C0Z,GAASmD,SAAS0kC,UAGuCvhD,IAAvD0Z,GAASmD,SAAS0kC,IAAsBlsC,YACe,OAAvDqE,GAASmD,SAAS0kC,IAAsBlsC,YACsB,IAA9DqE,GAASmD,SAAS0kC,IAAsBlsC,WAAWpO,SAEnDyS,GAASmD,SAAS0kC,IAAsBlsC,WAAa,GACrDqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,OACN0D,MAAO1F,GAAU,eAAiB,MAEpCga,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtD3T,KAAM,qBACN0D,MAAO,oCAET6hB,GAAYvN,KAIZ,sBAAKzd,MAAOi3C,GAAgB,UAC1B,qBACEj3C,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,OAAQ2I,aAAc,QAAS,SAEjE,sBAAKtR,MAAO,CAAEiV,KAAM,KAAM,UACxB,qBAAIjV,MAAO,CAAEsR,aAAc,OAAQ,UAChC+zC,GAAgB9lC,SAAQ,KAAI8lC,GAAgBzzC,UAE/C,mBACE6G,IAAI,sBACJT,OAAO,SACPU,KAAK,6CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,sCAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,uCACA,cAACqH,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAaq8C,GAAgB7+C,MAC7ByC,SAAUkzD,KAEZ,sBAAKn8D,MAAO,CAAE+H,UAAW,QAAS,UAChC,cAACF,EAAA,EAAU,0BACX,cAACkQ,GAAA,EAAM,CACZwM,UAAW,CACVmE,mBAAmB,GAEbvf,MAAOk8C,GAAgBhf,YACvB1rB,SAAqC,YAA3B0qC,GAAgBzzC,OAC1B4G,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBkH,WAAS,EACTQ,SAAU,SAAChK,GACTomD,GAAgBhf,YAAcpnC,EAAE+Y,OAAO7O,MACvCmtC,GAAmB+O,IACI,UAAnBpmD,EAAE+Y,OAAO7O,OACX7B,QAAQC,IAAI,oBACZkW,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD,iBAEF7B,QAAQC,IAAI,oBAEZkW,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MACpD,MAGJ6hB,GAAYvN,IACZkN,GAAUqB,KAAKC,SACjB,EACAjsB,MAAO,CACLmB,gBAAiBT,GACjBW,MAAO,QACPsH,OAAQ,IACR,SAEDk/C,GAAoBppD,KAAI,SAACoB,GACxB,OAAIA,EAAKy/C,SACA,KAIP,cAAC/nC,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJIA,EAOX,SAGJ,cAACmZ,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,qBAAKnB,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,QAAS,SAC3C,gCACE,2CACA,sBACE/H,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,qDAGJ,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,GACRpH,WAAY,MACZC,SAAU,MACVC,SAAU,QAGdgH,WAAS,EACTkS,SACqD,YAAnD8C,GAASmD,SAAS0kC,IAAsB1zC,OAE1C7I,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExD9H,MAAM,UACN2H,YAAY,eACZ4Y,OAAQ,SAAC3iB,GACPs9D,GAAsBt9D,EAAE+Y,OAAO7O,MACjC,IAUF,sBACEnJ,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,qBACExH,MAAO,CACLuF,MAAO,OACPoD,OAAQ,OACR/H,aAAc,IACdO,gBAAiB,UACjBuK,YAAa,UAGjB,qBAAK1L,MAAO,CAAEiV,KAAM,MAAO,SACzB,0DAGJ,cAACzM,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVuG,UAAW,MACXtG,SAAU,QAGdkZ,SACqD,YAAnD8C,GAASmD,SAAS0kC,IAAsB1zC,OAE1CnJ,WAAS,EACTm0B,KAAK,IACLjB,WAAS,EACTt6B,MAAM,UACN0H,aACE0U,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAGjQ,MAExDH,YAAY,mCACZ4Y,OAAQ,SAAC3iB,GA9jIO,IAACkK,IA+jIOlK,EAAE+Y,OAAO7O,MA9jIV,OAA/Bk8C,GAAgBjsC,aAClBisC,GAAgBjsC,WAAa,GAC7BqE,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,SAIVgY,GAASmD,SAAS0kC,IAAsBlsC,WAAW,GAAK,CACtDjQ,MAAOA,EACP1D,KAAM,sBAERulB,GAAYvN,GAmjIA,IAEF,cAACzE,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,sBAGrB,sBACEnB,MAAO,CACL+H,UAAW,OACXuJ,aAAc,MACd9J,QAAS,QACT,UAEF,cAAC2O,EAAA,EAAM,CACLnW,MAAO,CAAEiV,KAAM,KACfnN,QAAQ,YACR6S,SAAqC,YAA3B0qC,GAAgBzzC,OAC1BzL,QAAS,WACP4X,GAAesnC,GAAiBC,GAClC,EACAjkD,MAAM,UAAS,mBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEiV,KAAM,KACfnN,QAAQ,YACR6S,SAAqC,YAA3B0qC,GAAgBzzC,OAC1BzL,QAAS,WACPyuD,GAAavP,GAAiBC,GAChC,EACAjkD,MAAM,UAAS,8BAWtB,IACT,EAEM8/D,GAAsBl+D,WAAW,GAAK,IACtCm+D,GAAiB,CACrB/7D,SAAU,QACVkT,OAAOtV,WAAW,IAClB62B,OAAQ72B,gBAAWc,EAAY,EACjCuU,IAAKrV,WAAW2kD,GAAa,QAAK7jD,EAChColB,KAAMlmB,gBAAWc,EAAYq+C,GAC7Bx6C,SAAUu5D,GACV3/D,SAAU2/D,GACV5/D,WAAY,GACZ+P,aAAc,GACdvH,OAAQ,IAGJs3D,GAAc,CAClBh8D,SAAU,QACVkT,MAAO,EACP4Q,KAAMlmB,WAAW,GAAKm/C,GAAc,GACpC9pC,IAAKrV,WAAW,GAAK2kD,GAAa,IAG9B0Z,GAAkB,SAAC1+D,GACzB,OAAwB,IAApB6a,GAASmnB,OACL,KAIJ,qBAAK5kC,MAAOqhE,GAAY,SACtB,qBAAKrhE,MAAO,CAAEyJ,OAAQ,qBAAsB,SAC1C,eAACgR,GAAA,EAAW,CACV,aAAW,aACXC,UAAU,SACV1a,MAAO,CAAEqB,MAAO,SAAU,UAE1B,cAAC,IAAI,CACHiV,GAAG,aACHtW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,qBACErB,MAAO,CACLqB,MAAO,wBACPoI,OAAQ,mBACR,UAEF,cAAC83D,GAAA,EAAW,CAACvhE,MAAO,CAAE0L,YAAa,MAAQ,iBAI/C,oBAAI1L,MAAO,CAAEyJ,OAAQ,GAAI,SAAEgU,GAAShY,aAK9C,EAEM+7D,GAAe,WACnB,MAAkCt9D,IAAMC,SAAS,MAAK,mBAA/Cs9D,EAAS,KAChB,GAD8B,KACgBv9D,IAAMC,UAAS,IAAM,mBAA5Du9D,EAAe,KAAEC,EAAkB,KAE1C,OACE,sBAAK3hE,MAAO,CAAEwH,QAAS,gBAAiB,UACtC,cAACwgC,GAAA,EAAI,CACH3oC,GAAG,YACHqoC,SAAU+5B,EACVnlD,KAAMolD,EACNnlD,QAAS,WACPolD,GAAmB,EACrB,EAAE,SAEF,sBACE3hE,MAAO,CAAEyJ,OAAQ,GAAIpI,MAAO,QAASG,SAAU,IAAKoG,SAAU,KAAM,UAEpE,mFACA,cAACoR,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,QACjB4G,UAAW,GACXuJ,aAAc,MAIlB,cAACmrB,GAAA,EAAgB,CACfz8B,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAClCmF,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,gCACtCq7B,QACE,cAACklC,GAAA,EAAM,CACL35C,QAASxK,GAASlE,cAAcsoD,mBAChC54D,SAAU,WACRwU,GAASlE,cAAcsoD,oBACpBpkD,GAASlE,cAAcsoD,mBAC1B72C,GAAYvN,IACZkN,GAGM,OAGR,MAIN,cAAC8R,GAAA,EAAgB,CACfz8B,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAClCmF,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,2BACtCq7B,QACE,cAACklC,GAAA,EAAM,CACL35C,QAASxK,GAASlE,cAAcuoD,cAChC74D,SAAU,WACRwU,GAASlE,cAAcuoD,eACpBrkD,GAASlE,cAAcuoD,cAC1B92C,GAAYvN,IACZkN,GAEM,OAGR,MAIN,cAAC8R,GAAA,EAAgB,CACfz8B,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAClCmF,MAAO,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,4BACtCq7B,QACE,cAACklC,GAAA,EAAM,CACL35C,QAASxK,GAASlE,cAAcwoD,eAChC94D,SAAU,WACRwU,GAASlE,cAAcwoD,gBACpBtkD,GAASlE,cAAcwoD,eAC1B/2C,GAAYvN,IACZkN,GAEM,OAGR,WA4Bb1nB,WACA,cAAC0S,GAAA,EAAO,CACPtU,MAAM,YACN+C,MAAM,YACNoV,UAAU,YAAW,SAErB,+BACC,cAACrD,EAAA,EAAM,CACNwE,SAAU8C,GAASmnB,OACnBvjC,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,SAACE,GACTiB,QAAQC,IAAI,cACX86C,GAAeH,GAAe,EAAI,IAClCC,IAAiBD,GACnB,EAAE,SAEM,cAAC,KAAQ,UAInB,OAGJ,EAEKvE,GAAoB,SAAC1L,EAAQ2L,GAClC,QAAW75C,IAAPL,GAAkB,CACrB,IAAIuwB,EAAOvwB,GAAGgS,eAAekoC,GACzB3pB,EAAKjpB,OAAS,IACbinC,EACHhe,EAAKwpB,SAAS,2BAEdxpB,EAAKypB,YAAY,2BAGpB,CACD,EAiEOskB,GAAqB,WACzB,QAAoBj+D,IAAhB0Z,GAASpe,IAAoC,OAAhBoe,GAASpe,KAAiBoe,GAASmnB,QAA0B,IAAhBx2B,GAAKpD,OACjF,OAAO,KAGT,IAAMi3D,EAAUh/D,WAAW,GAAK,IAC1Bi/D,EAAkB1b,GACtB,cAAC7wC,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,iBAAiBoV,UAAU,MAAK,SAC7D,+BACE,cAACrD,EAAA,EAAM,CACLnW,MAAO,CAAE2I,OAAQs5D,EAAS18D,MAAO08D,GACjC5gE,MAAM,YACNyG,QAAQ,YACR3B,QAAS,WACPkjD,IACF,EAAE,SAEF,cAAC8Y,GAAA,EAAS,CAACniE,MAAO,CAAEyB,SAAUwB,WAAW,GAAK,YAKpD,cAAC0S,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,iBAAiBoV,UAAU,MAAK,SAC7D,+BACE,cAACrD,EAAA,EAAM,CACLwE,SACE8C,GAASmnB,QAAUke,GAErB9iD,MAAO,CAAE2I,OAAQs5D,EAAS18D,MAAO08D,GACjC5gE,MAAM,UACNyG,QAAQ,YACR3B,QAAS,WACPulD,GAAgB9I,GAAenlC,GAASvM,MAAOwmC,GACjD,EAAE,SAEF,cAAC5Y,GAAA,EAAa,CAAC9+B,MAAO,CAAEyB,SAAUwB,WAAW,GAAK,YAM1D,OACE,sBAAKjD,MAAOohE,GAAe,UACxBc,EACD,sBACEliE,MAAO,CACLuB,WAAY0B,WAAW,EAAI,GACjC8E,UAAW9E,WAAW,EAAI,EACpBkmB,KAAMlmB,YAAY,GAAKg/D,EAC7B3pD,IAAKrV,WAAWg/D,OAAUl+D,EACpB+1B,OAAQ,EACRz0B,SAAU,WAChBmC,QAAS,OACT2N,cAAelS,WAAW,SAAW,OAC/B,UAEDA,YAAYwa,GAASmnB,OAAS,KAC7B,cAACjvB,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,qGACNoV,UAAU,MAAK,SAEf,cAAChR,EAAA,EAAS,CACRnJ,GAAG,iCACHW,MAAOC,EAAME,QAAQe,eACrByZ,SAAU8C,GAASmnB,OACnBl8B,WAAY,CACV1I,MAAOC,EAAME,QAAQiB,qBAEvBC,MAAM,YACN2H,YAAa,qBACbD,aAAc65C,GACdhhC,OAAQ,SAAC3iB,GACP4jD,GAAiB5jD,EAAE+Y,OAAO7O,MAC5B,MAKL,cAACwM,GAAA,EAAO,CAACtU,MAAM,UAAU+C,OAA2B,IAApBqZ,GAASmnB,OAAkB,yCAA2C,gBAAiBprB,UAAU,MAAK,SACpI,+BACE,cAACrD,EAAA,EAAM,CACLwE,SAA0B,IAAhB4pC,GACVljD,MAAM,UACNrB,MAAO,CACL2I,OAAQ8U,GAASmnB,OAAS,IAAM,GAChCr/B,MAAOkY,GAASmnB,OAAS,IAAM,GAC/BrjC,WAAY,IAEduG,QACE4vC,KAAcj6B,GAASmnB,OAAS,WAAa,YAE/Cz+B,QAAS,WAGhB,GAFA0X,MAEwB,IAApBJ,GAASmnB,OAAiB,CAC7Bt9B,QAAQC,IAAI,WAEZ,IAEMH,EAFS,IAAI0M,IAAInQ,OAAOC,SAAS8U,MACX0pD,aACCpZ,IAAI,WAEjC,QAAgBjlD,IAAZqD,GAAqC,OAAZA,EAAkB,CAC9CX,IAAG,OAAQ,CACTC,MAAO,aACPC,OAAQ,qCAGV,IAAMG,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,aACXC,UAAW,wBACXlC,MAAO,YACPmC,UAAW,CAACsW,GAASpe,IACrByH,UAAWA,EACXM,QAASA,EACTC,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,KAGtH,MACCiI,QAAQC,IAAI,qBAEd,CACD,EAAE,SAEuB,IAAhBg9C,GACC,cAAC1pC,EAAA,EAAgB,CAAC7a,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,MAC5B,IAAhBg/C,GACF,cAAC,KAAQ,CAACvkD,MAAO,CAAEqB,MAAO2/C,KAE1B,cAACqhB,GAAA,EAAQ,UAKjB5kD,GAASmnB,OACR,cAACjvB,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAM,oBACNoV,UAAU,YAAW,SAErB,+BACE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,WACP,IAAMtG,EAAO4d,GACT+oB,EAAwB3mC,EAAK4F,KAAO,QAEpCghC,EAAUxzB,KAAKS,UAAU7T,GACzB6mC,EACF,uCACAC,mBAAmBF,GACjBG,EAAcx1B,SAAS6C,cAAc,KACzC2yB,EAAY1yB,aAAa,OAAQwyB,GACjCE,EAAY1yB,aAAa,WAAYsyB,GACrCI,EAAYrpB,OACd,EAAE,SAEF,cAAC6hB,GAAA,EAAU,UAIf,KACJ,cAACzpB,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAM,gBACNoV,UAAU,MAAK,SAEf,+BACE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,kBAAMzC,GAAG0zB,IAAI,KAAM,GAAG,EAAC,SAEhC,cAACkrC,GAAA,EAAe,UAItB,cAAC3sD,GAAA,EAAO,CAACtU,MAAM,YAAY+C,MAAM,OAAOoV,UAAU,YAAW,SAC3D,+BACE,cAACrD,EAAA,EAAM,CACLwE,SAA6B,IAAnBqoC,GAAQh4C,OAClB3J,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,SAACE,IA5PE,WAExB,IAAI+O,EAAO4tC,GAAQE,GAAe,GAKlC,GAJqB,IAAjBA,KACF9tC,EAAO4tC,GAAQE,UAGJn/C,IAATqR,EAAJ,CAMA,GAAkB,SAAdA,EAAK5U,MAAmC,YAAhB4U,EAAK7O,OAAsB,CAExDe,QAAQC,IAAI,SAAU6N,EAAKvV,MAEzB,IAAMm6B,EAAOt2B,GAAGgS,eAAeN,EAAKvV,KAAKR,IAAIwS,OAC/C,GAAa,OAATmoB,QAA0Bj2B,IAATi2B,EAEpB,YADA1yB,QAAQC,IAAI,kCAIV7D,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAMuV,EAAKvV,KACXwF,SAAU+P,EAAKvV,KAAKwF,UAExB,MAAO,GAAoB,UAAhB+P,EAAK7O,OAAoB,CAElC,IAAMg8D,EAAc7+D,GAAGgS,eAAeN,EAAKvV,KAAKR,SAC5B0E,IAAhBw+D,GAA6C,OAAhBA,GAC/BA,EAAY1rC,QAGhB,MAAO,GAAkB,SAAdzhB,EAAK5U,MAAmC,YAAhB4U,EAAK7O,OAAsB,CAC7D,IAAMumD,EAAappD,GAAGgS,eAAeN,EAAKvV,KAAK8rB,QACzCg+B,EAAajmD,GAAGgS,eAAeN,EAAKvV,KAAKmY,QACjD,QAAmBjU,IAAf+oD,GAA2C,OAAfA,QAAsC/oD,IAAf4lD,GAA2C,OAAfA,EAElF,YADAriD,QAAQC,IAAI,yBAIX,IAAMyyB,EAAOt2B,GAAGgS,eAAeN,EAAKvV,KAAKR,IAAIwS,OAC/C,GAAa,OAATmoB,QAA0Bj2B,IAATi2B,EAEpB,YADA1yB,QAAQC,IAAI,kCAIb7D,GAAGuzB,IAAI,CACNC,MAAO,QACPr3B,KAAMuV,EAAKvV,MAGX,MACDyH,QAAQC,IAAI,cAAe6N,GAGtB8tC,GAAe,GACjBC,GAAgBD,GAAe,EAjDjC,MAFE57C,QAAQC,IAAI,8CAqDhB,CAgMgBi7D,EACF,EAAE,SAEF,cAACC,GAAA,EAAQ,UAIf,cAAC9sD,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAM,6BACNoV,UAAU,YAAW,SAErB,+BACE,cAACrD,EAAA,EAAM,CACL9U,MAAM,UACNsZ,SAAU8C,GAASmnB,OACnB5kC,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,WACd,IAAMuuD,EAAehxD,GAAGmvD,EAAE,kBACE9uD,IAAxB2wD,EAAa70D,QAIV2wD,GAAWkE,EAAa70D,KAAK,MAC/B,EAAE,SAEF,cAACgX,GAAA,EAAU,UAIjB,cAAClB,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAK,2BAAsB+Z,GAAmBnT,OAAM,KACpDwO,UAAU,YAAW,SAErB,+BACL,cAACrD,EAAA,EAAM,CACNwE,SAAU8C,GAASmnB,OACnBvjC,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,WACRwgD,IAAsB,GACtBvoC,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,GAC9C,EAAE,SASD,cAACi2D,GAAA,EAAiB,UAKjB,cAAC/sD,GAAA,EAAO,CAACtU,MAAM,YAAY+C,MAAM,cAAcoV,UAAU,YAAW,SAClE,+BACE,cAACrD,EAAA,EAAM,CACLwE,SAAU8C,GAASmnB,OACnBvjC,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,WACPw8D,IACF,EAAE,SAEF,cAACC,GAAA,EAAc,UAIO,OAA3BnlD,GAASlE,oBACiBxV,IAA3B0Z,GAASlE,oBACgCxV,IAAzC0Z,GAASlE,cAAcuoD,cACrB,cAACN,GAAY,IACX,KACT,cAAC7rD,GAAA,EAAO,CACDtU,MAAM,YACN+C,MAAM,wBACNoV,UAAU,MAAK,SAEf,+BACE,cAACrD,EAAA,EAAM,CACNwE,SAAU8C,GAASmnB,OAClBvjC,MAAM,UACNrB,MAAO,CAAE2I,OAAQ,GAAIpH,WAAY,IACjCuG,QAAQ,WACR3B,QAAS,WAChBmB,QAAQC,IAAI,mBAEZ6/C,IAAyB,EAC1B,EAAE,SAEF,cAAC5wC,GAAA,EAAQ,eAOf,EAEMmsD,GAAiB,WACrB,IAAM18B,EAAQ3f,cACRjhB,EAAW,CACfwzB,EAAG,IACHC,EAAG,KAGLp1B,GAAGuzB,IAAI,CACLC,MAAO,QACPr3B,KAAM,CACJR,GAAI4mC,EACJz/B,MAAO,2BACPhG,KAAM,UACN2R,UAAU,EACVs4C,WAAW,EACXllD,MAAO,IACPoD,OAAQ,IACRtD,SAAUA,EACV06D,gBAAiB,UACjB1+D,MAAO,WAETgE,SAAUA,GAEd,EAEMw9D,GAAe,SAACjgE,GACpB,IACE6a,EA4BE7a,EA5BF6a,SACAuN,EA2BEpoB,EA3BFooB,YACAlc,EA0BElM,EA1BFkM,kBACA6b,EAyBE/nB,EAzBF+nB,UACA3c,EAwBEpL,EAxBFoL,YACAmQ,EAuBEvb,EAvBFub,mBACAk4B,EAsBEzzC,EAtBFyzC,kBACAxnC,EAqBEjM,EArBFiM,eACAZ,EAoBErL,EApBFqL,eACAqoC,EAmBE1zC,EAnBF0zC,mBACAC,EAkBE3zC,EAlBF2zC,gBACAC,EAiBE5zC,EAjBF4zC,eACA9yC,EAgBEd,EAhBFc,GACAia,EAeE/a,EAfF+a,2BACA+4B,EAcE9zC,EAdF8zC,sBACAD,EAaE7zC,EAbF6zC,iBACAE,EAYE/zC,EAZF+zC,mBACAC,EAWEh0C,EAXFg0C,kBACAC,EAUEj0C,EAVFi0C,gBACAC,EASEl0C,EATFk0C,0BACAC,EAQEn0C,EARFm0C,aACAC,EAOEp0C,EAPFo0C,qBACAC,EAMEr0C,EANFq0C,gBACA/zC,EAKEN,EALFM,UACAg0C,EAIEt0C,EAJFs0C,6BACAC,EAGEv0C,EAHFu0C,uBACAE,EAEEz0C,EAFFy0C,aACAC,EACE10C,EADF00C,gBAGF,IAAK0M,GACH,OAAO,KAGX,IAAI8e,EAAgB,KAClB,GAAIpjE,OAAO05B,oBAAoBvqB,GAAgB7D,OAAS,EAAG,CAAC,IAAD,EACzD,GAA0D,IAAtDtL,OAAO05B,oBAAoBvqB,GAAgB7D,OAC7C,OAAO,KAGZ83D,EAAgB,cAAC,IAAY,GAC5BzjE,GAAG,uBACF8L,MAAOA,GACRwsC,aAAcA,GACdl0C,QAASA,GACT+zC,WAAYA,GACZD,kBAAmBA,GACnBzyB,qBAAsBA,GACtBpH,kBAAmBA,GACnBmH,mBAAoBA,GACpBwyB,aAAcA,EACdC,gBAAiBA,EACjBzoC,eAAgBA,EAChB4O,SAAUA,EACVuN,YAAaA,EACblc,kBAAmBA,EACnB6b,UAAWA,EACX3c,YAAaA,EACbmQ,mBAAoBA,EACpBk4B,kBAAmBA,EACnBpoC,eAAgBA,EAChBqoC,mBAAoBA,EACpBC,gBAAiBA,EACjBC,eAAgBA,EAChB9yC,GAAIA,EACJia,2BAA4BA,EAC5B+4B,sBAAuBA,EACvBe,aAAcA,GACdhB,iBAAkBA,EAClBE,mBAAoBA,EACpBC,kBAAmBA,EACnBC,gBAAiBA,EACjBC,0BAA2BA,EAC3BC,aAAcA,EACdC,qBAAsBA,EACtB2I,UAAWA,GACX1I,gBAAiBA,EACjB/zC,UAAWA,EACXg0C,6BAA8BA,EAC9BC,uBAAwBA,GAAuB,6BACjCM,IAAY,0BACfC,IAAS,GAGpB,MAAO,GAAIh4C,OAAO05B,oBAAoB+rB,IAAiBn6C,OAAS,EACjE83D,EAAgB,cAAChD,GAAc,SACvB,GAAIpgE,OAAO05B,oBAAoBisB,IAAiBr6C,OAAS,EAC9D,GAAqC,aAAjCq6C,GAAgBvkC,aACtBgiD,EAAgB,cAAC5B,GAAe,SACvB,GAAqC,YAAjC7b,GAAgBvkC,aAC7BgiD,EAAgB,cAAC7C,GAAc,SACtB,GAAqC,YAAjC5a,GAAgBvkC,aAC7BgiD,EAAgB,cAAC7D,GAAc,SACtB,GAAqC,UAAjC5Z,GAAgBvkC,aAC7BgiD,EAAgB,cAACnF,GAAY,QACpB,IAAqC,cAAjCtY,GAAgBvkC,aAEpB,YAAqC/c,IAAjCshD,GAAgBvkC,cAIzBxZ,QAAQC,IACN,yCACE89C,GAAgBvkC,cAJb,KAHXgiD,EAAgB,cAAC9B,GAAgB,GAU/B,MACSthE,OAAO05B,oBAAoBosB,IAAcx6C,OAAS,IAC9D83D,EAAgB,cAAC3F,GAAW,KAG7B,IAAM4F,EAA2B,qBAAd7/C,WAA6B,mBAAmB8/C,KAAK9/C,UAAU+/C,WAGlF,YAAsBl/D,IAAlB++D,GAAiD,OAAlBA,EAC3B,KAIP7/D,WACC,cAACigE,GAAA,EAAe,CACfz2B,OAAQ,SACR02B,2BAA4BJ,EAC5BK,iBAAkBL,EAClBzmD,MAAM,EACNC,QAAS,WACRjV,QAAQC,IAAI,UAEZ7D,EAAG0lB,WAAWC,UACf,EACAg6C,oBAAoB,EACpBC,WAAY,CACXr7B,aAAa,GAEdzrB,WAAY,CACXxc,MAAO,CACN6E,UAAW,MACXS,SAAU,SAEV,SAEDw9D,IAGF,cAACS,GAAA,EAAI,CAACtoD,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,QAAU,SAClD,qBAAK7b,GAAG,oBAAoBW,MAAO42C,EAAkB,SACnDksB,KAML,EAcMU,IAA+B,IAApB/lD,GAASmnB,OACzB,sBAAK5kC,MAAO,CAACsB,UAAW,OAAQuD,UAAW,OAAQ8D,OAAQ,OAAQf,SAAUw6C,GAAY,GAAI5gD,SAAU4gD,GAAY,GAAIr4C,OAAQ,EAAG9I,QAAS,GAAIg8B,YAAa,8BAA+Bn4B,UAAW,QAAS,UAC9M,cAAC+C,EAAA,EAAU,CAACC,QAAQ,KAAKzG,MAAM,cAAcrB,MAAO,CAClDyJ,OAAQ,mBACP,SAEGgU,GAAShY,OAEf,eAACoC,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,yCACpB,sBAAMrB,MAAO,CAACqB,MAAO,UAAW+D,OAAQ,WAAce,QAAS,WACpF0X,IACP,EAAE,2BAAqB,8BAE+B,IAAtDne,OAAO05B,oBAAoBkpB,IAAgBt3C,aAAiDjH,IAAjCu+C,GAAemhB,eAAiE,OAAjCnhB,GAAemhB,cACzH,sBAAKzjE,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,cAAC4Q,GAAA,EAAU,CAACtX,MAAM,UAAUrB,MAAO,CAACiB,QAAS,EAAGyK,YAAa,IAAO,gBAAc,cAAc,gBAAc,OAAOvF,QAAS,SAACE,GAC/H,EAAE,SACD,cAAC,IAAI,CAACiQ,GAAE,oBAAegsC,GAAeohB,iBAAmB1jE,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAW,SAC1G,cAACmgB,EAAA,EAAM,CAACxhB,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,IAAMkC,IAAK,mBAAoBC,IAAK46C,GAAemhB,oBAGxF,eAAC57D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAACqB,MAAO,IAAI,uBAC1D,cAAC,IAAI,CAACiV,GAAE,oBAAegsC,GAAeohB,iBAAmB1jE,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAW,SAAEihD,GAAeohB,wBAGvI,KACH,qBAAK1jE,MAAO,CAAC+H,UAAW,WACLhE,IAAlB0Z,GAASpI,MAAwC,OAAlBoI,GAASpI,MAAiBoI,GAASpI,KAAKrK,OAAS,EAChF,sBAAKhL,MAAO,CAACwH,QAAS,OAAQlC,SAAU,SAASyC,UAAW,GAAK,UAChE,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC0L,YAAa,IAAM,kBAGvD,qBAAK1L,MAAO,CAACwH,QAAS,QAAQ,SAC5BiW,GAASpI,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAAW,IAAD,EAClC,OAAIA,GAAS,EACL,KAIP,cAACuQ,GAAA,EAAI,CAEJvV,OAAK,GAAGmB,gBAAiB,UAAWwH,OAAQ,GAAI+C,YAAa,EAAGC,YAAa,EAAGC,aAAc,GAAC,uBAAU,IAAE,uBAAU,WAAS,4BAAe,WAAS,sBAAS,SAAO,GACtKpF,MAAO8O,EACPxN,QAAQ,WACRzG,MAAM,WAJD2D,EAOR,SAGD,UAEqBjB,IAAtB0Z,GAAS2d,UAAgD,OAAtB3d,GAAS2d,UAAqB3d,GAAS2d,SAASpwB,OAAS,EAC5F,qBAAKhL,MAAO,CACX+H,UAAW,GACXvG,SAAU,OACV8D,SAAU,UACT,SACD,cAACuC,EAAA,EAAU,CAACC,QAAQ,QAAO,SACpB,mBACE4Q,KAAM+E,GAAS2d,SACfp7B,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxCoX,IAAI,sBACJT,OAAO,SAAQ,qCAMvB,KAGF6vB,GAAS78B,OAAS,EAClB,sBAAKhL,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,kBAG3B,cAACwhC,GAAA,EAAW,CAACC,IAAK,EAAGvpC,MAAO,CAACuB,WAAY,IAAM,SAC7CsmC,GAASppC,KAAI,SAACoB,EAAMmF,GACpB,OACC,cAAC,IAAI,CAAasR,GAAE,gBAAWzW,EAAK0b,QAAS,SAC5C,cAACiG,EAAA,EAAM,CAAC/Z,IAAK5H,EAAK0f,SAAU7X,IAAK7H,EAAK6U,YAAa1U,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,OADpE3D,EAIb,SAGD,KAED09C,GAAa13C,OAAS,EACtB,sBAAKhL,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,sBAG3B,cAACwhC,GAAA,EAAW,CAACC,IAAK,EAAGvpC,MAAO,CAACuB,WAAY,IAAM,SAC7CmhD,GAAajkD,KAAI,SAACoB,EAAMmF,GACxB,OACC,cAACwc,EAAA,EAAM,CAAa/Z,IAAK5H,EAAK0f,SAAU7X,IAAK7H,EAAK6U,YAAa1U,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,KAA7E3D,EAEf,SAGD,UAwBkBjB,IAAnB0Z,GAASof,OAA0C,OAAnBpf,GAASof,OAAkBpf,GAASof,MAAM7xB,OAAS,EACnF,sBAAKhL,MAAO,CACX+H,UAAW,GACXvG,SAAU,OACV8D,SAAU,UACT,UACD,cAACuC,EAAA,EAAU,CAACC,QAAQ,QAAO,mBAI1B2V,GAASof,MAAM1wB,SAAS,mBAAqBsR,GAASof,MAAM5wB,MAAM,KAAKjB,OAAS,EAChF,8BACC,wBACCtD,IAAG,qCAAgC+V,GAASof,MAAM5wB,MAAM,KAAK,IAC7D03D,YAAa,QACbC,sBAAuB,OACvBC,oBAAoB,EACpBC,iBAAiB,EACjB9jE,MAAO,CACN,IAAO,EACP,KAAQ,EACR,SAAY,IACZ,SAAY,SAKfyd,GAASof,MAAM1wB,SAAS,gBAAkBsR,GAASof,MAAM5wB,MAAM,KAAKjB,OAAS,GAAKyS,GAASof,MAAM1wB,SAAS,MAEzG,8BACC,wBACCzE,IAAG,wCAAqC,IAAIoM,IAAI2J,GAASof,OAAQulC,aAAcpZ,IAAI,MACnF2a,YAAa,QACbC,sBAAuB,OACvBC,oBAAoB,EACpBC,iBAAiB,EACjB9jE,MAAO,CACN,IAAO,EACP,KAAQ,EACR,SAAY,IACZ,SAAY,SAKhB,cAAC6H,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzB2V,GAASof,WAIZ,UAEwB94B,IAAzB0Z,GAAS3I,aAAsD,OAAzB2I,GAAS3I,aAAwB2I,GAAS3I,YAAY9J,OAAS,EACrG,sBAAKhL,MAAO,CAAC+H,UAAW,GAAK,UAC5B,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,yBAG3B,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAACwB,SAAU,OAAQqD,UAAW,IAAKE,UAAW,UAAU,SAC/G0Y,GAAS3I,iBAGX,UAEmB/Q,IAApBP,EAAS63D,QAAyB73D,EAAS63D,SAAW/Y,GAAemhB,gBAhMtD,CAAC,SAAU,YAAa,mBAgMyDt3D,SAAS3I,EAASugE,iBAgDjH,KA/CD,sBAAK/jE,MAAO,CAAC+H,UAAW,IAAM,UAC7B,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,iIAGjD,cAAC8U,EAAA,EAAM,CACN9U,MAAM,UACNyG,QAAQ,YACRW,WAAS,EACTzI,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WAMRsX,GAASmnB,QAAS,EACjB0iB,IAAe,GAChBt8B,GAAYvN,IAEZqH,KACAkoC,KACA5uC,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,IAC7Cg4B,IAAuB,GACvBkkB,KACAiE,KAEAjiC,GAAUqB,KAAKC,SAChB,EAAE,2BAIH,cAAC9V,EAAA,EAAM,CACN9U,MAAM,YACNsZ,UAAQ,EACR7S,QAAQ,WACRW,WAAS,EACTzI,MAAO,CAAC+H,UAAW,IACnB5B,QAAS,WAIR,EACC,sCAOLlD,YAAYi/C,GACb,qBACCliD,MAAO,CACNi9B,YAAa,8BACZ,SAED,cAAC46B,GAAc,MAEhB3V,GACD,qBACCliD,MAAO,CACN4H,SAAUw6C,GACV5gD,SAAU4gD,GACVnlB,YAAa,8BACZ,SAED,cAAC46B,GAAc,MAGhB,qBACC73D,MAAO,CACN4H,SAAUw6C,GACV5gD,SAAU4gD,GACVnlB,YAAa,8BACZ,SAEF,qBACCj9B,MAAO,CAAEoF,OAAQ,UAAWuD,OAAQ,GAAIZ,UAAW,GAAIxG,WAAY,IACnE4E,QAAS,WACRg8C,IAAgB,GAChBE,GAAe,IAChB,EAAE,SAEF,cAAC1sC,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,WAAWoV,UAAU,MAAK,SACxD,cAACwqD,GAAA,EAAsB,UAMtBC,GAAsB,CAC3Br8D,SAAU,MACVpG,SAAU,MACVuG,UAAW,MACX1G,MAAO,QACPiQ,aAAc,GACdrQ,QAAS,EACTE,gBAAiBV,GACjB2E,OAAQ,UACRoC,QAAS,OACTlG,UAAW,GACXuD,UAAW,IA0FLq/D,GAA0B,SAACjb,GAE/B,IAAMrnD,EACJ,i8BACIkZ,EAAO,GACb,YACiC/W,IAA/BklD,EAAU/kC,kBACqB,OAA/B+kC,EAAU/kC,kBAC4B,IAAtC+kC,EAAU/kC,iBAAiBlZ,OAGzB,qBACEvD,IAAI,UACJC,IAAK9F,EACL5B,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAKD,YAA/BmuC,EAAU/kC,iBAEV,qBACEzc,IAAK,UACLC,IACEkZ,GAAS1I,MAAK,SAAC2I,GAAO,MAA8B,YAAzBA,EAAQC,YAA0B,IAC1DpM,YAEL1U,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAGM,YAA/BmuC,EAAU/kC,iBAEjB,qBACEzc,IAAK,QACLC,IACEkZ,GAAS1I,MAAK,SAAC2I,GAAO,MAA8B,UAAzBA,EAAQC,YAAwB,IACxDpM,YAEL1U,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAGM,aAA/BmuC,EAAU/kC,iBAEjB,qBACEzc,IAAK,WACLC,IACEkZ,GAAS1I,MAAK,SAAC2I,GAAO,MAA8B,aAAzBA,EAAQC,YAA2B,IAC3DpM,YAEL1U,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAGM,UAA/BmuC,EAAU/kC,iBAEjB,qBACEzc,IAAK,QACLC,IACEkZ,GAAS1I,MAAK,SAAC2I,GAAO,MAA8B,UAAzBA,EAAQC,YAAwB,IACxDpM,YAEL1U,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAMH,OAA/BmuC,EAAUkb,uBACqBpgE,IAA/BklD,EAAUkb,kBACVlb,EAAUkb,iBAAiBn5D,OAAS,EAGlC,qBACEvD,IAAK,kBACLC,IACEkZ,GAAS1I,MAAK,SAAC2I,GAAO,MAA8B,YAAzBA,EAAQC,YAA0B,IAC1DpM,YAEL1U,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,KAMlC,qBACErT,IAAKwhD,EAAU/kC,iBACfxc,IAAK9F,EACL5B,MAAO,CAAEuF,MAAOuV,EAAMnS,OAAQmS,IAGpC,EAEMspD,GAA2B,SAAC1uB,GAChCpuC,QAAQC,IAAI,SAAUmuC,GAEtB,IAAM2uB,EAAc,uBAChBphD,EAAW7R,SAASsE,eAAe2uD,GACvC,GAAiB,OAAbphD,QAAkClf,IAAbkf,EAAwB,CAU/C,QARqBlf,IAAnB2xC,EAAK4uB,gBACSvgE,IAAd2xC,EAAKjwC,WACQ1B,IAAb2xC,EAAKhuC,MAELguC,EAAOA,EAAKhuC,UAII3D,IADAmf,UAAUC,UAG1B,YADAvV,EAAM6E,MAAM,wCAId,IAAI8xD,EAActxD,KAAKS,UAAUgiC,GAC7B6uB,EAAYr4D,WAAW,MAAQq4D,EAAYhzB,SAAS,OACtDgzB,EAAcA,EAAY1+D,UAAU,EAAG0+D,EAAYv5D,OAAS,IAG9DkY,UAAUC,UAAUC,UAAUmhD,GAC9BthD,EAASI,SACTJ,EAASK,kBAAkB,EAAG,OAG9BlS,SAASmS,YAAY,QAErBjc,QAAQC,IAAI,YACfqG,EAAM+E,KAAK,4CACV,MACErL,QAAQC,IAAI,uBAAyB88D,EAAc,KAAMphD,EAE7D,EAEMuhD,GAAiB,SAACC,EAAM/uB,EAAMgvB,GACT,kBAAdhvB,EAAKjwC,OACdiwC,EAAKjwC,KAAOiwC,EAAKjwC,KAAKK,WAAW,IAAK,MAItB,kBAAT2+D,GAAqC,gBAATA,IACtCA,EAAOxxD,KAAKS,UAAU+wD,IAGA,uBAAnBC,GAA8D,uBAAnBA,IAC9CA,EAAiB,QAGhBp9D,QAAQC,IAAI,SAAUm9D,EAAgBhvB,GAGxC,IAAIjqB,EAAUiU,GAAa+kC,GAAMtqD,OAiB/B,IAAK,IAAI1N,UAdA1I,IAAPL,IAA2B,OAAPA,IACvB4D,QAAQC,IAAI,gBAYX25C,EAAe,IAAMwjB,EAAe/3D,cAAc7G,WAAW,IAAK,KAClD4vC,EAAK4uB,UACf5uB,EAAK4uB,UAAU73D,GAAKN,SAAS,qBAIjBpI,IAAZ0nB,GAAqC,OAAZA,IAC3BA,EAAUA,EAAQiqB,EAAK4uB,UAAU73D,IAC5BS,MAAMwoC,EAAK4uB,UAAU73D,IAGxBy0C,GAAgB,IAAMxL,EAAK4uB,UAAU73D,GAFrCy0C,GAAgB,WAONn9C,IAAZ0nB,GAAqC,OAAZA,IAC3BA,EAAUA,EAAQiqB,EAAKjwC,MAClByH,MAAMwoC,EAAKjwC,MAGdy7C,GAAgB,IAAMxL,EAAKjwC,KAF3By7C,GAAgB,MAMpBA,EAAap7C,WAAW,IAAK,KAC7B,IAAMu+D,EAAc,uBAChBphD,EAAW7R,SAASsE,eAAe2uD,GACvC,GAAiB,OAAbphD,QAAkClf,IAAbkf,EAAwB,CAG/C,GAFA3b,QAAQC,IAAI,cAAe2b,gBAETnf,IADAmf,UAAUC,UAG1B,YADAvV,EAAM6E,MAAM,wCAIdyQ,UAAUC,UAAUC,UAAU89B,GAC9Bj+B,EAASI,SACTJ,EAASK,kBAAkB,EAAG,OAG9BlS,SAASmS,YAAY,QACrBjc,QAAQC,IAAI,YACfqG,EAAM+E,KAAK,iCACV,MACErL,QAAQC,IAAI,yBAA0B88D,EAE1C,EAmHGM,GAAoB,GACxB,QAA8B5gE,IAA1B+iD,GAAc3N,QAAuB,CACxC,IAAMyrB,GAAa9d,GAAc3N,QAAQjhC,MAAK,SAACiC,GAAM,MAAuB,YAAlBA,EAAOvI,MAAoB,SAClE7N,IAAf6gE,KACHD,GAAoBC,GAEtB,CAGA,IAAIC,IAAkB,GACfC,GACN,eAACt4B,GAAA,EAAM,CACHC,OAAQ,QACRnwB,KAAMoqC,GACNnqC,QAAS,WACXoqC,IAAsB,EACvB,EACG3mD,MAAO,CAAE0sC,OAAQ,OAAQpnC,SAAU,OAAQyE,OAAQ,OACnD0iB,cAAc,EACjB3kB,QAAQ,YACRi9D,cAAe,CACd/kE,MAAO,CACN,GAGCwc,WAAY,CACVxc,MAAO,CACL0sC,OAAQ,OACRpnC,SAAU,OACVsC,SAAU3E,WAAW,OAAS,IAC9BzB,SAAUyB,WAAW,OAAS,IAC9B9B,gBAAiB,UACjBE,MAAO,QACPI,SAAU,GACVsI,OAAQ,MACbijB,WAAY/sB,EAAME,QAAQU,gBAEvB,UAEJoC,WACA,cAAC0S,GAAA,EAAO,CACPvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACV3Y,MAAO,CAAE+J,OAAQ,IAAM1E,SAAU,WAAYiT,IAAK,GAAKC,MAAO,IAC9DpS,QAAS,SAAClH,GACTA,EAAE0L,iBACFg8C,IAAsB,EACvB,EAAE,SAEF,cAACr9B,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,eAG5B,KACyB,IAAvBulD,GACC,sBAAK5mD,MAAO,CAAEiB,QAASgC,WAAW,mBAAqB,IAAK,UAC1D,cAACwX,GAAA,EAAW,CACV,aAAW,aACXC,UAAU,SACV1a,MAAO,CAAEqB,MAAO,QAASI,SAAU,IAAK,SAExC,qBAAIzB,MAAO,CAAEqB,MAAO,yBAA0B,UAC5C,cAACqhE,GAAA,EAAiB,CAAC1iE,MAAO,CAAE0L,YAAa,MAAQ,sBAIrD,eAACyK,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBkH,QAAQ,WACRW,WAAS,EACTtC,QAAS,WACPiY,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,GAC/C,EACApL,MAAM,UAAS,UAEf,cAAC0Z,GAAA,EAAU,CAAC/a,MAAO,CAAE0L,YAAa,MAAQ,wBAG5C,cAACsN,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,wBACjB4G,UAAW,GACXuJ,aAAc,MAGjB6M,GAAmBnT,OAAS,EAC3B,8BACGmT,GAAmB1f,KAAI,SAACoB,EAAMmF,GACrC6/D,IAAkB,GAEV,IAAMG,EACY,aAAhBnlE,EAAK+R,OACDovC,EACgB,YAAhBnhD,EAAK+R,QAAwC,WAAhB/R,EAAK+R,OAClC,MACAqvC,EACAgkB,OACalhE,IAAjBlE,EAAKs5C,SAA0C,OAAjBt5C,EAAKs5C,QAC/Bt5C,EAAKs5C,QAAQnuC,OACb,EAEAlE,EAAY,IAAIC,KAAuB,IAAlBlH,EAAKqlE,YAC7BC,eAAe,SACfl5D,MAAM,KAAK,GACXA,MAAM,KACNM,KAAK,KAEJ64D,OACwBrhE,IAA1BlE,EAAK4d,SAASlL,SACY,OAA1B1S,EAAK4d,SAASlL,QACV1S,EAAK4d,SAASlL,QAAQvH,OACtB,EACN,IAAK,IAAIyB,KAAO5M,EAAK4d,SAASmD,SAAU,CACtC,IAAMC,EAAUhhB,EAAK4d,SAASmD,SAASnU,IAEf,eAArBoU,EAAQtB,UACkB,cAAzBsB,EAAQC,cACY,qBAArBD,EAAQtB,UACkB,YAAzBsB,EAAQC,gBAEVskD,GAAoB,EAExB,CAEA,OACP,cAACpqD,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAK2pD,GAAc,OAAO,SAC7E,8BACU,cAAClvD,GAAA,EAAO,CAENvR,MAAOvE,EAAKsa,OACZX,UAAU,aACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,eAAChE,EAAA,EAAK,CACJC,UAAW,EAEXgP,QAAM,EACNhV,MAAOikE,GACPh+D,YAAa,WAAO,EACpBC,WAAY,WAAO,EACnBC,QAAS,gBAEYpC,IAAhBlE,EAAKsa,QACY,OAAhBta,EAAKsa,QACkB,IAAvBta,EAAKsa,OAAOnP,QACE,aAAhBnL,EAAK+R,QACW,YAAhB/R,EAAK+R,SAELV,KACAu1C,IAAoB,GACpB1D,IAA2B,IAKzC,IAAI7jC,GAAe,EACnB,GAAIzb,SAA4BM,IAAjBlE,EAAKs5C,SAA0C,OAAjBt5C,EAAKs5C,SAAoBt5C,EAAKs5C,QAAQnuC,OAAS,EAE3F,QAAgCjH,IAA5BlE,EAAKokB,oBAAgE,OAA5BpkB,EAAKokB,oBAA+BpkB,EAAKokB,mBAAmB9X,SAAS,aACjH46C,GAAiB,CAAC,GAClB7nC,GAAe,EACfhO,KACAu1C,IAAoB,GACpB1D,IAA2B,QAE5B,IAAK,IAAIt2C,KAAO5M,EAAKs5C,QACpB,GAAiC,YAA7Bt5C,EAAKs5C,QAAQ1sC,GAAKmF,QAIlB/R,EAAKs5C,QAAQ1sC,GAAK0N,OAAOhO,SAAS,aAAc,CACvC46C,GAAiB,CAAC,GAC9B7nC,GAAe,EACfhO,KACAu1C,IAAoB,GACpB1D,IAA2B,GAC3B,KACD,CAKU,IAAMoG,EAAgB,CACpBN,aAAchpD,EAAKgpD,aACnBK,cAAerpD,EAAKqpD,eAEtB3C,GAAoB4C,GACpBtC,GAAsB,GAE7B3nC,IACQkqC,GAAoBvpD,EAAMspD,GAC1BpC,GAAiBlnD,GAEpB,EAAE,UAEF,sBAAKG,MAAO,CAAEwH,QAAS,OAAQyN,KAAM,GAAI,UACvC,qBACEjV,MAAO,CACLuB,WAAY,EACZgE,MAAO6+C,KAAkBvkD,EAAKgpD,aAAe,EAAI,EACjD1nD,gBAAiB6jE,EACjBt5D,YAAa,KAGjB,qBACE1L,MAAO,CACL2I,OAAQ,OACRpD,MAAO,GACPsqB,YAAa,QACbnkB,YAAa,IACb,SAEDw4D,GAAwBrkE,KAE3B,qBACEG,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd5F,YAAa,GACbjK,SAAU,IACV,SAEDqF,IAEwB,OAA1BjH,EAAK4d,SAASlL,QACb,cAACoD,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAO6gE,EAAgB,eACvBzrD,UAAU,MAAK,SAEf,sBACExZ,MAAO,CACL0L,YAAa,GACb3D,UAAW,OACXuJ,aAAc,QACd,UAED2zD,EAAa,IAAGG,OAGnB,QAEN,cAACzvD,GAAA,EAAO,CAACvR,MAAO,oBAAqBoV,UAAU,MAAK,SACjD4qC,KAAkBvkD,EAAKgpD,aACtB,cAACmb,GAAA,EAAsB,CACrBhkE,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,UAIlB,cAAC0yD,GAAA,EAAsB,CACrBhkE,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,cAtH3CzR,EAAKgpD,eAPPhpD,EAAKgpD,iBAHZ7jD,EAyIN,MAGF,iEAIJ,sBAAKhF,MAAO,CAAEiB,QAASgC,WAAW,qBAAuB,sBAAuBzB,SAAUyB,WAAW,OAAS,IAAK8B,UAAW,UAAW,UACvI,cAAC0V,GAAA,EAAW,CACV,aAAW,aACXC,UAAU,SACV1a,MAAO,CAAEqB,MAAO,QAASI,SAAU,IAAK,SAExC,uBACEzB,MAAO,CAAEqB,MAAO,wBAAyBmG,QAAS,QAClDrB,QAAS,WACPsgD,IAAoB,GACpBt1C,KACAiN,GAAqBxb,EAAM6vC,MAAMvI,OAAOz9B,IAAK,IAC7Co6C,GAAsB,GACtBxC,GAAiByC,GAAc+B,aACjC,EAAE,UAEF,cAAClwC,GAAA,EAAU,CACT3Y,MAAO,CACL2L,YAAa,EACb5D,UAAW,OACXuJ,aAAc,QAEhBnL,QAAS,WAAO,EAAE,SAElB,cAACk/D,GAAA,EAAa,CAACrlE,MAAO,CAAEqB,MAAO,6BAExC,oBACCrB,MAAO,CAAEqB,MAAO,wBAAyB+D,OAAQ,WACjDe,QAAS,WAAO,EAAE,uCAMhB,cAAC6S,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,wBACjB4G,UAAW,GACXuJ,aAAc,MAGlB,sBAAKtR,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,IAAM,UAC/C,gDACA,cAACoU,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,iBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,KAAO,SAExB,sBAAM/J,MAAO,CAAC,EAAE,SACd,cAACmW,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE6Y,MAAO,QAAS9Q,UAAW,GAAIxG,WAAY,IACpD4E,QAAS,WAEPulD,GACE5E,GAAc7iC,mBACd6iC,GAAc51C,MACdwmC,SAGU3zC,IAAlB6+C,IAAiD,OAAlBA,IAAmD,IAAzBA,GAAc53C,QAC1E63C,GAAiBiE,GAAc7iC,oBAGtB0iC,IAAsB,EACxB,EAAE,SAEF,cAAC5rC,GAAA,EAAU,CAAC/a,MAAO,CAAC,UAIA,cAAzB8mD,GAAcl1C,OACb,cAAC+D,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,iBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,KAAQ,SAEzB,sBAAM/J,MAAO,CAAC,EAAE,SACd,cAACmW,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE6Y,MAAO,QAAS9Q,UAAW,GAAIxG,WAAY,IACpD4E,QAAS,WACPkjD,IACF,EAAE,SAEF,cAAC8Y,GAAA,EAAS,CAACniE,MAAO,CAAC,UAIvB,aAEoB+D,IAAzB+iD,GAAcl1C,QACfk1C,GAAcl1C,OAAO5G,OAAS,EAC5B,sBAAKhL,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,IAAM,UAC/C,cAACsG,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzB,kDAEF,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9CylD,GAAcl1C,YAGjB,UACgC7N,IAAnC+iD,GAAc5iC,kBACoB,OAAnC4iC,GAAc5iC,kBACd4iC,GAAc5iC,iBAAiBlZ,OAAS,GACL,YAAnC87C,GAAc5iC,iBACZ,sBAAKlkB,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,IAAM,UAC/C,cAACsG,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzB,kDAEF,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SACX,OAAnCylD,GAAcqd,uBACoBpgE,IAAnC+iD,GAAcqd,kBACdrd,GAAcqd,iBAAiBn5D,OAAS,EACtC87C,GAAc5iC,mBAAqBthB,EAAM6vC,MAAMvI,OAAOz9B,IACpD,sBACEzM,MAAO,CAAEoF,OAAQ,UAAW/D,MAAO,WACnC8E,QAAS,SAACE,GACR+X,GACExb,EAAM6vC,MAAMvI,OAAOz9B,IACnBq6C,GAAcqd,iBAElB,EAAE,8BAKJ,mBACE1rD,IAAI,sBACJC,KAAI,qBAAgBouC,GAAc5iC,iBAAgB,yCAAiC4iC,GAAcqd,kBACjGnsD,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,6BAMxDylD,GAAc5iC,sBAIlB,UAC0BngB,IAA7B+iD,GAAcoe,WACb,sBAAKllE,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,IAAO,UAChD,cAACsG,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzB,mDAEF,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9C,IAAI0F,KAAgC,IAA3B+/C,GAAcoe,YAAmBC,eAAe,cAG5D,UAC4BphE,IAA/B+iD,GAAcwe,cACgB,OAA/Bxe,GAAcwe,cACdxe,GAAcwe,aAAe,EAC3B,sBAAKtlE,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,IAAM,UAC/C,cAACsG,EAAA,EAAU,CAACC,QAAQ,QAAQ3B,QAAS,WAC3CmB,QAAQC,IAAIu/C,GACb,EAAE,SACO,gDAEF,cAACj/C,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9C,IAAI0F,KAAkC,IAA7B+/C,GAAcwe,cAAqBH,eAAe,cAG9D,KACJ,qBAAKnlE,MAAO,CAAE+H,UAAW,WACahE,IAArC+iD,GAAc7iC,oBACf6iC,GAAc7iC,mBAAmBjZ,OAAS,EAr1BnB,WAC/B,IAAIkM,EAAa4vC,GAAc7iC,mBAAmB4C,OAC5CwuB,EAAW3V,GAAaxoB,GAE9B,GAAIm+B,EAASrjC,MAAO,CACnB,GAA+B,kBAApBqjC,EAASl7B,OACnB,IACCk7B,EAASl7B,OAASlH,KAAKC,MAAMmiC,EAASl7B,OAIvC,CAHE,MAAOlb,GACRqI,QAAQC,IAAI,UAAWtI,GACvBo2C,EAASrjC,OAAQ,CAClB,CAGG,OACF,sBAAKhS,MAAO,CAACwH,QAAS,QAAQ,UAC7B,cAACmR,GAAA,EAAU,CACV3Y,MAAO,CACN+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRgD,YAAa,EACbpG,MAAO,IAERY,QAAS,WACJkvC,EAASrjC,MAWbqkC,GAAkB,CACjB,OAAU,CACT,MAAS,qBACT,KAAQ,qBACL,YAAep2C,EAAME,QAAQyB,aAC7B,MAAS3B,EAAME,QAAQyB,cAE3B,OAAUyzC,EAASrjC,MAAQiB,KAAKS,UAAU2hC,EAASl7B,QAAUk7B,EAASl7B,OACtE,OAAU,YAGXs8B,IAAiB,EAClB,EAAE,SAEF,cAAC9gC,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAM,uBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAACojC,GAAA,EAAa,CAACntC,MAAO,CAAEqB,MAAO,eAGjC,cAAC,KAAS,CACRqG,IAAK2tC,EAASl7B,OACdla,MAAOA,EAAME,QAAQW,UACrBd,MAAOC,EAAME,QAAQY,eACrBy0C,WAAW,EACXC,gBAAiB,SAACC,GACjB0uB,GAAyB1uB,EAC1B,EACAC,kBAAkB,EAClBC,SAAU,SAACvyB,GACVmhD,GAAenvB,EAASl7B,OAAQkJ,EAAQ,OACzC,EACA5d,KAAM,yBAIT,CAEA,OACE,gCACE,oDACA,qBAAKzF,MAAO,CAAE6E,UAAW,IAAKC,UAAW,QAAS,SAC/CgiD,GAAc7iC,uBAIxB,CAiwBYshD,GACA,KACJ,cAACvsD,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,wBACjB4G,UAAW,GACXuJ,aAAc,WAGSvN,IAA1B+iD,GAAc3N,SACW,OAA1B2N,GAAc3N,SACd2N,GAAc3N,QAAQnuC,OAAS,GAC/B87C,GAAc3N,QAAQjhC,MACpB,SAACiC,GAAM,MACa,YAAlBA,EAAOvI,MAAoB,IAE7B,cAAC6qB,GAAA,EAAgB,CACfz8B,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,IACvC9K,MACE,qBAAKxG,MAAO,CAAEqB,MAAO,SAAU,kCAIjCq7B,QACE,cAACklC,GAAA,EAAM,CACL35C,QAASi8B,GACTj7C,SAAU,WACRk7C,IAAuBD,GACzB,MAIJ,KACJ,qBAAKlkD,MAAO,CAAEwH,QAAS,OAAQO,UAAW,GAAIuJ,aAAc,IAAK,SAC/D,mCAC4BvN,IAAzB+iD,GAAcl1C,QACU,YAAzBk1C,GAAcl1C,QACW,aAAzBk1C,GAAcl1C,QACW,YAAzBk1C,GAAcl1C,QACW,YAAzBk1C,GAAcl1C,aAEc7N,IAA1B+iD,GAAc3N,SACY,OAA1B2N,GAAc3N,SACoB,IAAjC2N,GAAc3N,QAAQnuC,QACI,cAAzB87C,GAAcl1C,OAYd,KAVV,sBAAK5R,MAAO,CAACwH,QAAS,QAAQ,UACrB,cAACqT,EAAA,EAAgB,CAAC7a,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,GAAIhE,WAAY,GAAImK,YAAa,OAGrFjI,IAAWszC,GAAa/rC,OAAS,GAAKw8C,GAA0BzQ,GAAa/rC,QAAuC,IAA7B25D,GAAkB35D,OAC1G,eAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC,EAAE,yDACd+2C,GAAayQ,IAAyBrI,KAAI,kBAAgB,mBAAGzmC,KAAK,0BAA0BD,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAW,2BAEtO,iBAK0B0C,IAA1B+iD,GAAc3N,SACW,OAA1B2N,GAAc3N,SACoB,IAAjC2N,GAAc3N,QAAQnuC,QACI,cAAzB87C,GAAcl1C,OACd,cAACiJ,EAAA,EAAgB,IAEjBisC,GAAc3N,QAAQ16C,KAAI,SAACoB,EAAMmF,GAC/B,GAAqC,IAAjC8hD,GAAc3N,QAAQnuC,SAAiBk5C,IAAuC,YAAhBrkD,EAAK+R,OACrE,OAAO,KAIT,IAAIsF,EAAarX,EAAKsa,OAAO0M,OACvBwuB,EAAW3V,GAAaxoB,GAExB45C,EAAS1iD,GAAK8J,MAClB,SAACmnC,GAAC,OACAA,EAAE55C,OAAS5F,EAAK0G,OAAOgZ,UACvB8/B,EAAEtqC,cAAgBlV,EAAK0G,OAAOwO,WAAW,IAEvCywD,EAAU,GACVR,EACY,aAAhBnlE,EAAK+R,QAAyC,YAAhB/R,EAAK+R,OAC/BovC,EACgB,YAAhBnhD,EAAK+R,QAAwC,YAAhB/R,EAAK+R,OAClC,MACAqvC,EAEFwkB,OAAoB1hE,IAAX+sD,EAAuB,GAAKA,EAAOp8C,YAChD,GACoB,IAAlB+wD,EAAOz6D,aACcjH,IAArB0Z,GAASlL,SACY,OAArBkL,GAASlL,QACT,CAEA,IAAMhM,EAASkX,GAASlL,QAAQ2F,MAC9B,SAAC3R,GAAM,OAAKA,EAAOlH,KAAOQ,EAAK0G,OAAOlH,EAAE,SAE3B0E,IAAXwC,GAAmC,OAAXA,IAC1Bk/D,EAASl/D,EAAOmO,YAEpB,CAEA,IAAIgxD,EACS,OAAX5U,EAAkB,KAChB,qBACErpD,IAAK5H,EAAK0G,OAAOgZ,SACjB7X,IAAK+9D,EACLzlE,MAAO,CACL0L,YAAa,GACbnG,MAAOigE,EACP78D,OAAQ68D,EACRxkE,OAAO,aAAD,OAAegkE,GACrBpkE,aACEkmD,GAAc51C,QAAUrR,EAAK0G,OAAOlH,GAAK,GAAK,KAKxD,GAAIuhB,GAAS5V,OAAS,EAAG,CACvB,GAA6B,oBAAzBnL,EAAK0G,OAAOgZ,SAAgC,CAC9C,IAAMomD,EAAc/kD,GAAS,GAAGlM,YAChCgxD,EACE,qBACEj+D,IAAK,kBACLC,IAAKi+D,EACL3lE,MAAO,CACL0L,YAAa,GACbnG,MAAOigE,EACP78D,OAAQ68D,EACRxkE,OAAO,aAAD,OAAegkE,GACrBpkE,aACEkmD,GAAc51C,QAAUrR,EAAK0G,OAAOlH,GAAK,GAAK,IAIxD,CAE6B,eAAzBQ,EAAK0G,OAAOgZ,WACdmmD,EACE,qBACEj+D,IAAK,kBACLC,IAAKkZ,GAAS,GAAGlM,YACjB1U,MAAO,CACL0L,YAAa,GACbnG,MAAOigE,EACP78D,OAAQ68D,EACRxkE,OAAO,aAAD,OAAegkE,GACrBpkE,aACEkmD,GAAc51C,QAAUrR,EAAK0G,OAAOlH,GAAK,GAAK,KAK1D,CAEA,GAC2B,kBAAzBQ,EAAK0G,OAAOgZ,eACOxb,IAAnBlE,EAAK0G,OAAOlH,SACL0E,IAAPL,GACA,CACA,IAAMsqD,EAAWtqD,GAAGgS,eAAe7V,EAAK0G,OAAOlH,IAAIQ,OACnD,QACekE,IAAbiqD,GACa,OAAbA,GACuB,oBAAvBA,EAASqE,UACT,CACA,IAAIuT,EAAW,CACbl6D,YAAa,GACbnG,MAAOigE,EACP78D,OAAQ68D,EACRxkE,OAAO,aAAD,OAAegkE,GACrBpkE,aACEkmD,GAAc51C,QAAUrR,EAAK0G,OAAOlH,GAAK,GAAK,EAChD8kB,WAAW,6BAAD,OAA+B6pC,EAAShwB,aAAY,MAGhE0nC,EACE,qBACEj+D,IAAKumD,EAASxnD,MACdkB,IAAKsmD,EAASt5C,YACd1U,MAAO4lE,GAGb,CACF,CAMA,GAJIvwB,EAASrjC,OAAoC,kBAApBqjC,EAASl7B,SACpCk7B,EAASl7B,OAASlH,KAAKC,MAAMmiC,EAASl7B,SAGpCk7B,EAASrjC,OAAoC,kBAApBqjC,EAASl7B,aAEPpW,IAA3BsxC,EAASl7B,OAAOA,QACW,OAA3Bk7B,EAASl7B,OAAOA,OAEhB,IACEk7B,EAASl7B,OAAOA,OAASlH,KAAKC,MAAMmiC,EAASl7B,OAAOA,OAEpD,CADA,MAAOlb,GACP,CAMb,IAAI4mE,EAAqB,KACzB,QAA6B9hE,IAAzBlE,EAAKimE,iBAA0D,OAAzBjmE,EAAKimE,gBAA0B,CACxE,IACIC,EAAsB,GAC1B,IAAK,IAAIpxB,KAAK90C,EAAKimE,gBACdjmE,EAAKimE,gBAAgBE,eAAerxB,IACnC90C,EAAKimE,gBAAgBnxB,GAAGsxB,WAJX,IAKhBF,EAAoB54D,KAAKtN,EAAKimE,gBAAgBnxB,GAAGkU,cAKpD,GAAmC,IAA/Bkd,EAAoB/6D,OAAc,CACrC,IAAIk7D,EAAaH,EAAoBx5D,KAAK,KAE1Cs5D,EACC,cAAClwD,GAAA,EAAO,CACPtU,MAAM,UACN+C,MAAM,sDACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,IAAOxI,WAAY,IAAK,SAEzC,cAACoX,GAAA,EAAU,CACT3Y,MAAO,CACN+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRgD,YAAa,EACbpG,MAAO,IAERY,QAAS,WACR2H,EAAS,wBAAD,OAAyBo4D,GAClC,EAAE,SAEF,cAACC,GAAA,EAAW,CAACnmE,MAAO,CAAEqB,MAAO,8BAGlC,CACD,CAGO,OACE,sBAEErB,MAAO,CACLsR,aAAc,GACdtQ,QAC6B,IAA3BnB,EAAK0G,OAAO6/D,WACR,kCACA,mCACNxlE,aAAcX,EAAME,QAAQS,aAC5BO,gBAAiBlB,EAAME,QAAQO,WACzCO,QAAS,sBACTqE,SAAU,UAEFW,YAAa,WACX,IAAIqjD,EAAc5lD,GAAGgS,eAAe7V,EAAK0G,OAAOlH,SAC5B0E,IAAhBulD,GAA6C,OAAhBA,GAA+C,IAAvBA,EAAYt+C,QACnEs+C,EAAY7L,SAAS,0BAQzB,EACAv3C,WAAY,WACV,IAAIojD,EAAc5lD,GAAGgS,eAAe7V,EAAK0G,OAAOlH,IACrB,IAAvBiqD,EAAYt+C,QACds+C,EAAY5L,YAAY,0BAE5B,EAAE,UAEF,sBAAK19C,MAAO,CAAEwH,QAAS,QAAS,UAC9B,sBAAKxH,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,IAAK,UAChD,cAACqH,GAAA,EAAU,CACT3Y,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACd3I,OAAQ,GACRgD,YAAa,EACbpG,MAAO,IAETY,QAAS,WACpB,IAAMi4C,EAAe16C,GAAGgS,eAAe7V,EAAK0G,OAAOlH,IAEnD,GADAiI,QAAQC,IAAI,eAAgB62C,QACPr6C,IAAjBq6C,GAA+C,OAAjBA,EAAuB,CACxD,IAAMC,EAAYD,EAAav+C,KAAK,cAClBkE,IAAds6C,GAAyC,OAAdA,IAC9Bx+C,EAAK0G,OAAOC,MAAQ63C,EAEtB,CAEA/2C,QAAQC,IAAI,eAAgB1H,GAEfw2C,GAAkBx2C,GAClB42C,IAAiB,EACnB,EAAE,SAEF,cAAC9gC,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,uBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,KAAQ,SAEzB,cAACojC,GAAA,EAAa,CAACntC,MAAO,CAAEqB,MAAO,eAGlCqkE,EACD,gCACE,qBACE1lE,MAAO,CACLyB,SAAU,GACVsG,UAAW,OACXuJ,aAAc,QACd,SAEF,4BAAIzR,EAAK0G,OAAOC,UAElB,qBAAKxG,MAAO,CAAEyB,SAAU,IAAK,SAC3B,cAACoG,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9CxB,EAAK0G,OAAOd,eAKK,oBAAzB5F,EAAK0G,OAAOgZ,eACexb,IAA5BsxC,EAASl7B,OAAOtH,UACY,IAA5BwiC,EAASl7B,OAAOtH,QACd,sBACE7S,MAAO,CAAEiV,KAAM,GAAI4D,MAAO,QAAS1T,UAAW,SAAU,SAEvDkwC,EAASrjC,YACiBjO,IAA3BlE,EAAK0G,OAAO6S,YACe,OAA3BvZ,EAAK0G,OAAO6S,YACZvZ,EAAK0G,OAAO6S,WAAWpO,OAAS,EAC9BnL,EAAK0G,OAAO6S,WAAW,GAAGjQ,QAC1BvG,EAAM6vC,MAAMvI,OAAOz9B,IACjB,sBACEzM,MAAO,CAAEoF,OAAQ,UAAW/D,MAAO,WACnC8E,QAAS,SAACE,GACR+X,GACExb,EAAM6vC,MAAMvI,OAAOz9B,IACnB4oC,EAASl7B,OAAO0uC,aAEpB,EAAE,SAEH,cAACjwC,GAAA,EAAa,MAGf,mBACEH,IAAI,sBACJC,KAAI,qBAAgB7Y,EAAK0G,OAAO6S,WAAW,GAAGjQ,MAAK,yCAAiCksC,EAASl7B,OAAO0uC,cACpG7wC,OAAO,SACPhY,MAAO,CACLuW,eAAgB,OAChBlV,MAAO,WAET8E,QAAS,SAACE,GAAW,EAAE,SAEvB,cAACuS,GAAA,EAAa,MAIlB,KAGF,QAEN,sBAAK5Y,MAAO,CAAEsR,aAAc,EAAG9J,QAAS,QAAS,UAC/C,cAACK,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzB,6CAEF,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC0L,YAAa,IAAK,SACzE7L,EAAK+R,SAEjBi0D,KAEQxwB,EAASrjC,MACR,+BACT,cAAC,KAAS,CACTtK,IAAK2tC,EAASl7B,OACdla,MAAOA,EAAME,QAAQW,UACrBd,MAAOC,EAAME,QAAQY,eACrBy0C,WAAW,EACXC,gBAAiB,SAACC,GACjB0uB,GAAyB1uB,EAC1B,EACAC,kBAAkB,EAClBC,SAAU,SAACvyB,GACVmhD,GAAettD,EAAYmM,EAAQxjB,EAAK0G,OAAOC,OAC/Cc,QAAQC,IAAI,cAAe8b,EAC5B,EACA5d,KAAM,eAAiB5F,EAAK0G,OAAOC,UAK3B,sBACExG,MAAO,CACL6E,UAAW,IACXE,UAAW,SACXD,UAAW,OACX+wC,WAAY,YACZ,UAEF,eAAChuC,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEwH,QAAS,gBAAiB,UAEnC,uCAAa,UAEf,cAACK,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAEwH,QAAS,gBAAiB,SAElC3H,EAAKsa,cA/KPnV,EAqLX,UAQJ8rD,GAAUpM,GAEuB,oBAAnCD,GAAel+C,OAAOgZ,SACtBqB,GAAS,GAC0B,eAAnC6jC,GAAel+C,OAAOgZ,SACtBqB,GAAS,GACTxS,GAAK8J,MACH,SAACmnC,GAAC,OACAA,EAAE55C,OAASg/C,GAAel+C,OAAOgZ,UACjC8/B,EAAEtqC,cAAgB0vC,GAAel+C,OAAOwO,WAAW,IARvD,CAAC,EAWCiwD,GAAetgB,GAES,aAA1BD,GAAe7yC,QACW,YAA1B6yC,GAAe7yC,OACfovC,EAC0B,YAA1ByD,GAAe7yC,QAAkD,YAA1B6yC,GAAe7yC,OACtD,MACAqvC,EANA,MAQE5L,GAAYqP,GAEdhlB,GAAa+kB,GAAetqC,OAAO0M,QADnC,GAGAwuB,GAASrjC,OAAoC,kBAApBqjC,GAASl7B,SACpCk7B,GAASl7B,OAASlH,KAAKC,MAAMmiC,GAASl7B,SAGzC,IAAMksD,GAAoB,SAAH,GAAgB,IAAXxmE,EAAI,EAAJA,KAC3B,EAAwBqE,IAAMC,UAAS,GAAM,mBAAtCmY,EAAI,KAAEmrB,EAAO,KACd6+B,EAAezmE,EAAKsJ,MAAM6B,OAAS,GAEzC,OACC,sBAAKhL,MAAO,CAACwB,SAAU,IAAKuD,UAAW,UAAY,UACjDlF,EAAKsJ,MAAM6B,OAAS,GACpB,cAAC2N,GAAA,EAAU,CACV3Y,MAAO,CACNsR,aAAc,EAAGvJ,UAAW,EAAG3C,OAAQ,UACvCnE,QAAS,EACTD,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,cAE7BuF,QAAS,WACHmgE,GACJ7+B,GAASnrB,EAEX,EAAE,SAEF,eAACzU,EAAA,EAAU,CACVC,QAAQ,QACR9H,MAAO,CAAC,EAAE,UAEV,4BAAIH,EAAK4F,OAAS,IAAE6gE,EAAezmE,EAAKsJ,MAAQ,UAIlD,eAACtB,EAAA,EAAU,CACVC,QAAQ,QACR9H,MAAO,CAAC,EAAE,UAEV,4BAAIH,EAAK4F,OAAS,KAAG6gE,EAAezmE,EAAKsJ,MAAQ,QAGlDmT,EACA,cAACzU,EAAA,EAAU,CACVC,QAAQ,QACR9H,MAAO,CACN61C,WAAY,YAEbx0C,MAAM,gBAAe,SAEpBxB,EAAKsJ,QAEN,OAGL,EAGOo9D,GAAmB7hB,GACrB,eAACroC,GAAA,EAAM,CACT1S,eAAgBA,EAChB,kBAAgB,yBACZ+iB,qBAAqB,EACrB1sB,MAAO,CAAE4sB,cAAe,QACxBH,cAAc,EACdnQ,KAAMooC,GACNloC,WAAY,CACVxc,MAAO,CACL4sB,cAAe,OACfzrB,gBAAiBT,GACjBW,MAAO,QACPuG,SAAU3E,WAAW,MAAQ,IAC7BhC,QAAS,GACT4D,UAAW,IACXC,UAAW,OACXC,UAAW,SACXgF,OAAQ,MACd/I,OAAQf,EAAME,QAAQU,gBAElB,UAEF,uBAAMxB,GAAG,UAAS,UAChB,cAACsW,GAAA,EAAO,CACNvR,MAAM,4BACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,KAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,KAETpS,QAAS,SAAClH,GAER,IAAK,IAAIwN,KADTxN,EAAE0L,iBACcwT,GAAoB,CAClC,IACMhE,EADYgE,GAAmB1R,GACZ0sC,QAAQjhC,MAC/B,SAACrY,GAAI,MACa,YAAhBA,EAAK+R,QACL/R,EAAK0G,OAAOlH,KAAOolD,GAAel+C,OAAOlH,EAAE,IAG/C,QAAe0E,IAAXoW,EAAsB,CAClC,IAAMikC,EAAe16C,GAAGgS,eAAe+uC,GAAel+C,OAAOlH,IAC7D,QAAqB0E,IAAjBq6C,GAA+C,OAAjBA,EAAuB,CACxD,IAAMC,EAAYD,EAAav+C,KAAK,cAClBkE,IAAds6C,GAAyC,OAAdA,IAC9BlkC,EAAO5T,OAAOC,MAAQ63C,EAExB,CAEUhI,GAAkBl8B,GAClBwQ,GAAUqB,KAAKC,UACf,KACF,CACF,CACF,EAAE,SAEF,cAAC,KAAQ,CAACjsB,MAAO,CAAEqB,MAAO,eAG9B,cAACsU,GAAA,EAAO,CACNvR,MAAM,wBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,KAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,KAETpS,QAAS,SAAClH,GAER,IAAK,IAAIwN,KADTxN,EAAE0L,iBACcwT,GAAoB,CAClC,IACMhE,EADYgE,GAAmB1R,GACZ0sC,QAAQjhC,MAC/B,SAACrY,GAAI,OACHA,EAAK0G,OAAOlH,KAAOolD,GAAel+C,OAAOlH,IACzB,YAAhBQ,EAAK+R,QACW,YAAhB/R,EAAK+R,QACW,YAAhB/R,EAAK+R,MAAoB,IAG7B,QAAe7N,IAAXoW,EAAsB,CAClC,IAAMikC,EAAe16C,GAAGgS,eAAe+uC,GAAel+C,OAAOlH,IAC7D,QAAqB0E,IAAjBq6C,GAA+C,OAAjBA,EAAuB,CACxD,IAAMC,EAAYD,EAAav+C,KAAK,cAClBkE,IAAds6C,GAAyC,OAAdA,IAC9BlkC,EAAO5T,OAAOC,MAAQ63C,EAExB,CAEUhI,GAAkBl8B,GAClBwQ,GAAUqB,KAAKC,UACf,KACF,CACF,CACF,EAAE,SAEF,cAAC,KAAS,CAACjsB,MAAO,CAAEqB,MAAO,eAG/B,cAACsU,GAAA,EAAO,CACNvR,MAAM,oBACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACT3Y,MAAO,CAAE+J,OAAQ,IAAM1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC7DpS,QAAS,SAAClH,GACRA,EAAE0L,iBACF,IAAM67D,EAAiBroD,GAAmB+C,WACxC,SAACrhB,GAAI,OAAKA,EAAKgpD,eAAiBpE,GAAeoE,YAAY,KAErC,IAApB2d,IACF7f,IAAsB,GACtBE,GAAsB,GACtBE,GAAiB5oC,GAAmBqoD,IAExC,EAAE,SAEF,cAACC,GAAA,EAAc,CAACzmE,MAAO,CAAEqB,MAAO,eAGpC,cAACsU,GAAA,EAAO,CACNvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACT3Y,MAAO,CAAE+J,OAAQ,IAAM1E,SAAU,WAAYiT,IAAK,GAAIC,MAAO,IAC7DpS,QAAS,SAAClH,GACRA,EAAE0L,iBACF8rC,IAAiB,EACnB,EAAE,SAEF,cAACntB,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,kBAIjC,sBAAKrB,MAAO,CAAEsR,aAAc,IAAK,UAC/B,sBAAKtR,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,IAAK,UACpC,OAAXw/C,GAAkB,KACjB,qBACErpD,IAAKg9C,GAAellC,SACpB7X,SAAgB3D,IAAX+sD,GAAuB7wD,EAAME,QAAQyB,aAAekvD,GAAOp8C,YAChE1U,MAAO,CACL0L,YAAa,GACbnG,MA/NA,GAgOAoD,OAhOA,GAiOA3H,OAAO,aAAD,OAAegkE,OAK3B,gCACE,qBACJ3lE,GAAG,yBACGW,MAAO,CACLyB,SAAU,GACVsG,UAAW,OACXuJ,aAAc,OACvBlM,OAAQ,QACC,SAEF,4BAAIq/C,GAAel+C,OAAOC,UAE5B,qBAAKxG,MAAO,CAAEyB,SAAU,IAAK,SAAEgjD,GAAel+C,OAAOd,aAGzD,sBAAKzF,MAAO,CAAEsR,aAAc,GAAI,UAC9B,wCAAc,IAAEmzC,GAAe7yC,UAEhCyjC,GAASrjC,MACd,cAAC,KAAS,CACTtK,IAAK2tC,GAASl7B,OACdla,MAAOA,EAAME,QAAQW,UACrBd,MAAOC,EAAME,QAAQY,eACrBy0C,YAAWiP,GAAetqC,OAAOnP,OAAS,KAC1CyqC,gBAAiB,SAACC,GACjB0uB,GAAyB1uB,EAC1B,EACAC,kBAAkB,EAClBC,SAAU,SAACvyB,GACVmhD,GAAenvB,GAASl7B,OAAQkJ,EAAQohC,GAAel+C,OAAOC,MAC/D,EACAf,KAAM,eAAiBg/C,GAAel+C,OAAOC,QAGxC,gCACE,uCAAa,OACb,sBACEL,QAAS,WACPmB,QAAQC,IAAI,oBACZ25C,EAAeuD,GAAetqC,OAC9B,IAAI8I,EAAW7R,SAASsE,eACtB,wBAGF,GADApO,QAAQC,IAAI,YAAa25C,GACR,OAAbj+B,QAAkClf,IAAbkf,EAAwB,CAI/C,GAHA3b,QAAQC,IAAI,SAAU0b,GACtB3b,QAAQC,IAAI,cAAe2b,gBAETnf,IADAmf,UAAUC,UAG1B,YADAvV,EAAM6E,MAAM,wCAIdyQ,UAAUC,UAAUC,UAAU89B,GAE9Bj+B,EAASI,SACTJ,EAASK,kBACP,EACA,OAIFlS,SAASmS,YAAY,OACvB,MACEjc,QAAQC,IACN,oDAGN,EAAE,SAEDk9C,GAAetqC,YAItB,8BACwC,OAArCsqC,GAAel+C,OAAO6S,iBACcrV,IAArC0gD,GAAel+C,OAAO6S,WACpB,gCACE,cAACJ,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BsH,UAAW,GACXuJ,aAAc,MAGlB,eAACzJ,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEsR,aAAc,EAAGvJ,UAAW,GAAI,uBAE/B,sBAAM/H,MAAO,CAACyB,SAAU,IAAI,kCAEvCgjD,GAAel+C,OAAO6S,WAAW3a,KAAI,SAACoB,EAAMmF,GAC3C,OAA0B,IAAtBnF,EAAKsJ,MAAM6B,aAKIjH,IAAjBlE,EAAKsX,SACY,OAAjBtX,EAAKsX,SACLtX,EAAKsX,QAAQhL,SAAS,OANf,KAYjB,cAACk6D,GAAiB,CAAaxmE,KAAMA,GAAbmF,EAElB,OAEA,aA9Q2B,KAoRnC0hE,GACJ,sBAAK1mE,MAAO,CAAEqB,MAAO,SAAU,UAChC,sBACCrB,MAAO,CAAEwH,QAAS,OAAQub,UAAW,kCAAmC,UAGvEygD,QACgBz/D,IAAhB0Z,GAASpe,IACM,OAAhBoe,GAASpe,KACM,IAAf2nD,GACC,sBACChnD,MAAO,CACNuF,MAAO4iD,GAAY/F,GAAc,GACjCz5C,OAAQ,IACRxD,UAAW,UACV,UAEF,cAAC0V,EAAA,EAAgB,CAChB7a,MAAO,CACN+H,UAAW,OACXY,OAAQ,GACRpD,MAAO,GACPhE,WAAY,OACZmK,YAAa,UAGf,cAAC7D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,iCAKlD,cAACkiE,GAAA,EAAI,CAACtoD,IAAI,EAAM0rD,QAAS,IAAM3mE,MAAO,CAAEkb,gBAAgB,GAAD,OAAK,IAAG,OAAO,SACrE,cAAC,IAAkB,CAClBkO,SAAUA,GACViQ,QAAS,IACTC,QAAS,EACTstC,iBAAkB,IAClB5mE,MAAO,CACNuF,MAAO8iD,GACP1/C,OAAQy/C,GAAaR,GAAa,EAClCzmD,gBAAiBV,IAElB84B,WAAY6nB,GACZ3nB,qBAAqB,EACrBotC,iBAAiB,EACjBjtC,UAAU,EACVv6B,GAAG,iBACHqE,GAAI,SAACm2B,GAIJ/G,GAAM+G,EACP,SAKHirC,GACD,cAACjC,GAAY,CACZxrB,aAAcA,GACdC,gBAAiBA,GACjBzoC,eAAgBA,GAChB4O,SAAUA,GACVuN,YAAaA,GACblc,kBAAmBA,GACnB6b,UAAWA,GACX3c,YAAaA,GACbmQ,mBAAoBA,GACpBk4B,kBAAmBA,GACnBpoC,eAAgBA,GAChBqoC,mBAAoBA,GACpBC,gBAAiBA,GACjBC,eAAgBA,GAChB9yC,GAAIA,GACJia,2BAA4BA,GAC5B+4B,sBAAuBA,GACvBe,aAAcA,GACdhB,iBAAkBA,GAClBE,mBAvkOyB,SAACtwC,GAC1BA,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,IACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAM,KACzDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,KAAM,KACzDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KACxDO,EAAM2R,OAAO7O,MAAQ9C,EAAM2R,OAAO7O,MAAMrD,WAAW,IAAK,KAExD+I,GAAerI,MAAQH,EAAM2R,OAAO7O,MACpC2F,GAAkBD,GACpB,EA2iOE+nC,kBAAmBA,GACnBC,gBAAiBA,GACjBC,0BAA2BA,GAC3BC,aAAcA,GACdC,qBAzvO2B,SAAC/3C,GAC9B,QAA4B8E,IAAxBiK,GAAYuE,SAAiD,OAAxBvE,GAAYuE,QAArD,CAIE,IAAM+M,EAAYtR,GAAYuE,QAAQ2F,MACpC,SAACmnC,GAAC,OAAKA,EAAE55C,OAASxG,EAAE+Y,OAAO7O,KAAK,IAGlC,QAAkBpF,IAAdub,GAAyC,OAAdA,EAA/B,CAKF,QAAyBvb,IAArB0Z,GAASlL,SAA8C,OAArBkL,GAASlL,QAC5BkL,GAASlL,QAAQ2F,MAAK,SAAA4uD,GAAE,OAAIA,EAAGznE,KAAOwP,GAAexP,EAAE,IAK1E,IAAM0nE,EAAY9zD,KAAKC,MAAMD,KAAKS,UAAU7E,KAItCm4D,EAAoBn4D,GAS1B,GAREm4D,EAAkBvhE,KAAO6Z,EAAU7Z,KACnCuhE,EAAkB5tD,WAAanG,KAAKC,MAAMD,KAAKS,UAAU4L,EAAUlG,aACnE4tD,EAAkB5mD,OAAS,GAC3B4mD,EAAkBxuC,SAAU,EAC5BwuC,EAAkB70D,UAAW,OAIFpO,IAAzBgjE,EAAU3tD,iBAA6DrV,IAAjCijE,EAAkB5tD,YAA4B2tD,EAAU1nE,KAAO2nE,EAAkB3nE,GAAI,CAC9H,IAAI4nE,GAAe,EAAK,aAEvB,IAAMnkD,EAAQikD,EAAU3tD,WAAWgG,GAMnC,GAJmB,YAAf0D,EAAMrd,OACTwhE,GAAe,GAGI,OAAhBnkD,EAAM3Z,YAAkCpF,IAAhB+e,EAAM3Z,OAA8C,IAAvB2Z,EAAM3Z,MAAM6B,OACpE,iBAGD,GAAmB,SAAf8X,EAAMrd,KAET,iBAGD,GAAmB,YAAfqd,EAAMrd,OACT6B,QAAQC,IAAI,0CAA2C0/D,GAEnDA,GAIH,OAHAD,EAAkB5tD,WAAWgG,GAAUjW,MAAQ,GAC/C69D,EAAkB5tD,WAAWgG,GAAU66B,eAAgB,EAEvD,WAKF,QAAqCl2C,IAAjCijE,EAAkB5tD,YAA6D,OAAjC4tD,EAAkB5tD,WACnE,iBAID,IAAM8tD,EAAgBF,EAAkB5tD,WAAW8H,WAAU,SAAAimD,GAAS,OAAIA,EAAU1hE,OAASqd,EAAMrd,IAAI,IACvG,GAAIyhE,EAAgB,EACnB,iBAGDF,EAAkB5tD,WAAW8tD,GAAe/9D,MAAQ2Z,EAAM3Z,MAC1D69D,EAAkB5tD,WAAW8tD,GAAejtB,eAAgB,OACtCl2C,IAAlB+e,EAAMkyB,SAA2C,OAAlBlyB,EAAMkyB,SAAoBlyB,EAAMkyB,QAAQhqC,OAAS,IACnFg8D,EAAkB5tD,WAAW8tD,GAAejtB,eAAgB,EAC5D,EA1CF,IAAK,IAAI76B,KAAY2nD,EAAU3tD,WAAY,GA4C5C,CAEE,GAAmC,kBAA/B4tD,EAAkBznD,SAA8B,CAClD,IAAM8vC,EAAWlyB,GAAY6pC,GAC7B1/D,QAAQC,IAAI,aAAc8nD,GAC1B,IAAM/vB,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAC3D0nC,EAAkBtyD,YAAc46C,EAChC0X,EAAkBhpC,aAAeqxB,EAASrxB,aAC1CgpC,EAAkB3U,UAAY,aAEOtuD,IAAnCijE,EAAkBhpC,cACiB,OAAnCgpC,EAAkBhpC,cAClBgpC,EAAkBhpC,aAAahzB,OAAS,EAExCg8D,EAAkB3U,UAAY,kBAE9B2U,EAAkB3nC,eAAiBgwB,EAASvxB,oBAG9C,IAAMspC,EAAY1jE,GAAGgS,eAAesxD,EAAkB3nE,IACpC,OAAd+nE,QAAoCrjE,IAAdqjE,GACxBA,EAAUvnE,KAAKmnE,EAEnB,CA+BF,GA1BEA,EAAoBvV,GAAiBuV,QAGLjjE,IAA9Bub,EAAUrI,QAAQE,SACY,OAA9BmI,EAAUrI,QAAQE,SAClBmI,EAAUrI,QAAQE,QAAQnM,OAAS,IAEnCg8D,EAAkB7vD,QAAUmI,EAAUrI,QAAQE,cAIpBpT,IAA1Bub,EAAUxK,aACgB,OAA1BwK,EAAUxK,aACVwK,EAAUxK,YAAY9J,OAAS,IAE/Bg8D,EAAkBlyD,YAAcwK,EAAUxK,kBAWrB/Q,IAArB0Z,GAASlL,SAA8C,OAArBkL,GAASlL,SAAoBkL,GAASlL,QAAQvH,OAAS,EAAG,CAC/F,IAAMq8D,EAAmB5pD,GAASlL,QAAQ2O,WAAU,SAAAk0B,GAAU,OAAIA,EAAW/1C,KAAO2nE,EAAkB3nE,EAAE,IACxGiI,QAAQC,IAAI,yBAA0B8/D,GAClCA,GAAoB,IACvB5pD,GAASlL,QAAQ80D,GAAoBL,EACrCh8C,GAAYvN,IAEd,CAEEnW,QAAQC,IAAI,eAAgBy/D,GAC5Bl4D,GAAkBk4D,GAClBr8C,GAAUqB,KAAKC,UAGf,IAAMgjC,EAAWvrD,GAAGqwB,QAAQC,QAC5B,IAAK,IAAIvnB,KAAOwiD,EAAU,CACxB,IAAMC,EAAcD,EAASxiD,GAC7B,GACEyiD,EAAYrvD,KAAKsvD,aAAe4X,EAAU1nE,IAC1C6vD,EAAYrvD,KAAKuvD,aACjB,CACA,IAAMgY,EAAY1jE,GAAGgS,eAAew5C,EAAYrvD,KAAKR,IACrD,GAAkB,OAAd+nE,QAAoCrjE,IAAdqjE,EAAyB,CACjD,IAAM/X,EAAWlyB,GAAY7d,GACvBggB,EAAO,sBAAkBpN,GAAO,qBAAaA,GAAO,0BAAkBA,GAAO,YAAIA,GAAO,uEAA+Dm9B,EAASzxB,KAAI,mBAAWyxB,EAASxxB,UAAS,mBACjMyxB,EAAan9B,UAAU,4BAA8BmN,GAC3D8nC,EAAUvnE,KAAK,QAASyvD,GACxB8X,EAAUvnE,KAAK,aAAcwvD,EAASvxB,oBACxC,CAEA,KACF,CACF,CA1JA,MAFElwB,EAAM6E,MAAM,4BAPhB,CAoKA,EAmlOEktC,UAAWA,GACX1I,gBAAiBA,GACjB/zC,UAAWA,EACXg0C,6BAA8BA,GAC9BC,uBAAwBA,KAEzB,cAAC6qB,GAAkB,IACnB,cAACV,GAAe,OAIZgG,GACL,cAACjrD,GAAA,EAAM,CACFC,KAAMqlC,GACTh4C,eAAgBA,EAChB8iB,cAAc,EACdC,qBAAqB,EACrBC,sBAAsB,EACtB3sB,MAAO,CAAE4sB,cAAe,QACxB,kBAAgB,yBACbrQ,QAAS,WACXqlC,IAAuB,EACrB,EACAplC,WAAY,CACVxc,MAAO,CACL4sB,cAAe,OACfzrB,gBAAiBV,GACjBY,MAAO,QACZL,OAAQf,EAAME,QAAQU,cACtBW,SAAU,OACVP,QAAS,KAEN,4BAKDsmE,GAAyB,SAAC3kE,GAChC,IAAQwgD,EAAiBxgD,EAAjBwgD,aAER,EAA8Cl/C,IAAMC,cAA+BJ,IAAtBq/C,EAAa39C,KAAqB29C,EAAa39C,KAAO,IAAG,mBAA/G+hE,EAAe,KAAEC,EAAkB,KAC1C,EAA4DvjE,IAAMC,cAAsCJ,IAA7Bq/C,EAAatuC,YAA4BsuC,EAAatuC,YAAc,IAAG,mBAClJ,GAD6B,KAA2B,KACR5Q,IAAMC,cAAgCJ,IAAvBq/C,EAAaj6C,MAAsBi6C,EAAaj6C,MAAQ,KAAG,mBAAnG,KAAqB,KAE5C,OAAKo6C,GAKF,cAAClnC,GAAA,EAAM,CACLC,KAAMinC,GACT55C,eAAgBA,EAChB8iB,cAAc,EACdC,qBAAqB,EACrBC,sBAAsB,EACtB3sB,MAAO,CAAE4sB,cAAe,QACxB,kBAAgB,yBACbrQ,QAAS,WACPkrD,EAAmB,IACnBjkB,IAA+B,EACjC,EACAhnC,WAAY,CACVxc,MAAO,CACL4sB,cAAe,OACfzrB,gBAAiBV,GACjBY,MAAO,QACZL,OAAQf,EAAME,QAAQU,cACtBW,SAAU,SAEP,SAEF,eAACyb,GAAA,EAAW,WACZ,cAACR,GAAA,EAAW,CAACpd,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,SAC9D,sBAAMpF,MAAO,CAAEqB,MAAO,SAAU,kCAElC,eAACqb,GAAA,EAAa,wHAE0B,IACtC,mBACEjE,IAAI,sBACJC,KAAK,yDACLV,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,kBAItD,cAACmH,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAKohE,EAAmBphE,EAAM2R,OAAO7O,MAAM,EACzD9H,MAAM,UACN2H,YAAY,OACZhJ,MAAO,CAAE+H,UAAW,IACpBW,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXoI,OAAO,QACPhB,WAAS,EACTM,aAAcy+D,OAGlB,eAAC1qD,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPshE,EAAmB,IACnBjkB,IAA+B,EACjC,EACAniD,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvB+Z,SAAqC,IAA3B6sD,EAAgBx8D,OAChClD,QAAQ,YACF3B,QAAS,WACPmB,QAAQC,IAAI,cAAeigE,QAEQzjE,IAAjC0Z,GAAS8d,qBACwB,OAAjC9d,GAAS8d,sBAET9d,GAAS8d,oBAAsB,IAIjC,IAAMiC,EAAQ/f,GAAS8d,oBAAoBra,WACzC,SAACrhB,GAAI,OAAKA,EAAK4F,OAAS+hE,CAAe,KAG1B,IAAXhqC,EACEgqC,EAAgBx8D,OAAS,IAC3ByS,GAAS8d,oBAAoBiC,GAAO/3B,KAAO+hE,GAG7C/pD,GAAS8d,oBAAoBpuB,KAAK,CAChC1H,KAAM+hE,EACN1yD,YAAa,wBACb3L,MAAO,GACP9J,GAAIinB,gBAIRk9B,IAA+B,GAC/BikB,EAAmB,IACnBz8C,GAAYvN,GACd,EACApc,MAAM,UAAS,uBAKlB8c,GAAmBnT,OAAS,EAC3B,eAAC0R,GAAA,EAAa,WACZ,cAAC1D,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,QACjB4G,UAAW,GACXuJ,aAAc,MAGlB,mBAAGtR,MAAO,CAAEsR,aAAc,IAAK,2CAC9B6M,GAAmB5e,MAAM,EAAG,GAAGd,KAAI,SAACwqD,EAAWjkD,GAC9C,QACoCjB,IAAlCklD,EAAU1tB,qBACwB,OAAlC0tB,EAAU1tB,qBACwB,IAAlC0tB,EAAU1tB,oBAEV,OAAO,KAGT,IAAM5a,EAAWsoC,EAAU1tB,oBAAoBrjB,MAC7C,SAACrY,GAAI,OAAKA,EAAK4F,OAAS+hE,CAAe,IAEzC,YAAiBzjE,IAAb4c,QAA6C5c,IAAnB4c,EAASxX,MAC9B,KAIP,gCACGnE,EAAQ,EAAC,KAAI2b,EAASxX,QAG7B,OAEA,UA5IH,IAgJT,EAEOu+D,GAAiB,SAAC9kE,GACxB,IAAQygD,EAAkCzgD,EAAlCygD,gBAAiBD,EAAiBxgD,EAAjBwgD,aAEzB,EAA8Cl/C,IAAMC,cAA+BJ,IAAtBq/C,EAAa39C,KAAqB29C,EAAa39C,KAAO,IAAG,mBAA/G+hE,EAAe,KAAEC,EAAkB,KAC1C,EAA4DvjE,IAAMC,cAAsCJ,IAA7Bq/C,EAAatuC,YAA4BsuC,EAAatuC,YAAc,IAAG,mBAA3I6yD,EAAsB,KAAEC,EAAyB,KACxD,EAAgD1jE,IAAMC,cAAgCJ,IAAvBq/C,EAAaj6C,MAAsBi6C,EAAaj6C,MAAQ,IAAG,mBAAnH0+D,EAAgB,KAAEC,EAAmB,KAE5C,OAAKxkB,GAKF,cAACjnC,GAAA,EAAM,CACR1S,eAAgBA,EAChB,kBAAgB,yBAChB8iB,cAAc,EACdC,qBAAqB,EACrBC,sBAAsB,EACtB3sB,MAAO,CAAE4sB,cAAe,QACrBtQ,KAAMgnC,GACN/mC,QAAS,WACPkrD,EAAmB,IACnBG,EAA0B,IAC1BE,EAAoB,IACpBpxB,IAAsB,EACxB,EACAl6B,WAAY,CACVxc,MAAO,CACL4sB,cAAe,OACfzrB,gBAAiBV,GACjBY,MAAO,QACZL,OAAQf,EAAME,QAAQU,cACtBW,SAAUyB,WAAWklD,GAAU,IAAM,SAElC,SAEF,eAAClrC,GAAA,EAAW,WACV,cAACR,GAAA,EAAW,CAACpd,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,SAChE,sBAAMpF,MAAO,CAAEqB,MAAO,SAAU,iCAElC,eAACqb,GAAA,EAAa,WACZ,cAAClU,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAKohE,EAAmBphE,EAAM2R,OAAO7O,MAAM,EACzD9H,MAAM,UACN2H,YAAY,OACZN,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXoI,OAAO,QACPhB,WAAS,EACTM,aAAcy+D,IAEhB,cAACh/D,EAAA,EAAS,CACRoZ,OAAQ,SAACvb,GAAK,OAAKuhE,EAA0BvhE,EAAM2R,OAAO7O,MAAM,EAChE9H,MAAM,UACN2H,YAAY,cACZS,OAAO,QACPhB,WAAS,EACTC,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGX0H,aAAc4+D,IAEhB,cAACn/D,EAAA,EAAS,CACRS,SAAU,SAAC5C,GAAK,OAAKyhE,EAAoBzhE,EAAM2R,OAAO7O,MAAM,EAC5DyzB,KAAK,IACLjB,WAAS,EACTt6B,MAAM,UACN2H,YAAY,QACZS,OAAO,QACPf,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXoH,WAAS,EACTM,aAAc8+D,OAGlB,eAAC/qD,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPshE,EAAmB,IACnBG,EAA0B,IAC1BE,EAAoB,IACpBpxB,IAAsB,EACxB,EACAr1C,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvB+Z,SAC6B,IAA3B6sD,EAAgBx8D,QAA4C,IAA5B68D,EAAiB78D,OAEnDlD,QAAS,YACT3B,QAAS,WACd,IAAIk2D,GAAU,EAuBd,QArByCt4D,IAAhC0Z,GAASiD,oBACuB,OAAhCjD,GAASiD,mBAETjD,GAASiD,mBAAqB,QAEX3c,IAAvBq/C,EAAap+C,OAA8C,OAAvBo+C,EAAap+C,OAAkBo+C,EAAap+C,OAAS,IACxFwiE,EAAgBx8D,OAAS,IAC5ByS,GAASiD,mBAAmB0iC,EAAap+C,OAAOS,KAAO+hE,GAEpDG,EAAuB38D,OAAS,IACnCyS,GAASiD,mBAAmB0iC,EAAap+C,OAAO8P,YAC/C6yD,GAEEE,EAAiB78D,OAAS,IAC7ByS,GAASiD,mBAAmB0iC,EAAap+C,OAAOmE,MAAQ0+D,GAGzDxL,GAAU,IAIPA,EAAS,CAEN,IAAM7+B,EAAQ/f,GAASiD,mBAAmBQ,WACxC,SAACrhB,GAAI,OAAKA,EAAK4F,OAAS+hE,CAAe,KAE1B,IAAXhqC,GACEgqC,EAAgBx8D,OAAS,IAC3ByS,GAASiD,mBAAmB8c,GAAO/3B,KAAO+hE,GAExCG,EAAuB38D,OAAS,IAClCyS,GAASiD,mBAAmB8c,GAAO1oB,YACjC6yD,GAEAE,EAAiB78D,OAAS,IAC5ByS,GAASiD,mBAAmB8c,GAAOr0B,MAAQ0+D,IAG7CpqD,GAASiD,mBAAmBvT,KAAK,CAC/B1H,KAAM+hE,EACN1yD,YAAa6yD,EACbx+D,MAAO0+D,EACPxoE,GAAIinB,eAGhB,CAEA+8B,EAAgB,CAAC,GACVr4B,GAAYvN,IACZi5B,IAAsB,GACtB+wB,EAAmB,IACnBG,EAA0B,IAC1BE,EAAoB,GACtB,EACAzmE,MAAM,UAAS,4BAvJlB,IA+JT,EAEO8mB,GAAqB,SAACvlB,GAC1B,IAAMoL,EAAcpL,EAAMsP,IAE1B,EAAyDhO,IAAMC,SAAS,CACtE+N,IAAKe,KAAKC,MAAMD,KAAKS,UAAU1F,IAC/BmY,OAAQ,CAAC,EACT3f,MAAO,GACP4f,MAAO,CACL,CACEC,YAAa5I,GAASpe,KAG1BA,GAAIinB,cACJ/F,QAAQ,IACR,mBAXKgG,EAAoB,KAAE6B,EAAwB,KAarD,QACiCrkB,IAA/BiK,EAAYkS,gBAC8B,OAA1ClS,EAAYkS,eAAe9G,iBACerV,IAA1CiK,EAAYkS,eAAe9G,YACsB,IAAjDpL,EAAYkS,eAAe9G,WAAWpO,OAEtC,OACE,cAAC0R,GAAA,EAAa,CAAC1c,MAAO,CAAEmF,UAAW,SAAU4C,UAAW,IAAK,SAC3D,eAACF,EAAA,EAAU,CAACC,QAAQ,KAAKzI,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,UAC3E4I,EAAYvI,KAAI,wCAQzB,IAAK,IAAIgH,KAFT8Z,EAAqBrU,IAAIK,QAAU,GAEnBvE,EAAYkS,eAAe9G,gBAIjCrV,IAFNwiB,EAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,QAG7C8gB,EAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACzC,IAqFR,OANiC,OAA/B8gB,EAAqB/f,YACUzC,IAA/BwiB,EAAqB/f,QAErB+f,EAAqB/f,MAAQwH,EAAYvI,KAAO,mBAIhD,gCACC,cAACgX,GAAA,EAAW,CAACpd,GAAG,yBAAyBW,MAAO,CAACoF,OAAQ,QAAS,SAC/D,sBAAKpF,MAAO,CAAEqB,MAAO,SAAU,gCACT2M,EAAYvI,UAGpC,eAACiX,GAAA,EAAa,WACZ,mBACE1E,OAAO,SACPS,IAAI,sBACJC,KAAK,+CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,yCAItD,wBAAO,qDAC4C2M,EAAYvI,KAC/D,qBAAKzF,MAAO,CAAE+H,UAAW,MACzB,8DACA,cAACS,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTpH,MAAM,UACN2H,YAAa,iBACbD,aAAY,mBAAciF,EAAYvI,MACtCwD,SAAU,SAAC5C,GACTkgB,EAAqB/f,MAAQH,EAAM2R,OAAO7O,KAC5C,IAEF,cAAC6P,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiB,sBAGrB,wBACC6M,EAAYkS,eAAe9G,WAAW3a,KAAI,SAACoB,EAAMmF,GAChD,OACE,sBAAiBhF,MAAO,CAAE+H,UAAW,IAAK,UACxC,cAAC0R,GAAA,EAAY,CAACzZ,MAAO,CAAE0L,YAAa,MACpC,4BAAI7L,EAAK4F,YAEQ1B,IAAhBlE,EAAK6nB,QACU,OAAhB7nB,EAAK6nB,QACgB,SAArB7nB,EAAK6nB,OAAOlnB,KACV,eAACuX,GAAA,EAAM,CACfwM,UAAW,CACVmE,mBAAmB,GAEVlQ,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhBwH,aAAc,QACdN,WAAS,EACTQ,SAAU,SAAChK,GACTqI,QAAQC,IAAI,UAAWtI,EAAE+Y,OAAO7O,OAChCod,EAAqBJ,OAAOtmB,EAAK4F,MAAQxG,EAAE+Y,OAAO7O,KACpD,EACAnJ,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPsH,OAAQ,IACR,UAEF,cAAC4O,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,QAAQ,kBALV,SASP,cAACoO,GAAA,EAAQ,CAEPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,OAAO,iBALT,WAWT,cAACX,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBT,GACjBE,aAAcX,EAAME,QAAQS,cAE9B8H,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPE,WAAY,MACZC,SAAU,MACVmH,OAAQ,GACRlH,SAAU,QAGdgH,WAAS,EACTjI,UACmBuD,IAAjBlE,EAAKsX,SAAyBtX,EAAKsX,QAAQhL,SAAS,OAChD,WACA,OAEN9K,MAAM,UACN0H,kBACiBhF,IAAflE,EAAKsJ,OAAsC,OAAftJ,EAAKsJ,MAC7BtJ,EAAKsJ,MACL,GAENH,YAAanJ,EAAKsX,QAClBlO,SAAU,SAAC5C,GACTkgB,EAAqBJ,OAAOtmB,EAAK4F,MAC/BY,EAAM2R,OAAO7O,KACjB,MAhFInE,EAqFd,OAEF,eAAC8X,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPwX,IAA2B,EAC7B,EACAtc,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPiiB,EAAyB7B,GAzOT,WAOxB,IAAK,IAAI9Z,KANiC,IAAtC8Z,EAAqB/f,MAAMwE,SAC7Bub,EAAqB/f,MAAK,mBAAewH,EAAYvI,OAKvCuI,EAAYkS,eAAe9G,WACzC,GAGe,IAFbmN,EAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MAC3CuF,OAEF,QACuDjH,IAArDiK,EAAYkS,eAAe9G,WAAW3M,GAAKtD,OACU,OAArD6E,EAAYkS,eAAe9G,WAAW3M,GAAKtD,OAC3C6E,EAAYkS,eAAe9G,WAAW3M,GAAKtD,MAAM6B,OAAS,EAE1Dub,EAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACzCuI,EAAYkS,eAAe9G,WAAW3M,GAAKtD,UAC1C,CACL,GAC6D,SAA3D6E,EAAYkS,eAAe9G,WAAW3M,GAAKib,OAAOlnB,KAWlD,YALAoN,EAAM+E,KACJ,SACE3E,EAAYkS,eAAe9G,WAAW3M,GAAKhH,KAC3C,mBAPJ8gB,EAAqBJ,OACnBnY,EAAYkS,eAAe9G,WAAW3M,GAAKhH,MACzC,OASR,CAIJ6B,QAAQC,IAAI,WAAYsH,IACxBA,GAAeoR,kBAAoBsG,EAAqBlnB,GACxDwP,GAAeyZ,uBAAyB/B,OAEJxiB,IAAlC8K,GAAeqR,gBACmB,OAAlCrR,GAAeqR,eAEfrR,GAAeqR,eAAiB,CAACqG,GAEjC1X,GAAeqR,eAAe/S,KAAKoZ,GAGrCzX,GAAkBD,IAElB,IAAI2Z,EAAgBvV,KAAKC,MAAMD,KAAKS,UAAU6S,IAC1CkC,EAAY,GAChB,IAAK,IAAMhc,KAAO+b,EAAcrC,OAAQ,CACtC,IAAMhd,EAAQqf,EAAcrC,OAAO1Z,GACnCgc,EAAUtb,KAAK,CACbV,IAAKA,EACLtD,MAAOA,GAEX,CAEAqf,EAAcrC,OAASsC,EACvB1D,GAAcyD,GAEVsC,IACFhc,GAAkB,CAAC,GAGrB6b,GAAUpE,EAAqBlnB,GACjC,CAkKUgpB,EACF,EACAhnB,MAAM,UAAS,yBAOzB,EAEMytB,GACJhE,IAA8C,IAAhB1c,GAAKpD,OACjC,eAACqR,GAAA,EAAM,CACLC,KAAMwO,GACNtO,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IAChB5G,OAAQf,EAAME,QAAQU,gBAElB,UAEF,cAAC8X,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACPlX,MAAO,SAET8E,QAAS,WACPyX,IAA8B,EAChC,EAAE,SAEF,cAAC0L,GAAA,EAAS,MAEZ,cAAC,GAAiB,CACrB9lB,SAAUA,EACLoK,MAAOA,EACP3N,MAAOA,EACPge,sBAAuBA,GACvB/a,UAAWA,EACXua,SAAUA,GACV3O,kBAAmBA,GACnBb,eAAgBA,GAChB0P,2BAA4BA,GAC5BD,kBAAmBA,GACnB7O,eAAgBA,GAChBT,KAAMA,GACNwP,8BAA+BA,GAC/BC,aAAcA,GACdC,WAAYA,GACZC,eAAgBA,GAChBC,aAAcA,EACnBG,mBAAoBA,GACnBC,qBAAsBA,GAClB3a,QAASA,QAGX,KAGA+oB,GAAsBtB,GAC1B,eAAC7O,GAAA,EAAM,CACL1S,eAAgBA,EACnB,kBAAgB,yBACb8iB,cAAc,EACdC,qBAAqB,EACxBC,sBAAsB,EACnB3sB,MAAO,CAAE4sB,cAAe,QACxBtQ,KAAM4O,GACN3O,QAAS,WAGP,EAEFC,WAAY,CACVxc,MAAO,CACV4sB,cAAe,OACVzrB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,KACVtG,UAAW,IACXuD,UAAW,IACX5D,QAAS,GACTqE,SAAU,SACVyE,OAAQ,MACb/I,OAAQf,EAAME,QAAQU,gBAEnB,UAEF,qBACEb,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACP5P,OAAQ,GACRpD,MAAO,IACP,cAE8BxB,IAA/BiK,GAAY6e,gBACkB,OAA/B7e,GAAY6e,qBAC8B9oB,IAA1CiK,GAAY6e,eAAeC,YACe,OAA1C9e,GAAY6e,eAAeC,YACsB,IAAjD9e,GAAY6e,eAAeC,WAAW9hB,OACpC,mBACEyN,IAAI,sBACJT,OAAO,SACPU,KAAM,yCACN1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,qBACEoG,IAAG,kCAA6BuG,GAAYvI,MAC5CiC,IAAKsG,GAAY0G,YACjB1U,MAAO,CACLuF,MAAO,GACPoD,OAAQ,GACR3H,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BiE,UAAW,GACXrD,SAAU,GACV8D,SAAU,SACV7D,SAAU,OAKhB,mBACEgX,IAAI,sBACJT,OAAO,SACPU,KAAM1K,GAAY6e,eAAeC,WACjC9sB,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,qBACEoG,IAAG,kCAA6BuG,GAAYvI,MAC5CiC,IAAKsG,GAAY0G,YACjB1U,MAAO,CACLuF,MAAO,GACPoD,OAAQ,GACR3H,OAAQ,kCACRJ,aAAcX,EAAME,QAAQS,aAC5BY,SAAU,GACVqD,UAAW,GACXS,SAAU,SACV7D,SAAU,SAMpB,cAACkX,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,IACR1E,SAAU,WACViT,IAAK,GACLC,MAAO,GACPlX,MAAO,QAET8E,QAAS,WACPwX,IAA2B,GACvBmN,IACFhc,GAAkB,CAAC,EAEvB,EAAE,SAEF,cAACwa,GAAA,EAAS,MAEZ,sBAAKtpB,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,OAAQ,UACpD,qBACEnV,MAAO,CACLiV,KAAM,EACNhU,QAAS,EACTK,UAAW2B,WAAW,MAAQ,IAC9B4B,UAAW5B,WAAW,MAAQ,IAC9B6B,UAAW,OACXC,UAAW9B,WAAW,OAAS,UAC/B,SAE2B,WAA5B4hB,GAAmBrkB,KAClB,cAAC,GAAoB,CACnBqd,aAAcA,GACd7P,YAAaA,GACbyP,SAAUA,GACV5O,eAAgBA,GAChBgW,mBAAoBA,GACpBC,qBAAsBA,GACtBpH,kBAAmBA,GACnB5O,kBAAmBA,GACnBiW,cAAeA,GACfpH,2BAA4BA,GACnCla,QAASA,KAGJ,cAAC0kB,GAAkB,CAACjW,IAAKlE,OAG7B,qBACEhO,MAAO,CACLiV,KAAM,EACN+X,WAAW,aAAD,OAAetsB,IACzBO,QAAS,sBACT4D,UAAW,IACXvD,UAAW,IACXwD,UAAW,OACXC,UAAW,UACX,cAE6BhB,IAA9BiK,GAAYif,eACiB,OAA9Bjf,GAAYif,eACyB,IAArCjf,GAAYif,cAAcjiB,OACxB,uBAAMhL,MAAO,CAAEmF,UAAW,UAAW,UACnC,cAAC0C,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEuB,WAAY,GAAImK,YAAa,IAAK,SAE1CsC,GAAY8G,cAEf,cAACkE,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBT,MAGrB,cAACmH,EAAA,EAAU,CAACC,QAAQ,KAAI,kFAIxB,eAACD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,qDACV,IACzC,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAK,6BACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,+CAMxD,cAACwG,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAAE+H,UAAW,IAAK,yDAGlBhE,IAA/BiK,GAAY6e,gBACkB,OAA/B7e,GAAY6e,qBAC8B9oB,IAA1CiK,GAAY6e,eAAeC,YACe,OAA1C9e,GAAY6e,eAAeC,YACsB,IAAjD9e,GAAY6e,eAAeC,WAAW9hB,OACpC,+BACE,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,SACnD,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAM,yCACN1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,yCAO1D,+BACE,cAACwG,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,IAAK,SACnD,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAM1K,GAAY6e,eAAeC,WACjC9sB,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,4CAS9D,cAAC,KAAa,CACZhC,GAAG,mBACH0oE,YAAY,EACZp8C,OAAQ3d,GAAYif,cACpB+6C,UAAW,CACTh0D,KAhtcd,SAAmBpR,GACjB,OAAIA,EAAM8V,KAAKvM,SAAS,SAAWvJ,EAAM8V,KAAKvM,SAAS,UAEnD,mBACEuM,KAAM9V,EAAM8V,KACZ1Y,MAAO,CAAEqB,MAAO,UAAWkV,eAAgB,QAAS,SAEnD3T,EAAMuH,WAKX,cAAC,IAAI,CACHmM,GAAI1T,EAAM8V,KACV1Y,MAAO,CAAEqB,MAAO,UAAWkV,eAAgB,QAAS,SAEnD3T,EAAMuH,UAGb,EA8rccmkB,MA5rcd,SAAa1rB,GACX,OAAO,qBAAK5C,MAAO,CAAEwB,SAAU,QAAUiG,IAAK7E,EAAM6E,IAAKC,IAAK9E,EAAM8E,KACtE,EA2rccvI,KAzrcd,SAAqByD,GACnB,OACE,qBACE5C,MAAO,CACLiB,QAAS,GACT2G,SAAU,MACVpG,SAAU,OACVL,gBAAiBlB,EAAME,QAAQO,WAC/BqE,UAAW,OACXD,UAAW,UACX,SAEF,+BAAOlC,EAAMuG,SAGnB,EA2qcc8+D,QAzqcd,SAAiBrlE,GACf,IAAMslE,EAAUhkE,IAAM+P,cAAc,IAAD,OAC7BrR,EAAMulE,OACV,CAAEnoE,MAAO,CAAE+H,UAAW,KACtBnF,EAAMuH,UAER,OACE,eAACtC,EAAA,EAAU,WACQ,IAAhBjF,EAAMulE,MACL,cAACnvD,GAAA,EAAO,CACNhZ,MAAO,CACLuF,MAAO,MACPwC,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQO,cAGjC,KACHwnE,IAGP,aA4pcI,KAEEj7B,GACJt/B,GAAY2yB,GACV,gCACGomC,GACD,cAACgB,GAAc,CAACtkB,aAAcA,GAAcC,gBAAiBA,KAC7D,cAACkkB,GAAsB,CAACnkB,aAAcA,GAAcC,gBAAiBA,KACpE2Z,GACAxwC,GACA+5C,GACAz3C,GACJw4C,IAE0B,IAA1BngB,GACA,cAAC,GAAY,CACZ1pC,SAAUA,GACVuN,YAAaA,GACbmP,UAAWgtB,GACX/sB,aAAcgtB,GACd9sB,WAAW,EACX92B,SAAUA,EACV2oB,SAAUA,KAEV,UAEapoB,IAAdmjD,IAA2BA,GAAUl8C,OAAS,EAC9C,sBAAKhL,MAAO,CAACY,aAAcX,EAAME,QAAQS,aAAcmJ,OAAQ,MAAO1E,SAAU,QAAS8jB,KAAM,GAAI2Q,OAAQ,IAAKv0B,MAAO,KAAM,UACzH,cAACoT,GAAA,EAAU,CACT3Y,MAAO,CACL+J,OAAQ,MACR1E,SAAU,WACViT,IAAK,EACLC,MAAO,EACPlX,MAAO,SAET8E,QAAS,WACPwxC,GAAa,GACf,EAAE,SAEF,cAACruB,GAAA,EAAS,MAEf,wBACC5hB,IAAKw/C,GACLyc,YAAa,QACbC,sBAAuB,OACvBC,oBAAoB,EACpBC,iBAAiB,EACjB9jE,MAAO,CACN,IAAO,EACP,KAAQ,EACR,SAAY,IACZ,SAAY,UAId,KAEE,cAACwI,EAAA,EAAS,CACRnJ,GAAG,uBACH8J,MAAO+3C,EACPlhD,MAAO,CAAEwH,QAAS,aAItB,wBAIJ,QACmBzD,IAAjBszC,SACoBtzC,IAApBuzC,IACsD,IAAtD53C,OAAO05B,oBAAoBvqB,IAAgB7D,OAC3C,CACA,IAAMo9D,GAAsBh3D,SAASsE,eAAe,0BACxB3R,IAAxBqkE,IAA6D,OAAxBA,KAEhB,IAArB/wB,GAAa/+B,UACQvU,IAArBszC,GAAa/+B,KACQ,IAArB++B,GAAa/+B,IAEbqE,YAAW,WACT,QAC4B5Y,IAA1BszC,GAAatvB,UACa,OAA1BsvB,GAAatvB,SACb,CACA,IAAMsgD,EAAgBj3D,SAASsE,eAC7B2hC,GAAatvB,eAEOhkB,IAAlBskE,GAAiD,OAAlBA,GACjCA,EAAc56B,OAElB,CACF,GAAG,GAEC26B,GAAoBE,YAAcjxB,GAAa/+B,KACjDg/B,GAAgB,CACdh/B,IAAK8vD,GAAoBE,UACzBn/C,KAAM,EACNpB,SAAU,KAKpB,CAEA,OACE,8BAIGklB,IA1gUH,CArCE9+B,GAAgB,GAChB0+C,GAAYjqD,EAAM6vC,MAAMvI,OAAOz9B,IAAK,CAAC,GACrCwE,KAjCFM,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,+BAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,UAChBvL,QAAQC,IAAI,aAAc4kB,IAC1BmW,GAAYxwB,GAGd,IACCU,OAAM,SAACC,GAEPnL,QAAQC,IAAI,2BAA6BkL,EAAMpG,WAChD,IAWI,IAAM6D,GACc,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SACpC,GACAD,OAAOC,SAAS+V,OAGnB4uD,GAAU,IAAIxf,gBAAgB74C,IAAW84C,IAAI,uBAChD,QACcjlD,IAAZwkE,IACY,OAAZA,IACY,eAAZA,GACA,CACA5hB,IAAsB,GACtB,IAAMl7B,GAAU40B,GAAY,sBAAuBnwC,IACvDpC,EAASw2C,GAAU74B,GAEpB,CAEG,IAAM+Z,GAAU,IAAIujB,gBAAgB74C,IAAW84C,IAAI,QACnD,QACcjlD,IAAZyhC,IACY,OAAZA,IACY,eAAZA,GACA,CACAmhB,IAAsB,GAEtB,IAAMl7B,GAAU40B,GAAY,OAAQnwC,IACxCpC,EAASw2C,GAAU74B,GAGjB,CA+gUN,E,mIEn0dMhpB,IAJS,IACdtB,gBAAiB,UAAWwH,OAAQ,GAAI+C,YAAa,EAAGC,YAAa,EAAGC,aAAc,GAAC,wBAAU,IAAE,wBAAU,WAAS,6BAAe,WAAS,uBAAS,SAGnIlJ,KAAc,aAAc,qCAkmBlC8lE,GAjmBK,SAAA5lE,GACnB,IAAQ6lE,EAAyB7lE,EAAzB6lE,WAAYjlE,EAAaZ,EAAbY,SAEdvD,EAAQgE,cACV6J,EAAWC,cAETkmB,EAAO3pB,mBACb,EAAoCnG,oBAAS,GAAM,mBAA5CukE,EAAU,KAAEC,EAAa,KAChC,EAA8BxkE,mBAAS,IAAG,mBAAnCykE,EAAO,KAAEC,EAAU,KAE1B,IAAmB,IAAfJ,EACH,OAAO,KAGR,QAAe1kE,IAAXJ,aAA4CI,IAApBJ,OAAOC,UAAuD,YAA7BD,OAAOC,SAASgP,SAC5E,OAAO,KAGP,IAAMnP,EAAmC,mBAAzBE,OAAOC,SAASC,MAAsD,gBAAzBF,OAAOC,SAASC,KAE1EF,OAAOC,SAASgP,WAAag2D,IAChCD,GAAc,GACdE,EAAWllE,OAAOC,SAASgP,WAU5B,IAuiBM5K,EAAkBC,aAviBN,SAAH,GAAyD,IAApDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAc9C,OACE,sBAAM/I,GAAG,cAAciJ,YAAU,EAAC9H,KAAK,YAAY+F,OAAO,GAAGgC,KAAK,SAASvI,MAAO,CAACyJ,OAAQ,GAAMtD,QAAS,WAC3G,EAAE,SACD,cAACqC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aA9ClC,EA8C8D6I,OAAQ,GAAIlE,MAAO,QAClGmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,GACRc,OAAQ,GAETb,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,KAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN2H,YAAY,sDACZG,MAAOjB,EACP7I,GAAG,uBACH8G,QAAS,SAACE,GACJqiE,IACJC,GAAc,GACdhsD,YAAW,WACKvL,SAASsE,eAAe,wBAE9B+3B,OACV,GAAG,KAEL,EACA7rB,OAAQ,SAACvb,GACRsW,YAAW,WACVgsD,GAAc,EACf,GAAG,IACJ,EACA1/D,SAAU,SAAC5C,GAKV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAKX,IAseMsxD,EAAgBpxD,aArUN,SAAH,GAAkB,IAAD,EAAXhF,EAAI,EAAJA,KAClB,EAA8CH,mBAAS,GAAE,mBAAlDI,EAAe,KAAEC,EAAkB,KAG1C,IAAKkkE,EACJ,OAAO,KAGR,IAAM/N,EAAevpD,SAASwpD,cAAcC,wBAQxCv2D,EAAK0G,OAAS,IACjB1G,EAAOA,EAAK/E,MAAM,EAAG,IAGtB,IACMu7D,EAAY,cAACC,GAAA,EAAgB,IAEnC,OACC,eAAC+N,GAAA,EAAI,CAAC9iE,UAAW,EAAGhG,OAAK,GAAGqF,SAAU,WAAY9D,WAAY,GAAImK,YAAa,IAAE,yBAAY,YAAU,sBAAS,SAAO,uBAAU,MAAI,gCAAmBzL,EAAME,QAAQO,YAAU,sBAAS,MAAI,uBAAU,KAAG,sBAAS,KAAG,2BAAc,QAAM,GAAG,UAC5O,cAACiY,GAAA,EAAU,CAAC3Y,MAAO,CAAC+J,OAAQ,IAAM1E,SAAU,WAAYkT,MAAO,GAAIlX,MAAO,QAAS8E,QAAS,WAC3FwiE,GAAc,EACf,EAAE,SACD,cAACr/C,GAAA,EAAS,MAEX,cAACzhB,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACyJ,OAAQ,sBAAwB,kBAIjE,cAAC2a,EAAA,EAAI,CAACpkB,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,YAAc,SACzC,IAAhB4D,EAAK0G,OACL,eAACsW,EAAA,EAAQ,CAACthB,MA3Ba,CAC1BuF,MAAO,OACPR,UAAW,SACXD,UAAW,SACXo4B,aAAc,mCAuByB,UACnC,cAAC3b,EAAA,EAAc,CAACpb,QAAS,kBAAMmB,QAAQC,IAAIjD,EAAK,EAAC,SAChD,cAACkd,EAAA,EAAM,UACN,cAACw5C,GAAA,EAAU,QAGb,cAACv5C,EAAA,EAAY,CACZrhB,QAAS,iBACTE,UAAW,iCAIbgE,EAAK7F,KAAI,SAACw8D,EAAKj2D,GACd,IAAMk2D,EAAqB,CAC1B31D,MAAOo1D,EAAap1D,MAAM,GAC1BR,UAAW,SACXD,UAAW,SACXo4B,aAAc,kCACd/7B,gBAAiBoD,IAAoBS,EAAQ,UAAY,UACzDI,OAAQ,UACR7D,WAAY,EACZmK,YAAa,EACb7G,UAAW,GACXvD,UAAW,GACXE,SAAU,IACVoG,SAAU,QAGLnC,OAAoB1B,IAAbk3D,EAAIx1D,KAChBw1D,EAAIE,SAASx1D,OAAO,GAAGC,cAAgBq1D,EAAIE,SAAS57D,MAAM,GAAGuG,WAAW,IAAK,KAAO,MAAQm1D,EAAI72D,OAC/F62D,EAAIx1D,KAAKE,OAAO,GAAGC,cAAcq1D,EAAIx1D,KAAKlG,MAAM,IAAIuG,WAAW,IAAK,KAElEs1D,OAA6Br3D,IAAbk3D,EAAIp7D,KAAqBo7D,EAAIp7D,KAAKN,MAAM,EAAG,IAAI,MAAQ,GACrE87D,OAA2Bt3D,IAAlBk3D,EAAItzD,UAClBmzD,EAEA,cAACt5C,EAAA,EAAM,CACN9Z,IAAKuzD,EAAItzD,UACTG,QAAQ,iBAIa/D,IAAnBk3D,EAAIZ,YAA+C,OAAnBY,EAAIZ,YAAuBY,EAAIZ,WAAWrvD,OAAS,IACtFowD,EAAgBH,EAAIZ,WAAW96D,MAAM,EAAE,GAAGd,KAAI,SAACoB,EAAMmF,GACpD,OAAc,IAAVA,EACInF,EAGD,KAAKA,CAcb,KAGD,IAAIkpE,EAAYtlE,EAAO,gBAAYw3D,EAAI/1D,UAAQ,mCAAiC+1D,EAAI/1D,UAGpF,OAFA6jE,GAAS,mBAAgB9N,EAAIK,WAG5B,cAAC,IAAI,CAAoBhlD,GAAI,CAAE1D,SAAUm2D,GAAa/oE,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAW8E,QAAS,SAACE,GACjHiB,QAAQC,IAAI,SACZohE,GAAc,GAEdliE,IAAG,OAAQ,CACTC,MAAOjE,GAAaiE,MACpBC,OAAQlE,GAAamE,YAAYoiE,gBAAgB,uBAGnD,IAAMliE,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,QACXC,UAAW,cACXlC,MAAO,YACPmC,UAAW,CAAC8zD,EAAI/1D,UAChB4B,UAAWA,EACXM,QAAS6zD,EAAIK,UACb2N,UAAW,CAAChO,EAAIiO,YAChB7hE,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,MAIhHoE,IACJ4C,EAAMsE,iBACNhH,OAAO2Y,KAAKysD,EAAW,UAEzB,EAAE,SACD,eAACznD,EAAA,EAAQ,CAAoBthB,MAAOk7D,EAAoBj1D,YAAa,WACpEzB,EAAmBQ,EACpB,EAAE,UACD,cAACuc,EAAA,EAAc,UACb85C,IAEF,cAAC55C,EAAA,EAAY,CACZrhB,QAASqF,EACTnF,UAAW86D,MAREH,EAAI/1D,WA5BT+1D,EAAI/1D,SA+ChB,MAGH,sBAAMlF,MAAO,CAACwH,QAAS,OAAQrC,UAAW,OAAQ0T,MAAO,OAAQxT,SAAU,WAAY8jB,KAAM,GAAI2Q,OAAQ,IAAM,SAC9G,cAAC,IAAI,CAACxjB,GAAG,UAAUtW,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAW,SACpE,cAACwG,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC,EAAE,4BAO3C,IAkKMmpE,EAAqB7/D,aAreN,SAAH,GAAkB,IAAD,EAAXhF,EAAI,EAAJA,KACvB,EAA8CH,mBAAS,GAAE,mBAAlDI,EAAe,KAAEC,EAAkB,KAG1C,IAAKkkE,EACJ,OAAO,KAIR,IAAM/N,EAAevpD,SAASwpD,cAAcC,wBAQxCv2D,EAAK0G,OAAS,IACjB1G,EAAOA,EAAK/E,MAAM,EAAG,IAGtB,IACMu7D,EAAY,cAACyG,GAAA,EAAW,IAE9B,OACC,eAACuH,GAAA,EAAI,CAAC9iE,UAAW,EAAGhG,OAAK,GAAGqF,SAAU,WAAY9D,WAAY,GAAImK,YAAa,IAAE,yBAAY,YAAU,sBAAS,SAAO,uBAAU,MAAI,gCAAmBzL,EAAME,QAAQO,YAAU,sBAAS,KAAG,uBAAU,KAAG,qBAAQ,IAAE,2BAAc,QAAM,GAAG,UACzO,cAACmH,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACyJ,OAAQ,sBAAwB,uBAIjE,cAAC2a,EAAA,EAAI,CAACpkB,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,YAAc,SACzC,IAAhB4D,EAAK0G,OACL,eAACsW,EAAA,EAAQ,CAACthB,MAtBa,CAC1BuF,MAAO,OACPR,UAAW,SACXD,UAAW,SACXo4B,aAAc,mCAkByB,UACnC,cAAC3b,EAAA,EAAc,CAACpb,QAAS,kBAAMmB,QAAQC,IAAIjD,EAAK,EAAC,SAChD,cAACkd,EAAA,EAAM,UACN,cAACw5C,GAAA,EAAU,QAGb,cAACv5C,EAAA,EAAY,CACZrhB,QAAS,sBACTE,UAAW,iCAIbgE,EAAK7F,KAAI,SAACw8D,EAAKj2D,GACd,IAAMk2D,EAAqB,CAC1B31D,MAAOo1D,EAAap1D,MAAM,GAC1BR,UAAW,SACXD,UAAW,SACXo4B,aAAc,kCACd/7B,gBAAiBoD,IAAoBS,EAAQ,UAAY,UACzDI,OAAQ,UACR7D,WAAY,EACZmK,YAAa,EACb7G,UAAW,GACXvD,UAAW,GACXE,SAAU,IACVoG,SAAU,QAGLnC,OAAoB1B,IAAbk3D,EAAIx1D,KAChBw1D,EAAIE,SAASx1D,OAAO,GAAGC,cAAgBq1D,EAAIE,SAAS57D,MAAM,GAAGuG,WAAW,IAAK,KAAO,MAAQm1D,EAAI72D,OAC/F62D,EAAIx1D,KAAKE,OAAO,GAAGC,cAAcq1D,EAAIx1D,KAAKlG,MAAM,IAAIuG,WAAW,IAAK,KAEhE+hC,QADoC9jC,IAApBk3D,EAAInmD,aAAiD,OAApBmmD,EAAInmD,aAAwBmmD,EAAInmD,YAAY9J,OAAS,GAAIiwD,EAAInmD,YAAYvV,MAAM,EAAG,SAC9FwE,IAA1Bk3D,EAAImO,mBAA6D,OAA1BnO,EAAImO,kBAA6B,GAAKnO,EAAImO,mBAC5F/N,EAASP,EAEXiO,EAAYtlE,EAAO,qBAAiBw3D,EAAI/1D,UAAQ,wCAAsC+1D,EAAI/1D,UAI9F,OAHA6jE,GAAS,mBAAgB9N,EAAIK,WAI5B,cAAC,IAAI,CAAoBhlD,GAAI,CAAE1D,SAAUm2D,GAAatwD,IAAI,sBAAsBzY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAW8E,QAAS,SAACE,GAE3IsiE,GAAc,GAEdliE,IAAG,OAAQ,CACTC,MAAOjE,GAAaiE,MACpBC,OAAQlE,GAAamE,YAAYoiE,gBAAgB,uBAGnD,IAAMliE,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,QACXC,UAAW,mBACXlC,MAAO,YACPmC,UAAW,CAAC8zD,EAAI/1D,UAChB4B,UAAWA,EACXM,QAAS6zD,EAAIK,UACb2N,UAAW,CAAChO,EAAIiO,YAChB7hE,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,MAIhHoE,IACJ4C,EAAMsE,iBACNhH,OAAO2Y,KAAKysD,EAAW,UAEzB,EAAE,SACD,eAACznD,EAAA,EAAQ,CAAoBthB,MAAOk7D,EAAoBj1D,YAAa,WACpEzB,EAAmBQ,EACpB,EAAE,UACD,cAACuc,EAAA,EAAc,UACb85C,IAEF,sBAAKr7D,MAAO,CAAC,EAAE,UACd,cAACyhB,EAAA,EAAY,CACZrhB,QAASqF,IAEV,cAAC6jC,GAAA,EAAW,CAACC,IAAK,GAAIvpC,MAAO,CAACmV,cAAe,MAAOlU,QAAS,EAAGwI,OAAQ,EAAG4/D,UAAW,OAAQlkE,UAAW,QAAS,SAChH0iC,EAASppC,KAAI,SAACyT,EAAKlN,GAEnB,OACC,qBAEChF,MAAO,CACN2I,OAAQ,GACRpD,MAAO,GACPsU,OAAQ,kBACRzU,OAAQ,WAETe,QAAS,WACR2H,EAAS,SAASoE,EAAI7S,GACvB,EAAE,SAEF,cAACsW,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO8N,EAAIzM,KAAM+T,UAAU,SAAQ,SAC3D,cAACgI,EAAA,EAAM,CAAC/Z,IAAKyK,EAAIzM,KAAMiC,IAAKwK,EAAIvK,UAAW3H,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,SAZlE3D,EAgBR,WA/BYi2D,EAAI/1D,WA5BT+1D,EAAI/1D,SAuEhB,QAcN,IAyUMokE,EAAgBhgE,aAjKN,SAAH,GAAkB,IAAD,EAAXhF,EAAI,EAAJA,KAClB,EAA8CH,mBAAS,GAAE,mBAAlDI,EAAe,KAAEC,EAAkB,KAG1C,IAAKkkE,EACJ,OAAO,KAIR,IAAM/N,EAAevpD,SAASwpD,cAAcC,wBAQxCv2D,EAAK0G,OAAS,IACjB1G,EAAOA,EAAK/E,MAAM,EAAG,IAGtB,IACMu7D,EAAY,cAACC,GAAA,EAAgB,IAInC,OACC,eAAC+N,GAAA,EAAI,CAAC9iE,UAAW,EAAGhG,OAAK,GAAGqF,SAAU,WAAY9D,WAAY,GAAImK,YAAa,IAAE,yBAAY,YAAU,sBAAS,SAAO,uBAAU,MAAI,gCAAmBzL,EAAME,QAAQO,YAAU,sBAAS,KAAG,uBAAU,KAAG,qBAAQ,KAAG,2BAAc,QAAM,GAAG,UAC1O,cAACiY,GAAA,EAAU,CAAC3Y,MAAO,CAAC+J,OAAQ,IAAM1E,SAAU,WAAYkT,MAAO,GAAIlX,MAAO,QAAS8E,QAAS,WAC3FwiE,GAAc,EACf,EAAE,SACD,cAACr/C,GAAA,EAAS,MAEX,cAACzhB,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACyJ,OAAQ,sBAAwB,2BAUjE,cAAC2a,EAAA,EAAI,CAACpkB,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,YAAc,SACzC,IAAhB4D,EAAK0G,OACL,eAACsW,EAAA,EAAQ,CAACthB,MAnCa,CAC1BuF,MAAO,OACPR,UAAW,SACXD,UAAW,SACXo4B,aAAc,mCA+ByB,UACnC,cAAC3b,EAAA,EAAc,CAACpb,QAAS,kBAAMmB,QAAQC,IAAIjD,EAAK,EAAC,SAChD,cAACkd,EAAA,EAAM,UACN,cAACw5C,GAAA,EAAU,QAGb,cAACv5C,EAAA,EAAY,CACZrhB,QAAS,oBACTE,UAAW,iCAIdgE,EAAK7F,KAAI,SAACw8D,EAAKj2D,GACd,IAAMk2D,EAAqB,CAC1B31D,MAAOo1D,EAAap1D,MAAM,GAC1BR,UAAW,SACXD,UAAW,SACXo4B,aAAc,kCACd/7B,gBAAiBoD,IAAoBS,EAAQ,UAAY,UACzDI,OAAQ,UACR7D,WAAY,EACZmK,YAAa,EACb7G,UAAW,GACXvD,UAAW,GACXE,SAAU,IACVoG,SAAU,QAGPnC,OAAoB1B,IAAbk3D,EAAIx1D,KACdw1D,EAAIE,SAASx1D,OAAO,GAAGC,cAAgBq1D,EAAIE,SAAS57D,MAAM,GAAGuG,WAAW,IAAK,KAAO,MAAQm1D,EAAI72D,OAE/F62D,EAAIx1D,KAAKE,OAAO,GAAGC,cAAcq1D,EAAIx1D,KAAKlG,MAAM,IAAIuG,WAAW,IAAK,KAElEL,EAAKuF,OAAS,KACjBvF,EAAOA,EAAKlG,MAAM,EAAG,IAAI,OAE1B,IAAM67D,OAA6Br3D,IAAbk3D,EAAIp7D,KAAqBo7D,EAAIp7D,KAAKN,MAAM,EAAG,IAAI,MAAQ,GACvE87D,OAA2Bt3D,IAAlBk3D,EAAItzD,UAClBmzD,EAEA,cAACt5C,EAAA,EAAM,CACN9Z,IAAKuzD,EAAItzD,UACTG,QAAQ,YAGNihE,OAA4BhlE,IAAhBk3D,EAAIqF,QAAwBrF,EAAIqF,QAAU,GAE1D,IADAyI,GAAS,mBAAgB9N,EAAIK,YACfnvD,SAAS,UAAW,CACjC,IAAMo9D,OAA6BxlE,IAAjBk3D,EAAIuO,SAAyB,GAAE,WAAOvO,EAAIuO,UAE5DT,EAAS,gBAAY9N,EAAIE,SAAQ,6BAAqBF,EAAIK,WAAS,OAAGiO,EACvE,CAEA,OACC,cAAC,IAAI,CAAoBjzD,GAAIyyD,EAAW/oE,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAW8E,QAAS,SAACE,GACnGI,IAAG,OAAQ,CACTC,MAAOjE,GAAaiE,MACpBC,OAAQlE,GAAamE,YAAYoiE,gBAAgB,uBAGnD,IAAMliE,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,QACXC,UAAW,mBACXlC,MAAO,gBACPmC,UAAW,CAAC8zD,EAAI/1D,UAChB4B,UAAWA,EACXM,QAAS6zD,EAAIK,UACb2N,UAAW,CAAChO,EAAIiO,YAChB7hE,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,MAIrHiI,QAAQC,IAAI,SACZohE,GAAc,EACf,EAAE,SACD,eAACrnD,EAAA,EAAQ,CAAoBthB,MAAOk7D,EAAoBj1D,YAAa,WACpEzB,EAAmBQ,EACpB,EAAE,UACD,cAACuc,EAAA,EAAc,UACb85C,IAEF,cAAC55C,EAAA,EAAY,CACZrhB,QAASqF,EACTnF,UAAW86D,MAREH,EAAI/1D,WAvBT+1D,EAAI/1D,SA0ChB,MAID,uBAAMlF,MAAO,CAACwH,QAAS,OAAQrC,UAAW,QAASE,SAAU,WAAYkT,MAAO,GAAIuhB,OAAQ,IAAK,UAChG,cAACjyB,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC,EAAE,uBAGtC,mBAAGyY,IAAI,sBAAsBC,KAAK,2BAA2BV,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAS,SAC5H,qBAAKqG,IAAK,4CAA6CD,IAAI,eAAezH,MAAO,CAAC2I,OAAQ,GAAIpH,WAAY,EAAGwG,UAAW,YAM9H,IAOA,OACC,qBAAKyD,IAAKyoB,EAAMj0B,MAAO,CAACuF,MAAO,OAAQ/D,SAAU,IAAKiI,OAAQ,OAAQpE,SAAU,YAAa,SAC5F,eAACkE,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,YAAYrD,QAAS,WACzEmB,QAAQC,IAAI,UACb,EAAE,UACD,cAACkiE,GAAA,EAAS,CAACC,gBAAc,IACzB,cAAC1hE,EAAe,IAChB,cAAC6zD,GAAA,EAAK,CAACryD,UAAU,YAAW,SAC3B,cAACkxD,EAAa,MAEf,cAACmB,GAAA,EAAK,CAACryD,UAAU,gBAAe,SAC/B,cAAC8/D,EAAa,MAEf,cAACzN,GAAA,EAAK,CAACryD,UAAU,YAAW,SAC3B,cAAC2/D,EAAkB,UAKxB,EC1lBMQ,GAAa,UACbC,GAAgB,UAq0BPC,GAn0BA,SAACjnE,GAAW,IAAD,EAEtBM,EASEN,EATFM,UACA4mE,EAQElnE,EARFknE,iBACAC,EAOEnnE,EAPFmnE,cACAr8D,EAME9K,EANF8K,WACAs8D,EAKEpnE,EALFonE,aAEAr8D,GAGE/K,EAJFqnE,SAIErnE,EAHF+K,UACAnK,EAEEZ,EAFFY,SACA0mE,EACEtnE,EADFsnE,QAEIjqE,EAAQgE,cAEd,EAA4CE,mBAASylE,IAAc,mBAA5DO,EAAc,KAAEC,EAAiB,KACxC,EAA4CjmE,mBAASylE,IAAc,mBAA5DS,EAAc,KAAEC,EAAiB,KACxC,EAA8CnmE,mBAASylE,IAAc,mBAA9DW,EAAe,KAAEC,EAAkB,KAC1C,EAA4CrmE,mBAASylE,IAAc,mBAA5Da,EAAc,KAAEC,EAAiB,KACxC,EAA4CvmE,mBAASylE,IAAc,mBAA5De,EAAc,KAAEC,EAAiB,KACxC,EAAgC1mE,IAAMC,SAAS,MAAK,mBAA7CujC,EAAQ,KAAEC,EAAW,KAC5B,EAA4CzjC,IAAMC,SAAS,MAAK,mBAAzD0mE,EAAc,KAAEC,GAAiB,KAClCl9D,GAAQC,cAERk9D,GAAY,CAChB1pE,MAAOuoE,GACPrzD,eAAgB,QAGZy0D,GAAc,WAClBrjC,EAAY,MACZmjC,GAAkB,KACpB,EAwJMG,GAAkB,WACtBb,EAAkBT,GACpB,EAEMuB,GAAkB,WACtBN,EAAkBjB,GACpB,EAEMwB,GAAqB,WACzBP,EAAkBhB,GACpB,EAEMwB,GAAkB,WACtBd,EAAkBX,GACpB,EAEM0B,GAAqB,WACzBf,EAAkBV,GACpB,EAEM0B,GAAqB,WACzBlB,EAAkBR,GACpB,EA2BM2B,IAbS,GACbpqE,gBAAiB,UACjBwH,OAAQ,GACR+C,YAAa,EACbC,YAAa,EACbC,aAAc,GAAC,uBACP,IAAE,uBACF,WAAS,4BACJ,WAAS,sBACf,SAIgB,SAAChJ,GACxB,IAAQ/C,EAAS+C,EAAT/C,KAER,OACE,eAACkG,EAAA,EAAK,CACJ/F,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/B8E,MARkB,IASlBtE,QAAS,GACTi8B,aAAc,mCACd,eAKsBn5B,IAAvBlE,EAAK2rE,eACiB,OAAvB3rE,EAAK2rE,eACL3rE,EAAK2rE,cAAcxgE,OAAS,EAC1B,cAAC,IAAI,CACHsL,GAAIzW,EAAK2rE,cACTxrE,MAAO,CAAEqB,MAAO,UAAWkV,eAAgB,QAAS,SAEpD,cAAC1O,EAAA,EAAU,CAACC,QAAQ,KAAI,SAAEjI,EAAKuE,UAGjC,cAACyD,EAAA,EAAU,CAACC,QAAQ,KAAI,SAAEjI,EAAKuE,aAGjBL,IAAflE,EAAKyuB,OACS,OAAfzuB,EAAKyuB,OACLzuB,EAAKyuB,MAAMtjB,OAAS,EAClB,qBACEvD,IAAK5H,EAAKuE,MACVsD,IAAK7H,EAAKyuB,MACVtuB,MAAO,CAAE2I,OAAQ,IAAKpD,MAAO,OAE7B,KACJ,cAACsC,EAAA,EAAU,CAACC,QAAQ,QAAO,SAAEjI,EAAKiV,eAgBnB,IAAdjV,EAAK4rE,KACJ,cAACt1D,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,YACR9H,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,WAjOS,IAACulE,IAkOG7rE,EAAKR,GAhOnCkS,MAAM,GAAD,OAAIrO,EAAS,iCAAyBwoE,EAAQ,eAAe,CAChEh6D,YAAa,UACbF,OAAQ,MACR3K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAU2S,GAKd,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAU8S,GACd,IAA6B,IAAzBA,EAAae,QAAkB,CACjC,IAAM84D,EAAmB5B,EAAclwD,QACrC,SAACha,GAAI,OAAKA,EAAKR,KAAOqsE,CAAQ,IAEhCpkE,QAAQC,IAAI,sBAAuBokE,GACnC7B,EAAiB6B,EACnB,MACE/9D,GAAM6E,MACJ,0DAGN,IACCD,OAAM,SAACC,GACNnL,QAAQC,IAAI,oCAAqCkL,EAEnD,GAmMM,EAAE,qBAIF,OAGV,GAEMm5D,GACJ,uBAAM5rE,MAAO,CAAE+J,OAAQ,OAAQ,UAC7B,cAAC4O,GAAA,EAAU,CACTtX,MAAM,UACNrB,MAAO,CAAE+J,OAAQ,MAAO2B,YAAa,IACrC,gBAAc,cACd,gBAAc,OACdvF,QAAS,SAACE,GACRshC,EAAYthC,EAAM6C,cACpB,EAAE,SAEF,cAACyiC,GAAA,EAAK,CAACC,aAAcm+B,EAAc/+D,OAAQ3J,MAAM,UAAS,SACxD,cAACwqE,GAAA,EAAiB,CAChBxqE,MAAM,YACNrB,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,IAC5BkC,IAAI,qBACJC,IAAI,SAIV,eAACsgC,GAAA,EAAI,CACH3oC,GAAG,cACHqoC,SAAUA,EACVO,aAAW,EACX3rB,KAAMo0B,QAAQhJ,GACd1nC,MAAO,CACL+J,OAAQ,MACRlF,UAAW,OACXE,UAAW,SACXD,UAAW,QAEb0X,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,eAGnC8b,QAAS,WACPyuD,IACF,EAAE,UAEF,eAACjlE,EAAA,EAAK,CACJ/F,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/B8E,MAjHgB,IAkHhBtE,QAAS,GACTi8B,aAAc,mCACd,UAEF,sBAAKl9B,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,GAAI,UAC/C,eAACzJ,EAAA,EAAU,CAACC,QAAQ,KAAI,iCACDiiE,EAAc/+D,OAAM,OAE1C++D,EAAc/+D,OAAS,EACtB,cAACmL,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,YACR9H,MAAO,CAAEuB,WAAY,IACrB4E,QAAS,WAnUrBoL,MAAM,GAAD,OAAIrO,EAAS,+BAA+B,CAC/CwO,YAAa,UACbF,OAAQ,MACR3K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAU2S,GAKd,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAU8S,IACe,IAAzBA,EAAae,SACfi3D,EAAiB,IACjBkB,MAEAp9D,GAAM6E,MACJ,2DAGN,IACCD,OAAM,SAACC,GACNnL,QAAQC,IAAI,oCAAqCkL,EAEnD,GA0SU,EAAE,mBAIF,QAEN,cAAC5K,EAAA,EAAU,CAACC,QAAQ,QAAO,+FAK5BiiE,EAActrE,KAAI,SAACoB,EAAMmF,GACxB,OAAO,cAACumE,GAAgB,CAAC1rE,KAAMA,GAAWmF,EAC5C,UAMA8mE,GACJ,uBAAM9rE,MAAO,CAAE+J,OAAQ,OAAQ,UAC7B,cAAC4O,GAAA,EAAU,CACTtX,MAAM,UACNrB,MAAO,CAAE+J,OAAQ,MAAO2B,YAAa,IACrC,gBAAc,cACd,gBAAc,OACdvF,QAAS,SAACE,GACRykE,GAAkBzkE,EAAM6C,cAC1B,EAAE,SAEF,cAACsY,EAAA,EAAM,CACLxhB,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,IAC5BkC,IAAI,qBACJC,IAAI,OAGR,eAACsgC,GAAA,EAAI,CACH3oC,GAAG,cACHqoC,SAAUmjC,EACV5iC,aAAW,EACX3rB,KAAMo0B,QAAQm6B,GACd7qE,MAAO,CAAE+J,OAAQ,OACjBwS,QAAS,WACPyuD,IACF,EAAE,UAEF,cAACzzD,GAAA,EAAQ,CACPpR,QAAS,SAACE,GACRA,EAAMsE,iBACNqgE,IACF,EAAE,SAEF,eAAC,IAAI,CAAC10D,GAAG,QAAQtW,MAAO+qE,GAAU,UAChC,cAAC,KAAe,CAAC/qE,MAAO,CAAC0L,YAAa,KAAM,cAGhD,cAAC6L,GAAA,EAAQ,CACPpR,QAAS,SAACE,GACRA,EAAMsE,iBACNqgE,IACF,EAAE,SAEF,eAAC,IAAI,CAAC10D,GAAG,mBAAmBtW,MAAO+qE,GAAU,UAC3C,cAACgB,GAAA,EAAa,CAAC/rE,MAAO,CAAC0L,YAAa,KAAM,oBAG9C,cAAC6L,GAAA,EAAQ,CACPpR,QAAS,SAACE,GACRA,EAAMsE,iBACNqgE,IACF,EAAE,SAEF,eAAC,IAAI,CAAC10D,GAAG,YAAYtW,MAAO+qE,GAAU,UACpC,cAACiB,GAAA,EAAa,CAAChsE,MAAO,CAAC0L,YAAa,KAAM,kBAG9C,cAAC6L,GAAA,EAAQ,CACPpR,QAAS,SAACE,GACRA,EAAMsE,iBACNqgE,IACF,EAAE,SAEF,eAAC,IAAI,CAAC10D,GAAG,YAAYtW,MAAO+qE,GAAU,UACpC,cAAC,KAAY,CAAC/qE,MAAO,CAAC0L,YAAa,KAAM,iBAG7C,eAAC6L,GAAA,EAAQ,CACPvX,MAAO,CAAEqB,MAAO,SAChB8E,QAAS,SAACE,GACRA,EAAMsE,iBACNqgE,KA5VR1jE,QAAQC,IAAI,YAAa2iE,EAAS,YAAaF,GAE/Cz4D,MAAMrO,EAAY,iBAAkB,CAClCwO,YAAa,UACbF,OAAQ,OACR3K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,WAIJsI,QAAQC,IAAI,wBACZyiE,EAAa,gBAAiB,CAAEl+D,KAAM,MACtCk+D,EAAa,gBAAiB,CAAEl+D,KAAM,eACtCnI,OAAOC,SAAS0gB,QAClB,IACC9R,OAAM,SAACC,GACNnL,QAAQC,IAAI,oBAAqBkL,GACjCu3D,EAAa,gBAAiB,CAAEl+D,KAAM,MACtCnI,OAAOC,SAAS0gB,QAElB,GAuUI,EAAE,UAEF,cAAC2nD,GAAA,EAAe,CAACjsE,MAAO,CAAC0L,YAAa,KAAM,uBAS9CwgE,GAAoBx+D,EAyCxB,sBAAK1N,MAAO,CAAEwH,QAAS,QAAS,UAC9B,qBAAKxH,MAAO,CAAEiV,KAAM,EAAGE,cAAe,OAAQ,SAC5C,eAACiP,EAAA,EAAI,CACHpkB,MAAO,CAAEwH,QAAS,OAAQ2kE,WAAY,MAAOl3D,KAAM,KACnDmB,UAAU,MAAK,UAEf,cAACkL,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,SAAU3D,SAAU,KAAO,SACvD,cAAC,IAAI,CAAC8U,GAAG,aAAatW,MAAO+qE,GAAU,SACrC,sBACE9kE,YAAamlE,GACbllE,WAAYmlE,GACZrrE,MAAO,CACLqB,MAAOgpE,EACPjlE,OAAQ,UACRoC,QAAS,QACT,UAEF,cAAC+5D,GAAA,EAAW,CAACvhE,MAAO,CAAE0L,YAAa,SACnC,sBAAM1L,MAAO,CAAE+H,UAAW,GAAI,8BAIpC,cAACuZ,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,SAAU3D,SAAU,KAAO,SACvD,cAAC,IAAI,CAAC8U,GAAG,QAAQtW,MAAO+qE,GAAU,SAChC,sBACE9kE,YAAailE,GACbhlE,WAAYilE,GACZnrE,MAAO,CACLqB,MAAOspE,EACPvlE,OAAQ,UACRoC,QAAS,QACT,UAEF,cAAC,KAAQ,CAACxH,MAAO,CAAE0L,YAAa,SAChC,sBAAM1L,MAAO,CAAE+H,UAAW,GAAI,yBAWpC,cAACuZ,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,SAAU3D,SAAU,KAAO,SACvD,cAAC,IAAI,CAAC8U,GAAG,QAAQtW,MAAO+qE,GAAU,SAChC,sBACE9kE,YAzXU,WACtBykE,EAAkBf,GACpB,EAwXczjE,WAtXa,WACzBwkE,EAAkBd,GACpB,EAqXc5pE,MAAO,CACLqB,MAAOopE,EACPrlE,OAAQ,UACRoC,QAAS,QACT,UAEF,cAAC,KAAe,CAACxH,MAAO,CAAE0L,YAAa,SACvC,sBAAM1L,MAAO,CAAE+H,UAAW,GAAI,8BAuBzC4F,GAC0B,IAA3BnK,EAAS4oE,cAAyB,KAClC,qBAAKpsE,MAAO,CAACiV,KAAM,GAAK,SACvB,cAAC,GAAW,CAACwzD,YAAY,EAAOjlE,SAAUA,MAH/B,KAMV,sBACExD,MAAO,CAAEiV,KAAM,EAAGzN,QAAS,OAAQ2N,cAAe,eAAgB,UAEjE22D,GACAF,QACa7nE,IAAbP,QACkBO,IAAnBP,EAASkU,OACU,OAAnBlU,EAASkU,OACRlU,EAASkU,MACR,cAAC,IAAI,CAACpB,GAAG,SAAStW,MAAO+qE,GAAU,SACjC,cAAC50D,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,WACR9H,MAAO,CAAE0L,YAAa,GAAI3D,UAAW,IAAK,qBAL9B,UAWJhE,IAAbP,QACiBO,IAAlBP,EAASolC,MACS,OAAlBplC,EAASolC,MACTplC,EAASolC,KAAK59B,QAAU,EAAI,KAC1B,cAAC+M,GAAA,EAAM,CACLS,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,GACZC,SAAU,IACV8D,SAAU,WAGd6D,MAAO3F,EAASmU,WAAWtY,GAC3BoJ,WAAS,EACTzI,MAAO,CACL+J,OAAQ,MACRhC,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQM,aAC/BiL,YAAa,GACbrK,MAAO,QACPsH,OAAQ,GACRpD,MAAO,KAETgf,UAAW,CACTvkB,MAAO,CAAE+J,OAAQ,QAEnBd,SAAU,SAAChK,IA3fQ,SAAC0pC,GAI5B,IAAM9oC,EAAO,CACXmkC,OAAQ2E,GAGZrF,aAAaE,QAAQ,0BAA2B,QAE9CjyB,MAAM,GAAD,OAAIrO,EAAS,wBAAgBylC,EAAK,WAAW,CAChDxtB,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAU2S,GAKd,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAU8S,QACe/N,IAAzB+N,EAAae,SAAyBf,EAAae,SACrD8J,YAAW,WACThZ,OAAOC,SAAS0gB,QAClB,GAAG,KACH1W,GAAMiF,QACJ,2DAGFjF,GAAM6E,MAAM,wBAAyBX,EAAasJ,OAEtD,IACC5I,OAAM,SAACC,GACNnL,QAAQC,IAAI,mBAAoBkL,EAElC,GACJ,CAgdY45D,CAAqBptE,EAAE+Y,OAAO7O,MAChC,EAAE,SAED3F,EAASolC,KAAKnqC,KAAI,SAACoB,EAAMmF,GACxB,QACSjB,IAAdlE,EAAK4F,MACS,OAAd5F,EAAK4F,MACgB,IAArB5F,EAAK4F,KAAKuF,OAEV,OAAO,KAGR,IAGIshE,GAAU,EACd,QAAyBvoE,IAArBlE,EAAKmpC,aAAkD,OAArBnpC,EAAKmpC,aAAwBnpC,EAAKmpC,YAAYh+B,OAAS,EAAG,CAE/F,IAAK,IAAIyB,KAAOjJ,EAAS+oE,WACxB,GAAI1sE,EAAK0sE,WAAW9/D,GAAKpN,KAAOQ,EAAKmpC,YAAa,CACjDsjC,GAAU,EACV,KACD,CAGD,GAAIA,EACH,OAAO,IAET,CAGA,QAAwBvoE,IAApBlE,EAAK0sE,YAAgD,OAApB1sE,EAAK0sE,WAAqB,CAC9D,IAAIxtB,EAAM,EAAC,aAEV,IAAMytB,EAAW3sE,EAAK0sE,WAAW9/D,GAC3B+yD,EAAah8D,EAASolC,KAAK1nB,WAAU,SAAA9L,GAAI,OAAIA,EAAK/V,KAAOmtE,EAASntE,EAAE,IAC1E,IAAoB,IAAhBmgE,EAAmB,CACtB,IAAMiN,EAAWz1C,SAAShyB,GAAOgyB,SAAS+nB,IAEtCtzB,EAAUjoB,EAASolC,KAAK42B,IACpBkN,OAAQ,EAChBlpE,EAASolC,KAAK7M,OAAO0wC,EAAS,EAAG,EAAGhhD,GACpCjoB,EAASolC,KAAK7M,OAAOyjC,EAAW,EAAG,EACpC,MACCl4D,QAAQC,IAAI,0BAA2BilE,GAIxCztB,GAAO,CAAC,EAfT,IAAK,IAAItyC,KAAO5M,EAAK0sE,WAAY,CAAC,IAM5B9gD,EAAO,GAUb,CACD,CAGA,IAAMsd,EAAa,CAClBxjC,MA1CiB,GA2CjBoD,OA3CiB,GA4CjBikB,cAAe,OACflhB,YAAa,GACbnK,gBAAiCwC,IAArBlE,EAAKmpC,aAAkD,OAArBnpC,EAAKmpC,aAAwBnpC,EAAKmpC,YAAYh+B,OAAS,EAAI,GAAK,GAGzG2hE,OAAmC5oE,IAArBlE,EAAKmpC,aAAkD,OAArBnpC,EAAKmpC,aAAwBnpC,EAAKmpC,YAAYh+B,OAAS,EAAC,oBAAgBnL,EAAKmpC,aAAgB,GAE7I1a,EAAuB,KAAfzuB,EAAKyuB,MAClB,qBAAK7mB,IAAK5H,EAAK4F,KAAMiC,IAAKzH,EAAME,QAAQyB,aAAc5B,MAAO+oC,IAE7D,qBAAKthC,IAAK5H,EAAK4F,KAAMiC,IAAK7H,EAAKyuB,MAAOtuB,MAAO+oC,IAE9C,OACC,cAACxxB,GAAA,EAAQ,CAAaoD,SAAU9a,EAAKR,KAAOmE,EAASmU,WAAWtY,GAAIW,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYW,MAAO,QAASsH,OAAQ,IAAMQ,MAAOtJ,EAAKR,GAAG,SAEnK,cAACsW,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAOuoE,EAAanzD,UAAU,OAAM,SAC5D,sBAAKxZ,MAAO,CAACwH,QAAS,QAAQ,UAC5B8mB,EAAK,IAAGzuB,EAAK4F,WAJFT,EASZ,YA1PR,sBAAKhF,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAAC4c,EAAA,EAAI,CAACpkB,MAAO,CAAEiV,KAAM,EAAGzN,QAAS,OAAQ2kE,WAAY,OAAS/1D,UAAU,MAAK,SAC3E,cAACkL,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,SAAU5D,WAAY,OAAQ,SAC1D,cAAC,IAAI,CAAC+U,GAAG,QAAQtW,MAAO+qE,GAAU,SAChC,qBACE9kE,YAAamlE,GACbllE,WAAYmlE,GACZrrE,MAAO,CAAEqB,MAAOgpE,EAAgBjlE,OAAQ,WAAY,yBAO7DuI,GAC0B,IAA3BnK,EAAS4oE,cAAyB,KAClC,qBAAKpsE,MAAO,CAACiV,KAAM,GAAK,SACvB,cAAC,GAAW,CAACwzD,YAAY,EAAOjlE,SAAUA,MAH/B,KAMV,qBAAKxD,MAAO,CAAEiV,KAAM,EAAGzN,QAAS,OAAQ2N,cAAe,eAAgB,SACrE,cAACiP,EAAA,EAAI,CACHpkB,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,eACzCiB,UAAU,MAAK,SAEf,cAACkL,EAAA,EAAQ,CAACthB,MAAO,CAAEiV,KAAM,IAAK9P,UAAW,UAAW,SAClD,cAAC,IAAI,CAACmR,GAAG,SAAStW,MAAO+qE,GAAU,SACjC,qBACE9kE,YA7RW,WACvBukE,EAAmBb,GACrB,EA4RczjE,WA1Rc,WAC1BskE,EAAmBZ,GACrB,EAyRc5pE,MAAO,CAAEqB,MAAOkpE,EAAiBnlE,OAAQ,WAAY,8BAqO7DwnE,GAAmBl/D,EAgCvB,sBAAK1N,MAAO,CAAEwH,QAAS,QAAS,UAC9B,qBAAKxH,MAAO,CAAEiV,KAAM,IAAKE,cAAe,OAAQ,SAC9C,eAACiP,EAAA,EAAI,CACHpkB,MAAO,CAAEwH,QAAS,OAAQ2kE,WAAY,MAAOl3D,KAAM,KACnDmB,UAAU,MAAK,UAEf,cAACkL,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,UAAW,SACvC,cAAC,IAAI,CAACmR,GAAG,IAAItW,MAAO+qE,GAAU,SAC5B,qBACE9kE,YAAaglE,GACb/kE,WAAYolE,GACZtrE,MAAO,CAAEqB,MAAO8oE,EAAgB/kE,OAAQ,WAAY,yBAM1D,cAACkc,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,UAAW,SACvC,cAAC,IAAI,CAACmR,GAAG,aAAatW,MAAO+qE,GAAU,SACrC,qBACE9kE,YAAamlE,GACbllE,WAAYmlE,GACZrrE,MAAO,CAAEqB,MAAOgpE,EAAgBjlE,OAAQ,WAAY,2BAM1D,cAACkc,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,UAAW,SACvC,cAAC,IAAI,CAACmR,GAAG,QAAQtW,MAAO+qE,GAAU,SAChC,qBACE9kE,YAAailE,GACbhlE,WAAYilE,GACZnrE,MAAO,CAAEqB,MAAOspE,EAAgBvlE,OAAQ,WAAY,2BAe9D,qBACEpF,MAAO,CAAEiV,KAAM,KAAMzN,QAAS,OAAQ2N,cAAe,eAAgB,SAEpE22D,QAlFL,qBAAK9rE,MAAO,CAAEwH,QAAS,QAAS,SAC9B,eAAC4c,EAAA,EAAI,CAACpkB,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,OAASiB,UAAU,MAAK,UACrE,cAACkL,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,UAAW,SACvC,cAAC,IAAI,CAACmR,GAAG,IAAItW,MAAO+qE,GAAU,SAC5B,qBACE9kE,YAAaglE,GACb/kE,WAAYolE,GACZtrE,MAAO,CAAEqB,MAAO8oE,EAAgB/kE,OAAQ,WAAY,SAEpD,cAACV,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,SACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAACy3D,GAAA,EAAQ,CAAC7sE,MAAO,CAAE+H,UAAW,MAAO2D,YAAa,mBAM5D,cAAC4V,EAAA,EAAQ,CAACthB,MAAO,CAAEmF,UAAW,UAAW,SACvC,cAAC,IAAI,CAACmR,GAAG,QAAQtW,MAAO+qE,GAAU,SAChC,qBACE9kE,YAAamlE,GACbllE,WAAYmlE,GACZrrE,MAAO,CAAEqB,MAAOgpE,EAAgBjlE,OAAQ,WAAY,4BAkE1D6nC,GACJ,sBAAKjtC,MAAO,CAAEsB,UAAW,IAAK,UAC5B,cAAC,cAAW,UAAE4qE,KACd,cAAC,aAAU,UAAEU,QAIjB,OACE,qBACE5sE,MAAO,CACLuF,MAAO,OACPF,SAAU,QACV/D,UAAW,GACXgX,IAAK,EACLvO,OAAQ,IACR5I,gBAAiB,WACjB,SAED8rC,IAGP,E,4ICvzBMxsC,GAAe,UACfC,GAAa,UAEbosE,GAAe,CACnBrjE,OAAQ,OACRlE,MAAO,SAGHwnE,GAAkB,CACtBphE,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZlR,UAAW,MACX5G,gBAAiBT,GACjB8G,QAAS,OACTnG,MAAO,SAGH2rE,GAAW,CACf3rE,MAAO,QACP4T,KAAM,IACN1T,WAAY,OACZmK,YAAa,OACbC,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZzR,QAAS,OACT2N,cAAe,SACfhU,gBAAiBV,IAGbwsE,GAAe,CACnB37D,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,QAGb+rE,GAAe,CACnB3rE,WAAY,OAGRu7B,GAAYC,aAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,wBAirKFs9C,GAvjKI,SAACrsB,GAAkB,IAAD,EAC3B59C,EAAwB49C,EAAxB59C,UAAWyK,EAAamzC,EAAbnzC,SACboyB,EAAUjD,KACVlvB,EAAQC,cACR5N,EAAQgE,cAETimC,EAAS6W,cACXn+C,EAAQqQ,KAAKC,MAAMD,KAAKS,UAAUotC,IACtCl+C,EAAM6vC,MAAQ,CAAC,EACf7vC,EAAM6vC,MAAMvI,OAASA,EAEpB,IAAIx5B,EAAS,GAEP08D,EAAuB,CAAC,MAAO,OAAQ,SAAU,WACjDC,EAAoB,CAAC,OAAQ,MAAO,SACpChtD,EAAwB,CAC5B,oBACA,UACA,cACA,aACA,SACA,OAEIitD,EAAkB,CAAC,SAAU,SAEnC,EAAwBnpE,mBAAS,IAAG,mBAA7BsB,EAAI,KAAEy1B,EAAO,KACpB,EAA8B/2B,mBAAS,IAAG,mBAAnCopE,EAAO,KAAEC,EAAU,KAC1B,EAAwBrpE,mBAAS,IAAG,mBAA7BgnC,EAAI,KAAEsiC,EAAO,KACpB,EAAoCtpE,mBAAS,IAAG,mBAAzCupE,EAAU,KAAEC,EAAa,KAChC,EAAsCxpE,oBAAS,GAAM,mBAA9CypE,EAAW,KAAEC,EAAc,KAClC,EAAkC1pE,oBAAS,GAAM,mBAA1Cm2B,EAAS,KAAE4G,EAAY,KAC9B,EAAsC/8B,mBAAS,IAAG,mBAA3C2Q,GAAW,KAAEqmB,GAAc,KAClC,GAA8Bh3B,mBAAS,OAAM,qBAAtC2pE,GAAO,MAAEC,GAAU,MAC1B,GAA8B5pE,mBAAS,IAAG,qBAAnC6pE,GAAO,MAAEC,GAAU,MAC1B,GAAgD9pE,oBAAS,GAAM,qBAAxD+pE,GAAgB,MAAEC,GAAmB,MAC5C,GAA4DhqE,oBAAS,GAAM,qBAA5CiqE,IAAF,MAA2B,OACxD,GAAwDjqE,mBACtDkc,EAAsB,IACvB,qBAFMkG,GAAoB,MAAE8nD,GAAuB,MAGpD,GAA8CnqE,IAAMC,SAAS,IAAG,qBAAzDy2B,GAAe,MAAEC,GAAkB,MAC1C,GAA0D32B,IAAMC,SAAS,IAAG,qBAArEmqE,GAAqB,MAAEC,GAAwB,MACtD,GAA0CpqE,mBAAS,IAAG,qBAA/CqqE,GAAa,MAAEC,GAAgB,MACtC,GAAkDtqE,mBAChDmpE,EAAgBtiE,OAAS,EAAIsiE,EAAgB,GAAK,IACnD,qBAFMoB,GAAiB,MAAEC,GAAoB,MAG9C,GAAoCxqE,mBAAS,IAAG,qBAAzCyqE,GAAU,MAAEC,GAAa,MAChC,GAAwC1qE,mBAAS,IAAG,qBAA7C2qE,GAAY,MAAEC,GAAe,MACpC,GAAkD5qE,mBAAS,IAAG,qBAAvD6qE,GAAiB,MAAEC,GAAoB,MAC9C,GAAgD9qE,mBAAS,IAAG,qBAArD8kC,GAAgB,MAAEimC,GAAmB,MAE5C,GAA8B/qE,mBAAS,IAAG,qBAAnCgrE,GAAO,MAAEC,GAAU,MAE1B,GAA4CjrE,mBAAS,IAAG,qBAAjDkrE,GAAc,MAAEC,GAAiB,MACxC,GAA4BnrE,mBAAS,IAAG,qBAAzBwmB,IAAF,MAAW,OACxB,GAA4BxmB,mBAAS,IACrC,IADwC,kBAAhB,GACQD,IAAMC,SAAS,CAAC,IAAE,qBAA3C2O,GAAQ,MAAEy8D,GAAW,MAC5B,GAA8BprE,mBAAS,IAAG,qBAAnCoO,GAAO,MAAEi9D,GAAU,MAC1B,GAA8CrrE,mBAAS,IAAG,qBAAnDsrE,GAAe,MAAEC,GAAkB,MAC1C,GAAkCvrE,mBAAS,IAAG,qBAAvCwrE,GAAS,MAAEC,GAAY,MAC9B,GAAsCzrE,oBAAS,GAAM,qBAA9C0rE,GAAW,MAAEC,GAAc,MAClC,GAA8C3rE,mBAAS,IAAG,qBAAnD4rE,GAAe,MAAEC,GAAkB,MAC1C,GAAkD7rE,oBAAS,GAAM,qBAA1D8rE,GAAiB,MAAEC,GAAoB,MAC9C,GAAsD/rE,oBAAS,GAAM,qBAA9DgsE,GAAmB,MAC1B,IADkD,MACVhsE,mBAnDjB,KAmDyC,qBAAzDisE,GAAY,MAAEC,GAAe,MAC9BC,GAAc,CAClB7qE,KAAM,GACNjF,KAAM,SACN2W,QAAS,IAGX,GAAkChT,mBAAS,IAAG,qBAAvCosE,GAAS,MAAEC,GAAY,MAC9B,GAAsBrsE,mBAAS,CAAC,GAAE,qBAClC,IADU,MAAQ,MACgCD,IAAMC,SAAS,KAAG,qBACpE,IADwB,MAAsB,MACFA,mBAAS,CAAC,IAAE,qBACxD,IADqB,MAAmB,MACJA,oBAAS,IAAM,qBA0BnD,IA1BiB,MAAe,MA0BsBA,mBACpDipE,EAAqB,KACtB,qBAFMqD,GAAmB,MAAEC,GAAsB,MAGlD,GAA0CvsE,mBAAS,CACjDsB,KAAM,GACNkrE,WAAY,GACZ77D,YAAa,GACbjB,IAAK,GACLhN,QAAS,GACTyM,MAAO,GACPs9D,QAAS,GACTz9D,KAAM,GACNiN,OAAQ,GACRywD,iBAAkB,GAClBr/D,OAAQ47D,EAAqB,KAC7B,qBAZK0D,GAAa,MAAEC,GAAgB,MAchCttE,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAElBwE,qBAAU,WACN1E,OAAOC,SAASgP,SAASzG,SAAS,cACrC+0B,GAAa,GACb8vC,GAAcpuE,EAAM6vC,MAAMvI,OAAO3a,QAEjC0hD,IAED,GAAG,IAEH,IAAMD,GAAgB,SAACzhD,GACrBhe,MAAMrO,EAAY,gBAAkBqsB,EAAQ,UAAW,CACrD/d,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,SACXjO,OAAOC,SAASgP,SAAW,SAGtBjB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACwB,IAAzBA,EAAae,SACfjF,EAAM6E,MAAM,yBACZo7D,GAAe,GACflqE,OAAOC,SAASgP,SAAW,WAE3Bs+D,GAAyBp/D,EAE7B,IACCU,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAGM4kE,GAAa,WACjB,IAAIE,EAAY,IAAIpoB,gBAAgBplD,OAAOC,SAAS+V,QACpD,IAAKw3D,EAAUC,IAAI,MAIjB,OAHAf,GAAgB,QAEhBxC,GAAe,GAOjBt8D,MAAMrO,EAAY,uBAAyBiuE,EAAUnoB,IAAI,MAAO,CAC9Dx3C,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OACX,MAAM,IAAI1S,MAAM,cAGlB,OAAOyS,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL+7D,GAAe,GACV/7D,EAAae,QAGhBq+D,GAAyBp/D,GAFzBlE,EAAM6E,MAAM,gDAIhB,IACCD,OAAM,SAACC,GACNnL,QAAQC,IAAI,UAAWkL,EAAMpG,YAC7BuB,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAeMglE,GAAe,SAACC,EAAWzxE,GAC/B,IACE,GAAkB,OAAdyxE,QAA4CvtE,IAAtButE,EAAgB,KAExC,OAAOA,CAKX,CAHE,MAAOryE,GAEP,OADAqI,QAAQC,IAAI,0BAA2B+pE,GAChCA,CACT,CAEA,IAAMC,EAAaD,EAAgB,KAAErlE,MAAM,KAC3C,GAAsB,MAAlBslE,EAAW,GAEb,OADAjqE,QAAQC,IAAI,cAAegqE,GACpBD,EAGT,IAAI7lD,EAAU5rB,EACd,IAAK,IAAI4M,KAAO8kE,EAAY,CAC1B,IAAIC,EAAWD,EAAW9kE,GAC1B,GAAiB,MAAb+kE,EAAJ,CAIA,QAA0BztE,IAAtB0nB,EAAQ+lD,GACV,OAAOF,EAGT7lD,EAAUA,EAAQ+lD,EANlB,CAOF,CAEA,OAAO/lD,CACT,EAeMylD,GAA2B,SAACrxE,GAElC,IAfuB4xE,EAenBC,EAAgB,GACpB,IAECA,GAlBsBD,EAiBQ5xE,EAAKmT,QAhB3B2+D,mBACL5+D,KAAK0+D,GACFxlE,MAAM,IACNxN,KAAI,SAAUmzE,GACb,MAAO,KAAO,KAAOA,EAAEC,WAAW,GAAGxlE,SAAS,KAAK9M,OAAO,EAC5D,IACCgN,KAAK,KAeZ,CAHI,MAAOtN,IACVqI,QAAQC,IAAI,wBAAyBtI,IACrCyyE,EAAgB7xE,CACjB,CAEA,GAAqB,OAAjBA,EAAKmT,QAGR,OAFApF,EAAM+E,KAAK,iFACTk7D,GAAe,GAIlBvmE,QAAQC,IAAI,YAAamqE,GACvB,IAAMnzB,OACax6C,IAAjBlE,EAAKmT,SAA0C,OAAjBnT,EAAKmT,QAC/BnT,EACAoT,KAAKC,MAAMw+D,GAEjB7xE,OAA0BkE,IAAnBw6C,EAAUprC,KAAqBorC,EAAYA,EAAUprC,KAE5D,IAAIiE,GAAY,EAEhB,IACEvX,EAAOoT,KAAKC,MAAMrT,GAClBuX,GAAY,CAGd,CAFE,MAAOnY,IACPqI,QAAQC,IAAI,eAAgBtI,GAC9B,CAEA,IAAKmY,EACH,IACEvX,EAAO4T,KAAKP,MAAMrT,GAClBuX,GAAY,CAGd,CAFE,MAAOnY,IACPqI,QAAQC,IAAI,eAAgBtI,GAC9B,CAGF,GAAKmY,EAAL,CAiDA,GA5CAm4D,GAAY1vE,GACdyH,QAAQC,IAAI,SAAU1H,GACF,OAAdA,EAAK8S,WAA+B5O,IAAdlE,EAAK8S,YACL5O,IAApBlE,EAAK8S,KAAKvO,OAA2C,OAApBvE,EAAK8S,KAAKvO,QACzCvE,EAAK8S,KAAKvO,MAAM4G,OAAS,GAC3BkwB,EAAQr7B,EAAK8S,KAAKvO,MAAM7E,MAAM,EAAG,KAEjC27B,EAAQr7B,EAAK8S,KAAKvO,QAItB+2B,GAAet7B,EAAK8S,KAAKmC,aACzB1D,SAAShN,MAAQ,UAAYvE,EAAK8S,KAAKvO,WAEXL,IAAxBlE,EAAK8S,KAAK,iBACoB5O,IAA5BlE,EAAK8S,KAAK,UAAUkB,IAEtB85D,EAAc9tE,EAAK8S,KAAK,UAAUkB,KAElC85D,EAAc9tE,EAAK8S,KAAK,iBASF5O,IAAtBlE,EAAK8S,KAAK46D,SACZC,EAAW3tE,EAAK8S,KAAK46D,cAISxpE,IAA9BlE,EAAK8S,KAAK,iBACV9S,EAAK8S,KAAK,gBAAgB3H,OAAS,IAExBnL,EAAK8S,KAAK,gBAGrB47D,GAAyB1uE,EAAK8S,KAAK,mBAIzCrL,QAAQC,IAAI,SAAU1H,EAAKwV,WACPtR,IAAdlE,EAAKwV,MAAsBxV,EAAKwV,KAAKrK,OAAS,EAAG,CACnD,IAAI8mE,EAAU,GACd,IAAK,IAAIrlE,KAAO5M,EAAKwV,KACfxV,EAAKwV,KAAK5I,GAAKhH,KAAKuF,OAAS,GAC/B1D,QAAQC,IACN,uCACA1H,EAAKwV,KAAK5I,GAAKhH,KAAKuF,QAKxB8mE,EAAQ3kE,KAAKtN,EAAKwV,KAAK5I,GAAKhH,MAG1BqsE,EAAQ9mE,OAAS,KACnB8mE,EAAUA,EAAQvyE,MAAM,EAAG,IAG7Bs7B,GAAmBi3C,EACrB,CAGA,IAAIC,EAAkBlyE,EAAK+qC,WAAWonC,yBACdjuE,IAApBguE,IACFA,EAAkBlyE,EAAKkyE,sBAGDhuE,IAApBguE,IACFA,EAAkBlyE,EAAK+qC,WAAWmnC,iBAGpC,IAAME,EAAmB,CACvB,MACA,UACA,OACA,SACA,OACA,QACA,OAIE9nB,EAAa,GACb+nB,EAAW,CAAC,EACZC,EAAiB,GAErB,GADF7qE,QAAQC,IAAI,UAAW1H,EAAKyT,OACP,OAAfzT,EAAKyT,YAAiCvP,IAAflE,EAAKyT,MAAqB,CACnD,cAA8B5T,OAAO8M,QAAQ3M,EAAKyT,OAAM,eACtD,IADG,0BAAKxH,EAAI,KAAEsmE,EAAS,KACvB,MAAkC1yE,OAAO8M,QAAQ4lE,GAAU,eAAE,CAAxD,0BAAK5gE,EAAM,KAAE6gE,EAAW,KAC3B,GAAoB,OAAhBA,EAKJ,GAAKJ,EAAiB9lE,SAASqF,EAAO5L,eAAtC,CAUA,IAAI0sE,EAAUD,EAAYE,aAEIxuE,IAA5BsuE,EAAYG,aACgB,OAA5BH,EAAYG,aACZH,EAAYG,YAAYxnE,OAAS,SACpBjH,IAAZuuE,GAA4C,IAAnBA,EAAQtnE,UAElCsnE,EAAUD,EAAYG,kBAGbzuE,IAAZuuE,GAAqC,OAAZA,IACvBA,EAAUA,EAAQxsE,WAAW,IAAK,YAGvB/B,IAAZuuE,GAAqC,OAAZA,SAAiDvuE,IAA5BsuE,EAAYv9D,aAAyD,OAA5Bu9D,EAAYv9D,aAAwBu9D,EAAYv9D,YAAY9J,OAAS,IAChKsnE,EAAUD,EAAYv9D,YAAYhP,WAAW,IAAK,KAAKA,WAAW,IAAK,MAGnE,IAAIwZ,EAAY,CACd7Z,KAAM6sE,EACNx9D,YAAau9D,EAAYv9D,YACzBjB,IAAK/H,EACL6kE,WAAY,GACZn/D,OAAQA,EAAO5L,cACfiB,QAAS,GACT+pE,QAAS,GACTt9D,MAAO,GACPH,KAAM,GACNiN,OAAQ,GACRywD,iBAAkB,IAGzB,QAAsB9sE,IAAlBub,EAAUzL,KAAuC,OAAlByL,EAAUzL,KAAgByL,EAAUzL,IAAI1H,SAAS,qBAAsB,CAGzGmT,EAAUzL,IAAMyL,EAAUzL,IAAI/N,WAAW,IAAI2sE,OAF/B,uBAE6C,KAAM,IACjEnrE,QAAQC,IAAI,aAAc+X,EAAUzL,IACrC,CAGK,GAAI/H,EAAKK,SAAS,KAAM,CACtB,IAAMumE,EAAY5mE,EAAKG,MAAM,KAG7B,IAAK,IAAIQ,KAAOimE,EAAW,CAChC,GAAIA,EAAUjmE,GAAKN,SAAS,qBAAsB,CAGjDumE,EAAUjmE,GAAOimE,EAAUjmE,GAAK3G,WAAW,IAAI2sE,OAFjC,uBAE+C,KAAM,GACpE,CAEO,GACEC,EAAUjmE,GAAKzB,OAAS,GACL,OAAnB0nE,EAAUjmE,IACS,OAAnBimE,EAAUjmE,IACS,QAAnBimE,EAAUjmE,IACS,QAAnBimE,EAAUjmE,IACS,SAAnBimE,EAAUjmE,GACV,CACA6S,EAAoB,SAAIozD,EAAUjmE,GAC7B0lE,EAAehmE,SAASumE,EAAUjmE,KACrC0lE,EAAehlE,KAAKulE,EAAUjmE,IAEhC,KACF,CACF,CACF,CAQA,GANQ,6BAATX,GACHxE,QAAQC,IAAI,yBAA0BuE,EAAM0F,EAAQ6gE,QAKbtuE,IAA/BsuE,EAAyB,YAAiB,CAC5C,QAA2CtuE,IAAvCsuE,EAAyB,YAAQ,MAA0D,OAAvCA,EAAyB,YAAQ,KAAY,CAG1G/qE,QAAQC,IAAI,QAAS8qE,EAAyB,YAAQ,MAC/C,IAAMf,EAAYD,GAAa,CAAEsB,KAAON,EAAyB,YAAQ,MAAIxyE,GACpFyH,QAAQC,IAAI,UAAW+pE,QACGvtE,IAAtButE,EAAUp3D,SAA+C,OAAtBo3D,EAAUp3D,UAChDm4D,EAAyB,YAAW,QAAIf,EAAUp3D,QAClD5S,QAAQC,IAAI,gBAEd,CAEA,QAA8CxD,IAA1CsuE,EAAyB,YAAW,QAGhC,QAEEtuE,IADAsuE,EAAyB,YAAW,QAAE,qBAKtC,QAC0EtuE,IAAxEsuE,EAAyB,YAAW,QAAE,oBAA4B,QAA2F,OAAxEA,EAAyB,YAAW,QAAE,oBAA4B,OAGvJ,GADA/qE,QAAQC,IAAI,WAAY8qE,EAAyB,YAAW,QAAE,oBAA4B,aACAtuE,IAAtFsuE,EAAyB,YAAW,QAAE,oBAA4B,OAAc,WAAiB,CAEnG,IADA,IAAIO,EAAY,CAAC,EACjB,MAA8BlzE,OAAO8M,QACnC6lE,EAAyB,YAAW,QAAE,oBAA4B,OAAc,YACjF,eAAE,CAFE,0BAAKQ,EAAI,KAAW,KAGvBD,EAAUC,GAAK,YAAUA,EAAI,IAC/B,CAGA,IAAK,IAAIvlE,KAAU+kE,EAAyB,YAAW,QACrD,oBACQ,OAAY,SAAG,CACvB,IAAMjhC,EACJihC,EAAyB,YAAW,QAClC,oBACQ,OAAY,SAAE/kE,GAC1BslE,EAAUxhC,GAAQ,YAAUA,EAAO,IACrC,CAEA9xB,EAAgB,KAAIrM,KAAKS,UAAUk/D,EAAW,KAAM,EACtD,MAAO,QAC2E7uE,IAAhFsuE,EAAyB,YAAW,QAAE,oBAA4B,OAAQ,MAAmG,OAAhFA,EAAyB,YAAW,QAAE,oBAA4B,OAAQ,KAAY,CACnL,IAAMS,EAASzB,GACbgB,EAAyB,YAAW,QAAE,oBAC5B,OAEVxyE,GAEEkzE,EAAU,CAAC,EAEf,IAAK,IAAIC,KAAWF,EAAOG,WAAY,CAChD3rE,QAAQC,IAAI,YAAayrE,GAEd,IAAME,EAAYF,EAAQltE,WAAW,IAAK,KAAK6G,cAC/ComE,EAAQG,GAAa,KAAOA,EAAY,GAC1C,CAEA5zD,EAAgB,KAAIrM,KAAKS,UAAUq/D,EAAS,KAAM,EACpD,OAEG,QAELhvE,IADAsuE,EAAyB,YAAW,QAAE,oBAMtC,GAHA/qE,QAAQC,IAAI,eAAgB8qE,QAMpBtuE,IAFNsuE,EAAyB,YAAW,QAAE,mBAC5B,QAIJ,OAFNA,EAAyB,YAAW,QAAE,mBAC5B,aAMYtuE,IAFpBsuE,EAAyB,YAAW,QAAE,mBAC5B,OACI,WACd,CACIO,EAAY,CAAC,EACjB,IADA,IACA,MAA8BlzE,OAAO8M,QACnC6lE,EAAyB,YAAW,QAAE,mBAC5B,OACI,YACf,eAAE,CAJE,0BAAKQ,EAAI,KAAW,KAKvBD,EAAUC,GAAK,YAAUA,EAAI,IAC/B,CAEA,IAAK,IAAIvlE,KAAU+kE,EAAyB,YAAW,QACrD,mBACQ,OAAY,SAAG,CACvB,IAAMjhC,EACJihC,EAAyB,YAAW,QAClC,mBACQ,OAAY,SAAE/kE,GAC1BslE,EAAUxhC,GAAQ,YAAUA,EAAO,IACrC,CAIF,OAmBV,QAf+DrtC,IAArDsuE,EAAyB,YAAW,QAAW,cAKvCtuE,IAFNsuE,EAAyB,YAAW,QAAW,QACpC,UAGX/yD,EAAgB,KACd+yD,EAAyB,YAAW,QAAW,QACpC,cASTtuE,IAFNsuE,EAAyB,YAAW,QAClC,wBAGF,QAGkBtuE,IAFhBsuE,EAAyB,YAAW,QAClC,uBACQ,QAGM,OAFhBA,EAAyB,YAAW,QAClC,uBACQ,OAEV,GAG0B,WAFxBA,EAAyB,YAAW,QAClC,uBACQ,OAAQ,KAClB,CACA,IAAM72D,EACJ62D,EAAyB,YAAW,QAClC,uBACQ,OAAc,WAAa,UAEvC,QAAkBtuE,IAAdyX,EAEF8D,EAAUqxD,WAAan1D,EAAiB,UACnC,CACjB,cAAiC9b,OAAO8M,QAAQ6lE,EAAyB,YAAW,QAAE,uBAA+B,OAAc,YAAE,eAAE,CAAlI,0BAAO/kE,EAAM,KAAU,KAC3B,GAAIA,EAAOnB,SAAS,QAAS,CAC5B7E,QAAQC,IAAI,gCAAiCuE,EAAM0F,EAAQ6gE,EAAyB,YAAW,QAAE,uBAA+B,OAAc,YAC9I/yD,EAAUqxD,WAAarjE,EACvB,KACD,CACD,MAE6BvJ,IAAzBub,EAAUqxD,YAAqD,OAAzBrxD,EAAUqxD,YAAuD,IAAhCrxD,EAAUqxD,WAAW3lE,QAC/F1D,QAAQC,IAAI,4BAA6B8qE,EAAyB,YAAW,QAAE,uBAA+B,OAAc,WAE9H,CACS,MACT/qE,QAAQC,IAAI,kBAAmB8qE,EAAyB,YAAW,QAAE,uBAA+B,YAGxF,CACL,IAAIc,GAAU,GACRj5D,GAAUm4D,EAAyB,YAAW,QACpD,QAAgBtuE,IAAZmW,IAAqC,OAAZA,GAE3B,gBAAiCxa,OAAO8M,QAAQ0N,IAAQ,kBAAE,CAArD,6BAAek5D,IAAF,MAAU,YACCrvE,IAAvBqvE,GAAiB,QAA0C,OAAvBA,GAAiB,QACvD9rE,QAAQC,IAAI,WAAY6rE,GAAiB,aACNrvE,IAA/BqvE,GAAiB,OAAQ,MAAkD,OAA/BA,GAAiB,OAAQ,OAEvE9rE,QAAQC,IAAI,qBACP4rE,GAAQhnE,SAASinE,GAAiB,OAAQ,OAC7CD,GAAQhmE,KAAKimE,GAAiB,OAAQ,aAI1BrvE,IAAxBqvE,GAAkB,SAA2C,OAAxBA,GAAkB,QAChD9zD,EAAgB,KAAI8zD,GAAkB,QAEpC9rE,QAAQC,IAAI,mCAAoC6rE,GAAU5hE,EAAQ1F,EAGvE,CAGF,GAAuB,IAAnBqnE,GAAQnoE,OAAc,CACxB,IAAMsmE,GAAYD,GAAa,CAAEsB,KAAMQ,GAAQ,IAAMtzE,GAErD,QAC2BkE,IAAzButE,GAAU2B,YACY,WAAtB3B,GAAgB,KAChB,CACIyB,EAAU,CAAC,EACf,IAAK,IAAIC,KAAW1B,GAAU2B,WAAY,CACpD3rE,QAAQC,IAAI,aAAcyrE,GACf,IAAME,GAAYF,EAAQltE,WAAW,IAAK,KAAK6G,mBACH5I,IAAvCutE,GAAU2B,WAAWD,GAASxyE,KAQS,WAAvC8wE,GAAU2B,WAAWD,GAASxyE,UAG9BuD,IADAutE,GAAU2B,WAAWD,GAASl+D,YAG9Bi+D,EAAQG,IACN5B,GAAU2B,WAAWD,GAASl+D,YAEhCi+D,EAAQG,IAAa,GAGvB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SAAS,QAC5CmlE,GAAU2B,WAAWD,GAASxyE,KAAK2L,SAAS,UAE5C4mE,EAAQG,IAAa,EAErB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SAAS,WAE5C4mE,EAAQG,KAAa,GAErB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SAAS,UAI5C7E,QAAQC,IACN,4BACA+pE,GAAU2B,WAAWD,GAASxyE,KAC9B8wE,GAAU2B,WAAWD,GACnClnE,GANYinE,EAAQG,IAAa,IA7BrB5rE,QAAQC,IACN,iBACA+pE,GAAU2B,WAAWD,GAqC3B,CAEA1zD,EAAgB,KAAIrM,KAAKS,UAAUq/D,EAAS,KAAM,EACpD,MACEzrE,QAAQC,IACN,0BACA+pE,GAAU2B,WACtBnnE,EAGM,CACF,CAGN,CAGA,QAC4B/H,IAA1BsuE,EAAYgB,WACc,OAA1BhB,EAAYgB,UAEZ,QAAsCtvE,IAAlCsuE,EAAYgB,UAAUjgB,aACsBrvD,IAA1CsuE,EAAYgB,UAAUjgB,QAAQl5C,cAG9BnW,IADAsuE,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,gBAG/C5S,QAAQC,IAAI,SAAUuE,EAAMumE,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,oBAIjDnW,IAFNsuE,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,cAC5B,cAMSnW,IAFjBsuE,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,cAC5B,OACC,UAEXoF,EAAUuxD,iBACRwB,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,cAC5B,OACC,SAIiE,WAA5Em4D,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,cAAsB,OAAU,QAA4F,WAA1Em4D,EAAYgB,UAAUjgB,QAAQl5C,QAAQ,cAAsB,OAAQ,OAChKoF,EAAUuxD,iBAAmB,+BAK9B,CACL,IAAIyC,GAAiB,GAQrB,QAPqCvvE,IAAjCsuE,EAAYgB,UAAU,KACxBC,GAAiB,WACyBvvE,IAAjCsuE,EAAYgB,UAAU,OAC/BC,GAAiB,YAI2BvvE,IAA1CsuE,EAAYgB,UAAUC,IAA+B,CACvD,IAAMC,GAAkBlB,EAAYgB,UAAUC,IAC9C,QAAmCvvE,IAA/BwvE,GAAyB,cAE0BxvE,IAAnDwvE,GAAyB,QAAE,0BAGoCxvE,IAA7DwvE,GAAyB,QAAE,oBAA4B,QACK,OAA7DA,GAAyB,QAAE,oBAA4B,OAGtD,GADXjsE,QAAQC,IAAI,SAAUgsE,GAAyB,QAAE,oBAA4B,aACOxvE,IAArEwvE,GAAyB,QAAE,oBAA4B,OAAQ,KAAiB,CAElF,IAAMjC,GAAYD,GAChBkC,GAAyB,QAAE,oBACjB,OAEV1zE,GAIF,QAC2BkE,IAAzButE,GAAU2B,YACY,WAAtB3B,GAAgB,KAChB,CACIyB,EAAU,CAAC,EACf,IAAK,IAAIC,KAAW1B,GAAU2B,WAAY,CACtD3rE,QAAQC,IAAI,aAAcyrE,GACZ,IAAME,GAAYF,EAAQltE,WAAW,IAAK,KAAK6G,mBAEN5I,IAAvCutE,GAAU2B,WAAWD,GAASxyE,KAUS,WAAvC8wE,GAAU2B,WAAWD,GAASxyE,UAI5BuD,IADAutE,GAAU2B,WAAWD,GAASl+D,YAG9Bi+D,EAAQG,IACN5B,GAAU2B,WAAWD,GAASl+D,YAEhCi+D,EAAQG,IAAa,GAGvB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SAAS,OAE5C4mE,EAAQG,IAAa,EAErB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SACjC,WAGF4mE,EAAQG,KAAa,GAErB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SACjC,UAQF7E,QAAQC,IACN,yBACA+pE,GAAU2B,WAAWD,GAASxyE,KAC9B8wE,GAAU2B,WAAWD,IALvBD,EAAQG,IAAa,IArCrB5rE,QAAQC,IACN,iBACA+pE,GAAU2B,WAAWD,GA4C3B,CACA1zD,EAAUuxD,iBAAmB59D,KAAKS,UAChCq/D,EACA,KACA,EAEJ,MACEzrE,QAAQC,IACN,0BACA+pE,GAAU2B,WAGhB,MAEE,QAGiBlvE,IAFfwvE,GAAyB,QAAE,oBACjB,OACD,MACT,CAGA,IAAIC,GACFD,GAAyB,QAAE,oBACjB,OACD,MACX,GAAIC,GAAkBxoE,QAAU,EAAG,CACjCwoE,GAAoBA,GAAkB,GAEtC,IAAMlC,GAAYD,GAChBmC,GACA3zE,GAEF,QAC2BkE,IAAzButE,GAAU2B,YACY,WAAtB3B,GAAgB,KAChB,CACIyB,EAAU,CAAC,EACf,IAAK,IAAIC,KAAW1B,GAAU2B,WAAY,CACxD3rE,QAAQC,IAAI,aAAcyrE,GACV,IAAME,GAAYF,EAAQltE,WAAW,IAAK,KAAK6G,mBAG7C5I,IADAutE,GAAU2B,WAAWD,GAASxyE,KAY9B,WADA8wE,GAAU2B,WAAWD,GAASxyE,UAKTuD,IADnButE,GAAU2B,WAAWD,GAClBl+D,YAEHi+D,EAAQG,IACN5B,GAAU2B,WAAWD,GAASl+D,YAEhCi+D,EAAQG,IAAa,GAGvB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SACjC,OAGF4mE,EAAQG,IAAa,EAErB5B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SACjC,WAGF4mE,EAAQG,KAAa,GAErB5rE,QAAQC,IACN,6BACA+pE,GAAU2B,WAAWD,GAASxyE,MAEhCuyE,EAAQG,IAAa,IArCrB5rE,QAAQC,IACN,iBACA+pE,GAAU2B,WAAWD,GAqC3B,CAEA1zD,EAAUuxD,iBAAmB59D,KAAKS,UAChCq/D,EACA,KACA,EAGJ,MAEEzrE,QAAQC,IACN,0BACA+pE,GAAU2B,WAGhB,CAEF,MAAO,QAGelvE,IAFpBwvE,GAAyB,QAAE,oBACjB,OACI,iBAKgBxvE,IAF5BwvE,GAAyB,QAAE,oBACjB,OACI,WAAQ,KACtB,CACA,IAAMjC,GAAYD,GAChBkC,GAAyB,QAAE,oBACjB,OACI,WAAQ,KACtB1zE,GAEF,QAC2BkE,IAAzButE,GAAU2B,YACY,WAAtB3B,GAAgB,KAChB,CACIyB,EAAU,CAAC,EACf,IAAK,IAAIC,KAAW1B,GAAU2B,WAAY,CACxD3rE,QAAQC,IAAI,aAAcyrE,GACV,IAAME,GAAYF,EACfltE,WAAW,IAAK,KAChB6G,mBAGD5I,IADAutE,GAAU2B,WAAWD,GAASxyE,KAY9B,WADA8wE,GAAU2B,WAAWD,GAASxyE,WAKTuD,IADnButE,GAAU2B,WAAWD,GAClBl+D,YAEHi+D,EAAQG,IACN5B,GAAU2B,WAAWD,GAASl+D,YAEhCi+D,EAAQG,IAAa,GAEvB5rE,QAAQC,IAAI+pE,GAAU2B,WAAWD,KAEjC1B,GAAU2B,WAAWD,GAASxyE,KAAK2L,SACjC,OAGF4mE,EAAQG,IAAa,GAErB5rE,QAAQC,IACN,6BACA+pE,GAAU2B,WAAWD,GAASxyE,MAEhCuyE,EAAQG,IAAa,IAhCrB5rE,QAAQC,IACN,iBACA+pE,GAAU2B,WAAWD,GAgC3B,CAEA1zD,EAAUuxD,iBAAmB59D,KAAKS,UAChCq/D,EACA,KACA,EAGJ,MAEEzrE,QAAQC,IACN,0BACA+pE,GAAU2B,WAGhB,CAMZ,CACF,CAGF,IAAK,IAAIxmE,KAAO4lE,EAAYj5D,WAAY,CACtC,IAAMk4D,GAAYD,GAAagB,EAAYj5D,WAAW3M,GAAM5M,GAC5D,GAAqB,UAAjByxE,GAAUr2D,GAAgB,CAC5B,IAAIwF,GAAY,CACd3L,YAAaw8D,GAAUx8D,YACvBrP,KAAM6rE,GAAU7rE,KAChB6T,SAAUg4D,GAAUh4D,SACpB2B,GAAI,cAGqBlX,IAAvButE,GAAUh4D,WACZmH,GAAUnH,UAAW,GAGvBgG,EAAUsxD,QAAQzjE,KAAKsT,GACzB,KAA4B,SAAjB6wD,GAAUr2D,GAEnBqE,EAAUhM,MAAMnG,KAAKmkE,GAAU7rE,MAML,SAAjB6rE,GAAUr2D,QAGOlX,IAAtButE,GAAUn6D,UACZmI,EAAUnM,KAAOm+D,GAAUn6D,SAEH,WAAjBm6D,GAAUr2D,GACnBqE,EAAUzY,SAAO,UAAOyqE,GAAU7rE,KAAI,YAAI6rE,GAAUn6D,QAAO,MAE3D7P,QAAQC,IACN,iDACA+pE,GAGN,CAEA,GAAuB,KAAnBhyD,EAAU7Z,WAAkC1B,IAAnBub,EAAU7Z,KAAoB,CAKzD,GAAoD,IAAhD/F,OAAO05B,oBAAoB84C,GAAUlnE,OACvC,gBAAiCtL,OAAO8M,QAAQ3M,EAAKyT,OAAM,kBAAE,CAAxD,6BAAKmgE,GAAO,MACTC,IADoB,MACLD,GAAQxnE,MAAM,MACnC,IAAK,IAAIQ,KAAOinE,GAAc,CAC5B,IAAMC,GAAWD,GAAajnE,GAAKE,mBACR5I,IAAvBmuE,EAASyB,IACXzB,EAASyB,IAAY,EAErBzB,EAASyB,KAAa,CAE1B,CACF,CAMF,IAAM3zB,GAAWl0C,EAAKG,MAAM,KAC5B,GAAI+zC,GAASh1C,OAAS,EAAG,CACvB,IAAI4oE,GAAU,GACd,IAAK,IAAInnE,KAAOuzC,GAAU,CACxB,IAAI6zB,GAAU7zB,GAASvzC,GACvB,KAAIylE,EAAS2B,IAAW,GAAKA,GAAQ7oE,OAAS,GAA9C,CAIA4oE,GAAUC,GACV,KAHA,CAIF,CAIA,IAAMruE,GAAaouE,GAChB3nE,MAAM,KACNM,KAAK,KACLN,MAAM,KACNM,KAAK,KACLN,MAAM,KACNM,KAAK,KACLN,MAAM,KACNM,KAAK,KACLsa,OACuB,IAAtBrhB,GAAWwF,OACbsU,EAAUc,OAAOjT,KAAK,gBAChB,WACN,IAAMwlC,EACJnhC,EAAO7L,OAAO,GAAGC,cACjB4L,EAAOjS,MAAM,GACb,IACAiG,GACIsuE,EAAgB3pB,EAAWjyC,MAC/B,SAACrY,GAAI,OAAKA,EAAK4F,OAASktC,CAAO,IAEjCrrC,QAAQC,IAAI,WAAYusE,QACF/vE,IAAlB+vE,EACFx0D,EAAUc,OAAOjT,KAAK,gBAEtBmS,EAAU7Z,KAAOktC,CAClB,CAdK,EAgBV,MACErzB,EAAUc,OAAOjT,KAAK,eAE1B,CAIAg9C,EAAWh9C,KAAKmS,EAxvBhB,KALiB,eAAX9N,IACFlK,QAAQC,IAAI,mBAAoBiK,EAAQ,SAAU6gE,GAClDzkE,EAAM+E,KAAK,iCAAmCnB,SARhD5D,EAAM+E,KAAK,wBAA0BnB,EAowBzC,CAIF,QAAqBzN,IAAjBlE,EAAKk0E,SAAyBl0E,EAAKk0E,QAAQ/oE,OAAS,EAAG,CACzD,IAAIgpE,GAAWn0E,EAAKk0E,QAAQ,GAAGlgE,IAC/B,GACEmgE,GAAS7nE,SAAS,MAClB6nE,GAAS7nE,SAAS,WACYpI,IAA9BlE,EAAKk0E,QAAQ,GAAGE,UAChB,CACA,IACMz2C,GAAQw2C,GAASvhC,MADT,UAEd,GAAc,OAAVjV,GACF,IAAK,IAAI/wB,KAAO+wB,GAAO,CACrB,IAAMpoB,GAAOooB,GAAM/wB,GAAKlN,MAAM,EAAGi+B,GAAM/wB,GAAKzB,OAAS,GAC/CkpE,GAAWr0E,EAAKk0E,QAAQ,GAAGE,UAAU7+D,SACfrR,IAAxBmwE,GAAkB,UACpBF,GAAWA,GAASzgE,QAAQiqB,GAAM/wB,GAAMynE,GAAkB,SAE9D,CAEJ,CAEIF,GAASziC,SAAS,KACpB08B,GAAW+F,GAASz0E,MAAM,EAAGy0E,GAAShpE,OAAS,IAE/CijE,GAAW+F,GAEf,CACF,CAGA,QAAwBjwE,IAApBguE,EAA+B,CACpCzqE,QAAQC,IAAI,YAAawqE,GAItB,IAAI9lB,GAAU,GACjB,IAEI,IADH,IAAIkoB,IAAY,EACb,QAA2Bz0E,OAAO8M,QAAQulE,GAAgB,kBAAE,CAAvD,6BAAOtlE,GAAG,MAAEtD,GAAK,MAGpB,GAFA7B,QAAQC,IAAIkF,GAAKtD,IAEL,QAARsD,GACF4hE,GAAwB,OACxBD,IAA0B,QAGXrqE,IAAboF,GAAM8R,IACO,OAAb9R,GAAM8R,IACN9R,GAAM8R,GAAGjQ,OAAS,IAElByjE,GAAiBtlE,GAAM8R,IAC7Bk5D,IAAY,QAGH,GAAqB,WAAjBhrE,GAAMirE,OACf/F,GAAwB,eACxBD,IAA0B,GAC/B+F,IAAY,OAEF,GAAY,eAAR1nE,IAAgC,UAARA,KAAkC,WAAbtD,GAAM8R,IAAgC,UAAb9R,GAAM8R,UAAkClX,IAAfoF,GAAM1D,MAKjG,IAAd0uE,IACHA,IAAY,EACPhrE,GAAM8R,GAAK9R,GAAM8R,GAAGtV,OAAO,GAAGC,cAAgBuD,GAAM8R,GAAG1b,MAAM,GAE7DovE,GAAqBxlE,GAAM8R,IACtBqyD,EAAgBnhE,SAAShD,GAAM8R,MAClC3T,QAAQC,IAAI,kBAAmB+lE,GAC/B1/D,EAAM6E,MAAM,wDAGdnL,QAAQC,IAAI,eAAgB4B,GAAM1D,MAClC4oE,GAAwB,WACxBI,GAAiBtlE,GAAM1D,MACvB2oE,IAA0B,GAE1BniB,GAAQ9+C,KAAK,CACZ,KAAQV,GACR,KAAQtD,GAAM8R,GAAGtO,cACtB,GAAMxD,GAAM8R,GAAGtO,cACV,QAAW,MAGZs/C,GAAQ9+C,KAAK,CACZ,KAAQV,GACR,KAAQtD,GAAM8R,GAAGtO,cACtB,GAAMxD,GAAM8R,GAAGtO,cACV,QAAW,UAIa5I,IAAtBoF,GAAM2L,aAAmD,OAAtB3L,GAAM2L,aAAwB3L,GAAM2L,YAAY9J,OAAS,GAE/F7B,GAAM2L,YAAY7I,MAAM,KAAKjB,OAAS,GAAM,GAC/C6jE,GAAc1lE,GAAM2L,kBAIb,GAAqB,UAAjB3L,GAAMirE,OACf/F,GAAwB,cACxBD,IAA0B,GAC/B+F,IAAY,OAEF,GAAqB,WAAjBhrE,GAAMirE,OACf/F,GAAwB,UACxBD,IAA0B,GAC/B+F,IAAY,OAEF,GAAmB,WAAfhrE,GAAM3I,MAA6B,WAARiM,IAA4B,YAARA,SAA8B1I,IAAR0I,IAA6B,OAARA,IAAgBA,GAAIE,cAAcR,SAAS,UAAY,CAE1JkiE,GAAwB,UACxBD,IAA0B,GAC/B+F,IAAY,EAGP,IAAME,QAAyBtwE,IAAfoF,GAAMmrE,KAAqB,QAAU,OAE/CznE,QAA+C9I,IAArCoF,GAAMkrE,IAASE,kBACzB,oBACA,WAGN,QAAuBxwE,IAAnBoF,GAAMkrE,UAAsDtwE,IAA5BoF,GAAMkrE,IAASxnE,IACjD,MAE+C9I,IAA7CoF,GAAMkrE,IAASxnE,IAAS2nE,kBACC,IAAzBhG,GAAcxjE,QAEdyjE,GAAiBtlE,GAAMkrE,IAASxnE,IAAS2nE,kBAG3C,IAAIC,GAAW,GAcf,QAbyC1wE,IAArCoF,GAAMkrE,IAASxnE,IAAS4nE,UAC1B9F,GAAqBxlE,GAAMkrE,IAASxnE,IAAS4nE,UAC7CA,GAAWtrE,GAAMkrE,IAASxnE,IAAS4nE,UAEnC9F,GAAqB,SAGoB5qE,IAAvCoF,GAAMkrE,IAASxnE,IAAS+hE,WAC1BC,GAAc1lE,GAAMkrE,IAASxnE,IAAS+hE,YAC7B6F,GAASzpE,OAAS,GAC3B6jE,GAAc4F,SAIqB1wE,IAAnCoF,GAAMkrE,IAASxnE,IAAS+Z,QACW,OAAnCzd,GAAMkrE,IAASxnE,IAAS+Z,OAExB,GAAIzd,GAAMkrE,IAASxnE,IAAS+Z,OAAO5b,OAAS,EAC1C+jE,GAAgB5lE,GAAMkrE,IAASxnE,IAAS+Z,YACnC,CAEL,IADA,IAAI8tD,GAAY,GAChB,QAAmCh1E,OAAO8M,QACxCrD,GAAMkrE,IAASxnE,IAAS+Z,QACzB,kBAAE,CAFE,6BAAK+tD,GAAQ,MAAY,MAG5B,GAAIA,GAASzoE,WAAW,QAEtB,GADsByoE,GAAS1oE,MAAM,KACnBjB,OAAS,EAAG,CAC5B1D,QAAQC,IAAI,mBAAoBotE,IAChC/mE,EAAM+E,KAAK,mBAAqBgiE,IAChC,QACF,CAKFD,GAAUvnE,KAAKwnE,GACjB,CAEA5F,GAAgB2F,GAClB,CAEJ,MACEptE,QAAQC,IACN,uCACA8sE,GACAxnE,GAGN,MACEe,EAAM6E,MAAM,8BAA+BhG,GAO/C,CAIJ,CAHE,MAAOxN,IACR2O,EAAM6E,MAAM,yBACZnL,QAAQC,IAAI,UAAWtI,GACxB,CAEOgtD,GAAQjhD,OAAS,IACvBihD,GAAUA,GAAQpyC,QAAO,SAAAha,GAAI,MAAiB,cAAbA,EAAK4F,IAAoB,IACtD+qE,GAAavkB,IAEjB,CAEI9B,EAAWn/C,OAAS4pE,GACtBvE,GA31CmB,IA61CnBA,GAAgBlmB,EAAWn/C,QAIzBm/C,EAAWn/C,OAAS,KAAQvH,KAC9BmK,EAAM6E,MACJ,yBACE03C,EAAWn/C,OACX,4BAEJm/C,EAAaA,EAAW5qD,MAAM,EAAG,MAGnC0vE,GAAqBkD,GACrB3C,GAAWrlB,GACXulB,GAAmBvlB,GACnB0jB,GAAe,EArkCf,MAFEjgE,EAAM+E,KAAK,2BAwkCf,EA2pBMkiE,GACqB,gBAAzBtuD,GACE,sBAAKvmB,MAAO,CAAEqB,MAAO,SAAU,UAC7B,6BACE,mBACE2W,OAAO,SACPU,KAAK,8EACL1Y,MAAO,CAAE80E,gBAAiB,OAAQzzE,MAAO,WAAY,2BAIpD,6FAIL,KAGA0zE,GACqB,eAAzBxuD,GACE,sBAAKvmB,MAAO,CAAEqB,MAAO,SAAU,UAC7B,6BACE,mBACE2W,OAAO,SACPU,KAAK,6EACL1Y,MAAO,CAAE80E,gBAAiB,OAAQzzE,MAAO,WAAY,oCAIpD,yFAIL,KAsGA2zE,GAAqC,WAAzBzuD,GAAoC,KACpD,sBAAKvmB,MAAO,CAAE+H,UAAW,GAAI2D,YAAa,IAAM,UAC9C,sBAAK1L,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACK,EAAA,EAAU,CAACC,QAAQ,QAAO,kCACL,IAArByoE,GAAUvlE,OACT,cAACmL,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAEwB,SAAU,GAAID,WAAY,IACnCuG,QAAQ,WACR3B,QAAS,WACPmB,QAAQC,IAAI,YACZgpE,GAAUpjE,KAAKmjE,IACfE,GAAaD,IACb5lD,GAAUqB,KAAKC,SACjB,EAAE,SAEF,cAACkS,GAAA,EAAO,CAACn+B,MAAO,CAAC,MAGnB,sBAAMA,MAAO,CAAEuF,MAAO,SAIzBgrE,GAAU9xE,KAAI,SAAC0K,EAAOnE,GACrB,OACE,uBAEEhF,MAAO,CAAEwH,QAAS,OAAQmB,OAAQ,GAAIZ,UAAW,GAAI,UAErD,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACL2I,OAAQ,GACRsM,KAAM,EACNlN,UAAW,EACXuJ,aAAc,EACdnQ,gBAAiBT,GACjBgL,YAAa,GAEfjD,WAAW,EACXO,YAAY,OACZ3J,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAcwnE,GAAUvrE,GAAOS,KAC/BwD,SAAU,SAAChK,GACTsxE,GAAUvrE,GAAOS,KAAOxG,EAAE+Y,OAAO7O,MACjCqnE,GAAaD,GACf,EACA7nE,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,EACZC,SAAU,MACVC,SAAU,UAIhB,cAAC+G,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACL2I,OAAQ,GACRZ,UAAW,EACXuJ,aAAc,EACd2D,KAAM,EACN9T,gBAAiBT,GACjBgL,YAAa,GAEfjD,WAAW,EACXO,YAAY,0CACZ3J,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAcwnE,GAAUvrE,GAAOmS,QAC/BlO,SAAU,SAAChK,GACTsxE,GAAUvrE,GAAOmS,QAAUlY,EAAE+Y,OAAO7O,MACpCqnE,GAAaD,GACf,EACA7nE,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPC,UAAW,GACXC,WAAY,EACZC,SAAU,MACVC,SAAU,UAIhB,eAACsW,GAAA,EAAM,CACLtP,WAAS,EACTQ,SAAU,SAAChK,GACTsxE,GAAUvrE,GAAOxE,KAAOvB,EAAE+Y,OAAO7O,MACjCwhB,GAAUqB,KAAKC,UACfukD,GAAaD,GACf,EACApnE,MAAOonE,GAAUvrE,GAAOxE,KACxBR,MAAO,CACLiV,KAAM,EACN9T,gBAAiBT,GACjBiL,YAAa,OACbtK,MAAO,QACPsH,OAAQ,GACR/H,aAAc,GAEhBq6C,WAAY,CACVx1C,KAAM,MACNpG,GAAI,uBACJ,UAEF,cAACkY,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAO,SAAS,mBAFXnE,GAMP,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAO,QAAQ,kBAFVnE,MAOT,sBAAKhF,MAAO,CAAEwH,QAAS,OAAQjC,MAAO,KAAM,UACzCP,IAAUurE,GAAUvlE,OAAS,EAC5B,cAACmL,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,WACR3B,QAAS,WACPoqE,GAAUpjE,KAAKmjE,IACfE,GAAaD,IACb5lD,GAAUqB,KAAKC,SACjB,EAAE,SAEF,cAACkS,GAAA,EAAO,CAACn+B,MAAO,CAAC,MAGnB,sBAAMA,MAAO,CAAC,IAEhB,cAACmW,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAC,EACR8H,QAAQ,WACR3B,QAAS,WACP,IAAMkmD,EAAUkkB,GAAU12D,QACxB,SAACzE,GAAI,OACHA,EAAK5U,OAAS2I,EAAM3I,MAAQ4U,EAAK3P,OAAS0D,EAAM1D,IAAI,IAExD+qE,GAAankB,GACb/kD,QAAQC,IAAI8kD,GACZ1hC,GAAUqB,KAAKC,SACjB,EAAE,SAEF,cAACgpD,GAAA,EAAU,CAACj1E,MAAO,CAAC,WArInBgF,EA0IX,OAIEkwE,GACqB,QAAzB3uD,GACE,sBAAKvmB,MAAO,CAAEqB,MAAO,QAAS0G,UAAW,IAAK,UAC5C,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,gCAC3B,cAACD,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,iCAI3B,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CAAEyJ,OAAQ,EAAGwL,KAAM,IAAK9T,gBAAiBT,IAChD+H,WAAW,EACXO,YAAY,8BACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAcylE,GACdrxD,WACE,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,mDAIvDsQ,OAAQ,SAAC3iB,GAAC,OAAKwvE,GAAiBxvE,EAAE+Y,OAAO7O,MAAM,EAC/CT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,eAKb,KAEA8zE,GACqB,WAAzB5uD,GACE,sBAAKvmB,MAAO,CAAEqB,MAAO,QAAS0G,UAAW,IAAK,UAC5C,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,mCAC3B,cAACD,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,uKAK3B,cAACF,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,+CAI3B,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CAAEyJ,OAAQ,EAAGwL,KAAM,IAAK9T,gBAAiBT,IAChD+H,WAAW,EACXO,YAAY,+BACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOqlE,GACPvlE,SAAU,SAAChK,GAAC,OAAKwvE,GAAiBxvE,EAAE+Y,OAAO7O,MAAM,EACtDyY,OAAQ,SAACvb,GACF,IAAI+uE,EAAY/uE,EAAM2R,OAAO7O,MAAM0d,OAUzC,GAPQuuD,EAAUpqE,OAAS,IAClBoqE,EAAUlpE,WAAW,UACrBkpE,EAAUlpE,WAAW,QAEtB0B,EAAM6E,MAAM,uCAGhB2iE,EAAUjpE,SAAS,KAAM,CAC5B,IAAIkpE,EAASD,EAAUnpE,MAAM,KACzBmpE,EAAUpqE,OAAS,IACtBoqE,EAAYC,EAAO,GAErB,CAEA5G,GAAiB2G,EAClB,EACK1sE,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,YAIb,cAACwG,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,kCAI3B,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CAAEyJ,OAAQ,EAAGwL,KAAM,IAAK9T,gBAAiBT,IAChD+H,WAAW,EACXO,YAAY,2BACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOulE,GACPzlE,SAAU,SAAChK,GACf0vE,GAAqB1vE,EAAE+Y,OAAO7O,MAC/B,EACAyY,OAAQ,SAACvb,GACF,IAAI+uE,EAAY/uE,EAAM2R,OAAO7O,MAAM0d,OAUzC,GAPQuuD,EAAUpqE,OAAS,IAClBoqE,EAAUlpE,WAAW,UACrBkpE,EAAUlpE,WAAW,QAEtB0B,EAAM6E,MAAM,wCAGhB2iE,EAAUjpE,SAAS,KAAM,CAC5B,IAAIkpE,EAASD,EAAUnpE,MAAM,KACzBmpE,EAAUpqE,OAAS,IACtBoqE,EAAYC,EAAO,GAErB,CAEA1G,GAAqByG,EACtB,EACK1sE,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,YAIb,cAACwG,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,qDAI3B,cAACS,EAAA,EAAS,CACRxI,MAAO,CAAEyJ,OAAQ,EAAGwL,KAAM,IAAK9T,gBAAiBT,IAChD+H,WAAW,EACXO,YAAY,wCACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOylE,GACP3lE,SAAU,SAAChK,GAAC,OAAK4vE,GAAc5vE,EAAE+Y,OAAO7O,MAAM,EACnDyY,OAAQ,SAACvb,GACF,IAAI+uE,EAAY/uE,EAAM2R,OAAO7O,MAAM0d,OAUzC,GAPQuuD,EAAUpqE,OAAS,IAClBoqE,EAAUlpE,WAAW,UACrBkpE,EAAUlpE,WAAW,QAEtB0B,EAAM6E,MAAM,0CAGhB2iE,EAAUjpE,SAAS,KAAM,CAC5B,IAAIkpE,EAASD,EAAUnpE,MAAM,KACzBmpE,EAAUpqE,OAAS,IACtBoqE,EAAYC,EAAO,GAErB,CAEAxG,GAAcuG,EACf,EACK1sE,WAAY,CACV1I,MAAO,CACLqB,MAAO,YAIb,cAACwG,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAE+H,UAAW,IAAK,+BAI3B,cAAC,MAAS,GACR/H,MAAO,CAACgB,OAAQ,oBAAqBJ,aAAcX,EAAME,QAAQS,cACtE0Y,UAAQ,EACH5Q,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPwD,UAAW,MAEb,sBACK,CAAEA,UAAW,GAAIE,UAAW,SAAUD,UAAW,SAAQ,4BACpD,2BAAyB,sBAC/B,WAAS,oDAERgqE,IAAY,uBACZ,SAACjzC,GACNizC,GAAa3hE,KAAK0uB,GAClBv0B,QAAQC,IAAIunE,IACZC,GAAgBD,IAChBnkD,GAAUqB,KAAKC,SACjB,IAAC,0BACS,SAAC4P,EAAM72B,GACf8pE,GAAa/yC,OAAO/2B,EAAO,GAC3BsC,QAAQC,IAAIunE,IACZC,GAAgBD,IAChBnkD,GAAUqB,KAAKC,SACjB,IAAC,OAGH,KAEAtlB,GACqB,YAAzB4f,GACE,sBAAKvmB,MAAO,CAAEqB,MAAO,QAAS0G,UAAW,IAAK,UAC5C,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAO,oCAC3B,cAACD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,oHAGrD,sBAAKrB,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,sBAAK/H,MAAO,CAACiV,KAAM,GAAI,gBAEtB,cAACzM,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAAE+H,UAAW,EAAG5G,gBAAiBT,IACxC+H,WAAW,EACXO,YAAY,4CACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOqlE,GACPrxD,WACC,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,gFAItDrI,SAAU,SAAChK,GACVwvE,GAAiBxvE,EAAE+Y,OAAO7O,MAC3B,EACAT,WAAY,CACXq3B,QAAS,CACR+V,eAAgB/V,EAAQ+V,gBAEzB91C,MAAO,CACNqB,MAAO,eAKX,sBAAKrB,MAAO,CAACuB,WAAY,EAAG0T,KAAM,GAAI,uBAEjC,cAAC8C,GAAA,EAAM,CACLtP,WAAS,EACTQ,SAAU,SAAChK,GACT0vE,GAAqB1vE,EAAE+Y,OAAO7O,MAChC,EACAA,MAAOulE,GACP1uE,MAAO,CACLY,aAAc,EACdO,gBAAiBT,GACjBiL,YAAa,GACbtK,MAAO,QACPsH,OAAQ,IAEVsyC,WAAY,CACVx1C,KAAM,MACNpG,GAAI,uBACJ,SAEDiuE,EAAgB7uE,KAAI,SAACoB,EAAMmF,GAC1B,YAAajB,IAATlE,EACK,KAIP,cAAC0X,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJImF,EAOX,SAGP,sBAAKhF,MAAO,CAACuB,WAAY,EAAG0T,KAAM,GAAI,yBAErC,cAACzM,EAAA,EAAS,CACTxI,MAAO,CAAE+H,UAAW,EAAGkN,KAAM,IAAK9T,gBAAiBT,IACnD+H,WAAW,EACXO,YAAY,iBACZxI,KAAK,OACLnB,GAAG,uBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOylE,GACP3lE,SAAU,SAAChK,GAEH4vE,GAAc5vE,EAAE+Y,OAAO7O,MAC/B,aAKC,KAEAmsE,GACsB,IAA1BjG,GAAerkE,OAAe,KAC5B,gCACE,cAACgO,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,UAEnB,UAEDkuE,GAAe5wE,KAAI,SAACoB,EAAMmF,GACzB,IAAMuwE,GAAkC,IAAlB11E,EAAKyZ,SAAoB,QAAU,MAEzD,OACE,eAACvT,EAAA,EAAK,CAAa/F,MAAO+sE,GAAgB,UACxC,sBAAK/sE,MAAO,CAAEuB,WAAY,MAAOgE,MAAO,QAAS,UACvD,sBAAKvF,MAAO,CAACwH,QAAS,QAAQ,UAC7B,cAACgB,EAAA,EAAS,CACT8Q,UAAQ,EACR7Q,WAAW,EACXM,aAAclJ,EAAK4F,KACnBuD,YAAa,mBACbxC,MAAO,YACP2W,WACC,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,oCAItDsQ,OAAQ,SAAC3iB,GACRqI,QAAQC,IAAI,YAAatI,EAAE+Y,OAAO7O,OAClCkmE,GAAerqE,GAAOS,KAAOxG,EAAE+Y,OAAO7O,MAAMrD,WAC3C,IACA,IAGDwpE,GAAkBD,GACnB,EACArvE,MAAO,CAACiV,KAAM,GACdvM,WAAY,CACX1I,MAAO,CACNqB,MAAO,YAIV,cAACmH,EAAA,EAAS,CACTC,WAAW,EACXM,aAAclJ,EAAKsX,QACnBnO,YAAa,gBACbxC,MAAO,UACPob,OAAQ,SAAC3iB,GACRowE,GAAerqE,GAAOmS,QAAUlY,EAAE+Y,OAAO7O,MAAMrD,WAC9C,IACA,IAGDwpE,GAAkBD,GACnB,EACArvE,MAAO,CAACiV,KAAM,GACdvM,WAAY,CACX1I,MAAO,CACNqB,MAAO,eAKH,sBACErB,MAAO,CAAEoF,OAAQ,WACjBe,QAAS,YA9mBJ,SAACnB,GACpBqqE,GAAerqE,GAAOsU,UAAY+1D,GAAerqE,GAAOsU,SAEtDy0D,GADc,gBAAZD,GACS,UAEA,eAEbwB,GAAkBD,GACpB,CAumBkBmG,CAAaxwE,EACf,EAAE,sBAEQ,IACV,qBAAKhF,MAAO,CAAEwH,QAAS,SAAUnG,MAAOk0E,GAAgB,SACrD11E,EAAKyZ,SAASjN,mBAIrB,qBACErM,MAAO,CAAE6Y,MAAO,QAASxX,MAAO,UAAW+D,OAAQ,WACnDe,QAAS,YAhnBC,SAACnB,GACvBqqE,GAAetzC,OAAO/2B,EAAO,GAE3B+oE,GADc,kBAAZD,GACS,UAEA,iBAEbwB,GAAkBD,GACpB,CAymBgBoG,CAAgBzwE,EAClB,EAAE,SAET,cAAC6R,GAAA,EAAU,QArEI7R,EAyEhB,IACA,cAACgU,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,aAMrBu0E,GACe,IAAnBnjE,GAAQvH,OAAe,KACrB,8BACGykE,GAAgBlwE,MAAM,EAAG6wE,IAAc3xE,KAAI,SAACoB,EAAMmF,GACjD,IAAIyN,EACF5S,EAAKugB,OAAOpV,OAAS,EACnB,cAAC2K,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAOvE,EAAKugB,OAAO7T,KAAK,MACxBiN,UAAU,SAAQ,SAElB,cAACm8D,GAAA,EAAgB,MAGnB,cAAChgE,GAAA,EAAO,CACNtU,MAAM,YACN+C,MAAOvE,EAAKugB,OAAO7T,KAAK,MACxBiN,UAAU,SAAQ,SAElB,cAAC6yB,GAAA,EAAe,CAACrsC,MAAO,CAAE+H,UAAW,OAIvCoxB,EAAU,UACM,SAAhBt5B,EAAK2R,OACP2nB,EAAU,UACe,QAAhBt5B,EAAK2R,OACd2nB,EAAU,UACe,UAAhBt5B,EAAK2R,OACd2nB,EAAU,UACe,WAAhBt5B,EAAK2R,OACd2nB,EAAU,UACe,SAAhBt5B,EAAK2R,SACd2nB,EAAU,WAGZ,IAAMtlB,EAAMhU,EAAKgU,IACX+hE,OACoB7xE,IAAvBlE,EAAiB,YACK,OAAvBA,EAAiB,YACjBA,EAAiB,WAAEmL,OAAS,GAAmC,0BAA7BnL,EAAuB,iBAmB3D,OACE,eAACkG,EAAA,EAAK,CAAa/F,MAAO+sE,GAAgB,UACvCt6D,EACD,cAACkD,GAAA,EAAO,CAACvR,MAAM,cAAcoV,UAAU,SAAQ,SAC7C,qBACExZ,MAAO,CACLuB,WAAY,MACZgE,MAAO,OACPH,OAAQ,UACR5D,SAAU,IACVuD,UAAW,UAEboB,QAAS,WACjBmB,QAAQC,IAAI,SAAU1H,GACR+1E,GACF1F,IAAqB,GAEhC5oE,QAAQC,IAAI,kBAAmB1H,EAAiB,YAChDA,EAAKgH,QAAU,IAEfS,QAAQC,IAAI,WAGHwpE,GAAiBlxE,GACjB6wE,GAAuB7wE,EAAK2R,QAC5B89D,GAAkBzvE,EAAK+wE,SACvBxB,GAAWvvE,EAAKgU,KAChBs6D,IAAoB,QAGDpqE,IAAjBlE,EAAW,MACM,OAAjBA,EAAW,MACXA,EAAW,KAAEmL,OAAS,EAEtB6qE,GAAeh2E,EAAW,MAErCyH,QAAQC,IAAI,gBAGL,EAAE,SAEF,sBAAKvH,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAAC+N,GAAA,EAAI,CACHvV,MAAO,CACLmB,gBAAiBg4B,EACjB93B,MAAO,QACPT,aAAc,EACdgH,SAAU,GACV8D,YAAa,GACb3D,UAAW,EACX3C,OAAQ,UACR3D,SAAU,IAEZ+E,MAAO3G,EAAK2R,SAEd,uBACExR,MAAO,CACLyB,SAAU,GACVsG,UAAW,OACXuJ,aAAc,QACd,UAEDskE,EACC,cAACE,GAAA,EAAc,CAAC91E,MAAO,CAAE2I,OAAQ,GAAIpD,MAAO,MAC1C,KAAM,IACTsO,EAAG,MAAKhU,EAAK4F,eAYtB,cAACkQ,GAAA,EAAO,CACNvR,MAAM,mBACNoV,UAAU,SACVxZ,MAAO,CAAE4H,SAAU,IAAK,SAExB,qBACE5H,MAAO,CACLqB,MAAO,UACP+D,OAAQ,UACRsG,YAAa,IAEfvF,QAAS,YA9wBD,SAACnB,GACvB,IAAI+wE,EAAY9iE,KAAKC,MAAMD,KAAKS,UAAUnB,GAAQvN,KAClD+wE,EAAUtwE,KAAOswE,EAAUtwE,KAAO,QAClCswE,EAAU31D,OAAOjT,KAAK,4BAEtBoF,GAAQpF,KAAK4oE,GAETxjE,GAAQvH,OAASolE,IACnBC,GAAgB99D,GAAQvH,QAG1BwkE,GAAWj9D,IACXm9D,GAAmBn9D,IACnBoY,GAAUqB,KAAKC,SACjB,CAiwBkB+pD,CAAgBhxE,EAClB,EAAE,SAEF,cAACsjC,GAAA,EAAY,CAACjnC,MAAM,kBAGxB,cAACsU,GAAA,EAAO,CACNvR,MAAM,gBACNoV,UAAU,SACVxZ,MAAO,CAAE4H,SAAU,IAAK,SAExB,qBACE5H,MAAO,CAAEqB,MAAO,UAAW+D,OAAQ,WACnCe,QAAS,YA5wBJ,SAACnB,GACpBuN,GAAQwpB,OAAO/2B,EAAO,GACtB+rE,GAAiB,CACftrE,KAAM,GACNqP,YAAa,GACbjB,IAAK,GACL88D,WAAY,GACZ9pE,QAAS,GACTyM,MAAO,GACPs9D,QAAS,GACTz9D,KAAM,GACNiN,OAAQ,GACR5O,OAAQ47D,EAAqB,KAG/BoC,GAAWj9D,IACXm9D,GAAmBn9D,IACnB89D,GAAgBD,GAAe,GAC/BzlD,GAAUqB,KAAKC,SACjB,CA0vBkBgqD,CAAajxE,EACf,EAAE,SAEF,cAAC6R,GAAA,EAAU,CAACxV,MAAM,oBAzGZ2D,EA8GhB,MAIAkxE,GAAiB,SAACpsC,EAAO3gC,GAC7B2nE,GAAchnC,GAAS3gC,EACvB4nE,GAAiBD,GAGnB,EAEM+E,GAAiB,SAAC1iE,GACtB,IACMqqB,EAAQrqB,EAAKs/B,MADL,cAGZu9B,GADY,OAAVxyC,EACiB,GAEAA,EAEvB,EAEM24C,GAAuB,SAACvzE,GAAW,IAAD,EAC9BwzE,EAAoBxzE,EAApBwzE,SACR,GAD4BxzE,EAAVoC,MACsBb,oBAAS,IAAM,mBAAhDkyE,EAAY,KAAEC,EAAe,KAEpC,OACE,cAAC3gE,GAAA,EAAO,CAACvR,MAAOiyE,EAAe,oBAAsB,gBAAgB,SACnE,cAAC9gE,GAAA,EAAI,CACHvV,OAAK,GACHmB,gBAAiBk1E,EAAe,UAAY,UAC5C1tE,OAAQ,GACRc,OAAQ,EACRkC,YAAa,EACbC,aAAc,GAAC,uBACP,IAAE,uBACF,WAAS,4BACJ,WAAS,sBACf,SAAO,GAEhBpF,MAAO4vE,EACPjwE,QAAS,WACPmB,QAAQC,IAAI,UAAW6uE,GACvBE,GAAiBD,EACnB,KAIR,EAEME,GAAoB,SAAC3zE,GACzB,IAAQmtE,EAAoBntE,EAApBmtE,gBAER,YAAwBhsE,IAApBgsE,GAAqD,OAApBA,EAC5B,KAOP,+BACGA,EAAgBtxE,KAAI,SAACoB,EAAMmF,GAC1B,OAAO,cAACmxE,GAAoB,CAAaC,SAAUv2E,GAAjBmF,EACpC,KAGN,EAEMwxE,GAAWnJ,EAAkBlhE,SAASskE,IAC1C,sBAAKzwE,MAAO,CAAE+H,UAAW,IAAK,UAC5B,6CAAmB,IAAE,IACpBgoE,GAAgB/kE,OAAS,EACxB,cAACnD,EAAA,EAAU,CAAC7H,MAAO,CAAEwH,QAAS,gBAAiB,SAC7C,cAAC+uE,GAAiB,CAACxG,gBAAiBA,OAGtC,cAACloE,EAAA,EAAU,CAAC7H,MAAO,CAAEwH,QAAS,gBAAiB,mDAIjD,cAACgB,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CAAEiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBT,IAC1D+H,WAAW,EACXO,YACE,oFAEFS,OAAO,SACP3B,QAAQ,WACR6zB,WAAS,EACT86C,QAAQ,IACR1tE,aAAc+nE,GAAoB,KAClC7nE,SAAU,SAAChK,GACTi3E,GAAe,OAAQj3E,EAAE+Y,OAAO7O,OAChC0sE,GAAe52E,EAAE+Y,OAAO7O,MAC1B,EAEAgU,WACE,uBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,0EAIvD5I,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,WAXNyvE,IAeP,2BAEA,KAEE4F,GAAkBvG,GAAsB,KAC5C,sBAAKnwE,MAAO,CAAC,EAAE,UACb,yDACA,cAACwI,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CAAEiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBT,IAC1D+H,WAAW,EACXO,YACE,iEAEFS,OAAO,SACP3B,QAAQ,WACR6zB,WAAS,EACT86C,QAAQ,IACR1tE,aAAc+nE,GAAgC,iBAC9C7nE,SAAU,SAAChK,GAAC,OAAKi3E,GAAe,mBAAoBj3E,EAAE+Y,OAAO7O,MAAM,EACnEgU,WACE,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,yEAKvD5I,WAAY,CACV1I,MAAO,CACLqB,MAAO,WAHNyvE,OAyDL6F,GAAkB,SAACxH,GACvB,IAAI77D,EAAQ,GACRs9D,EAAU,GAEd,GAAIzB,EAAQhjE,SAAS,MAAQgjE,EAAQhjE,SAAS,KAAM,CAClD,IAAIyqE,EAAU,GACVzsC,GAAS,EAET0sC,GAAQ,EACZ,IAAK,IAAIpqE,KAAO0iE,EAAS,CAKvB,GAJqB,MAAjBA,EAAQ1iE,KACVoqE,GAAQ,GAGW,MAAjB1H,EAAQ1iE,GAAc,CACxB,GAAImqE,IAAYpI,GAAe,CAC7BoI,EAAU,GACVzsC,GAAS,EACT,QACF,CAAW0sC,EACTjG,EAAQzjE,KAAKypE,GAEbtjE,EAAMnG,KAAKypE,GAGbA,EAAU,GACVzsC,GAAS,CACX,CAEIA,IACFysC,GAAWzH,EAAQ1iE,IAIA,MAAjB0iE,EAAQ1iE,KACV09B,GAAS,EAEb,CACF,CAEA,GAAIglC,EAAQhjE,SAAS,MAAQgjE,EAAQhjE,SAAS,KAAM,CAC9CyqE,EAAU,GACVzsC,GAAS,EAET0sC,GAAQ,EACZ,IAAK,IAAIpqE,KAAO0iE,EAAS,CAKvB,GAJqB,MAAjBA,EAAQ1iE,KACVoqE,GAAQ,GAGW,MAAjB1H,EAAQ1iE,GAAc,CACxB,GAAImqE,IAAYpI,GAAe,CAC7BoI,EAAU,GACVzsC,GAAS,EACT,QACF,CAAW0sC,EACTjG,EAAQzjE,KAAKypE,GAEbtjE,EAAMnG,KAAKypE,GAGbA,EAAU,GACVzsC,GAAS,CACX,CAEIA,IACFysC,GAAWzH,EAAQ1iE,IAIA,MAAjB0iE,EAAQ1iE,KACV09B,GAAS,EAEb,CACF,CAEA,MAAO,CAAC72B,EAAOs9D,EACjB,EAEMkG,GAAoB,WACxB,IAAMz5C,EAASs5C,GAAgBxH,IACzB77D,EAAQ+pB,EAAO,GACfuzC,EAAUvzC,EAAO,GAEnByzC,GAAcx9D,QAAUA,GAAS67D,GAAQnkE,OAAS,GAEpDkrE,GAAe,QAAS5iE,GAG1B,IAAIyjE,EAAa,GAEjB,aAEE,IAAMC,EAAWpG,EAAQnkE,QAEX1I,IADAgzE,EAAW7+D,MAAK,SAAC2+D,GAAK,OAAKA,EAAMpxE,OAASuxE,CAAQ,KAE9DD,EAAW5pE,KAAK,CAAE1H,KAAMmrE,EAAQnkE,GAAM6M,UAAU,GACjD,EALH,IAAK,IAAI7M,KAAOmkE,EAAU,IAgB1B,OANEmG,EAAW/rE,OAAS,GACpBiI,KAAKS,UAAUqjE,KAAgB9jE,KAAKS,UAAU27D,KAE9CC,GAAkByH,GAGbzjE,EAAMtI,OAAS,EACpB,wDAA2BsI,EAAM/G,KAAK,SACpC,IACN,EAEM0qE,GACJ,cAAC56D,GAAA,EAAM,CACLC,KAAM4xD,GACNzlE,WAAS,EACZ+T,WAAY,CACPxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACfqD,UAAW,MAGV0X,QAAS,WACP6yD,GAAW,IACX2B,GAAiB,CACftrE,KAAM,GACNqP,YAAa,GACbjB,IAAK,GACL88D,WAAY,GACZ9pE,QAAS,GACTyM,MAAO,GACPs9D,QAAS,GACTz9D,KAAM,GACNiN,OAAQ,GACR5O,OAAQ47D,EAAqB,KAE/BsD,GAAuBpD,EAAgB,IACvCgC,GAAkB,IAClBnB,IAAoB,GACpB+B,IAAqB,EACvB,EAAE,SAEF,eAACjzD,GAAA,EAAW,CAACjd,MAAO,CAAEmB,gBAAiBV,GAAcY,MAAO,SAAU,UACpE,cAACob,GAAA,EAAW,UACV,qBAAKzc,MAAO,CAAEqB,MAAO,SAAU,0BAEjC,eAACqb,GAAA,EAAa,WACZ,mBACE1E,OAAO,SACPU,KAAK,gDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,sCAItD,qBAAKrB,MAAO,CAAE+H,UAAW,UAAY,OAErC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,EACX2D,YAAa,GACbvK,gBAAiBT,IAEnB+H,WAAW,EACXO,YAAY,OACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAc+nE,GAAoB,KAClC7nE,SAAU,SAAChK,GACTi3E,GAAe,OAAQj3E,EAAE+Y,OAAO7O,MAClC,EACAyY,OAAQ,SAAC3iB,GAEP,IACMu+B,EAAQv+B,EAAE+Y,OAAO7O,MAAMspC,MADf,kBAEA,OAAVjV,GACF04C,GAAe,OAAQ14C,EAAMjxB,KAAK,IAEtC,EAEA7D,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,WANNyvE,IAUP,qBAAK9wE,MAAO,CAAE+H,UAAW,MAAQ,cAEjC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBT,IAEnB+H,WAAW,EACXO,YAAY,cACZxI,KAAK,cACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAc+nE,GAA2B,YACzC7nE,SAAU,SAAChK,GAAC,OAAKi3E,GAAe,cAAej3E,EAAE+Y,OAAO7O,MAAM,EAC9DT,WAAY,CACV1I,MAAO,CACLqB,MAAO,YAIb,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,UAGrB,yCACA,eAAC4W,GAAA,EAAM,CACLtP,WAAS,EACTQ,SAAU,SAAChK,GACTi3E,GAAe,SAAUj3E,EAAE+Y,OAAO7O,OAClCunE,GAAuBzxE,EAAE+Y,OAAO7O,MAClC,EACAA,MAAOsnE,GACPzwE,MAAO,CACLmB,gBAAiBT,GACjBiL,YAAa,OACbtK,MAAO,QACPsH,OAAQ,QAEVsyC,WAAY,CACVx1C,KAAM,SACNpG,GAAI,iBACJ,UAED+tE,EAAqB3uE,KAAI,SAACoB,EAAMmF,GAC/B,OACE,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJImF,EAOX,IACCqoE,EAAkB5uE,KAAI,SAACoB,EAAMmF,GAAK,OACjC,cAACuS,GAAA,EAAQ,CAEPvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJImF,EAKI,OAGf,qBAAKhF,MAAO,CAAE+H,UAAW,UAAY,4BAErC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNvJ,YAAa,OACb3D,UAAW,MACX5G,gBAAiBT,IAEnB+H,WAAW,EACXO,YAAY,WACZ3J,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOgmE,GACPlmE,SAAU,SAAChK,GACTi3E,GAAe,MAAOj3E,EAAE+Y,OAAO7O,OAC/BimE,GAAWnwE,EAAE+Y,OAAO7O,MACtB,EACAgU,WACE,uBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,qDACV,iBAAgB,6BAI7D5I,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,eACxBluB,MAAOmY,EAAQnY,OAEjB5nB,MAAO,CACLqB,MAAO,UAGXugB,OAAQ,SAACvb,GACP,IAAI6wE,EAAY7wE,EAAM2R,OAAO7O,MAuB7B,GArBI+tE,EAAU/qE,SAAS,SACrB+qE,EAAYA,EAAUpxE,WAAW,MAAO,MAGtCoxE,EAAU/qE,SAAS,QACrB+qE,EAAYA,EAAUpxE,WAAW,KAAM,MAGrCoxE,EAAU/qE,SAAS,MAAQ+qE,EAAU/qE,SAAS,OAGhD+qE,GADAA,EAAYA,EAAUpxE,WAAW,IAAK,MAChBA,WAAW,IAAK,MAGpCoxE,EAAU/qE,SAAS,MAAQ+qE,EAAU/qE,SAAS,OAGhD+qE,GADAA,EAAYA,EAAUpxE,WAAW,IAAK,MAChBA,WAAW,IAAK,MAKtCoxE,EAAUhrE,WAAW,SACrBgrE,EAAUhrE,WAAW,SACrBgrE,EAAUhrE,WAAW,UACrBgrE,EAAUhrE,WAAW,YACrBgrE,EAAUhrE,WAAW,WACrBgrE,EAAUhrE,WAAW,YACrB,CACA,IAAMmL,EAAM6/D,EAAUjrE,MAAM,KAExBoL,EAAIrM,OAAS,IACfksE,EAAY7/D,EAAI,GAAGwP,OACnBqvD,GAAe,MAAOgB,GAEtBxG,GAAuBr5D,EAAI,GAAGzR,eAC9BswE,GAAe,SAAU7+D,EAAI,GAAGzR,gBAGlC0B,QAAQC,IAAI,SAAU2vE,GAEtBvsD,GAAUqB,KAAKC,SACjB,MAAO,GAAIirD,EAAUhrE,WAAW,QAAS,CACvC5E,QAAQC,IAAI,SAAU2vE,GAEtB,IAAMC,EAzhHJ,SAACC,GAGjB,GAAI,GAAKA,EAAElvD,QAAQ,SAEjB,OADA5gB,QAAQC,IAAI,kBACL,GAGT,IACE,IAAI8vE,EA/BQ,SAACA,GACf,OAAOA,EAAKC,QAAO,SAAUD,EAAMh4B,GAQjC,OAPI,IAAMA,EAAEn3B,QAAQ,OAClBmvD,EAAKlqE,KAAK,MACVkqE,EAAKlqE,KAAKkyC,EAAE9/C,MAAM,KAElB83E,EAAKlqE,KAAKkyC,GAGLg4B,CACT,GAAG,GACL,CAoBeE,CAAQC,KAAMvrE,MAAMmrE,GAGjC,CAFE,MAAOn4E,GACP,OAAOm4E,CACT,CAEA,IAAIK,EAAM,CAAEjmE,OAAQ,MAAOkmE,OAAQ,CAAC,GAChCxwD,EAAQ,GA6EZ,OA3EAmwD,EAAKhkE,SAAQ,SAAUskE,GACrB,QAAQ,GACN,KAxBQ,SAACP,GACb,MAAO,eAAepU,KAAKoU,EAC7B,CAsBWQ,CAAMD,GACTF,EAAI5jE,IAAM8jE,EACV,MAEF,IAAa,OAARA,GAAwB,iBAARA,EACnBzwD,EAAQ,aACR,MAEF,IAAa,OAARywD,GAAwB,aAARA,EACnBzwD,EAAQ,SACR,MAEF,IAAa,OAARywD,GAAwB,WAARA,GAA4B,iBAARA,EACvCzwD,EAAQ,OACR,MAEF,IAAa,OAARywD,GAAwB,WAARA,EACnBzwD,EAAQ,OACR,MAEF,IAAa,OAARywD,GAAwB,WAARA,EACnBF,EAAIjmE,OAAS,OACb,MAEF,IAAa,OAARmmE,GAAwB,cAARA,EACnBzwD,EAAQ,SACR,MAEF,IAAa,OAARywD,GAAwB,aAARA,EACnBzwD,EAAQ,SACR,MAEF,IAAa,iBAARywD,EACHF,EAAIC,OAAO,mBACTD,EAAIC,OAAO,oBAAsB,gBACnC,MAEF,MAAOC,EACL,OAAQzwD,GACN,IAAK,SACH,IAAI4iB,EApEG,SAACstC,GAClB,OAAOA,EAAEnrE,MAAM,SACjB,CAkEwB4rE,CAAWF,GACvBF,EAAIC,OAAO5tC,EAAM,IAAMA,EAAM,GAC7B5iB,EAAQ,GACR,MACF,IAAK,aACHuwD,EAAIC,OAAO,cAAgBC,EAC3BzwD,EAAQ,GACR,MACF,IAAK,OACgB,QAAfuwD,EAAIjmE,QAAmC,SAAfimE,EAAIjmE,SAC9BimE,EAAIjmE,OAAS,QACfimE,EAAIC,OAAO,gBACTD,EAAIC,OAAO,iBAAmB,oCAChCD,EAAItkE,KAAOskE,EAAItkE,KAAOskE,EAAItkE,KAAO,IAAMwkE,EAAMA,EAC7CzwD,EAAQ,GACR,MACF,IAAK,OACHuwD,EAAIC,OAAsB,cAAI,SAAWI,KAAKH,GAC9CzwD,EAAQ,GACR,MACF,IAAK,SACHuwD,EAAIjmE,OAASmmE,EACbzwD,EAAQ,GACR,MACF,IAAK,SACHuwD,EAAIC,OAAO,cAAgBC,EAC3BzwD,EAAQ,IAKlB,IAEOuwD,CACT,CA47GgCM,CAAU1xE,EAAM2R,OAAO7O,OACvC,GACEguE,IAAY9wE,EAAM2R,OAAO7O,YACNpF,IAAnBozE,EAAQ3lE,QACW,OAAnB2lE,EAAQ3lE,OACR,CAMA,GALI2lE,EAAQ3lE,OAAO5L,gBAAkBkrE,GAAckH,SACjDtH,GAAuByG,EAAQ3lE,OAAO5L,eACtCswE,GAAe,SAAUiB,EAAQ3lE,OAAO5L,qBAGnB7B,IAAnBozE,EAAQO,QAA2C,OAAnBP,EAAQO,OAAiB,CAE3D,IADA,IAAI7wE,EAAU,GACd,MAAyBnH,OAAO8M,QAAQ2qE,EAAQO,QAAO,eAAE,CAApD,0BAAKjrE,EAAG,KAAEtD,EAAK,KAC7B,QAAcpF,IAAVoF,EACH,GAAIsD,EAAIN,SAAS,KAAM,CACtB,IAAMH,EAAWS,EAAIR,MAAM,KAC3BQ,EAAMT,EAAS,GAAG6a,OAClB1d,EAAQ6C,EAAS,GAAG6a,MAErB,KAAO,KAAIpa,EAAIN,SAAS,KAKjB,CACNyB,EAAM6E,MAAM,gBAAiBhG,GAC7B,QACD,CAPC,IAAMT,EAAWS,EAAIR,MAAM,KAC3BQ,EAAMT,EAAS,GAAG6a,OAClB1d,EAAQ6C,EAAS,GAAG6a,MAKrB,MAI8B9iB,IAAlByqE,IACA/hE,EAAIE,gBAAkB6hE,GAAc7hE,eAK1B,kBAARF,IAIJ5F,GAAW4F,EAAM,IAAMtD,EAAQ,KACjC,CAEV,IACW+sE,GAAe,UAAWrvE,EAAQggB,OAG7C,CAFE,MAAO5nB,GACRqI,QAAQC,IAAI,2BAA4BtI,EACzC,CACQ,MAEqB8E,IAAjBozE,EAAQhkE,MAAuC,OAAjBgkE,EAAQhkE,MACxC+iE,GAAe,OAAQiB,EAAQhkE,WAIbpP,IAAhBozE,EAAQtjE,MACVqjE,EAAYC,EAAQtjE,IAExB,CAGA,GADAvM,QAAQC,IAAI,WAAY2vE,QACNnzE,IAAdmzE,IACEA,EAAU/qE,SAAS,MAAQ+qE,EAAU/qE,SAAS,OAEhD+qE,GADAA,EAAYA,EAAUjrE,MAAM,KAAKM,KAAK,MAChBN,MAAM,KAAKM,KAAK,MAItC2qE,EAAUhrE,WAAW,SACrBgrE,EAAUhrE,WAAW,QACrB,CACA,QACgBnI,IAAdmzE,GACAA,EAAU/qE,SAASqiE,IACnB,CAIAlnE,QAAQC,IAAI,0BACZ,IAAM84D,EAAS,IAAIvsD,IAAIqe,UAAU+kD,IACjC7W,EAAO+B,aAAarjC,OAAOyvC,IAC3B0I,EAAYe,UAAU5X,EAAO3nD,KAC/B,MAIgB3U,IAAdmzE,QACYnzE,IAAZiqE,IACAA,GAAQhjE,OAAS,GACjBksE,EAAU/qE,SAAS6hE,MAEnBkJ,EAAYA,EAAU3jE,QAAQy6D,GAAS,IAK3C,CAEJ,CAMP,QAJgBjqE,IAAZiqE,IAAqC,OAAZA,IAAoBkJ,EAAUhrE,WAAW8hE,MAClEkJ,EAAYA,EAAUpxE,WAAWkoE,GAAS,KAG1CkJ,EAAU/qE,SAAS,KAAM,CAC5B,IAAM+rE,EAAiBhB,EAAUjrE,MAAM,KACvCirE,EAAYgB,EAAe,GAI3B,IAAMC,EAAYD,EAAe,GAAGjsE,MAAM,KAC1C,IAAK,IAAIQ,KAAO0rE,EAAW,CAC1B7wE,QAAQC,IAAI,SAAU4wE,EAAU1rE,IAChC,IAAI2rE,EAAYD,EAAU1rE,GACtB0K,EAAU,GACVghE,EAAU1rE,GAAKN,SAAS,OAC3BisE,EAAYD,EAAU1rE,GAAKR,MAAM,KAAK,GACtCkL,EAAUghE,EAAU1rE,GAAKR,MAAM,KAAK,IAGrC,IAAMosE,EAAYhJ,GAAen3D,MAAK,SAAArY,GAAI,OAAIA,EAAK4F,OAAS2yE,CAAS,IACnD,OAAdC,QAAoCt0E,IAAds0E,GACzBhJ,GAAeliE,KAAK,CAAE1H,KAAM2yE,EAAWjhE,QAASA,EAASmC,UAAU,GAErE,CACD,CAMA,GAAuB,IAAnB00D,GAAQhjE,QAAgBksE,EAAU/qE,SAAS,QAAS,CACvD,IAAMk0D,EAAS,IAAIvsD,IAAIqe,UAAU+kD,IACjC7W,EAAO+B,aAAarjC,OAAOyvC,IAC3BlnE,QAAQC,IAAI,YAAa84D,GACzB6W,EAAY7W,EAAOztD,SACnBq7D,GAAW5N,EAAOE,OACnB,CAEWl6D,EAAM2R,OAAO7O,QAAU+tE,IACzB9H,GAAW8H,GACXhB,GAAe,MAAOgB,GAG1B,IAEF,cAACJ,GAAiB,IACjBxB,GACD,cAACn/D,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CACL+H,UAAW,MACXuJ,aAAc,OACd1Q,aAAc,OAEhBkH,QAAQ,WACR3B,QAAS,WAjgDjBkpE,GAAeliE,KAAK,CAAE1H,KAAM,GAAI6T,UAAU,EAAMnC,QAAS,KAEvD42D,GADc,eAAZD,GACS,UAEA,cAEbwB,GAAkBD,GA6/CV,EAAE,uBAIqB,SAAxBoB,GACC,cAACt6D,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAASmoE,GAAoB,YAAc,WAC3CjwE,MAAO,CACLuB,WAAY,GACZwG,UAAW,MACXuJ,aAAc,OACd1Q,aAAc,OAEhBuF,QAAS,WACP+pE,IAAsBD,IAEpBA,IACAa,GAA0B,WAAE9lE,OAAS,GAErCkrE,GAAe,aAAc,IAE/BvrD,GAAUqB,KAAKC,SACjB,EAAE,+BAIF,KAwBHgkD,GACC,cAACznE,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLmB,gBAAiBT,GACjB8G,QAAS,eACTjG,WAAY,GACZC,SAAU,IACVuG,UAAW,GAEbiB,YAAa,OACbS,OAAO,SACP3B,QAAQ,WACRzI,GAAG,oBACH0J,aAAc+nE,GAA0B,WACxC7nE,SAAU,SAAChK,GAAC,OAAKi3E,GAAe,aAAcj3E,EAAE+Y,OAAO7O,MAAM,EAC7DgU,WACE,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,6CAIvD5I,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,YAIX,KACJ,wBACJ4uE,GAAoB,KACpB,iCACC,wCACA,cAACznE,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CACNiV,KAAM,IACNvJ,YAAa,OACb3D,UAAW,MACX5G,gBAAiBT,IAElB+H,WAAW,EACXO,YACC,6DAEDS,OAAO,SACP3B,QAAQ,WACRzI,GAAG,oBACH0J,aAAc+nE,GAAuB,QACrCn1C,WAAS,EACT86C,QAAQ,IACRxtE,SAAU,SAAChK,GAAC,OAAKi3E,GAAe,UAAWj3E,EAAE+Y,OAAO7O,MAAM,EAC1DgU,WACC,sBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,kEAItD5I,WAAY,CACX1I,MAAO,CACNqB,MAAO,eAMNm1E,GACD,cAACx9D,GAAA,EAAO,CACNhZ,MAAO,CACLmB,gBAAiB,wBACjB4G,UAAW,GACXuJ,aAAc,MAGjBolE,MAEH,eAAC55D,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPgoE,IAAoB,EACtB,EAAE,oBAIJ,cAACh4D,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAASqnE,GAAQnkE,OAAS,EAAI,YAAc,WAC5ChL,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WAGPmB,QAAQC,IAAIupE,IA/rBA,SAAC1wD,GACvB0wD,GAAc1wD,OAASA,EACvB0wD,GAAcF,QAAUvB,GACxBC,GAAkB,IAElB,IAAMgJ,EAAc/lE,GAAQ2O,WAC1B,SAACrhB,GAAI,OAAKA,EAAK4F,OAASqrE,GAAcrrE,IAAI,IAExC6yE,EAAc,EAChB/lE,GAAQpF,KAAK2jE,IAEbv+D,GAAQ+lE,GAAexH,GAGrBv+D,GAAQvH,OAASolE,IACnBC,GAAgB99D,GAAQvH,QAG1BwkE,GAAWj9D,IACXm9D,GAAmBn9D,GACrB,CA6qBYgmE,CA3qBY,WACtB,IAAIC,EAAe,GAqBnB,YApB2Bz0E,IAAvB+sE,GAAcrrE,MAAoD,IAA9BqrE,GAAcrrE,KAAKuF,QACzDwtE,EAAarrE,KAAK,wBAOjB2jE,GAAcj9D,IAAI3H,WAAW,MAC9B8hE,GAAQhjE,OAAS,GACjB8lE,GAAcj9D,IAAI7I,OAAS,GAE3BwtE,EAAarrE,KAAK,yBAGNkiE,GAAenuD,WAAU,SAACrhB,GAAI,OAA0B,IAArBA,EAAK4F,KAAKuF,MAAY,KAC1D,GACXwtE,EAAarrE,KAAK,iCAGbqrE,CACT,CAmpB2BC,IAEftK,IAAoB,GACpBmB,GAAkB,IAClBF,GAAW,IACXc,IAAqB,EACvB,EAAE,4BAqBNwI,GACJ,sBAAK14E,MAAO,CAAEqB,MAAO,SAAU,UAyB7B,4CACA,cAAC0W,GAAA,EAAM,CACLtP,WAAS,EACT+P,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhB0H,SAAU,SAAChK,GACTsvE,GAAyB,CAACtvE,EAAE+Y,OAAO7O,QACnCwhB,GAAU,SAAW1rB,EAAE+Y,OAAO7O,MAChC,EACAA,MACmC,IAAjCmlE,GAAsBtjE,OAClB,oBACAsjE,GAAsB,GAE5BtuE,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,QAASsH,OAAQ,QAAS,SAvD1D,CACjB,gBACA,QACA,OACA,SACA,QACA,MACA,UACA,cACA,SAgDgBlK,KAAI,SAACoB,EAAMmF,GAC1B,YAAajB,IAATlE,GAA+B,OAATA,GAA0B,KAATA,EACnC,KAIP,cAAC0X,GAAA,EAAQ,CAERvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJImF,EAOR,MAEE,sCACA,cAAC,KAAS,CACRhF,MAAO,CAAE+H,UAAW,IACpBW,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGX2H,YAAY,OACZ3H,MAAM,UACNoH,WAAS,EACTU,MAAOyxB,GACPgB,MAAO,SAACC,GACNjB,GAAgBztB,KAAK0uB,GACrBhB,GAAmBD,IACnBjQ,GAAU,QAAUkR,EACtB,EACAC,SAAU,SAACD,EAAM72B,GACf41B,GAAgBmB,OAAO/2B,EAAO,GAC9B61B,GAAmBD,IACnBjQ,GAAU,UAAYkR,EACxB,OA6fA88C,GACJ,sBAAK34E,MAAO,CAAEqB,MAAO,QAASgE,SAAU,YAAa,UACnD,qBAAKrF,MAAO,CAAEqF,SAAU,WAAYkT,MAAO,EAAGD,IAAK,GAAI,SACpD83D,GAAe,GAAKA,GAAeX,GAAgBzkE,OAClD,cAACmL,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE6Y,MAAO,QAASjY,aAAc,EAAGuE,UAAW,UACrD2C,QAAQ,WACR3B,QAAS,WACPkqE,GAAgBZ,GAAgBzkE,OAQlC,EAAE,6BAIF,OAEN,eAACnD,EAAA,EAAU,CAACC,QAAQ,KAAI,oBACd,IACPsoE,GAAe,EACd,qCACIA,GAAY,MAAKX,GAAgBzkE,OAAM,OAEzC,QAEN,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,uGAKhDvN,IAAtBirE,IACqB,OAAtBA,IACAA,GAAkBhkE,OAAS,EACzB,qBAAKhL,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,SAC7C09D,GAAkBvwE,KAAI,SAAC6W,EAAKtQ,GAAW,IAAD,EAC/B2tC,EAAUr9B,EAAI3P,OAAO,GAAGC,cAAgB0P,EAAI/V,MAAM,GAOxD,OACE,cAACgW,GAAA,EAAI,CAEHvV,OAAK,GACHmB,gBACEmU,IAAQ2zB,GAAmB,UAAY,UACzCtgC,OAAQ,GACRc,OAAQ,EACRkC,YAAa,EACbC,aAAc,GAAC,uBACP,IAAE,uBACF,WAAS,4BACJ,WAAS,sBACf,SAAO,GAEhBpF,MAAOmsC,EACPxsC,QAAS,WACP,GAAI8iC,KAAqB3zB,EAIvB,OAHAo6D,GAAmBn9D,IACnB28D,GAAoB,SACpBmB,GAAgB,IAIlB,IAAMuI,EAAermE,GAAQsH,QAC3B,SAACha,GAAI,OAAKA,EAAKyG,WAAagP,CAAG,IAEjCo6D,GAAmBkJ,GACnB1J,GAAoB55D,GAChB86D,GAAewI,EAAa5tE,QAC9BqlE,GAAgBuI,EAAa5tE,OAQjC,EACAlD,QAASmhC,KAAqB3zB,EAAM,aAAe,WACnDjU,MAAO4nC,KAAqB3zB,EAAM,UAAY,aAtCzCtQ,EAyCX,MAEA,KACJ,gCACG0wE,GACD,qBAAK11E,MAAO,CAAEwH,QAAS,QAAS,SAC9B,cAAC2O,EAAA,EAAM,CACL9U,MAAM,UACNrB,MAAO,CAAE+H,UAAW,OAAQnH,aAAc,OAC1CkH,QAA4B,IAAnByK,GAAQvH,OAAe,YAAc,WAC9C7E,QAAS,WACP4qE,GAAiB,CACftrE,KAAM,GACNqP,YAAa,GACbjB,IAAK,GACL88D,WAAY,GACZ9pE,QAAS,GACT+pE,QAAS,GACTt9D,MAAO,GACPH,KAAM,GACNiN,OAAQ,GACR5O,OAAQ47D,EAAqB,KAE/BsD,GAAuBtD,EAAqB,IAC5Ce,IAAoB,EACtB,EAAE,gCA4BN0K,GAAkB,SAACxyE,GACVA,EAAM2R,OAAO7O,MAA1B,IACM2vE,EAAazyE,EAAM2R,OAAO7M,MAAM,GAChC4tE,EAAajlE,IAAIC,gBAAgB+kE,GACvCrL,EAAQsL,EACV,EAEA,GAAa,KAAT5tC,EAAa,CACf,IAAM6tC,GAAM5nE,SAASsE,eAAe,QAChCujE,GAAS7nE,SAAS6C,cAAc,UACpCglE,GAAO1zE,MAAQ,IACf0zE,GAAOtwE,OAAS,IAChB,IAAIuwE,GAAMD,GAAOE,WAAW,MAExBH,KACFA,GAAII,OAAS,WAKXF,GAAIG,UACFL,GACA,EACA,EACAA,GAAIzzE,MACJyzE,GAAIrwE,OACJ,EACA,EACAswE,GAAO1zE,MACP0zE,GAAOtwE,QAGT,IACE,IAAM2wE,EAAYL,GAAOM,YACrBD,IAAc5L,GAEhBC,EAAc2L,EAIlB,CAFE,MAAOr6E,GACP2O,EAAM6E,MAAM,6BACd,CACF,EAMJ,CAEA,IAgEI+mE,GAhEJ,GAAgDr1E,mBAAS,IAAG,qBAArDs1E,GAAgB,MAAEC,GAAmB,MAC5C,GAA4Cv1E,mBAAS,IAAG,qBAAjDw1E,GAAc,MAAEC,GAAiB,MACxC,GAA0Bz1E,mBAAS,GAAE,qBAA9B2vB,GAAK,MAAE+lD,GAAQ,MACtB,GAAgC11E,mBAAS,GAAE,qBAApC21E,GAAM,MAAEC,GAAa,MAC5B,GAAoD51E,oBAAS,GAAK,qBAA3D61E,GAAkB,MAAEC,GAAqB,MAE5CC,GAAYxM,EACZyM,GAAchvC,EAAKngC,OAAS,EAAImgC,EAAOuiC,EAErC0M,GACJ,qBACEC,YAAY,YACZ3yE,IAAKwyE,GACL76E,GAAG,OACHW,MAAO,CACLwB,SAAU,IACVqD,UAAW,IACX+C,SAAU,IACVtG,UAAW,IACXg5E,UAAW,aAKXC,GACJ,cAACC,GAAA,EAAqB,CACpBx6E,MAAO,CACLuF,MAAO,IACPoD,OAAQ,IACRsM,KAAM,IACNzN,QAAS,OACT2N,cAAe,MACf1L,OAAQ,OACR1B,UAAW,GACXxG,WAAY,IAEd4E,QAAS,WACPuK,EAAO6M,OACT,IAoBEk9D,GAAsB,WAC1BhN,EAAQ,IACRmM,IAAkB,GAClBF,GAAoB,GACtB,EAqBM38D,GACJ08D,GAAiBzuE,OAAS,EACxB,sBAAKhL,MAAO,CAAE+H,UAAW,IAAK,oBAAS0xE,MACrC,KAEAiB,GAAuBf,GAC3B,cAACt9D,GAAA,EAAM,CACLC,KAAMq9D,GACNp9D,QAASk+D,GACTj+D,WAAY,CACVxc,MAAO,CACLmB,gBAAiBV,GACjBY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,SAEF,eAAC2b,GAAA,EAAW,WACV,cAACR,GAAA,EAAW,UACV,qBAAKzc,MAAO,CAAEqB,MAAO,yBAA0B,+BAEhD0b,GACD,eAACL,GAAA,EAAa,CAAC1c,MAAO,CAAEqB,MAAO,0BAA2B,UACxD,cAAC,KAAY,CACXmK,IA3CW,SAACmvE,GACpBnB,GAASmB,CACX,EA0CUrsD,MAAO6rD,GACP50E,MAAO,IACPoD,OAAQ,IACR3H,OAAQ,GACRK,MAAO,CAAC,EAAG,EAAG,EAAG,IACjByyB,MAAOA,GACPgmD,OAAQA,GACRc,cA9De,WACvBX,IAAsB,EACxB,EA6DUY,cAAe,kBAAMd,GAAc,EAAE,IAEvC,cAAC/gE,GAAA,EAAO,CAAChZ,MAAOitE,KAChB,cAACt3D,GAAA,EAAO,CAACvR,MAAO,WAAW,SACzB,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAOktE,GAAa,SAEpB,cAAC4N,GAAA,EAAqB,CACpB30E,QAAS,WACPuK,EAAO6M,OACT,EACAlc,MAAM,gBAIZ,cAACsU,GAAA,EAAO,CAACvR,MAAO,UAAU,SACxB,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAOktE,GAAa,SAEpB,cAAC6N,GAAA,EAAkB,CAAC50E,QApGjB,WACbmB,QAAQC,IAAI,eACZsyE,GAAS/lD,GAAQ,GACnB,EAiGiDzyB,MAAM,gBAG/C,cAACsU,GAAA,EAAO,CAACvR,MAAO,WAAW,SACzB,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAOktE,GAAa,SAEpB,cAAC8N,GAAA,EAAmB,CAAC70E,QAzGjB,WACd0zE,GAAS/lD,GAAQ,GACnB,EAuGmDzyB,MAAM,gBAGjD,cAACsU,GAAA,EAAO,CAACvR,MAAO,SAAS,SACvB,cAAC+R,EAAA,EAAM,CACLrO,QAAQ,WACRsO,UAAU,QACV/U,MAAM,UACNrB,MAAOktE,GAAa,SAEpB,cAAC+N,GAAA,EAAQ,CAAC90E,QAhHH,WACjB4zE,GAAcD,GAAS,GACzB,EA8G2Cz4E,MAAM,gBAGzC,cAAC2X,GAAA,EAAO,CAAChZ,MAAOitE,QAElB,eAACnwD,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAASs0E,GACTp5E,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEY,aAAc,OACvB+Z,SAAUq/D,GACV7zE,QAAS,YA9GG,WACpB,GAAIqzE,GACF,IACE/L,EAAQ,IACR,IAAMwL,EAASO,GAAO0B,yBACtBvN,EAAcsL,EAAOM,aACrBK,IAAkB,GAClBK,IAAsB,EAGxB,CAFE,MAAOh7E,GACP2O,EAAM6E,MAAM,oDACd,CAEJ,CAmGY0oE,EACF,EACA95E,MAAM,UAAS,8BAQrB,KAGE+5E,GACJ,sBAAKp7E,MAAO,CAAEkZ,cAAe,IAAK7X,MAAO,SAAU,UACjD,eAACoZ,GAAA,EAAW,CACV,aAAW,aACXC,UAAU,SACV1a,MAAO,CAAEqB,MAAO,SAAU,UAE1B,cAAC,IAAI,CAACiV,GAAG,QAAQtW,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SACnE,qBAAIrB,MAAO,CAAEqB,MAAO,yBAA0B,UAC5C,cAAC,KAAQ,CAACrB,MAAO,CAAE0L,YAAa,MAAQ,YAI5C,+BACGjG,EAAM,IACM,OAAZ8M,SACWxO,IAAZwO,IACmB,IAAnBA,GAAQvH,OAAe,KACrB,qCAAQuH,GAAQvH,OAAM,aAI3B0vE,GACD,uBACEt9D,QAAM,EACN5c,KAAK,OACLgL,IAAK,SAACA,GAAG,OAAMkF,EAASlF,CAAG,EAC3BvC,SAAU4vE,KAEZ,eAAC9yE,EAAA,EAAK,CAAC/F,MAAOgtE,GAAS,UACrB,oBAAIhtE,MAAO,CAAEsR,aAAc,OAAQjQ,MAAO,SAAU,iCAGpD,mBACE2W,OAAO,SACPU,KAAK,iEACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,yDAItD,sBACErB,MAAO,CACLqB,MAAO,QACP4T,KAAM,IACNzN,QAAS,OACT2N,cAAe,OACf,UAEF,cAACQ,GAAA,EAAO,CAACvR,MAAM,gCAAgCoV,UAAU,SAAQ,SAC/D,sBACExZ,MAAO,CACLiV,KAAM,IACNxL,OAAQ,GACRzI,OAAQ,oBACRoE,OAAQ,UACRjE,gBAAiBT,GACjBc,SAAU,IACVqD,UAAW,KAEbsB,QAAS,WAOPyzE,IAAkB,EACpB,EAAE,UAEDM,GAAYE,GAAYG,GACzB,uBACEn9D,QAAM,EACN5c,KAAK,OACLgL,IAAK,SAACA,GAAG,OAAMkF,EAASlF,CAAG,EAC3BvC,SAAU4vE,UAIhB,sBAAK74E,MAAO,CAAEiV,KAAM,IAAK5T,MAAO,SAAU,UACxC,qBAAKrB,MAAO,CAAE+H,UAAW,UAAY,OAErC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBT,IAEnB+H,WAAW,EACXO,YAAY,OACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAO1D,EACPwD,SAAU,SAAChK,GACT,IAAMgT,EAAU,CAAC,IAAK,IAAK,KAC3B,IAAK,IAAIxF,KAAOwF,EACd,GAAIhT,EAAE+Y,OAAO7O,MAAMgD,SAAS8F,EAAQxF,IAIlC,OAHAmB,EAAM6E,MAAM,aAAeR,EAAQxF,GAAO,iBACpDyuB,EAAQj8B,EAAE+Y,OAAO7O,MAAMrD,WAAW,IAAK,IAAIA,WAAW,IAAK,IAAIA,WAAW,IAAK,IAAIA,WAAW,IAAK,KAM7F,GAAI7G,EAAE+Y,OAAO7O,MAAM6B,OAAS,GAG1B,OAFA4C,EAAM6E,MAAM,wCACrByoB,EAAQj8B,EAAE+Y,OAAO7O,MAAM5J,MAAM,EAAE,KAMxB27B,EAAQj8B,EAAE+Y,OAAO7O,MACnB,EACAyY,OAAQ,SAAC3iB,GACPi8B,EAAQj8B,EAAE+Y,OAAO7O,MAAM0d,OACzB,EACAxlB,MAAM,UACNqH,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,OAEZs+B,QAAS,CACP+V,eAAgB/V,EAAQ+V,mBAI9B,qBAAK91C,MAAO,CAAE+H,UAAW,UAAY,cAErC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBT,GACzBmE,UAAW,IACXS,SAAU,QAEJmD,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACdkyB,WAAS,EACF7zB,QAAQ,WACRkB,YAAY,gCACZG,MAAO2L,GACP7L,SAAU,SAAChK,GAAC,OAAKk8B,GAAel8B,EAAE+Y,OAAO7O,MAAM,EAC/CT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,kBAMjB,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,GACdvJ,UAAW,GACXY,OAAQ,EACRpD,MAAO,OACPpE,gBAAiB,UAGrB,cAAC0G,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,GAAIjQ,MAAO,SAAU,6BAI7D,cAACwG,EAAA,EAAU,CAACC,QAAQ,QAAO,uDAG3B,cAACU,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBT,GAAYqH,UAAW,OACjDW,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXjI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAO6kE,GACP7wD,WACE,uBAAMnd,MAAO,CAAEqB,MAAO,QAASiQ,aAAc,OAAQ,4DACH,OAGpDtI,YAAY,0BACZC,SAAU,SAAChK,GAAC,OAAKgvE,GAAWhvE,EAAE+Y,OAAO7O,MAAM,EAC3CyY,OAAQ,SAACvb,GACP,IAAI+uE,EAAY/uE,EAAM2R,OAAO7O,MAAM0d,OAazC,GAZUuuD,EAAU7jC,SAAS,OACrB6jC,EAAYA,EAAU71E,MAAM,GAAI,IAIhC61E,EAAUpqE,OAAS,IAClBoqE,EAAUlpE,WAAW,UACrBkpE,EAAUlpE,WAAW,QAEtB0B,EAAM6E,MAAM,kCAGhB2iE,EAAUjpE,SAAS,KAAM,CAC5B,IAAIkpE,EAASD,EAAUnpE,MAAM,KACzBmpE,EAAUpqE,OAAS,IACtBoqE,EAAYC,EAAO,GAErB,CAEMpH,GAAWmH,EACb,IAEN,sBAAKp1E,MAAO,CAACiB,QAAS,GAAID,OAAQ,kCAAmCJ,aAAcX,EAAME,QAAQS,cAAgB,UAChH,eAACqc,GAAA,EAAW,CAACjd,MAAO,CAAE,EAAG8H,QAAQ,WAAU,UAC1C,cAACD,EAAA,EAAU,CAACC,QAAQ,KAAI,4BACxB,mBACCkQ,OAAO,SACPU,KAAK,uDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,iDAIrD,cAAC0W,GAAA,EAAM,CACNtP,WAAS,EACTQ,SAAU,SAAChK,GACVovE,GAAwBpvE,EAAE+Y,OAAO7O,OACV,sBAAnBlK,EAAE+Y,OAAO7O,MACZilE,IAA0B,GAE1BA,IAA0B,GAGJ,WAAnBnvE,EAAE+Y,OAAO7O,QACc,WAAtBulE,IACHC,GAAqB,IAGf6B,GAAa,IAEtB,EACArnE,MAAOod,GACPvmB,MAAO,CACNmB,gBAAiBT,GACjBW,MAAO,QACPsH,OAAQ,QACP,SAED0X,EAAsB5hB,KAAI,SAACoB,EAAMmF,GAAK,OACtC,cAACuS,GAAA,EAAQ,CAERvX,MAAO,CAAEmB,gBAAiBT,GAAYW,MAAO,SAC7C8H,MAAOtJ,EAAK,SAEXA,GAJImF,EAKK,SAId,qBAAKhF,MAAO,CAAC+H,UAAW,MACvBgtE,GACAF,GACAluE,GACAwuE,GACAD,GACAF,MAWE,cAACh8D,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,UAGrB,qBAAKnB,MAAO,CAAE+H,UAAW,QAAS,SAAE4wE,KAEpC,cAAC3/D,GAAA,EAAO,CACNhZ,MAAO,CACLsR,aAAc,OACdvJ,UAAW,OACXY,OAAQ,MACRpD,MAAO,OACPpE,gBAAiB,UAGrB,qBAAKnB,MAAO,CAAE+H,UAAW,QAAS,SAAE2wE,KAOpC,cAACviE,EAAA,EAAM,CACLwE,SAAUk1D,GACVxuE,MAAM,UACNyG,QAAQ,YACR9H,MAAO,CAAEY,aAAc,MAAOmH,UAAW,OAAQY,OAAQ,QACzDxC,QAAS,YAhqHC,WAChByH,EAAM+E,KAAK,8BAAgClN,GAC3CqqE,IAAe,GACfF,GAAa,IAGb,IAAMyL,EAAYrN,GAAQ/hE,MAAM,KAC1BpI,EAAOw3E,EAAU,GACjBC,EAAU,CAACD,EAAU,IACrBE,EAAW,IAAMF,EAAU97E,MAAM,GAAGgN,KAAK,KAEzC1M,EAAO,CACXmT,QAAS,QACTL,KAAM,CACJvO,MAAOqB,EACPqP,YAAaA,GACbsD,QAAS,MACT,SAAUs1D,GAEZqG,QAAS,CAAC,CAAElgE,IAAKm6D,KACjBnqE,KAAMA,EACN03E,SAAUA,EACVD,QAASA,EACThoE,MAAO,CAAC,EACRE,QAAS8mB,EACTsQ,WAAY,CACVmnC,gBAAiB,CAAC,GAEpB1yE,GAAIuD,EAAM6vC,MAAMvI,OAAO3a,OAG3B,IAAkB,IAAd+K,EAAqB,CACxB,IAAI62C,EAAY,IAAIpoB,gBAAgBplD,OAAOC,SAAS+V,aAClC5V,IAAdotE,GAAyC,OAAdA,GAAsBA,EAAUC,IAAI,QAClEvxE,EAAKR,GAAK8xE,EAAUnoB,IAAI,MAI1B,CAcE,QAZsBjlD,IAAlB+O,GAASH,WAAgD5O,IAA1B+O,GAASH,KAAK46D,QAC/C1tE,EAAK8S,KAAc,QAAIG,GAASH,KAAK46D,QAErC1tE,EAAK8S,KAAc,QADE,KAAZ46D,EACc,CACrB9nE,KAAM,0BACNoO,IAAK,gCACLw9C,MAAO,uBAGckc,EAGrB3yC,GAAgB5vB,OAAS,EAAG,CAC9B,IAAI8mE,EAAU,GACd,IAAK,IAAIrlE,KAAOmuB,GACdk3C,EAAQ3kE,KAAK,CAAE1H,KAAMm1B,GAAgBnuB,KAGvC5M,EAAW,KAAIiyE,CACjB,CAEIxD,GAAsBtjE,OAAS,IACjCnL,EAAW,KAAE,gBAAkByuE,IAInC,IAAIkN,EAAe,GACjB,IAAK,IAAI/uE,KAAO8F,GAAS,CACvB,IAAI6C,EAAOnC,KAAKC,MAAMD,KAAKS,UAAUnB,GAAQ9F,KACzC2I,EAAKgL,OAAOpV,OAAS,GACvB4C,EAAM6E,MAAM,+BAAiC2C,EAAK3P,WAGlC1B,IAAdqR,EAAK3P,WAA2C1B,IAArBqR,EAAKN,cAClCM,EAAK3P,KAAO2P,EAAKN,aAKtB,IAAI2mE,EAAWrmE,EAAKvB,IAAI,IAAIuB,EAAK5D,OAAO7E,cACxC,GAAI6uE,EAAarvE,SAASsvE,GAGzB,IAAK,IAAIpwC,EAAI,EAAGA,EAAI,MACnBj2B,EAAKvB,IAAMuB,EAAKvB,IAAI,oBAAoBw3B,EAExCowC,EAAWrmE,EAAKvB,IAAI,IAAIuB,EAAK5D,OAAO7E,cAChC6uE,EAAarvE,SAASsvE,IAJFpwC,KAmBvB,GAPHmwC,EAAaruE,KAAKsuE,GAEc,OAAzB57E,EAAKyT,MAAM8B,EAAKvB,WAA0C9P,IAAzBlE,EAAKyT,MAAM8B,EAAKvB,OACnDhU,EAAKyT,MAAM8B,EAAKvB,KAAO,CAAC,QAIR9P,IAAdqR,EAAK3P,KAAT,CAKA,IAAM+3B,EAAQpoB,EAAK3P,KAAKgtC,MANV,kBAqCd,GA9Bc,OAAVjV,IACFpoB,EAAK3P,KAAO+3B,EAAMjxB,KAAK,KAIzB1M,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAiB,CAChD0mE,UAAW,CACTjgB,QAAS,CACPt+C,YAAa,UACboF,QAAS,CACP,aAAc,CACZwN,OAAQ,CACNlnB,KAAM,SACN2W,QAAS,QAMnBo7D,QAASn9D,EAAK3P,KACd+sE,YAAap9D,EAAK3P,KAAKwG,MAAM,KAAKM,KAAK,KACvCuI,YAAaM,EAAKN,YAClBsE,WAAY,GACZsiE,YAAa,CACXxhE,QAAS,CAAC,SAMgBnW,IAA1BqR,EAAKy7D,kBAA4D,OAA1Bz7D,EAAKy7D,kBAA6Bz7D,EAAKy7D,iBAAiB7lE,OAAS,EAE9G,GAAiC,0BAA7BoK,EAAuB,iBAC1BvV,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAe0mE,UAAmB,QAAW,QAAE,cAAc3rD,OAAOlnB,KAAO,SAC5GX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAe0mE,UAAmB,QAAW,QAAE,cAAc3rD,OAAOi0D,OAAS,aAcxG,CAEN,IAAIzkE,EAAaxX,OAAOk8E,OAAO,GAAIxmE,EAAKy7D,kBAAkBhqD,OAI1D3P,GADAA,GADAA,GADAA,EAAaA,EAAWjL,MAAM,SAASM,KAAK,YACpBN,MAAM,KAAKM,KAAK,MAChBN,MAAM,UAAUM,KAAK,WACrBN,MAAM,SAASM,KAAK,SAE5C,IAAI6K,GAAY,EAChB,IACaE,OAAOrE,KAAKC,MAAMgE,IACzBA,EAAW/K,SAAS,MAAS+K,EAAW/K,SAAS,OACrDiL,GAAY,EAId,CAFE,MAAOnY,GACRmY,GAAY,CACb,CAEAvX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAe0mE,UAAmB,QACzD,QACR,cAAc3rD,OAAOlnB,KAAO,SAG7BX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAe0mE,UAAmB,QACzD,QACR,cAAc3rD,OAAOvQ,QAJpBC,EAI8BF,EAIA9B,EAAKy7D,gBAExC,CAGE,GAAIz7D,EAAKw7D,QAAQ5lE,OAAS,EAAG,CAC3B,IACA6wE,EAAa,GACb,IAAK,IAAIC,KAAY1mE,EAAKw7D,QAAS,CACjC,IAAMmL,EAAY3mE,EAAKw7D,QAAQkL,GAEpC,QAAkB/3E,IAAdg4E,GAAyC,OAAdA,QAAyCh4E,IAAnBg4E,EAAUt2E,MAAyC,OAAnBs2E,EAAUt2E,MAAoC,KAAnBs2E,EAAUt2E,OAKtHo2E,EAAW1vE,SAAS4vE,EAAUt2E,KAAKkH,eAKlC,GADLkvE,EAAW1uE,KAAK4uE,EAAUt2E,KAAKkH,eACU,OAAhCovE,EAAUt2E,KAAKkH,cAOnB,GAAoC,WAAhCovE,EAAUt2E,KAAKkH,cAOnB,GACkC,OAAhCovE,EAAUt2E,KAAKkH,eACiB,QAAhCovE,EAAUt2E,KAAKkH,eACiB,QAAhCovE,EAAUt2E,KAAKkH,eACiB,SAAhCovE,EAAUt2E,KAAKkH,eACiB,cAAhCovE,EAAUt2E,KAAKkH,eACiB,WAAhCovE,EAAUt2E,KAAKkH,eACiB,WAAhCovE,EAAUt2E,KAAKkH,eACiB,gBAAhCovE,EAAUt2E,KAAKkH,eACfovE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,MACxB4vE,EAAUt2E,KAAK0G,SAAS,KAExB7E,QAAQC,IACN6N,EAAK3P,KAAO,0CACZs2E,EAAUt2E,UA/Bd,CAqCA,IAAIgmB,EAAU,CACZxQ,GAAI,QACJxV,KAAMs2E,EAAUt2E,KAChBqP,YAAa,mCACbwE,SAAUyiE,EAAUziE,SACpBoO,OAAQ,CACNlnB,KAAM,gBAIWuD,IAAtBg4E,EAAU5kE,UACbsU,EAAQtU,QAAU4kE,EAAU5kE,cAGMpT,IAA1Bg4E,EAAUjnE,cACZ2W,EAAQ3W,YAAcinE,EAAUjnE,aAGlCjV,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,EArBF,MAzCJrW,EAAKw7D,QAAQkL,GAAUr2E,KAAO,cAPxB6B,QAAQC,IAAI6N,EAAK3P,KAAO,yBAwE5B,CAWF,CAGA,GAAI2P,EAAK9B,MAAMtI,OAAS,EACtB,IAAK8wE,KAAY1mE,EAAK9B,MAAO,CAC3B,IAAMyoE,EAAY3mE,EAAK9B,MAAMwoE,GAEE,OAA3BC,EAAUpvE,eACY,0BAGK,UAA3BovE,EAAUpvE,eACe,0BAG7B8e,EAAU,CACRxQ,GAAI,OACJxV,KAAMs2E,EACNjnE,YAAa,mCACbwE,UAAU,EACVoO,OAAQ,CACNlnB,KAAM,gBAIoBuD,IAA1Bg4E,EAAUjnE,cACZ2W,EAAQ3W,YAAcinE,EAAUjnE,aAGlCjV,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,EAGJ,KACK,CAEL,IACMnY,EADSqjE,GAAgBvhE,EAAKvB,KACf,GAErB,IAAKioE,KAAYxoE,EAAO,CACtB,IAAMyoE,EAAYzoE,EAAMwoE,GACxBrwD,EAAU,CACRxQ,GAAI,OACJxV,KAAMs2E,EACNjnE,YAAa,mCACbwE,UAAU,EACVoO,OAAQ,CACNlnB,KAAM,gBAIoBuD,IAA1Bg4E,EAAUjnE,cACZ2W,EAAQ3W,YAAcinE,EAAUjnE,aAGlCjV,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,EAGJ,CACF,CAEH,IAAMuwD,EAAa5mE,EAAK5D,OAAO7E,cAC/B,GAAmB,SAAfqvE,GAAwC,QAAfA,GAAuC,UAAfA,EACjD,QACgBj4E,IAAdqR,EAAKjC,MACS,OAAdiC,EAAKjC,MACLiC,EAAKjC,KAAKnI,OAAS,EACnB,CACJ1D,QAAQC,IAAI,aAAc6N,EAAKvB,IAAKuB,EAAK5D,OAAQ4D,EAAKjC,MAOtD,IAAI4/D,EAAU,GACd,IAAK,IAAItmE,KAAO2I,EAAKjC,KACpB,GAAuB,MAAnBiC,EAAKjC,KAAK1G,GACb,GAAIA,EAAM,EAAG,CAEZ,IAAMC,EAASsqB,SAASvqB,EAAK,IACD,OAAxB2I,EAAKjC,KAAKzG,EAAO,IACQ,MAAxB0I,EAAKjC,KAAKzG,EAAO,KACpBqmE,GAAW,MAIbA,GAAW39D,EAAKjC,KAAK1G,EACtB,MACCsmE,GAAW,KACXA,GAAW39D,EAAKjC,KAAK1G,QAItBsmE,GAAW39D,EAAKjC,KAAK1G,GAIvBnF,QAAQC,IAAI,aAAcwrE,GACtBA,IAAY39D,EAAKjC,OACpBiC,EAAKjC,KAAO4/D,GAMTtnD,EAAU,CACRxQ,GAAI,OACJxV,KAAM,OACNk2B,WAAW,EACX7mB,YAAa,mCACbwE,UANe,EAOfnC,QAAS/B,EAAKjC,KACduU,OAAQ,CACNlnB,KAAM,WAKVX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAA4B,YAAI,CAC/DmI,YAAa,2BACbwE,UAhBe,EAiBfY,QAAS,CACP/C,QAAS,CACPA,QAAS/B,EAAKjC,QAKpBtT,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,EAEJ,MAAW4hD,EAAkBlhE,SAASiJ,EAAK5D,OAAO5L,iBAGhD6lB,EAAU,CACRxQ,GAAI,OACJxV,KAAM,OACNk2B,WAAW,EACX7mB,YAAa,mCACbwE,UANe,EAOfnC,QAAS,GACTuQ,OAAQ,CACNlnB,KAAM,WAKVX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAA4B,YAAI,CAC/DmI,YAAa,2BACbwE,UAhBe,EAiBfY,QAAS,CACP/C,QAAS,CACPA,QAAS,MAKftX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,IAmCL,QA1BsB1nB,IAApBqR,EAAKu7D,YACe,OAApBv7D,EAAKu7D,YACLv7D,EAAKu7D,WAAW3lE,OAAS,IAEzB1D,QAAQC,IAAI,0BAA2B6N,EAAKu7D,YAC5C9wE,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAA4B,YAClD,QACT,uBAAyB,CACzB+a,OAAQ,CACNlnB,KAAM,SACNyyE,WAAY,CACVz3D,UAAW,CACThb,KAAM,SACN2I,MAAOiM,EAAKu7D,eAMpBrpE,QAAQC,IACN1H,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAA4B,YAClD,QACT,yBAIFyI,EAAKvO,QAAQmE,OAAS,EAAG,CAC3B,IAEMixE,EAAe7mE,EAAKvO,QAAQoF,MAAM,MACxC,IAAK,IAAIQ,KAAOwvE,EAAc,CAC5B,IAAMvE,EAASuE,EAAaxvE,GAExBtD,GADAsD,EAAM,GACE,IACZ,GAAIirE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,MAAO,CAC9C,IAAM+vE,EAAcxE,EAAOzrE,MAAM,MACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EACtB,MAAO,GAAIxE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,MAAO,CACrD,IAAM+vE,EAAcxE,EAAOzrE,MAAM,MACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EACtB,MAAO,GAAIxE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,KAAM,CACpD,IAAM+vE,EAAcxE,EAAOzrE,MAAM,KACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EACtB,MAAO,GAAIxE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,MAAO,CACrD,IAAM+vE,EAAcxE,EAAOzrE,MAAM,MACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EACtB,MAAO,GAAIxE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,MAAO,CACrD,IAAM+vE,EAAcxE,EAAOzrE,MAAM,MACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EACtB,KAAO,MAAIxE,EAAO1sE,OAAS,GAAK0sE,EAAOvrE,SAAS,MAK9C,SAJA,IAAM+vE,EAAcxE,EAAOzrE,MAAM,KACjCQ,EAAMyvE,EAAY,GAClB/yE,EAAQ+yE,EAAY,EAGtB,CAEIzvE,EAAIzB,OAAS,GAAK7B,EAAM6B,OAAS,IACnCygB,EAAU,CACRxQ,GAAI,SACJxV,KAAMgH,EACNkvB,WAAW,EACX7mB,YAAa,0CACbwE,UAAU,EACVnC,QAAShO,EACTue,OAAQ,CACNlnB,KAAM,WAIVX,EAAKyT,MAAM8B,EAAKvB,KAAKuB,EAAK5D,OAAO7E,eAAeyM,WAAWjM,KACzDse,GAGN,CACF,CAlbA,MAFEnkB,QAAQC,IAAI,mBAAoB6N,EAqbpC,CAEA,GAA6B,YAAzBmR,GAAoC,CACtC,GAA6B,IAAzBioD,GAAcxjE,OAGhB,OAFA4C,EAAM6E,MAAM,oDACZq9D,IAAe,GAIpBxoE,QAAQC,IAAI,cAAeinE,IAExB2N,GADIA,EAAe3N,GAAc1oE,WAAW,IAAK,KACrBA,WAAW,IAAK,IAE5CjG,EAAK+qC,WAAWmnC,gBAA4B,WAAI,CAC9CvxE,KAAM,SACNya,GAAIyzD,GAAkB/hE,cACtBlH,KAAM02E,EACVrnE,YAAa85D,IAGdtnE,QAAQC,IAAI,wBAAyB1H,EAAK+qC,WAAWmnC,gBAA4B,WAEhF,MAAO,GAA6B,gBAAzBxrD,GACT1mB,EAAK+qC,WAAWmnC,gBAA4B,WAAI,CAC9CvxE,KAAM,OACN4zE,OAAQ,SACRgI,aAAc,aAEX,GAA6B,QAAzB71D,GACT1mB,EAAK+qC,WAAWmnC,gBAAqB,IAAI,CACvCvxE,KAAM,OACN4zE,OAAQ,SACRgI,aAAc,MACdnhE,GAAIuzD,IAGNlnE,QAAQC,IAAI,oBAAqB1H,EAAK+qC,iBACjC,GAA6B,eAAzBrkB,GACT1mB,EAAK+qC,WAAWmnC,gBAA2B,UAAI,CAC7CvxE,KAAM,OACN4zE,OAAQ,cAEL,GAA6B,WAAzB7tD,GAAmC,CAE5C,IAAI41D,EADP70E,QAAQC,IAAI,WAAYinE,IAErB2N,GADIA,EAAe3N,GAAc1oE,WAAW,IAAK,KACrBA,WAAW,IAAK,IAG5CjG,EAAK+qC,WAAWmnC,gBAAwB,OAAI,CAC1CvxE,KAAM,SACNsU,YAAa,4CACbw/D,KAAM,CACJC,kBAAmB,CACjBC,iBAAkB2H,EAClB1H,SAAU/F,GACVE,WAAYA,GACZhoD,YACmB7iB,IAAjB+qE,IAA+C,OAAjBA,GAC1B,GACAA,KAId,CAEA,GAAI0B,GAAaxlE,OAAS,EACxB,IAAK,IAAIyB,KAAO8jE,GAAW,CACzB,IAAM8L,EAAU9L,GAAU9jE,GAE1B,GAAkC,OAA9B4vE,EAAQ52E,KAAKkH,cAGf,OAFAiB,EAAM6E,MAAM,2CACZq9D,IAAe,GAIjBjwE,EAAK+qC,WAAWmnC,gBAAgBsK,EAAQ52E,MAAQ,CAC9CjF,KAAM,SACNya,GAAIohE,EAAQ77E,KACZiF,KAAM42E,EAAQ52E,KAElB,CAGF8L,MAAMrO,EAAY,yBAA0B,CAC1CsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,EAAM,KAAM,GACjC6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OADAm+D,IAAe,GACRn+D,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,SAMhBjF,EAAMiF,QAAQ,iCACVlP,OAAOC,SAASgP,SAASzG,SAAS,cACZpI,IAApB+N,EAAazS,IAAwC,OAApByS,EAAazS,KAChDsE,OAAOC,SAAQ,qBAAiBkO,EAAazS,WARrB0E,IAAxB+N,EAAasJ,SACfw0D,GAAa99D,EAAasJ,QAC1BxN,EAAM6E,MAAM,qBAAuBX,EAAasJ,QAUtD,IACC5I,OAAM,SAACC,GACNq9D,IAAe,GACfF,GAAan9D,EAAMpG,YACnBuB,EAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CA4gGUiwE,EACF,EAAE,SAEDzM,GAAc,cAACh1D,EAAA,EAAgB,IAAM,SAExC,cAAChT,EAAA,EAAU,CAAC7H,MAAO,CAAE+H,UAAW,GAAI,SACjC4nE,GAAU3kE,OAAS,EAAC,iBAAa2kE,IAAc,aAMlD1iC,GACJt/B,GAAYigE,EACV,gCACE,qBAAK5tE,MAAO8sE,GAAa,SAAEsO,KAC1BnE,MAGH,wBAGJ,OAAO,8BAAMhqC,IACf,E,qLC1wKqBvqC,IAAc,aAAc,oC,SCY3CqjC,GAAsB,CAC3Bv+B,QAAS,OACTjC,MAAO,IACPoD,OAAQ,GACRsB,eAAgB,iBAGXoH,GAAgB,CACrB/P,UAAW,IACXuD,UAAW,IACXS,SAAU,SACVC,MAAO,OACPlE,MAAO,QACPF,gBAAiBlB,EAAME,QAAQM,aAC/BQ,QAAS,qBACTL,aAAc,EACd4G,QAAS,OACTq+B,UAAW,aACXxgC,SAAU,YAGLoG,GAAY,CACjBtK,gBAAiB,UACjBuK,YAAa,EACbC,YAAa,EACbC,aAAc,EACdjD,OAAQ,GACRvD,OAAQ,UACRyqB,YAAa,UACbxuB,MAAO,SAsPOmmC,GAnPO,SAAC5kC,GACnB,IAAQ/C,EAAS+C,EAAT/C,KACNiO,EAAWC,cAEb,EAAwB7J,IAAMC,UAAS,GAAM,mBAC7C,GADW,KAAS,KACYD,IAAMC,SAAS,OAAK,mBAChD0jC,GADW,KAAa,UACc9jC,IAA3BlE,EAAKupE,mBAA8D,OAA3BvpE,EAAKupE,kBAA6B,GAAKvpE,EAAKupE,mBAE9F3lE,EACmB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAKX+jC,EAAa/nC,EAAK4F,UAEL1B,IAAf6jC,GACe,OAAfA,GACAA,EAAW58B,OAAS,KAEpB48B,EAAaA,EAAWroC,MAAM,EAAG,IAAM,MAI3C,IAAMwpC,EAAa,CAClBxjC,MAAO,GACPoD,OAAQ,GACR+C,YAAa,GACb1K,OAAQ,mCAEHstB,OAA8BvqB,IAAtBlE,EAAK08E,cAAoD,OAAtB18E,EAAK08E,mBAAqDx4E,IAA5BlE,EAAK08E,aAAajuD,OAAmD,OAA5BzuB,EAAK08E,aAAajuD,OAAkBzuB,EAAK08E,aAAajuD,MAAMtjB,OAAS,EAAI,cAACwW,EAAA,EAAM,CAAC/Z,IAAK5H,EAAK28E,QAAS90E,IAAK7H,EAAK08E,aAAajuD,MAAOtuB,MAAO+oC,IAAgB,cAACvnB,EAAA,EAAM,CAAC/Z,IAAK,gBAAiBC,IAAKzH,EAAME,QAAQyB,aAAc5B,MAAO+oC,IACjV0zC,OAAoC14E,IAAtBlE,EAAK08E,cAAoD,OAAtB18E,EAAK08E,mBAAwDx4E,IAA/BlE,EAAK08E,aAAaxuC,UAAyD,OAA/BluC,EAAK08E,aAAaxuC,UAAqBluC,EAAK08E,aAAaxuC,SAAS/iC,OAAS,EAAInL,EAAK08E,aAAaxuC,SAAW,QAGtNhqC,IAAlBlE,EAAKqF,UAA4C,OAAlBrF,EAAKqF,eAAkCnB,IAAZlE,EAAKR,IAAgC,OAAZQ,EAAKR,KAC5FQ,EAAKqF,SAAWrF,EAAKR,IAItB,IAAI0pE,EAAS,qBAAiBlpE,EAAKqF,UASjC,YARqBnB,IAAnBlE,EAAKy7D,WAA8C,OAAnBz7D,EAAKy7D,YACxCyN,GAAS,mBAAgBlpE,EAAKy7D,YAG1B73D,IACJslE,EAAS,6BAAyBA,IAIlC,qBAAK/oE,MAAO,CAACuF,MAAO,OAAQF,SAAU,YAAa,SAC9C,eAACU,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOqR,GAAc,UACjC,qBACErR,MAAO,CACLqF,SAAU,WACVy0B,OAAQ,EACR3Q,KAAM,EACNxgB,OAAQ,GACRpD,MAAO,GACPpE,gBA9CK,UA+CLP,aAAc,iBAGlB,eAAC8D,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,SAAU5P,MAAO,QAAS,UAEnE,eAACb,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEwH,QAAS,OAAQ3C,UAAW,IAAK,UACnD,cAAC8Q,GAAA,EAAO,CAACvR,MAAK,UAAKq4E,GAAejjE,UAAU,SAAQ,SAClD,qBACExZ,MAAO,CAAEoF,YAA8BrB,IAAtBlE,EAAK08E,aAA6B,UAAY,WAC/Dp2E,QAAS,gBACSpC,IAAtBlE,EAAK08E,cACRzuE,EAAS,aAAajO,EAAK08E,aAAaxuC,SAEjC,EAAE,SAEDzf,MAGL,cAAC3Y,GAAA,EAAO,CAACvR,MAAK,eAAUvE,EAAK4F,MAAQ+T,UAAU,SAAQ,SACrD,cAAC3R,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CACLsR,aAAc,EACd4H,cAAe,EACfrU,UAAW,GACXoQ,KAAM,IACN,SAEF,mBACEyD,KAAMqwD,EAChBtwD,IAAI,aACJT,OAAO,SACGhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEnDumC,WAKT,eAACljC,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO+lC,GAAoB,UAC1C8B,EAAS78B,OAAS,EAClB,qBAAKhL,MAAO,CAACwH,QAAS,OAAQO,UAAW,GAAK,SAC7C,cAACuhC,GAAA,EAAW,CAACC,IAAK,EAAGvpC,MAAO,CAACuB,WAAY,EAAGsD,UAAW,IAAK,SAC1DgjC,EAASppC,KAAI,SAACyT,EAAKlN,GACnB,OACC,qBAEChF,MAAO,CACN2I,OAAQ,GACRpD,MAAO,GACPsU,OAAQ,kBACRzU,OAAQ,WAETe,QAAS,WACR2H,EAAS,SAASoE,EAAI7S,GACvB,EAAE,SAEF,cAACsW,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO8N,EAAIzM,KAAM+T,UAAU,SAAQ,SAC3D,cAACgI,EAAA,EAAM,CAAC/Z,IAAKyK,EAAIzM,KAAMiC,IAAKwK,EAAIvK,UAAW3H,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,SAZlE3D,EAgBR,QAIF,cAAC2Q,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,gBAAgBoV,UAAU,SAAQ,SAChE,uBAAMxZ,MAAO,CAAEqB,MAAO,UAAWmG,QAAS,QAAS,UAClD,cAACgiC,GAAA,EAAe,CACfxpC,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,UAE3C,cAACzJ,EAAA,EAAU,CACV7H,MAAO,CACNuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACb,cAE0BvN,IAAjBlE,EAAK0S,SAA0C,OAAjB1S,EAAK0S,QAAmB,EAAI1S,EAAK0S,QAAQvH,cAK/E,cAAC2K,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,iBACNoV,UAAU,SAAQ,SAElB,uBACExZ,MAAO,CAAEuB,WAAY,GAAIF,MAAO,UAAWmG,QAAS,QAAS,UAE7D,cAACiiC,GAAA,EAAW,CACVzpC,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,UAGlB,cAACzJ,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,cAEiBvN,IAAlBlE,EAAK+gB,UAA4C,OAAlB/gB,EAAK+gB,SAAoB,EAAI/gB,EAAK+gB,SAAS5V,cAIjF,cAAC2K,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAM,gBAAgBoV,UAAU,SAAQ,SAC/D,uBACExZ,MAAO,CACLuB,WAAY,GACZiG,QAAS,OACTnG,MAAO,UACP+D,OAAQ,WAEVe,QAAS,WACT,EAAE,UAEF,qBACEZ,MAAM,KACNoD,OAAO,KACP42B,QAAQ,YACRE,KAAK,OACLD,MAAM,6BACNx/B,MAAO,CACLqB,MAAO,UACP0G,UAAW,OACXuJ,aAAc,QACd,SAEF,sBACEygB,EAAE,iLACF0N,KAAK,cAGT,cAAC53B,EAAA,EAAU,CACT7H,MAAO,CACLuB,WAAY,EACZwG,UAAW,OACXuJ,aAAc,QACd,SAED,YAKT,cAAC5M,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CACLiK,eAAgB,OAChB3E,SAAU,SACVyC,UAAW,GACX,cAEahE,IAAdlE,EAAKwV,MAAoC,OAAdxV,EAAKwV,KAC7BxV,EAAKwV,KAAK5W,KAAI,SAAC6W,EAAKtQ,GAClB,OAAIA,GAAS,EACJ,KAIP,cAACuQ,GAAA,EAAI,CAEHvV,MAAOyL,GACPjF,MAAO8O,EACPxN,QAAQ,WACRzG,MAAM,WAJD2D,EAOX,IACA,cAMhB,EC1PI03E,GAAa,CACf,EAAG,CAAE3xE,MAAO,IA4wBD4xE,GAzwBK,SAAC/5E,GACnB,IAAQY,EAAqQZ,EAArQY,SAAUN,EAA2PN,EAA3PM,UAAWwvB,EAAgP9vB,EAAhP8vB,iBAAkBC,EAA8N/vB,EAA9N+vB,oBAAqB/I,EAAyMhnB,EAAzMgnB,aAAcI,EAA2LpnB,EAA3LonB,aAAc1H,EAA6K1f,EAA7K0f,WAAYC,EAAiK3f,EAAjK2f,cAAezC,EAAkJld,EAAlJkd,MAAO88D,EAA2Ih6E,EAA3Ig6E,QAASC,EAAkIj6E,EAAlIi6E,WAAY5rE,EAAsHrO,EAAtHqO,QAAS7C,EAA6GxL,EAA7GwL,KAAM0uE,EAAuGl6E,EAAvGk6E,gBAAiBC,EAAsFn6E,EAAtFm6E,eAAgB15E,EAAsET,EAAtES,cAAe6lB,EAAuDtmB,EAAvDsmB,iBAAiCH,GAAsBnmB,EAArCkmB,cAAqClmB,EAAtBmmB,kBAEjPi0D,EAAe,CACpB,qBAAKh9E,MAAO,CAAC4H,SAAU,MAAOpG,SAAU,MAAOD,WAAY,EAAGmK,YAAa,GAAK,SAC/E,cAAC,GAAa,CACbxI,UAAWA,EACXG,cAAe,WACfumB,aAAcA,EACdxb,KAAMA,EACN4b,aAAcA,EACdxmB,SAAUA,MAIZ,qBAAKxD,MAAO,CAAC4H,SAAU,MAAOpG,SAAU,MAAOD,WAAY,EAAGmK,YAAa,GAAK,SAC/E,cAAC,GAAa,CACbxI,UAAWA,EACXG,cAAe,aACfumB,aAAcA,EACdxb,KAAMA,EACN4b,aAAcA,EACdxmB,SAAUA,MAIZ,qBAAKxD,MAAO,CAAC4H,SAAU,MAAOpG,SAAU,MAAOD,WAAY,EAAGmK,YAAa,GAAK,SAC/E,cAAC,GAAa,CACbxI,UAAWA,EACXG,cAAe,aACf4mB,cAAe,wBACfL,aAAcA,EACdxb,KAAMA,EACN4b,aAAcA,EACdxmB,SAAUA,MAIZ,qBAAKxD,MAAO,CAAC4H,SAAU,MAAOpG,SAAU,MAAOD,WAAY,EAAGmK,YAAa,GAAK,SAC/E,cAAC,GAAa,CACbxI,UAAWA,EACXG,cAAe,iBACfumB,aAAcA,EACdxb,KAAMA,EACN4b,aAAcA,EACdxmB,SAAUA,OAKX,EAA0CU,IAAMC,SAAS,CAAC,GAAE,mBAC5D,GADoB,KAAkB,KACdD,IAAMC,SAAS,KAAG,mBAAnCsB,EAAI,KAAEy1B,EAAO,KACpB,EAA8Bh3B,IAAMC,SAAS,IAAG,mBAAzCukC,EAAO,KAAEu0C,EAAU,KAC1B,EAAwB/4E,IAAMC,SAAS,IAAG,mBAAnCoE,EAAI,KAAE20E,EAAO,KACpB,EAA8Bh5E,IAAMC,SAAS,IAAG,mBAAzCg5E,EAAO,KAAEC,EAAU,KAC1B,EAAwCl5E,IAAMC,SAAS,IAAG,mBAAnDk5E,GAAY,KAAEC,GAAe,KACrC,GAA4Cp5E,IAAMC,SAAS,IAAG,qBAC/D,IADsB,MAAmB,MACGD,IAAMC,SAAS,CAAC,IAAE,qBAAvDhB,GAAc,MACrB,IADwC,MACJgB,mBAAS,IAAE,qBAAxCo5E,GAAU,MAAEC,GAAa,MAC9B,GAA4Cr5E,oBAAS,GAAM,qBAApDs5E,GAAc,MACrB,IADwC,MACNt5E,mBAAS,IAAE,qBAAtCu5E,GAAS,MAAEC,GAAY,MAE1Bl6E,GAAmC,mBAAzBE,OAAOC,SAASC,MAAsD,gBAAzBF,OAAOC,SAASC,KAGzEiK,IADWD,cACAE,eAEPwpB,GAAe,SAAC/wB,QACKzC,IAAxB4uB,GACHA,EACC,CAAC,GAAMnsB,IAITuiB,GAAiB,GACjBG,EAAiB1iB,EAChB,EAEA6B,qBAAU,gBACStE,IAAhBP,EAASnE,UAIS0E,IAAlBP,EAASiC,MAAwC,OAAlBjC,EAASiC,MAAiBjC,EAASiC,KAAKuF,OAAS,GACnFkwB,EAAQ13B,EAASiC,WAGU1B,IAAxBP,EAASmU,iBAAyD5T,IAA7BP,EAASmU,WAAWlS,MAAmD,OAA7BjC,EAASmU,WAAWlS,MAAiBjC,EAASmU,WAAWlS,KAAKuF,OAAS,GACzJiyE,EAAWz5E,EAASmU,WAAWlS,MAEjC,GAAG,CAACjC,IAEJ6E,qBAAU,gBACgBtE,IAArB2uB,QAA0D3uB,IAAxB2uB,EAAiBrzB,KACtD6pB,EAAiB,IACKm0D,GACNlwE,KAAK9J,GACrBi6E,GAAgBD,IAElB,GAAG,CAAC3qD,IAEJrqB,qBAAU,WACT,QAC4BtE,IAA3BJ,OAAOC,SAAS+V,QACW,OAA3BhW,OAAOC,SAAS+V,OACf,CACD,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDkkE,EADSn+E,OAAOo+E,YAAYF,EAAgBpxE,WACrB,IACZ,OAAbqxE,QAAkC95E,IAAb85E,GAA2B3wE,MAAM2wE,EAO3D,CACD,GAAG,IAED,IA2HME,GAAa,WACnB70D,EAAiB,IAEE,IAAf5G,GACHhb,QAAQC,IAAI,mDACZo2E,GAAa,KACb7vE,GAAS,kBAELrK,IACH2C,IAAQC,MAAM,CACZC,SAAU,UACVC,OAAQ,sBACRC,MAAO,UAIkBzC,IAAxBP,EAASmU,iBAAuD5T,IAA3BP,EAASmU,WAAWtY,IAA+C,OAA3BmE,EAASmU,WAAWtY,IAAemE,EAASmU,WAAWtY,GAAG2L,OAAS,GAlGjI,SAACgzE,EAASC,EAAct1C,EAAOu1C,GACpD,IAAIr+E,EAAO,CACVmkC,OAAQ2E,GAGLq1C,EAAQhzE,OAAS,IACpBnL,EAAK4F,KAAOu4E,GAGTC,EAAajzE,OAAS,IACzBnL,EAAKo+E,aAAeA,GAGjBC,EAASlzE,OAAS,IACrBnL,EAAKq+E,SAAWA,GAGjB,IAAMrqE,EAAM3Q,EAAS,uBAAmBylC,GACxCp3B,MAAMsC,EAAK,CACVsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACR,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACdA,EAASE,OAAO7S,MAAK,SAAC8S,IACW,IAA5BA,EAAsB,SACzBxK,QAAQC,IAAI,uBAKd,GAAE,IAEFiL,OAAM,SAACC,GACPnL,QAAQC,IAAI,eAAgBkL,EAAMpG,WAEnC,GACD,CAwDI8xE,CAAcz1C,EAASy0C,EAAS35E,EAASmU,WAAWtY,GAAI,SAGrC0E,IAAhBP,EAASnE,IAAoC,OAAhBmE,EAASnE,IAAemE,EAASnE,GAAG2L,OAAS,GA3I1D,SAACvF,EAAM8C,EAAM61E,GACnC,IAAMv+E,EAAO,CACZ,SAAY,UACZ,UAAa4F,EACb,aAAgB8C,EAChB,QAAW61E,GAGNvqE,EAAG,UAAM3Q,EAAS,4BACxBqO,MAAMsC,EAAK,CACVsH,KAAM,OACN3J,OAAQ,MACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACR,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACdA,EAASE,OAAO7S,MAAK,SAAC8S,IACW,IAA5BA,EAAsB,QACzBxK,QAAQC,IAAI,uBAGZD,QAAQC,IAAI,kBAGd,GAAE,IAEFiL,OAAM,SAACC,GACPnL,QAAQC,IAAI,eAAgBkL,EAAMpG,WAEnC,GACD,CAyGIgyE,CAAe54E,EAAM8C,EAAM/E,EAASnE,KAGZ,IAAfijB,GACVhb,QAAQC,IAAI,0DACZorB,EAAoB,CAAC,GAErB7kB,GAAS,kBAETgvE,EAAgBC,EAAe,GAAGt3E,KAAMs3E,EAAe,GAAGvxD,SAC1Dva,SAGqBlN,IAAjBimB,GACHA,KAEwB,IAAf1H,GACVhb,QAAQC,IAAI,gEAIT,IA9CkBwc,EA8Cd6gD,EAAagY,EA9CC74D,EA+CAzB,EA9CXs6D,EAAQxL,IAAIrtD,KA+Cf6gD,EAAa,IAAI0Z,IAAI1Z,EAAWvnC,WACrB0B,OAAOzc,GAGtBC,GAAc,SAAAg8D,GAAc,OAAIA,EAAiB,CAAC,IAClD1B,EAAWjY,EACf,EAEM4Z,GAAa,WACfj8D,GAAc,SAAAg8D,GAAc,OAAIA,EAAiB,CAAC,IAEnC,IAAfj8D,GACHqQ,EAAoB,CAAC,QAEA5uB,IAAjBimB,GACHA,IAEDlc,GAAS,mBACgB,IAAfwU,GACVxU,GAAS,iBAEV,EAmBAzF,qBAAU,WACNf,QAAQC,IAAI,gCAChB,GAAG,CAACpE,KAGN,IAEMs7E,GAAS,IACTC,GAAc,CACnBzpE,KAAM,EACN1P,MAAO,OACPtE,QAAS,GACTwI,OANoB,GAOpBhI,SAAU,IA4UT,OACI,qBAAKzB,MAAO,CAAC,EAAE,SAQjB,8BACWsiB,IAAexC,EAAM9U,OAClB,sBAAKiO,WAAW,OAAM,yEAElB,cAAC9C,EAAA,EAAM,CAAChQ,QA1WR,WAChBoc,EAAc,EAClB,EAwWiD,mBAC7B,4DAEKzU,GAAS,cAAa,cAG3B,cAACqI,EAAA,EAAM,UAClB,cAAC,IAAI,CAACnW,MAAO,CAACqB,MAAO,WAAciV,GAAG,aAAai0B,UAAU,kBAAiB,kCAMvE,gCA1UO,SAACxmB,GACpB,OAAQA,GACJ,KAAK,EACD,OACP,cAACw/C,GAAA,EAAI,CAACtoD,IAAI,EAAK,SACJ,eAACvW,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAACyJ,OAAQ,OAAQjI,SAAU,IAAKoG,SAAU,IAAKtG,UAAWm9E,GAAQ55E,UAAW45E,IAAU,UAMnI,cAAC52E,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,EAAGwG,UAAW,GAAI2D,YAAa,IAAOrK,MAAM,gBAAe,oKAG9F,cAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,GAAI9G,QAAS,GAAI,SACrD,cAACuH,EAAA,EAAS,CACrB8Q,UAAQ,EACRtZ,MAAO,CAACuF,MAAO,OAAQwC,UAAW,GAClCiB,YAAY,OACZ0yB,WAAS,EACTl1B,MAAM,OACNhG,KAAK,OACLnB,GAAG,oBACHyJ,aAAa,OACbW,OAAO,SACP3B,QAAQ,WACRqB,MAAO1D,EACPwD,SAAU,SAAChK,GACVi8B,EAAQj8B,EAAE+Y,OAAO7O,MAClB,MAGS,cAACzE,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,GAAI9G,QAAS,GAAI,SACrD,cAACuH,EAAA,EAAS,CACrB8Q,UAAQ,EACRtZ,MAAO,CAACuF,MAAO,OAAQwC,UAAW,GAClCiB,YAAY,wBACZxC,MAAM,eACNhG,KAAK,cACLnB,GAAG,oBACHyJ,aAAa,cACbW,OAAO,SACP3B,QAAQ,WACRqB,MAAOu/B,EACPz/B,SAAU,SAAChK,GACVg+E,EAAWh+E,EAAE+Y,OAAO7O,MACrB,MAGS,cAACzE,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,IAAI,SACtC,eAACkV,GAAA,EAAW,CAACxU,WAAW,EAAK,UACzB,cAACuzB,GAAA,EAAU,CAACh8B,MAAO,CAACuB,WAAY,GAAIF,MAAO,WAAY,uBACvD,eAAC0W,GAAA,EAAM,CACtBjQ,QAAQ,WACSwR,UAAQ,EACzBrQ,SAAU,SAAChK,GACVi+E,EAAQj+E,EAAE+Y,OAAO7O,MAClB,EAAE,UAEiB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,UAAU,qBAC3B,cAACoO,GAAA,EAAQ,CAACpO,MAAO,4BAA4B,uCAC7C,cAACoO,GAAA,EAAQ,CAACpO,MAAO,cAAc,yBAC/B,cAACoO,GAAA,EAAQ,CAACpO,MAAO,UAAU,qBAC3B,cAACoO,GAAA,EAAQ,CAACpO,MAAO,QAAQ,2BAIrC,cAACzE,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,IAAI,SACtC,eAACkV,GAAA,EAAW,CAACxU,WAAW,EAAK,UACzB,cAACuzB,GAAA,EAAU,CAACh8B,MAAO,CAAEuB,WAAY,GAAIF,MAAO,WAAY,0BACxD,eAAC0W,GAAA,EAAM,CACHuB,UAAQ,EAC1BxR,QAAQ,WACRmB,SAAU,SAAChK,GACVm+E,EAAWn+E,EAAE+Y,OAAO7O,MACrB,EAAE,UAEgB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,YAAY,uBAC7B,cAACoO,GAAA,EAAQ,CAACpO,MAAO,OAAO,kBACxB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,2BAA2B,sCAC5C,cAACoO,GAAA,EAAQ,CAACpO,MAAO,QAAQ,gCAOjD,KAAK,EACD,OACP,cAACo6D,GAAA,EAAI,CAACtoD,IAAI,EAAK,SACJ,sBAAKjb,MAAO,CAACsB,UAAWm9E,GAAQ55E,UAAW45E,GAAQ12E,UAAW,GAAIvG,SAAU,KAAO,UAC3F,eAACqG,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACuB,WAAY,EAAGwG,UAAW,GAAI2D,YAAa,GAAI4F,aAAc,GAAMjQ,MAAM,gBAAe,6HACX,sBAAMrB,MAAO,CAACqB,MAAO,UAAW+D,OAAQ,WAAYe,QAAS,gBACvJpC,IAAjBJ,OAAOi7D,MACVj7D,OAAOi7D,MAAMC,IAAIC,iBAAiB,CAAEC,cAAe,SAEnDz3D,QAAQC,IAAI,oFAAqF5D,OAAOi7D,MAE1G,EAAE,4CAkBS,eAACl6D,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,IAAM,UAExC,qBAAK/H,MAAO,CAACwH,QAAS,QAAQ,SAC3C,cAAC2O,EAAA,EAAM,CAACwE,SAAU0iE,GAAalxE,SAAS,SAAUrE,QAA2B,UAAlBzE,EAA4B,YAAc,WAAarD,MAAO0+E,GAAaC,UAAW,cAAC,KAAa,IAAKx4E,QAAS,SAACE,GAAYkxB,GAAa,QAAS,EAAE,+BAIrM,sBAAKv3B,MAAO,CAACwH,QAAS,QAAQ,UAC3C,cAAC2O,EAAA,EAAM,CAACwE,SAAU0iE,GAAalxE,SAAS,QAASrE,QAA2B,SAAlBzE,EAA2B,YAAc,WAAYrD,MAAO0+E,GAAaC,UAAW,cAAC,KAAU,IAAKx4E,QAAS,SAACE,GAAYkxB,GAAa,OAAQ,EAAE,kBAG3M,cAACphB,EAAA,EAAM,CAACwE,SAAU0iE,GAAalxE,SAAS,aAAekxE,GAAalxE,SAAS,eAAgBrE,QAA2B,gBAAlBzE,EAAkC,YAAc,WAAarD,MAAO0+E,GAAaC,UAAW,cAAC,KAAe,IAAKx4E,QAAS,SAACE,GAAYkxB,GAAa,cAAe,EAAE,yBAI9P,sBAAKv3B,MAAO,CAACwH,QAAS,QAAQ,UAC3C,cAAC2O,EAAA,EAAM,CAACwE,SAAU0iE,GAAalxE,SAAS,SAAUrE,QAA2B,UAAlBzE,EAA4B,YAAc,WAAarD,MAAO0+E,GAAaC,UAAW,cAAC,KAAa,IAAKx4E,QAAS,SAACE,GAAYkxB,GAAa,QAAS,EAAE,mBAKlN,cAACphB,EAAA,EAAM,CAACwE,SAAU0iE,GAAalxE,SAAS,UAAYkxE,GAAalxE,SAAS,SAAUrE,QAA2B,UAAlBzE,EAA4B,YAAc,WAAYrD,MAAO0+E,GAAaC,UAAW,cAAC,KAAS,IAAKx4E,QAAS,SAACE,GAAYkxB,GAAa,QAAS,EAAE,8BA8ClP,KAAK,EACD,OACP,cAACgsC,GAAA,EAAI,CAACtoD,IAAI,EAAK,SACJ,sBAAKjb,MAAO,CAAC+H,UAAW,EAAGvG,SAAU,IAAKoG,SAAU,IAAK6B,OAAQ,OAAQnI,UAAWm9E,GAAQ55E,UAAW45E,IAAU,UACzH,eAAC52E,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAK,aAAG+H,UAAW,GAAIuJ,aAAc,EAAG9P,SAAU,IAAKiI,OAAQ,QAAM,eAAgB,IAAOpI,MAAM,gBAAe,2HAC9B,mBAAGqX,KAAK,YAAYV,OAAO,SAASS,IAAI,aAAazY,MAAO,CAACqB,MAAO,UAAWkV,eAAgB,QAAU,0BAAkB,gDAsC1O,qBAAKvW,MAAO,CAAC+H,UAAW,GAAK,SAU3B,sBAAKwiC,UAAU,SAASvqC,MAAO,CAACwH,QAAS,QAAQ,UACjD,cAACmO,GAAA,EAAO,CAACvR,MAAO,mBAAmB,SAClC,cAACuU,GAAA,EAAU,CACV3Y,MAAO,CACNmB,gBAAgC,IAAfo8E,GAAmB,UAAY,QAChDxzE,OAAQ,IACRzI,UAAW,GACXuD,UAAW,GACXxD,MAAO,OACP0G,UAAW,IACXnH,aAAc,GACdI,OAAQ,mCAETmF,QAAS,YAxQjBs3E,IAAkBF,GAAa,EACnCC,GAAcD,GAAa,GAChBE,IAAiC,IAAfF,IAC7BC,GAAcR,EAAahyE,OAAO,EAuQtB,EAAE,SAEF,cAAC,KAAmB,QAGtB,qBAAKhL,MAAO,CAAC4H,SAAU,IAAKpG,SAAU,IAAKZ,aAAcX,EAAME,QAAQS,aAAcK,QAAS,IAAM,SACnG,cAAC,KAAa,CACZjB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQM,aAAca,UAAW,IAAKuD,UAAW,KACjFkG,MAAOiyE,EACP4B,YAAarB,GACbsB,cAAY,EACZC,eAAa,EACbpC,WAAYA,GAEZqC,iBAAiB,aACjBC,UAAU,EACVC,UAAU,EACVC,cAAc,UACT/nD,kBAAmB,IACxBgoD,wBAAsB,EACtBC,qBAAmB,MAItB,cAACzpE,GAAA,EAAO,CAACvR,MAAO,eAAe,SAC9B,cAACuU,GAAA,EAAU,CACV3Y,MAAO,CACNmB,gBAAiBo8E,KAAeR,EAAe/xE,OAAO,EAAI,UAAY,QACtEjB,OAAQ,IACRzI,UAAW,GACXuD,UAAW,GACXxD,MAAO,OACP0G,UAAW,IACXnH,aAAc,GACdI,OAAQ,mCAETmF,QAAS,YAvTjBs3E,IAAkBF,GAAaP,EAAahyE,OAAS,EAEzDwyE,GAAcD,GAAa,GAChBE,IAAkBF,KAAeP,EAAahyE,OAAS,GAClEwyE,GAAc,EAqTF,EAAE,SAEF,cAAC,KAAmB,kBAQxB,QACI,MAAO,eAEnB,CA6BqB6B,CAAe/8D,GAC5B,qBAAKtiB,MAAO,CAACsR,aAAc,MACV,IAAfgR,GAAmC,IAAfA,EACpB,sBAAKtiB,MAAO,CAACyJ,OAAQ,OAAQ7B,SAAU,IAAKpG,SAAU,IAAK6D,SAAU,YAAc,UAClF,cAAC8Q,EAAA,EAAM,CACNwE,SAAyB,IAAf2H,EACVnc,QAASq4E,GACT12E,QAAS,WACT9H,MAAO,CAACuB,WAAY,GAAIoH,OAAQ,GAAIpD,MAAO,IAAKF,SAAU,WAAYiT,IAAoB,IAAfgK,GAAoB,KAAO,IAAK6G,KAAqB,IAAf7G,EAAmB,KAAO,IAAIo7D,IAAa,kBAI7J,cAACvnE,EAAA,EAAM,CACNrO,QAAS,WACTzG,MAAM,UACN8E,QAAS43E,GACT/9E,MAAO,CAACuB,WAAY,GAAIoH,OAAQ,GAAIpD,MAAO,IAAKF,SAAU,WAAYiT,IAAoB,IAAfgK,GAAoB,KAAM,IAAK6G,KAAqB,IAAf7G,EAAmB,IAAM,IAAIo7D,IAC7I/iE,SAAyB,IAAf2H,IAAsC,IAAnBomB,EAAQ19B,QAAgC,IAAhBvF,EAAKuF,QAAqB,SAE7EsX,IAAexC,EAAM9U,OAAS,EAAI,SAAW,YAIjD,sBAAKhL,MAAO,CAACyJ,OAAQ,OAAQ7B,SAAU,IAAKpG,SAAU,IAAKD,WAA2B,IAAf+gB,EAAmB,IAAM,OAAQva,UAA0B,IAAfua,EAAmB,GAAK,GAAK,UAC/I,cAACnM,EAAA,EAAM,CAACwE,SAAyB,IAAf2H,EAAkBnc,QAASq4E,GAAW,kBAYxD,cAACroE,EAAA,EAAM,CACNrO,QAAwB,IAAfwa,GAAmB+6D,GAAaryE,QAAU,EAAI,YAA2B,WAClF3J,MAAM,UACN8E,QAAS43E,GACT/9E,MAAO,CAACuB,WAAY,IACpBoZ,SAAyB,IAAf2H,IAAsC,IAAnBomB,EAAQ19B,QAAgC,IAAhBvF,EAAKuF,QAAqB,SAE7EsX,IAAexC,EAAM9U,OAAS,EAAI,SAAW,SAEhC,IAAfsX,EACA,cAACnM,EAAA,EAAM,CACNrO,QAAS,WACTzG,MAAM,YACN8E,QAAS,WACRmB,QAAQC,IAAI,SAEZo2E,GAAa,KACTl6E,IACF2C,IAAQC,MAAM,CACbC,SAAU,UACVC,OAAQ,sBACRC,MAAO,KAIV+b,EAAc,GACdzU,GAAS,iBACV,EACA9N,MAAO,CAACuB,WAAY,KACpBoZ,SAAyB,IAAf2H,EAAiB,kBAI3B,cAQjB,E,wFCzVeg9D,GA7cC,SAAC18E,GACb,IAAQM,EAAwFN,EAAxFM,UAAqDM,GAAmCZ,EAA7EnC,aAA6EmC,EAA/D28E,SAA+D38E,EAArD48E,KAAqD58E,EAA/ClC,WAA+CkC,EAAnCY,UAC7D,GADgGZ,EAAzB8K,WAAyB9K,EAAb+K,SACrDzJ,IAAMC,SAAS,IAAIm6E,MAAM,mBAAhD1B,EAAO,KAAEC,EAAU,KAC1B,EAAwC14E,mBAAS,CAAC,GAAE,mBAA7CsuB,EAAY,KACpB,GADqC,KACKtuB,wBAASJ,IAAU,mBAAtD0sB,EAAa,KAAE+B,EAAgB,KACtC,EAAgDruB,wBAASJ,GAAU,mBAA5D2uB,EAAgB,KAAEC,EAAmB,KAC3C,EAAoCzuB,IAAMC,SAAS,GAAE,mBAA9Cme,EAAU,KAAEC,EAAa,KACjC,EAAwBre,IAAMC,SAAS,IAAG,mBAAnCiK,EAAI,KAAEC,EAAO,KACrB,EAA0CnK,IAAMC,SAAS,IAAG,mBAArDd,EAAa,KAAE6lB,EAAgB,KACtC,EAA0ChlB,IAAMC,UAAS,GAAM,mBAAxD2kB,EAAa,KAAEC,EAAgB,KACtC,EAAsC7kB,IAAMC,UAAS,GAAM,mBAApDs7E,EAAW,KAAEC,EAAc,KACjC,EAAgCx7E,IAAMC,SAAS,IAAG,mBAA3CgoB,EAAQ,KAAEmW,EAAW,KAC5B,EAAkCp+B,IAAMC,SAAS,IAAG,mBAAlC87B,GAAF,KAAc,MAExBx8B,EACmB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAEjB,GAA0BM,mBAAS,CAClC,0BACA,iBACA,sBACC,qBAJK2b,GAAK,MAMRhS,IANkB,MAMPC,eAoDT82B,GAAgB,SAAC7E,GACtBzuB,MAAMrO,EAAY,6BAA8B,CAC/CsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,+BAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAnEM,SAACoyB,EAAcjF,GAIvC,QAAkBj8B,IAAdi8B,GAAyC,OAAdA,EAAoB,CAClD,IAAIkF,EAAgB,GACpB,IAAK,IAAIz4B,KAAOw4B,EAAc,CAC7B,IAAI3+B,EAAW2+B,EAAax4B,GAG5B,IAAK,IAAI04B,KAFT7+B,EAASkuB,QAAU,GAEQluB,EAAS/D,KAAM,CACzC,IAAI6iC,EAAc9+B,EAAS/D,KAAK4iC,GAGhC,IAAK,IAAIE,KAFTD,EAAY5Q,QAAU,GAEEwL,EAAW,CAClC,IAAMviB,EAAWuiB,EAAUqF,GAE3B,QAA6BthC,IAAzB0Z,EAASqd,aAAsD,OAAzBrd,EAASqd,YAClD,IAAK,IAAIwK,KAAc7nB,EAASqd,YAE/B,GAAIrd,EAASqd,YAAYwK,GAAY34B,gBAAkBy4B,EAAY3/B,KAAKkH,cAAe,CAGtFrG,EAASkuB,QAAQrnB,KAAK,CACrB,SAAYsQ,EAASpe,GACrB,SAAY+lC,EAAY3/B,OAEzB2/B,EAAY5Q,QAAQrnB,KAAKsQ,EAASpe,IAClC,KACD,CAIF,GAAI+lC,EAAY5Q,QAAQxpB,OAAS,EAChC,KAEF,CACD,CAEAk6B,EAAc/3B,KAAK7G,EACpB,CAEAg8B,EAAY4C,EACb,MACC5C,EAAY2C,GAGbhF,EAAaD,EACd,CAoBGuF,CAAiBzzB,EAAckuB,EAKjC,IACCxtB,OAAM,SAACC,GACPnL,QAAQC,IAAI,kBAAoBkL,EAAMpG,WACvC,GACD,EAuCM2d,GAAe,WACpBzY,MAAMrO,EAAY,sCAAuC,CACxDsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,iCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,SAChB2f,EAAiB,CAAC,GAEd1gB,EAAasJ,QAMjBoX,EAAiB1gB,EAEnB,IACCU,OAAM,SAACC,GACPnL,QAAQC,IAAI,qBAAsBkL,EAAMpG,WACzC,GACD,EAEM4E,GAAU,WACfM,MAAMrO,EAAY,eAAgB,CACjCsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,+BAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACNzD,EAAQyD,EACT,IACCU,OAAM,SAACC,GACPnL,QAAQC,IAAI,sBAAsBkL,EAAMpG,WACzC,GACD,EAEM0wE,GAAiB,CAAC,CACvB,KAAQ,WACR,QAAW,mBACX,MAAS,WACP,CACF,KAAQ,aACR,QAAW,YACX,MAAS,WACP,CACF,KAAQ,YACR,QAAW,YACX,MAAS,WACP,CACF,KAAQ,WACR,QAAW,aACX,MAAS,YAGJD,GAAkB,SAACl1D,EAAO+3D,GAC/Br4E,QAAQC,IAAI,sBAAuBqgB,EAAO+3D,EAAWt8E,GACjDukB,IAAUvkB,GACb6lB,EAAiBtB,GACjBmB,GAAiB,GACjBpM,YAAW,WACVoM,GAAiB,EAClB,GAAG,OAMHG,EAAiB,IACjBH,GAAiB,GAEnB,EAEA1gB,qBAAU,WAKT,GAJA2hB,KACA/Y,KApIAM,MAAMrO,EAAY,oBAAqB,CACtCsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,YAEb1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,qCAAsCoK,EAASC,QAGrDD,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACN,QAAqB/N,IAAjB+N,EAA4B,CAC/B,IAAI4yB,EAAW,GACf,IAAK,IAAIj4B,KAAOqF,EAAc,CAC7B,IAAM6yB,EAAK7yB,EAAarF,IACN,IAAdk4B,EAAGC,QAIPF,EAASv3B,KAAKw3B,EACf,CAGAE,GAAcH,EACf,CACD,IACClyB,OAAM,SAACC,GACPnL,QAAQC,IAAI,yBAA0BkL,EAAMpG,WAC7C,SAuG4BtI,IAA3BJ,OAAOC,SAAS+V,QACW,OAA3BhW,OAAOC,SAAS+V,OACf,CACD,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDkkE,EADSn+E,OAAOo+E,YAAYF,EAAgBpxE,WACrB,IACZ,OAAbqxE,QAAkC95E,IAAb85E,GAA2B3wE,MAAM2wE,GAWvD/vE,GAAS,mBAVXxG,QAAQC,IAAI,cAAes2E,GAC3B6B,GAAe,GACE,IAAb7B,GAA+B,MAAbA,IACrBv2E,QAAQC,IAAI,gBAEZu1E,GAAgBC,GAAe,GAAGt3E,KAAMs3E,GAAe,GAAGvxD,UAG3DjJ,EAAcs7D,EAAS,GAIzB,CACD,GAAG,IAED,IAII+B,GAAc,CACnB3qE,KAAM,EACNhU,QAAS,EACTkE,UAAW,SACX3D,SAAU,IACVoG,SAAU,IACVzG,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,SAGFw+E,GAAe,CACpB5+E,QAAS,uBAGJ8nC,GAAa,CAClBxjC,MAAO,IACPoD,OAAQ,IACRc,OAAQ,OACR1B,UAAW,IAGV,OACA,qBAAK/H,MAAO,CAACuF,MAAO,IAAMkE,OAAQ,OAAQtI,gBAAiBlB,EAAME,QAAQQ,cAAeuY,cAAe,IAAK5X,UAAW,MAAQ,UAM7G,IAAhBm+E,EACA,gCACC,qBAAKz/E,MAAO,CAAC4H,SAAU,IAAKpG,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAWtE,EAAU,OAAS,IAAM,SAC9F,cAACq8E,GAAA,EAAO,CACPx9D,WAAYA,EACZjhB,MAAM,UACNrB,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQQ,cAC/BC,aAAcX,EAAME,QAAQS,aAC5BK,QAAS,GACTD,OAAQ,kCACRQ,SAAU,IACVH,MAAO,SACN,SAEAye,GAAMrhB,KAAI,SAAC+H,EAAOxB,GACjB,IAhDc+e,EAgDRg8D,EAAY,CAAC,EAUnB,OA1Dch8D,EAsDI/e,EArDf43E,EAAQxL,IAAIrtD,KAsDbg8D,EAAUC,WAAY,GAItB,cAACC,GAAA,EAAI,2BAAiBF,GAAS,IAAE//E,MAAO,CAACwB,SAAU,IAAKH,MAAO,SAAW,SACzE,cAAC6+E,GAAA,EAAS,2BAXM,CAAC,GAWQ,IAAElgF,MAAO,CAACuB,WAAY,GAAIF,MAAO,SAAU,SAClEmF,OAFQA,EAMf,QAGC,eAAC,KAAI,CAAC7B,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAAEiB,QAAS,EAAGO,SAAU,IAAMoG,SAAU,IAAM6B,OAAQ,QAAU,UAChG,cAAC,KAAI,CAAC2L,MAAI,EAACpR,GAAIL,OAAOC,SAAS8U,KAAKvM,SAAS,SAAW,EAAI,GAAG,SACpE,8BASE,cAACg0E,GAAY,CACZ38E,SAAUA,EACVN,UAAWA,EACXwvB,iBAAkBA,EAClBC,oBAAqBA,EACrB/I,aAAc6G,EACdzG,aAAcA,GACdlK,MAAOA,GACP88D,QAASA,EACTC,WAAYA,EACZv6D,WAAYA,EACZC,cAAeA,EACftR,QAASA,GACT7C,KAAMA,EACN0uE,gBAAiBA,GACjBC,eAAgBA,GAChB15E,cAAeA,EACf6lB,iBAAkBA,EAClBJ,cAAeA,EACfC,iBAAkBA,aAIHhlB,IAAlB0sB,GAA+B9sB,OAAOC,SAAS8U,KAAKvM,SAAS,UAAYxI,OAAOC,SAAS8U,KAAKvM,SAAS,SAAW,KAClH,sBAAKnM,MAAO,CAAC+H,UAAW,IAAM,UAC7B,cAAC,KAAU,CAACD,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,SAAUmM,aAAc,IAAM,2BAG1E,cAAC,KAAI,UACH,cAAC,GAAY,CACZmhB,aAAcA,EACdhC,cAAeA,EACf+B,iBAAkBA,EAClBF,eAAgB,OAChBD,aAAa,EACb1kB,UAAU,EACVD,YAAY,EACZxK,UAAWA,EACX4X,KAAM,IACNzZ,MAAOpB,EAAME,QAAQQ,cACrB+xB,iBAAkBA,EAClBC,oBAAqBA,EACrBvkB,KAAMA,EACNwkB,cAAezG,EACf0G,iBAAkByP,eAQzB,cAAC,KAAI,CAACrnB,IAAI,EAAK,SACd,sBAAKjb,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAW,IAAM,UAC5D,cAAC,KAAU,CAACD,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,QAAS8D,UAAW,UAAU,gCAGtE,cAAC,KAAU,CAAC2C,QAAQ,QAAQ9H,MAAO,CAACmF,UAAW,SAAUmM,aAAc,IAAM,gDAG7E,sBAAKtR,MAAO,CAACwH,QAAS,OAAQO,UAAW,GAAIxC,MAAO,IAAKkE,OAAQ,QAAS,UACzE,cAAC,KAAI,CAACzJ,MAAO4/E,GAAaz5E,QAAS,WAC9B1C,GACF2C,IAAQC,MAAM,CACbC,SAAU,UACVC,OAAQ,yBACRC,MAAO,KAMVk5E,GAAe,EAChB,EAAE,SACD,eAACU,GAAA,EAAc,CAACpgF,MAAO6/E,GAAa,UACnC,cAAC,KAAU,CAAC/3E,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,WAAW,4BAGnD,qBAAKqG,IAAI,0BAA0B1H,MAAO+oC,KAC1C,cAAC,KAAU,CAACjhC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAI1G,MAAO,yBAAyB,+EAKrF,qBAAKrB,MAAO,CAACuB,WAAY,GAAImK,YAAa,IAAM,SAC/C,cAAC,KAAU,CAAC1L,MAAO,CAAC+H,UAAW,KAAO,kBAIvC,cAAC,KAAI,CAAC/H,MAAO4/E,GAAaz5E,QAAS,WAC9B1C,GACF2C,IAAQC,MAAM,CACbC,SAAU,UACVC,OAAQ,wBACRC,MAAO,KAIVsH,GAAS,mCACV,EAAE,SACD,eAACsyE,GAAA,EAAc,CAACpgF,MAAO6/E,GAAa,UACnC,cAAC,KAAU,CAAC/3E,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,WAAW,yBAGnD,qBAAKqG,IAAI,wCAAwC1H,MAAO+oC,KACxD,cAAC,KAAU,CAACjhC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAI1G,MAAO,yBAAyB,kFAW9F,E,mDC9ZMy7B,GAAYC,YAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,sBAEfkmB,KAAM,CACJ,6BAA8B,CAC5B/0C,OAAQ,oBACRK,MAAO,QACPI,SAAU,GACV,uBAAwB,CACtBN,gBAAiB,QAEnB,sBAAuB,CACrBA,gBAAiB,UAIvB60C,UAAW,CACT30C,MAAO,QAEP,2CAA4C,CAC1CwuB,YAAa,cAKbwwD,GAAuB,SAAH,GAAwF,IAAnF5gF,EAAI,EAAJA,KAAeyD,GAAF,EAAPO,QAAkB,EAATP,WAAWutB,EAAa,EAAbA,cAAe/iB,EAAU,EAAVA,WAAYsyB,EAAS,EAATA,UAAWC,EAAY,EAAZA,aAC9F,EAA0C97B,oBAAU,GAAE,mBAA/Cm8E,EAAa,KAAEC,EAAgB,KACtC,EAAwCp8E,oBAAU,GAAE,mBAA7Cq8E,EAAY,KAAEC,EAAe,KACpC,EAAwCt8E,mBAAS,CAAC,GAAE,mBAA7CsuB,EAAY,KAAEiuD,EAAe,KAEpC,EAA8Bv8E,oBAAS,GAAM,mBAAtCqP,EAAO,KAAEmtE,EAAU,KAC1B,EAAsCx8E,mBAAS,IAAG,mBAA3C2Q,EAAW,KAAEqmB,EAAc,KAClC,EAA0Bh3B,mBAAS,IAAG,mBAA/B04B,EAAK,KAAE+jD,EAAQ,KACtB,EAAgCz8E,mBAAS,IAAG,mBAArCi3B,EAAQ,KAAEoG,EAAW,KAE5B,EAAkDr9B,mBAAS,IAAG,mBAAvD08E,EAAiB,KAAEC,EAAoB,KAC9C,EAAkC38E,oBAAS,GAAK,mBAAzCwM,EAAS,KAAEoO,GAAY,KAEvBghB,GAAUjD,KACbhvB,GAAWC,cAEf,GAAkC5J,mBAAS,IAAG,qBAAvC48E,GAAS,MAAEC,GAAY,MAC9B,QAAaj9E,IAATtE,GAA+B,OAATA,GAAiC,IAAhBA,EAAKuL,OAC/C,OAAO,KAGR,IA8GOggB,GAAc,SAAC0C,GACrB,IAAMC,EAAO,UAAMzqB,EAAS,6BAAqBwqB,EAAaruB,IAE5DkS,MAAMoc,EAAS,CACbnc,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUga,GACrBhc,YAAa,YAEhB1S,MAAK,SAAC2S,GACN,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJfvK,QAAQC,IAAI,mCAKd,IACCvI,MAAK,SAAC8S,GACN,IAA6B,IAAzBA,EAAae,QAUjB,OAAOf,OATsB/N,IAAxB+N,EAAasJ,OAChBxN,MAAM6E,MAAM,4BAA6BX,EAAasJ,QAEtDxN,MAAM6E,MAAM,2BAOf,IACCD,OAAM,SAACC,GACP7E,MAAM6E,MAAM,6BAA8BA,EAAMpG,WACjD,GACA,EAED,OACC,sBAAKrM,MAAO,CAAC+H,UAAW,GAAIzG,UAAW,KAAO,UAC7C,cAACuG,EAAA,EAAU,CAACC,QAAQ,KAAI,8BAGxB,eAACD,EAAA,EAAU,CAACC,QAAQ,QAAO,kDACYrI,EAAKuL,OAAM,QAAuB,IAAhBvL,EAAKuL,OAAe,GAAK,IAAG,OAEpFvL,EAAKhB,KAAI,SAAC+sB,EAASxmB,GACnB,OACC,sBAAiBhF,MAAO,CAAC+H,UAAqB,IAAV/C,EAAc,GAAK,KAAK,UAC3D,cAAC6C,EAAA,EAAU,CAACC,QAAQ,KAAI,SACtB0jB,EAAQ/lB,OAEP,cAACf,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAAC+H,UAAW,IAAI,SACpDyjB,EAAQjpB,KAAK9D,KAAI,SAAC09B,EAAShN,GAC3B,IAAMuO,EAAevO,IAAaqxD,GAAgBx7E,IAAUs7E,OAEpCv8E,IAApBo4B,EAAQ3H,SAA6C,OAApB2H,EAAQ3H,QAC5C2H,EAAQ3H,QAAU,GAEdkJ,GAAgBvB,EAAQ3H,QAAQxpB,OAAS,GAAkC,IAA7B61E,EAAkB71E,SAA8B,IAAd2F,IACnFoO,IAAa,GACb+hE,EAAqB3kD,EAAQ3H,UAI3BkJ,QAAiC35B,IAAjBo4B,EAAQ12B,WAA4C1B,IAAtB0uB,EAAahtB,MAC1D02B,EAAQ12B,KAAKkH,cAAc7G,WAAW,IAAK,OAAS2sB,EAAahtB,KAAKkH,cAAc7G,WAAW,IAAK,YACtE/B,IAA7B0uB,EAAa3d,aAA0D,OAA7B2d,EAAa3d,cAC1DqnB,EAAQrnB,YAAc2d,EAAa3d,kBAGN/Q,IAA1B0uB,EAAa2I,UAAoD,OAA1B3I,EAAa2I,WACvDe,EAAQf,SAAW3I,EAAa2I,eAGNr3B,IAAvB0uB,EAAaoK,OAA8C,OAAvBpK,EAAaoK,QACpDV,EAAQU,MAAQpK,EAAaoK,YAGK94B,IAA/B0uB,EAAawuD,eAA8D,OAA/BxuD,EAAawuD,gBAC5D9kD,EAAQ8kD,cAAgBxuD,EAAawuD,gBAMxC,IAAMz+D,EAAW2Z,EAAQ3H,QAAQxpB,OAAS,EACpC7J,EAAkBlB,EAAME,QAAQM,aAEhCygF,EAAU,UAAMxjD,EAAe,MAAQ8iD,GAAgB,EAAI,MAAQ,MAAK,kBAAUh1D,EAAQnqB,OAE1F8/E,EAAYhlD,EAAQ12B,KAAKkH,cAAc4G,QAAQ,IAAK,KAE1D,OACI,cAAC7O,EAAA,EAAI,CAACrF,GAAI8hF,EAAW/rE,MAAI,EAACpR,GAAI05B,EAAe,GAAK,EAAkB19B,MAAO,CAACsB,UAAW,KAAO6E,QAAS,WAGrGu3B,KA/MM,SAACj4B,EAAMT,EAAOmqB,GAC9B5d,MAAM,GAAD,OAAIrO,EAAS,sCAA8Bk+E,OAAO37E,EAAKK,WAAW,IAAK,OAAS,CACnF0L,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GAKN,OAJwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,iCAGNoK,EAASE,MACjB,IACC7S,MAAK,SAAC8S,IACuB,IAAzBA,EAAae,QAChB6tE,EAAgB,CACf,KAAQj7E,IAGTi7E,EAAgB5uE,GAGjByuE,EAAiBv7E,GACjBy7E,EAAgBtxD,GAEhBxS,YAAW,WAEV,IAAM6gB,EAAQpsB,SAASsE,eAAe,qBACxB3R,IAAVy5B,GAAiC,OAAVA,GAE1BA,EAAM6jD,SAAS,CACd/oE,IAAK,IACLgpE,SAAU,WAIZviE,IAAa,GACb+hE,EAAqB,GACtB,GAAG,IACN,IACGtuE,OAAM,SAACC,GAEPiuE,EAAgB,CAAC,GACjBH,EAAiBv7E,GACjBy7E,EAAgBtxD,GAEhBpQ,IAAa,GACb+hE,EAAqB,GACtB,GACD,CA6JUS,CAAWplD,EAAQ12B,KAAMT,EAAOmqB,GAChCrhB,GAAS,6BAAD,OAA8BqzE,IAKxC,EAAE,SACD,cAACp7E,EAAA,EAAK,CAAC/F,MAAO,CAACiB,QAAS,GAAIK,UAAW,GAAI8D,OAASs4B,EAA2B,UAAZ,UAAuB18B,OAAQkgF,EAAY//E,gBAAiBA,GAAmBgF,QAAS,WAC3J,EAAE,SACCu3B,EA2ED,sBAAK19B,MAAO,CAACmF,UAAW,OAAQE,SAAU,YAAehG,GAAG,eAAc,UACzE,cAACwI,EAAA,EAAU,CAACC,QAAQ,KAAI,SACvB,4BAAIq0B,EAAQ12B,SAEb,sBAAKzF,MAAO,CAAEqF,SAAU,WAAYiT,IAAK,EAAGC,MAAO,GAAI,WACtC,IAAf7K,EACA,cAACiI,GAAA,EAAO,CACPvR,MAAM,gBACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CAACiZ,WAAY,GACpB9S,QAAS,SAAClH,GACT0hF,GAAW,QACiB58E,IAAxBo4B,EAAQrnB,aAAqD,OAAxBqnB,EAAQrnB,aAChDqmB,EAAegB,EAAQrnB,kBAGC/Q,IAArBo4B,EAAQf,UAA+C,OAArBe,EAAQf,UAC7CoG,EAAYrF,EAAQf,eAGCr3B,IAAlBo4B,EAAQU,OAAyC,OAAlBV,EAAQU,OAC1C+jD,EAASzkD,EAAQU,YAGI94B,IAAlBo4B,EAAQqlD,OAAyC,OAAlBrlD,EAAQqlD,OAC1CR,GAAa7kD,EAAQqlD,MAEvB,EAAE,SAEF,cAAChrE,GAAA,EAAQ,CAACxW,MAAO,CAAEqB,MAAOmqB,EAAQnqB,aAGnC,KACoB,OAArB86B,EAAQf,eAA0Cr3B,IAArBo4B,EAAQf,UAA0Be,EAAQf,SAASpwB,OAAS,EACxF,mBACC0N,KAAMyjB,EAAQf,SACd3iB,IAAI,sBACJT,OAAO,SACEhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAE7D,cAACsU,GAAA,EAAO,CACPvR,MAAM,8BACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CAACiZ,WAAY,GACpB9S,QAAS,SAAClH,GACV,EAAE,SAEF,cAAC,KAAe,CAACe,MAAO,CAAEqB,MAAOmqB,EAAQnqB,eAI3C,KACiB,OAAlB86B,EAAQU,YAAoC94B,IAAlBo4B,EAAQU,OAAuBV,EAAQU,MAAM7xB,OAAS,EAChF,mBACC0N,KAAMyjB,EAAQU,MACdpkB,IAAI,sBACJT,OAAO,SACEhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAE7D,cAACsU,GAAA,EAAO,CACPvR,MAAM,8BACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CAACiZ,WAAY,GACpB9S,QAAS,SAAClH,GACV,EAAE,SAEI,cAAC6/B,GAAA,EAAa,CAAC9+B,MAAO,CAAEqB,MAAOmqB,EAAQnqB,eAIhD,KACG,cAACsU,GAAA,EAAO,CACNvR,MAAM,eACNoV,UAAU,MACVxZ,MAAO,CAAE+J,OAAQ,OAAQ,SAEzB,cAAC4O,GAAA,EAAU,CACT3Y,MAAO,CAAC,EACRmG,QAAS,SAAClH,GAChBwhF,GAAiB,GACjBF,GAAkB,GAClBI,GAAW,GACXD,EAAgB,CAAC,EACX,EAAE,SAEF,cAACp3D,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,kBAIrC,sBAAKrB,MAAO,CAAC+H,UAAW,GAAIP,QAAS,OAAQlG,UAAW,IAAKuD,UAAW,IAAK6G,YAAa,IAAM,UAC9F8H,EACA,sBAAKxT,MAAO,CAACiV,KAAM,EAAGvJ,YAAa,IAAM,UACxC,cAAC7D,EAAA,EAAU,CAACC,QAAQ,KAAI,sBAGxB,cAACU,EAAA,EAAS,CACHxI,MAAO,CACL+H,UAAW,GACX2D,YAAa,IAErB5D,QAAQ,WACFW,WAAS,EACTpH,MAAM,UACZmF,MAAM,cACAwC,YAAa,cACnBG,MAAO2L,EACP7L,SAAU,SAAC5C,GACV80B,EAAe90B,EAAM2R,OAAO7O,MAC7B,EACM9J,GAAG,sBAEV,cAACmJ,EAAA,EAAS,CACHxI,MAAO,CACL+H,UAAW,GACX2D,YAAa,IAErB5D,QAAQ,WACFW,WAAS,EACTpH,MAAM,UACZmF,MAAM,WACAwC,YAAa,WACnBG,MAAOiyB,EACPnyB,SAAU,SAAC5C,GACVm7B,EAAYn7B,EAAM2R,OAAO7O,MAC1B,EACM9J,GAAG,oBAEV,cAACmJ,EAAA,EAAS,CACHxI,MAAO,CACL+H,UAAW,GACX2D,YAAa,IAErB5D,QAAQ,WACFW,WAAS,EACTpH,MAAM,UACZmF,MAAM,QACAwC,YAAa,QACnBG,MAAO0zB,EACP5zB,SAAU,SAAC5C,GACVu6E,EAASv6E,EAAM2R,OAAO7O,MACvB,EACM9J,GAAG,iBAEV,sBACCW,MAAO,CACNwH,QAAS,QACR,UAEF,cAAC2O,EAAA,EAAM,CACNnW,MAAO,CACNqB,MAAO,QACP8iB,WAAY,UACZnjB,OAAQ,OACR2H,OAAQ,GACRsM,KAAM,EACN1T,WAAY,EACZwG,UAAW,GACX3C,OAAQ,WAETe,QAAS,WACRg1B,EAAe,IACfylD,EAAS,IACTp/C,EAAY,IACZm/C,GAAW,EACZ,EAAE,oBAIH,cAACxqE,EAAA,EAAM,CACNnW,MAAO,CACNqB,MAAO,QACP8iB,WAAY,UACZnjB,OAAQ,OACR2H,OAAQ,GACRsM,KAAM,EACN1T,WAAY,GACZwG,UAAW,GACX3C,OAAQ,WAETe,QAAS,SAACE,GACTs6E,GAAW,GAzaN,SAACluD,GACvB,IAAIsH,EAAgBtH,EAEhB2I,IAAa3I,EAAa2I,WAC7B3I,EAAa2I,SAAWA,EACxBrB,EAAcqB,SAAWA,GAGtByB,IAAUpK,EAAaoK,QAC1BpK,EAAaoK,MAAQA,EACrB9C,EAAc8C,MAAQA,GAGnB/nB,IAAgB2d,EAAa3d,cAChC2d,EAAa3d,YAAcA,EAC3BilB,EAAcjlB,YAAcA,GAGzBisE,KAActuD,EAAa+uD,QAC9B/uD,EAAa+uD,MAAQT,GACrBhnD,EAAcynD,MAAQT,IAGrBxvE,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAUqmB,GACrBroB,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,SACZf,EAAasJ,MAQnB,IACI5I,OAAM,SAACC,GAEV,GAEF,CAoXiBwnB,CAAexH,GACf0I,EAAe,IACfylD,EAAS,IACTp/C,EAAY,GACb,EAAE,wBAOJ,sBAAKxhC,MAAO,CAACiV,KAAM,EAAG9P,UAAW,OAAQuG,YAAa,IAAM,UAC3D,cAAC7D,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC/C86B,EAAQrnB,mBAGK/Q,IAAdi8B,GAAyC,OAAdA,GAAsBA,EAAUh1B,OAAS,EACpE,cAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAIuJ,aAAc,IAAM,uCAGtE,UAEavN,IAAdi8B,GAAyC,OAAdA,GAAsBA,EAAUh1B,OAAS,EACpE,cAACwvC,GAAA,EAAY,CACZl9B,UAAQ,EACFje,GAAG,oBACH21C,QAAShV,EACTya,eAAa,EACXtxC,MAAO03E,EACT9gD,QAAS,CAAEiW,UAAWjW,GAAQiW,WAC9B0E,aAAc,CACZ16C,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,UAGjBg+D,kBAAmB,SAACzkB,EAAQzxC,GAAK,OAAKyxC,EAAOv7C,KAAO8J,EAAM9J,EAAE,EACtDs7C,eAAgB,SAACC,GAEf,YACa72C,IAAX62C,GACW,OAAXA,QACgB72C,IAAhB62C,EAAOn1C,MACS,OAAhBm1C,EAAOn1C,KAEA,wBAGQm1C,EAAOn1C,KAAKE,OAAO,GAAGC,cAAgBg1C,EAAOn1C,KAAKI,UAAU,IAAIC,WAAW,IAAK,IAGnG,EACA2C,WAAS,EACTzI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BiI,OAAQ,GACR/H,aAAcX,EAAME,QAAQS,cAE9BqI,SAAU,SAAC5C,EAAOw0C,GAYvB,IAAK,IAAIpuC,KAXTnF,QAAQC,IAAI,UAAWszC,GAWP7a,EACf,GAAK6a,EAAS3iC,MAAK,SAAArY,GAAI,OAAIA,EAAKR,KAAO2gC,EAAUvzB,GAAKpN,EAAE,SAelB0E,IAAlCi8B,EAAUvzB,GAAkB,aAAqD,OAAlCuzB,EAAUvzB,GAAkB,aAC9EuzB,EAAUvzB,GAAkB,YAAI,CAAC0vB,EAAQ12B,MACzC6B,QAAQC,IAAI,YAAay4B,EAAUvzB,GAAKhH,MACxCulB,GAAYgV,EAAUvzB,KAEXuzB,EAAUvzB,GAAkB,YAAEN,SAASgwB,EAAQ12B,QAC1Du6B,EAAUvzB,GAAkB,YAAEU,KAAKgvB,EAAQ12B,MAC3C6B,QAAQC,IAAI,WAAYy4B,EAAUvzB,GAAKhH,MACvCulB,GAAYgV,EAAUvzB,UArBtB,QAAsC1I,IAAlCi8B,EAAUvzB,GAAkB,aAAqD,OAAlCuzB,EAAUvzB,GAAkB,aAAcuzB,EAAUvzB,GAAkB,YAAEN,SAASgwB,EAAQ12B,MAAO,CAClJ,IAAMg8E,EAAWzhD,EAAUvzB,GAAkB,YAAEoN,QAAO,SAAAha,GAAI,OAAIA,IAASs8B,EAAQ12B,IAAI,SAClE1B,IAAb09E,GAAuC,OAAbA,IAE7BzhD,EAAUvzB,GAAkB,YAAIg1E,EAEhCz2D,GAAYgV,EAAUvzB,IAExB,CAkBFwzB,EAAaD,GACb14B,QAAQC,IAAI,QAASszC,GACrBimC,EAAqBjmC,EAEhB,EACHC,aAAc,SAACl4C,EAAOg4C,GAAY,IAAD,EAG/BjI,EAAU/vC,EAAM6C,KAQpB,YAPgB1B,IAAZ4uC,GAAqC,OAAZA,IAC5BA,EAAU,eAGPA,EAAQ3nC,OAAS,IACpB2nC,EAAUA,EAAQhtC,OAAO,GAAGC,cAAgB+sC,EAAQ9sC,UAAU,IAG9D,8CAAQjD,GAAK,aACZ,cAAC+S,GAAA,GAAO,GAACyzB,OAAK,EAAC5vB,UAAU,OAAOpV,MAC/B,uBAAMpE,MAAO,CAAC,EAAE,eACE+D,IAAhBnB,EAAM0rB,OAAuC,OAAhB1rB,EAAM0rB,OAAkB1rB,EAAM0rB,MAAMtjB,OAAS,EAC1E,qBAAKtD,IAAK9E,EAAM0rB,MAAO7mB,IAAKkrC,EAAS3yC,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQM,aAAcoE,UAAW,IAAKwkC,UAAW,IAAKzoC,aAAcX,EAAME,QAAQS,gBACrJ,KACF,eAACiH,EAAA,EAAU,qBACF8qC,SAGT,0BAAW,UAAQ,yBACpB,iCACC,cAAC3qB,GAAA,EAAQ,CACR4V,KAAM,cAAC8jD,GAAA,EAAwB,CAACjgF,SAAS,UACzCkgF,YAAa,cAACC,GAAA,EAAY,CAACngF,SAAS,UACpCzB,MAAO,CAAE0L,YAAa,GACtBuc,QAAS2yB,EAAO7yB,WAEhB4qB,MACK,MAIX,EACMqI,YAAa,SAAC9Q,GACZ,OACL,cAAC1hC,EAAA,EAAS,yBACTxI,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQO,WAC/BE,aAAcX,EAAME,QAAQS,eAEzBspC,GAAM,IACV1jC,MAAM,sBACNsB,QAAQ,aAGN,IAEN,UAoByB/D,IAA1Bo4B,EAAQ8kD,eAAyD,OAA1B9kD,EAAQ8kD,eAA0B9kD,EAAQ8kD,cAAcj2E,OAAS,EACxG,sBAAKhL,MAAO,CAAC+H,UAAW,IAAM,UAC7B,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAK5B,QAAS,WAAO,EAAE,sBAGtE,qBAAKnG,MAAO,CAACwH,QAAS,QAAQ,SAC5B20B,EAAQ8kD,cAAcxiF,KAAI,SAACyxB,EAASlrB,GACpC,IAAIg0C,GAAY,EACZ6oC,OAAgC99E,IAAjBo4B,EAAQ37B,KAAqB27B,EAAQ37B,KAAO,qBACzCuD,IAAlB0sB,GAAiD,OAAlBA,QACE1sB,IAAhC0sB,EAAcoxD,IAA+D,OAAhCpxD,EAAcoxD,SAA0C99E,IAAhBmsB,EAAQhe,KAAqC,OAAhBge,EAAQhe,UACpFnO,IAArC0sB,EAAcoxD,GAAcp8E,MAAsBgrB,EAAcoxD,GAAcp8E,KAAKkH,cAAc7G,WAAW,IAAK,OAASoqB,EAAQhe,IAAIvF,cAAc7G,WAAW,IAAK,OACvKkzC,GAAY,GAKf,IAAIjxC,EAAY,EAKhB,OAJImoB,EAAQzqB,KAAK0G,SAAS,MAAQ+jB,EAAQzqB,KAAKuF,OAAS,KACvDjD,EAAY,GAIZ,mBAEC2Q,KAAMwX,EAAQlc,KACdyE,IAAI,sBACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,wBAAyBqK,YAAa,GAAK,SAEnF,sBAAK1L,MAAO,CAACuF,MAAO,IAAKiC,QAAS,OAAQ5G,aAAcX,EAAME,QAAQS,aAAcwE,OAAQ,UAAWpE,OAAQg4C,EAAY,oBAAsB,kCAAmC73C,gBAAiBlB,EAAME,QAAQO,WAAYO,QAAS,oBAAqBqE,SAAU,UAAW,UACjR,qBAAKoC,IAAKwoB,EAAQ5B,MAAOtuB,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,GAAI/H,aAAcX,EAAME,QAAQS,aAAcmH,UAAW,MAC7G,cAACF,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC8hF,WAAY,MAAOvgF,WAAY,GAAIwG,UAAyB,IAAdA,EAAkB,GAAK,GAAIlD,UAAW,IAAM,SAC5HqrB,EAAQzqB,WATNT,EAcR,SAGD,KACF,qBAAKhF,MAAO,CAAC+H,UAAW,IAAI,SAC3B,mBACC2Q,KAAI,qDAAgDyjB,EAAQ12B,MAC5DgT,IAAI,sBACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,QAASqK,YAAa,GAAK,SAEnE,eAAC7D,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAI3C,OAAQ,WAAae,QAAS,WAAO,EAAE,gDACvD,cAACyS,GAAA,EAAa,CAAC5Y,MAAO,CAAC+H,UAAW,EAAGxG,WAAY,gBAaxF,qBAAKvB,MAAO,CACV2I,OAAQ,IACRpD,MAAO,IACP3E,aAAcX,EAAME,QAAQS,aAC5BI,OAAQ,mCACP,SACF,cAAC,GAAY,CACZyxB,aAAcA,EACdhC,cAAeA,EACf6B,eAAgB,OAChBD,aAAa,EACb1kB,UAAU,EACVD,YAAY,EACZxK,UAAWA,EACX4X,KAAM,aAhgBX,sBAAK9a,MAAO,CAACmF,UAAW,OAAQE,SAAU,YAAa,UACtD,cAACwC,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACwB,SAAU,KAAK,SAC/C,4BAAI26B,EAAQ12B,SAEV+c,EACA,cAAC7M,GAAA,EAAO,CACPvR,MAAM,iDACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CACLqF,SAAU,WACVy0B,OAAQ,GACRvhB,OAAQ,IAEVpS,QAAS,SAAClH,GACV,EAAE,SAEF,cAAC8iF,GAAA,EAAW,CAAC/hF,MAAO,CAAEqB,MAAOmqB,EAAQnqB,aAGtC,KACoB,OAArB86B,EAAQf,eAA0Cr3B,IAArBo4B,EAAQf,UAA0Be,EAAQf,SAASpwB,OAAS,EACzF,mBACC0N,KAAMyjB,EAAQf,SACd3iB,IAAI,sBACJT,OAAO,SACEhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAE7D,cAACsU,GAAA,EAAO,CACPvR,MAAM,8BACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CACNqF,SAAU,WACVy0B,QAAS,GACTvhB,OAAQ,IAETpS,QAAS,SAAClH,GACV,EAAE,SAEF,cAAC,KAAe,CAACe,MAAO,CAAEqB,MAAOmqB,EAAQnqB,eAI3C,KACiB,OAAlB86B,EAAQU,YAAoC94B,IAAlBo4B,EAAQU,OAAuBV,EAAQU,MAAM7xB,OAAS,EAChF,mBACC0N,KAAMyjB,EAAQU,MACdpkB,IAAI,sBACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,cAACsU,GAAA,EAAO,CACPvR,MAAM,wCACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACV3Y,MAAO,CACNqF,SAAU,WACVy0B,QAAS,GACTvhB,OAAQ,IAETpS,QAAS,SAAClH,GACV,EAAE,SAEF,cAAC6/B,GAAA,EAAa,CAAC9+B,MAAO,CAAEqB,MAAOmqB,EAAQnqB,eAIzC,WAtFqD8tB,EAwhB/D,QAtkBQnqB,EA0kBZ,MAGH,EAEMg9E,GAAY,SAAH,GAAgB,IAAXviF,EAAI,EAAJA,KAClB,EAA8B0E,mBAAS,IAAG,mBAAnCse,EAAO,KAAY,KAE3B,OACC,qBAAKziB,MAAO,CAACoF,OAAQ,WAAae,QAAS,WAC1CmB,QAAQC,IAAI,UAAWkb,EACxB,EAAE,SACD,cAAC,WAAO,CACPpjB,GAAG,iBACHQ,KAAMJ,EACNwiF,QAAS,GACTC,OACC,cAAC,iBAAa,CACbC,YAAa,SAACxvE,GACb,OAAOA,EAAKtR,KACb,EACAmF,MACC,cAAC,gBAAY,CACZ/E,SAAS,OACTg+B,KAAK,UACL2iD,MAAM,IAGRC,KACC,cAAC,eAAW,CACXj9E,OAAO,UACPk9E,UAAU,EACVn8E,QAAS,SAACE,GACTiB,QAAQC,IAAI,UAAWlB,EACxB,SASR,EAGMk8E,GAAc,SAAH,GAAqC,IAAhC9iF,EAAI,EAAJA,KAAMyvE,EAAmB,EAAnBA,oBAC1B,EAA8B/qE,mBAAS,IAAG,mBAAnCse,EAAO,KAAEC,EAAU,KAE3B,OACC,qBAAK1iB,MAAO,CAACoF,OAAQ,WAAae,QAAS,WAC1CmB,QAAQC,IAAI,UAAWkb,QACK1e,IAAxBmrE,GACHA,EAAoBzsD,EAEtB,EAAE,SACD,cAAC,mBAAe,CACfpjB,GAAG,sBACHsJ,OAAQ,IACRpD,MAAO,IACP1F,KAAMJ,EACJ+iF,KAAM,cAAC,cAAU,CAAChiF,KAAK,aACzB0hF,OACC,cAAC,oBAAgB,CAChBO,cAAc,SACdN,YAAa,SAACO,GACb,MAAO,SACR,EACAJ,UAAU,EACVjjF,GAAG,qBACHW,MAAO,CAACoF,OAAQ,WAChB6tC,KACC,cAAC,cAAU,CACV5xC,MAAO,UACPxB,KAAM,SAACA,EAAMwB,GAEZ,OADAiG,QAAQC,IAAI,SAAU1H,EAAMwB,GAE3B,IAEF,IAGFK,QACC,cAAC,eAAW,CACXL,MAAO,UACPrB,MAAO,CACNmB,gBAAiB,OAElBwhF,UAAU,EACVC,aAAc,SAACv8E,GACVoc,IAAYpc,EAAM8C,MAAM0vB,GAC3BnW,EAAWrc,EAAM8C,MAAM0vB,EAEzB,EACAn3B,QACC,cAAC,gBAAY,CACZmhF,cAAc,EACdC,UAAW,CACVvzB,OAAQ,YAETr1C,QAAS,SAACra,EAAMwB,GACf,OACC,qBAAKrB,MAAO,CAACY,aAAcX,EAAME,QAAQS,aAAcO,gBAAiBlB,EAAME,QAAQO,WAAYM,OAAQ,kCAAmCK,MAAO,QAASJ,QAAS,EAAGmE,OAAQ,WAAY,SAC5L,cAACyC,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzBjI,EAAKg5B,KAaV,WAaV,EAmjBekqD,GA/iBG,SAACngF,GACjB,IAAQM,EAA0BN,EAA1BM,UAAWwK,EAAe9K,EAAf8K,WACbE,EAAQC,cACd,EAAuC1J,mBAAS,SAAQ,mBACxD,GADmB,KAAgB,KACDA,mBAAS,IAAE,mBAAtC6+E,EAAS,KAChB,GAD8B,KACU7+E,oBAAS,IAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAA0BjnB,mBAAS,CAAC,GAAE,mBAA/B8+E,EAAK,KAAEC,EAAQ,KACtB,EAAgC/+E,mBAAS,IAAG,mBAA3Bg/E,GAAF,KAAa,MAC5B,EAAgCh/E,oBAAS,GAAM,mBAAxCi/E,EAAQ,KAAEC,EAAW,KAC7B,EAAwBl/E,mBAAS,IAAG,mBAA7B1E,EAAI,KAAE6jF,EAAO,KACpB,EAAgCn/E,mBAAS,IAAG,mBAArCo/E,EAAQ,KAAEC,EAAW,KAE3B,EAA8Dr/E,mBAAS,IAAG,mBAAnEs/E,EAAuB,KAAEC,EAA0B,KAC1D,EAAgDv/E,mBAAS,IAAG,mBAArD42B,EAAgB,KAAEC,EAAmB,KAC5C,EAAgC72B,mBAAS,IAAG,mBAArCgoB,EAAQ,KAAEmW,EAAW,KAC5B,EAAkCn+B,mBAAS,IAAG,mBAAvC67B,EAAS,KAAEC,GAAY,KAC9B,GAA0C97B,wBAASJ,GAAU,qBAAtD0sB,GAAa,MAAE+B,GAAgB,MAEnC1kB,GAAWC,cACRtK,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAGnBwE,qBAAU,WACT,GAAuC,IAAnCo7E,EAAwBz4E,OAC3BgwB,EAAoB7O,OACd,CACN,IAAM0I,EAAe1I,EAASjU,MAAK,SAAArY,GAAI,OAAIA,EAAK4F,OAASg+E,CAAuB,SAC3D1/E,IAAjB8wB,GAA+C,OAAjBA,GACjCmG,EAAoB,CAACnG,GAEvB,CACD,GAAG,CAAC4uD,IAmCJp7E,qBAAU,WACL8jB,EAASnhB,OAAS,IACrB1D,QAAQC,IAAI4kB,GAnCc,WAC3B,IAAMyxD,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QACtDuwB,EAASxqC,OAAOo+E,YAAYF,EAAgBpxE,WAE5C83C,EAA4B,qBAAX3gD,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAASgP,SAChG1C,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OAElGgqE,EAAaz5C,EAAiB,SACpC,GAAmB,OAAfy5C,QAAsC5/E,IAAf4/E,EAA0B,CACpDD,EAA2BC,GAExB,IAAMl4D,EAAU40B,GAAY,WAAYnwC,GAC3CpC,GAASw2C,EAAU74B,EACpB,CAEA,IAAMm4D,EAAc15C,EAAwB,gBAC5C,GAAoB,OAAhB05C,QAAwC7/E,IAAhB6/E,EAA2B,CACtDt8E,QAAQC,IAAI,wBAAyBq8E,GAErC,IAAMC,EAAYD,EAAYj3E,cAAc7G,WAAW,IAAK,KAE5D6W,YAAW,WACV,IAAMmnE,EAAY1yE,SAASsE,eAAemuE,QACxB9/E,IAAd+/E,GAAyC,OAAdA,GAC9BA,EAAUvmE,OAIZ,GAAG,IACJ,CAED,CAKEwmE,GAEF,GAAG,CAAC53D,IAkEH/a,SAAShN,MAAQ,qBACjB,IAGKmhC,GAAmB,SAACN,GACzB,IAAI++C,EAAgB,GAChBC,EAAiB,GACrB,IAAKx3E,MAAOw4B,EAAc,CACzB,IAAM3+B,EAAW2+B,EAAax4B,IAG9B,IAAK,IAAIa,KAFT02E,EAAc72E,KAAK,CAAC,IAAO7G,EAASb,KAAM,KAAQa,EAAS/D,KAAKyI,OAAQ,MAAS1E,EAASjF,QAC1F4iF,EAAe92E,KAAK,CAAC,IAAO7G,EAASb,KAAM,KAAQ,IAAK,MAASa,EAASjF,QACvDiF,EAAS/D,KAC3B0hF,EAAe92E,KAAK,CAAC,IAAO7G,EAAS/D,KAAK+K,GAAQ7H,KAAM,KAAQ,GAAI,MAASa,EAASjF,OAExF,CAEAiiF,EAAQU,GACRR,EAAYS,EACb,EAEOp/C,GAAgB,SAAC7E,GACrBzuB,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,+BAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAET,IAA6B,IAAzBA,EAAae,QAChB,QAAkB9O,IAAdi8B,GAAyC,OAAdA,GAAsBA,EAAUh1B,OAAS,EAAG,CAC1E,IAAIi6B,EAAenzB,EAEfozB,EAAgB,GACpB,IAAK,IAAIz4B,KAAOw4B,EAAc,CAC7B,IAAI3+B,EAAW2+B,EAAax4B,GAG5B,IAAK,IAAI04B,KAFT7+B,EAASkuB,QAAU,GAEQluB,EAAS/D,KAAM,CACzC,IAAI6iC,EAAc9+B,EAAS/D,KAAK4iC,GAGhC,IAAK,IAAIE,KAFTD,EAAY5Q,QAAU,GAEEwL,EAAW,CAClC,IAAMviB,EAAWuiB,EAAUqF,GAE3B,QAA6BthC,IAAzB0Z,EAASqd,aAAsD,OAAzBrd,EAASqd,YAClD,IAAK,IAAIwK,KAAc7nB,EAASqd,YAC/B,GAAIrd,EAASqd,YAAYwK,GAAY34B,gBAAkBy4B,EAAY3/B,KAAKkH,cAAe,CAEtFrG,EAASkuB,QAAQrnB,KAAK,CACrB,SAAYsQ,EAASpe,GACrB,SAAY+lC,EAAY3/B,OAGzB2/B,EAAY5Q,QAAQrnB,KAAKsQ,GACzB,KACD,CAIF,GAAI2nB,EAAY5Q,QAAQxpB,OAAS,EAChC,KAEF,CACD,CAEAk6B,EAAc/3B,KAAK7G,EACpB,MAEsBvC,IAAlBmhC,GAAiD,OAAlBA,GAA0BA,EAAcl6B,OAAS,GACnFu6B,GAAiBL,GACjB5C,EAAY4C,GACZlK,EAAoBkK,KAEpBK,GAAiBzzB,GACjBwwB,EAAYxwB,GACZkpB,EAAoBlpB,GAEtB,MACCyzB,GAAiBzzB,GACjBwwB,EAAYxwB,GACZkpB,EAAoBlpB,EAGpB,IACCU,OAAM,SAACC,GAENnL,QAAQC,IAAI,UAAYkL,EAAMpG,WAChC,GACJ,EAEAhE,qBAAU,WAnIRkJ,MAAMrO,EAAY,oBAAqB,CACrCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,MAAK,SAAC2S,GACN,OAAwB,MAApBA,EAASC,QACZizB,UACAv9B,QAAQC,IAAI,qCAAsCoK,EAASC,SAIrDD,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GACN+yB,GAAc/yB,QAEO/N,IAAjB+N,GACHmuB,GAAanuB,EAEf,IACCU,OAAM,SAACC,GACPoyB,IAED,IA3DEtzB,MAAMrO,EAAY,sCAAuC,CACvDsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,QACZf,EAAasJ,OAMjBoX,GAAiB1gB,EAEnB,IACIU,OAAM,SAACC,GACN7E,EAAM6E,MAAMA,EAAMpG,WACpB,GA2IJ,GAAG,IAEH,IAAM63E,GAAY,SAACC,GACjB5yE,MAAMrO,EAAY,iBAAmBihF,EAAU,CAC7C3yE,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,sBAAwB48E,GAG/BxyE,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLmxE,EAAMkB,GAAYryE,EAClBoxE,EAASD,GAETE,EAAYgB,EACd,IACC3xE,OAAM,SAACC,GAENnL,QAAQC,IAAI,UAAYkL,EAAMpG,WAChC,GACJ,EAyFM4nE,GAAY,CAChB,qBACA,sBACA,8BACA,8BACA,qBACA,oBACA,uBACA,qBACA,qBACA,kBACA,yBACA,2BAWF,GAAwBpjE,YAAY,CAClCC,SAFiB,IAGjBC,gBAAgB,EAChBC,SAAU,YAXM,WAChB,IAAK,IAAIvE,KAAOwnE,GACdiQ,GAAUjQ,GAAUxnE,GAExB,CAQI23E,EACF,IALW,GAALlzE,MAAW,GAAJC,KAQf,GAAIga,EACFC,GAAgB,QAGX,IAAKg4D,QASyBr/E,IAAjCk/E,EAA2B,qBACM,OAAjCA,EAA2B,0BACWl/E,IAAtCk/E,EAA2B,oBAAEpjF,KAC7B,CACAwjF,GAAY,GAEZ/7E,QAAQC,IAAI,iBAAkB07E,EAA2B,qBAQzD,IAFA,IAAIoB,GAAoB,GACpBC,GAAkB,GACbj5C,GAAI23C,EAAW33C,GAAI,EAAGA,KAAK,CAClC,IAAIk5C,GAAU,IAAIx9E,KAClBw9E,GAAQC,SAASn5C,IACjBk5C,GAAQE,SAAS,GAAI,GAAI,GAAI,KAE7B,IAAIC,GAAY,IAAI39E,KACpB29E,GAAUF,SAASn5C,IACnBq5C,GAAUD,SAAS,EAAG,EAAG,EAAG,GAE5B,IAAIE,GAAUJ,GAAQv9E,UAAY,IAC9B49E,GAAYF,GAAU19E,UAAY,IAUtC,IAAK,IAAIyF,MARTnF,QAAQC,IACN,UACAq9E,GACA,QACAD,GACA,SACA1B,EAA2B,qBAEbA,EAA2B,oBAAEpjF,KAAM,CACjD,IAAMuV,GAAO6tE,EAA2B,oBAAQ,KAAEx2E,IAClDnF,QAAQC,IAAI,SAAU6N,GAAKtO,UAAW69E,IACtCr9E,QAAQC,IAAIo9E,GAAUC,IAEpBD,GAAUC,GAAYD,GAAUvvE,GAAKtO,WACrC69E,GAAQ79E,WAAa,GAErBQ,QAAQC,IAAI,SAEdD,QAAQC,IAAI6N,GAAKtO,UAAY69E,IAE7B,KAUF,CAEAN,GAAkBl3E,KAAKk+B,GACzB,CAEA/jC,QAAQC,IAAI88E,IACZ/8E,QAAQC,IAAI+8E,GACd,CAGF,IAAM/tB,GACJ72D,OAAO05B,oBAAoB6pD,GAAOj4E,OAAS,EACzC,oDACoB65E,GAAiB,WAClC5Q,GAAUx1E,KAAI,SAACoB,GACd,YAAoBkE,IAAhBk/E,EAAMpjF,IAAuC,OAAhBojF,EAAMpjF,SAIbkE,IAAtBk/E,EAAMpjF,GAAMilF,MAHP,KAQP,gCACGjlF,EAAI,KAAIojF,EAAMpjF,GAAMilF,QAG3B,OAEA,KAEAjlF,GACJ,sBAAK0qC,UAAU,UAAUvqC,MAAO,CAACuF,MAAO,IAAMkE,OAAQ,OAAQyP,cAAe,IAAK/T,UAAW,UAAW,UACzG,qBAAKnF,MAAO,CAACuF,MAAO,IAAKkE,OAAQ,QAAQ,SACvChK,EAAKuL,OAAS,EACd,cAAC,GAAW,CAACvL,KAAMA,EAAMyvE,oBAAqBwU,IAC7C,OAGW,OAAbv3D,QAAkCpoB,IAAbooB,GAA0BA,EAASnhB,OAAS,EACjE,qBAAKhL,MAAO,CAAEwH,QAAS,OAAQjG,WAAY,KAAO,SAChD4qB,EAAS1tB,KAAI,SAAC+sB,EAASxmB,GACvB,OACC,cAACuQ,GAAA,EAAI,CAEJvV,MAAO,CACNmB,gBAAiBsiF,IAA4Bj4D,EAAQ/lB,KAAO+lB,EAAQnqB,MAAQpB,EAAME,QAAQM,aAC1FiL,YAAa,GACbC,YAAa,EACbC,aAAc,EACdjD,OAAQ,GACRvD,OAAQ,UACRpE,OAAO,aAAD,OAAewqB,EAAQnqB,OAC7BA,MAAO,SAERmF,MAAK,UAAKglB,EAAQ/lB,KAAI,aAAK+lB,EAAQjpB,KAAKyI,OAAM,KAC9C7E,QAAS,WACRmB,QAAQC,IAAI,YAAaikB,EAAQ/lB,MAC7Bg+E,IAA4Bj4D,EAAQ/lB,KACvCi+E,EAA2B,IAE3BA,EAA2Bl4D,EAAQ/lB,KAGrC,EACAqC,QAAQ,WACRzG,MAAM,WAtBDmqB,EAAQ/lB,KAyBhB,MAEA,KAEF,cAAC,GAAoB,CACpBiI,WAAYA,EACZ+iB,cAAeA,GACfhxB,KAAMs7B,EACNt3B,QAASA,GACTP,UAAWA,EACX88B,UAAWA,EACXC,aAAcA,KAGdsjD,EAASv4E,OAAS,EAClB,cAAC,GAAS,CAACvL,KAAM8jF,IAChB,KAEEhtB,MAQL,OAHE,qBAAKv2D,MAAO,CAAEwB,SAAU,KAAMiI,OAAQ,QAAS,SAAE5J,IAIrD,EC33CMklF,IArEYhoD,YAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,sBAEfkmB,KAAM,CACJ,6BAA8B,CAC5B/0C,OAAQ,oBACRK,MAAO,QACPI,SAAU,GACV,uBAAwB,CACtBN,gBAAiB,QAEnB,sBAAuB,CACrBA,gBAAiB,UAIvB60C,UAAW,CACT30C,MAAO,QAEP,2CAA4C,CAC1CwuB,YAAa,cAgDM,SAAH,GAA+B,IAA1BpwB,EAAI,EAAJA,KAAMkJ,EAAM,EAANA,OAAQpD,EAAK,EAALA,MACvC,EAA8BpB,mBAAS,IAAG,mBAA5B,KAAY,KAG3BmD,QAAQC,IAAI,SAAU9H,GACtB,IAAIsM,EAAYtM,EAAKI,KAoBrB,OACC,sBAAKG,MAAO,CAAC,EAAE,UACd,cAAC6H,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACglF,aAAc,IAAI,SACjDvlF,EAAK2E,QAEP,cAAC,aAAS,CACTpE,MAAO,CAAC+H,UAAW,IACnBY,OAAQA,EACRpD,MAAOA,EACP1F,KAAMkM,EACHm2E,OACF,cAAC,cAAU,CACV1hF,KAAK,UACLykF,QACC,cAAC,eAAW,CAACC,MAAM,IAEpB/C,YAAa,SAACO,GACb,IAAIrhF,EAAQ,YAKZ,YAJmB0C,IAAf2+E,GAA4BA,EAAW13E,OAAS,IACnD3J,OAAmC0C,IAA3B2+E,EAAW,GAAGyC,eAA2DphF,IAAjC2+E,EAAW,GAAGyC,SAAS9jF,MAAsBqhF,EAAW,GAAGyC,SAAS9jF,MAAQA,GAGtHA,CACR,EACAK,QACC,cAAC,eAAW,CACXL,MAAO,UACPrB,MAAO,CACNmB,gBAAiB,OAElBwhF,UAAU,EACVC,aAAc,SAACv8E,GACEA,EAAM8C,MAAM0vB,CAG7B,EACAn3B,QACC,cAAC,gBAAY,CACZmhF,cAAc,EACdC,UAAW,CACVvzB,OAAQ,YAETr1C,QAAS,SAACra,EAAMwB,GACfiG,QAAQC,IAAI,SAAU1H,GACtB,IAAM4F,OAAyB1B,IAAlBlE,EAAKslF,eAAiDphF,IAAvBlE,EAAKslF,SAAS1/E,KAAqB5F,EAAKslF,SAAS1/E,KAAO,KAEpG,OACC,qBAAKzF,MAAO,CAACY,aAAcX,EAAME,QAAQS,aAAcO,gBAAiBlB,EAAME,QAAQO,WAAYM,OAAQ,kCAAmCK,MAAO,QAASJ,QAAS,EAAGmE,OAAQ,WAAY,SAC5L,cAACyC,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzBrC,KAaL,YAWV,GAEM88E,GAAc,SAAH,GAAqC,IAAhC9iF,EAAI,EAAJA,KAAMyvE,EAAmB,EAAnBA,oBAC1B,EAA8B/qE,mBAAS,IAAG,mBAAnCse,EAAO,KAAEC,EAAU,KAE3B,OACC,qBAAK1iB,MAAO,CAACoF,OAAQ,WAAae,QAAS,WAC1CmB,QAAQC,IAAI,UAAWkb,QACK1e,IAAxBmrE,GACHA,EAAoBzsD,EAEtB,EAAE,SACD,cAAC,mBAAe,CACfpjB,GAAG,sBACHsJ,OAAQ,IACRpD,MAAO,IACP1F,KAAMJ,EACJ+iF,KAAM,cAAC,cAAU,CAAChiF,KAAK,aACzB0hF,OACC,cAAC,oBAAgB,CAChBO,cAAc,SACdN,YAAa,SAACO,GACb,MAAO,SACR,EACAJ,UAAU,EACVjjF,GAAG,qBACHW,MAAO,CAACoF,OAAQ,WAChB6tC,KACC,cAAC,cAAU,CACV5xC,MAAO,UACPxB,KAAM,SAACA,EAAMwB,GAEZ,OADAiG,QAAQC,IAAI,SAAU1H,EAAMwB,GAE3B,IAEF,IAGFK,QACC,cAAC,eAAW,CACXL,MAAO,UACPrB,MAAO,CACNmB,gBAAiB,OAElBwhF,UAAU,EACVC,aAAc,SAACv8E,GACVoc,IAAYpc,EAAM8C,MAAM0vB,GAC3BnW,EAAWrc,EAAM8C,MAAM0vB,EAEzB,EACAn3B,QACC,cAAC,gBAAY,CACZmhF,cAAc,EACdC,UAAW,CACVvzB,OAAQ,YAETr1C,QAAS,SAACra,EAAMwB,GACf,OACC,qBAAKrB,MAAO,CAACY,aAAcX,EAAME,QAAQS,aAAcO,gBAAiBlB,EAAME,QAAQO,WAAYM,OAAQ,kCAAmCK,MAAO,QAASJ,QAAS,EAAGmE,OAAQ,WAAY,SAC5L,cAACyC,EAAA,EAAU,CAACC,QAAQ,QAAO,SACzBjI,EAAKg5B,KAaV,WAaV,EA6aekqD,GAzaG,SAACngF,GACjB,IAAQM,EAA0BN,EAA1BM,UAER,GAFkCN,EAAf8K,WACLG,cACyB1J,mBAAS,UAAQ,mBACxD,GADmB,KAAgB,KACDA,mBAAS,IAAE,mBAAtC6+E,EAAS,KAChB,GAD8B,KACU7+E,oBAAS,IAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAA0BjnB,mBAAS,CAAC,GAAE,mBAA/B8+E,EAAK,KAAEC,EAAQ,KACtB,EAAgC/+E,mBAAS,IAAG,mBAA3Bg/E,GAAF,KAAa,MAC5B,EAAgCh/E,oBAAS,GAAM,mBAAxCi/E,EAAQ,KAAEC,EAAW,KAC7B,EAAwBl/E,mBAAS,IAAG,mBAA7B1E,EAAI,KACX,GADoB,KACY0E,mBAAS,KAAG,mBAE3C,GAFc,KAAa,KAEmCA,mBAAS,KAAG,mBAAnEs/E,EAAuB,KAAEC,EAA0B,KAC1D,EAAgDv/E,mBAAS,IAAG,mBAAnC62B,GAAF,KAAqB,MAC5C,EAAgC72B,mBAAS,IAAG,mBAArCgoB,EAAQ,KACf,GAD4B,KACMhoB,mBAAS,KAAG,mBAC9C,GADgB,KAAc,KACYA,wBAASJ,IAAU,mBAE7D,GAFoB,KAAkB,KAEFI,mBAAS,KAAG,mBAAzCihF,EAAU,KAAEC,EAAa,KAE7Bv3E,EAAWC,cAEa,mBAAzBpK,OAAOC,SAASC,MAChBF,OAAOC,SAASC,KAGnBwE,qBAAU,WACT,GAAuC,IAAnCo7E,EAAwBz4E,OAC3BgwB,EAAoB7O,OACd,CACN,IAAM0I,EAAe1I,EAASjU,MAAK,SAAArY,GAAI,OAAIA,EAAK4F,OAASg+E,CAAuB,SAC3D1/E,IAAjB8wB,GAA+C,OAAjBA,GACjCmG,EAAoB,CAACnG,GAEvB,CACD,GAAG,CAAC4uD,IAmCJp7E,qBAAU,WACL8jB,EAASnhB,OAAS,IACrB1D,QAAQC,IAAI4kB,GAnCc,WAC3B,IAAMyxD,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QACtDuwB,EAASxqC,OAAOo+E,YAAYF,EAAgBpxE,WAE5C83C,EAA4B,qBAAX3gD,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAASgP,SAChG1C,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OAElGgqE,EAAaz5C,EAAiB,SACpC,GAAmB,OAAfy5C,QAAsC5/E,IAAf4/E,EAA0B,CACpDD,EAA2BC,GAExB,IAAMl4D,EAAU40B,GAAY,WAAYnwC,GAC3CpC,EAASw2C,EAAU74B,EACpB,CAEA,IAAMm4D,EAAc15C,EAAwB,gBAC5C,GAAoB,OAAhB05C,QAAwC7/E,IAAhB6/E,EAA2B,CACtDt8E,QAAQC,IAAI,wBAAyBq8E,GAErC,IAAMC,EAAYD,EAAYj3E,cAAc7G,WAAW,IAAK,KAE5D6W,YAAW,WACV,IAAMmnE,EAAY1yE,SAASsE,eAAemuE,QACxB9/E,IAAd+/E,GAAyC,OAAdA,GAC9BA,EAAUvmE,OAIZ,GAAG,IACJ,CAED,CAKEwmE,GAEF,GAAG,CAAC53D,IAEJ,IAAMm5D,GAAY,SAACC,EAAWC,GAC3Bj0E,MAAM,GAAD,OAAIrO,EAAS,8BAAsBqiF,EAAS,oBAAYC,GAAU,CACrEh0E,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAET,GADAxK,QAAQC,IAAI,SAAUuK,IACO,IAAzBA,EAAae,QACZf,EAAasJ,WAKX,CACN,IAAIuhD,EAAU7qD,EACd,IAAK,IAAIrF,KAAOkwD,EAAQ98D,KACvB,IAAK,IAAIyN,KAAUqvD,EAAQ98D,KAAK4M,GAAK5M,KACpC88D,EAAQ98D,KAAK4M,GAAK5M,KAAKyN,GAAQb,IAAM,IAAI1F,KAAK41D,EAAQ98D,KAAK4M,GAAK5M,KAAKyN,GAAQb,KAI/E,IAAMg5E,EAAcL,EAAWlkE,WAAU,SAAArhB,GAAI,OAAIA,EAAKuE,QAAUohF,CAAM,IACtEl+E,QAAQC,IAAI,UAAWk+E,QACH1hF,IAAhB0hF,GAA6C,OAAhBA,GAAwBA,GAAe,EACvEL,EAAWK,GAAe9oB,EAE1ByoB,EAAWj4E,KAAKwvD,GAGjBr1D,QAAQC,IAAI,SAAU69E,GACtBC,EAAcD,EACf,CACD,IACI5yE,OAAM,SAACC,GACN,GAEN,EAEArB,SAAShN,MAAQ,sBAoBjBiE,qBAAU,WACVi9E,GAAU,OAAQ,WAClBA,GAAU,OAAQ,WAClB,GAAG,IAEH,IAAMpB,GAAY,SAACC,GACjB5yE,MAAMrO,EAAY,iBAAmBihF,EAAU,CAC7C3yE,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,sBAAwB48E,GAG/BxyE,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLmxE,EAAMkB,GAAYryE,EAClBoxE,EAASD,GAETE,EAAYgB,EACd,IACC3xE,OAAM,SAACC,GAENnL,QAAQC,IAAI,UAAYkL,EAAMpG,WAChC,GACJ,EAyFM4nE,GAAY,CAChB,qBACA,sBACA,8BACA,8BACA,qBACA,oBACA,uBACA,qBACA,qBACA,kBACA,yBACA,2BAWF,GAAwBpjE,YAAY,CAClCC,SAFiB,IAGjBC,gBAAgB,EAChBC,SAAU,YAXM,WAChB,IAAK,IAAIvE,KAAOwnE,GACdiQ,GAAUjQ,GAAUxnE,GAExB,CAQI23E,EACF,IALW,GAALlzE,MAAW,GAAJC,KAQf,GAAIga,EACFC,GAAgB,QAGX,IAAKg4D,QASyBr/E,IAAjCk/E,EAA2B,qBACM,OAAjCA,EAA2B,0BACWl/E,IAAtCk/E,EAA2B,oBAAEpjF,KAC7B,CACAwjF,GAAY,GAEZ/7E,QAAQC,IAAI,iBAAkB07E,EAA2B,qBAQzD,IAFA,IAAIoB,GAAoB,GACpBC,GAAkB,GACbj5C,GAAI23C,EAAW33C,GAAI,EAAGA,KAAK,CAClC,IAAIk5C,GAAU,IAAIx9E,KAClBw9E,GAAQC,SAASn5C,IACjBk5C,GAAQE,SAAS,GAAI,GAAI,GAAI,KAE7B,IAAIC,GAAY,IAAI39E,KACpB29E,GAAUF,SAASn5C,IACnBq5C,GAAUD,SAAS,EAAG,EAAG,EAAG,GAE5B,IAAIE,GAAUJ,GAAQv9E,UAAY,IAC9B49E,GAAYF,GAAU19E,UAAY,IAUtC,IAAK,IAAIyF,MARTnF,QAAQC,IACN,UACAq9E,GACA,QACAD,GACA,SACA1B,EAA2B,qBAEbA,EAA2B,oBAAEpjF,KAAM,CACjD,IAAMuV,GAAO6tE,EAA2B,oBAAQ,KAAEx2E,IAClDnF,QAAQC,IAAI,SAAU6N,GAAKtO,UAAW69E,IACtCr9E,QAAQC,IAAIo9E,GAAUC,IAEpBD,GAAUC,GAAYD,GAAUvvE,GAAKtO,WACrC69E,GAAQ79E,WAAa,GAErBQ,QAAQC,IAAI,SAEdD,QAAQC,IAAI6N,GAAKtO,UAAY69E,IAE7B,KAUF,CAEAN,GAAkBl3E,KAAKk+B,GACzB,CAEA/jC,QAAQC,IAAI88E,IACZ/8E,QAAQC,IAAI+8E,GACd,CAIA5kF,OAAO05B,oBAAoB6pD,GAAOj4E,OAAS,GAGtCipE,GAAUx1E,KAAI,SAACoB,GACd,YAAoBkE,IAAhBk/E,EAAMpjF,IAAuC,OAAhBojF,EAAMpjF,SAIbkE,IAAtBk/E,EAAMpjF,GAAMilF,MAHP,KAQP,gCACGjlF,EAAI,KAAIojF,EAAMpjF,GAAMilF,QAG3B,IAlBN,IAsBMjlF,GACJ,sBAAK0qC,UAAU,UAAUvqC,MAAO,CAACuF,MAAO,IAAMkE,OAAQ,OAAQyP,cAAe,IAAK/T,UAAW,UAAW,UACzG,qBAAKnF,MAAO,CAACuF,MAAO,IAAKkE,OAAQ,QAAQ,SACvChK,EAAKuL,OAAS,EACd,+BACC,cAAC,GAAW,CAACvL,KAAMA,EAAMyvE,oBAAqBwU,MAE9C,YAGa3/E,IAAfqhF,GAA2C,OAAfA,GAAuBA,IAAe,IAA4B,IAAtBA,EAAWp6E,OAAe,KAClG,cAAC,IAAS,UACT,cAACjF,EAAA,EAAK,CAAC/F,MAAO,CAAC2I,OAAQ,IAAKpD,MAAO,IAAKtE,QAAS,uBAAyB,SACzE,cAAC,GAAgB,CAACxB,KAAM2lF,EAAW,GAAIz8E,OAAQ,IAAKpD,MAAO,aAW/D,OAHE,qBAAKvF,MAAO,CAAEwB,SAAU,KAAMiI,OAAQ,QAAS,SAAE5J,IAIrD,ECxuBMitE,GAAe,CACnBrjE,OAAQ,OACR1B,UAAW,QACXxC,MAAO,SAIH7E,GAAa,UAEbssE,GAAW,CACfrhE,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZ9X,gBARmB,WAWf27B,GAAYC,aAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,wBAyMF61D,GArMM,SAAC9iF,GACpB,IAAQM,EAAoCN,EAApCM,UAAWyK,EAAyB/K,EAAzB+K,SAAUD,EAAe9K,EAAf8K,WAE7B,EAAgCvJ,mBAAS,IAAG,mBAArC4pC,EAAQ,KAAE43C,EAAW,KAC5B,EAAgCxhF,mBAAS,IAAG,mBAArCyhF,EAAQ,KAAEC,EAAW,KAC5B,EAAwC1hF,oBAAS,GAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAAwCjnB,oBAAS,GAAM,mBAAhD2hF,EAAY,KAAEC,EAAe,KAK9BhmD,EAAUjD,KAEhB,EAAkC34B,mBAAS,IAAG,mBAAvC6hF,EAAS,KAAEC,EAAY,MAMX,IAAfv4E,IACF/J,OAAOC,SAASgP,SAAW,cA2BzBuY,IACFC,GAAgB,GAvBhB7Z,MADYrO,EAAY,qBACb,CACTsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBm0E,EAAan0E,EAAqB,QAEN,aAAxBA,EAAasJ,SACfzX,OAAOC,SAASgP,SAAW,SAGjC,GAAE,IAEHJ,OAAM,SAACC,GACNwzE,EAAa,sBAAuBxzE,EACtC,KAgEJ,IAAMK,EACJ,qBAAK9S,MAAO8sE,GAAa,SACvB,cAAC/mE,EAAA,EAAK,CAAC/F,MAAOgtE,GAAS,SACrB,uBACEkZ,SA5DS,SAACjnF,GAChB8mF,GAAgB,GAChB9mF,EAAE0L,iBAIF,IAAI9K,EAAO,CAAEkuC,SAAUA,EAAU63C,SAAUA,GAG3Cr0E,MAFcrO,EACQ,mBACX,CACTsO,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrBgH,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,GACpBi0E,GAAgB,IACgB,IAA5Bj0E,EAAsB,QACxBm0E,EAAan0E,EAAqB,SAElCm0E,EAAa,0BACbtiF,OAAOC,SAASgP,SAAW,SAE/B,GAAE,IAEHJ,OAAM,SAACC,GACNszE,GAAgB,GAChBE,EAAa,sBAAuBxzE,EACtC,GACJ,EA8BQzS,MAAO,CAAEqB,MAAO,QAASoI,OAAQ,uBAAwB,UAEzD,6BATI,iCASgB,WAEpB,8BACE,cAACjB,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBT,IAC1Bg7B,WAAS,EACThzB,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXK,aAAa,WACbE,YAAY,uBACZ3J,GAAG,aACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAtDS,SAAChK,GACpB0mF,EAAY1mF,EAAE+Y,OAAO7O,MACvB,MAsDc,WAEN,8BACE,cAACX,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBT,IAC1BgI,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACRja,GAAG,0BACHoJ,WAAW,EACXjI,KAAK,WACLsI,aAAa,mBACbE,YAAY,aACZS,OAAO,SACP3B,QAAQ,WACRmB,SA5ES,SAAChK,GACpB4mF,EAAY5mF,EAAE+Y,OAAO7O,MACvB,MA6EQ,qBAAKnJ,MAAO,CAAEwH,QAAS,OAAQO,UAAW,QAAS,SACjD,cAACoO,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,YACRtH,KAAK,SACLR,MAAO,CAAEiV,KAAM,IAAKvJ,YAAa,OACjCiP,WA9JHozB,EAAS/iC,OAAS,GAAK46E,EAAS56E,OAAS,IA8JH86E,EAAa,SAE/CA,EACC,cAACjrE,EAAA,EAAgB,CACfxZ,MAAM,YACNrB,MAAO,CAAEqB,MAAO,WAGlB,aAIN,qBAAKrB,MAAO,CAAE+H,UAAW,QAAS,SAAEi+E,WAMtC/4C,EAAct/B,EAAW,8BAAMmF,IAAkB,wBAEvD,OAAO,8BAAMm6B,GACf,EC2Mek5C,GAjbG,CAChB,CAAEhnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,MAC9C,CACEjnF,KAAM,KACNqH,MAAO,gBACP4/E,MAAO,IACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CACEjnF,KAAM,KACNqH,MAAO,uBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CACEjnF,KAAM,KACNqH,MAAO,sBACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,SACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,MACzC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,SAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CACEjnF,KAAM,KACNqH,MAAO,YACP4/E,MAAO,KACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,OAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CACEjnF,KAAM,KACNqH,MAAO,yBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,SACxC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,mBAAoB4/E,MAAO,OAChD,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,SACvC,CAAEjnF,KAAM,KAAMqH,MAAO,oBAAqB4/E,MAAO,OACjD,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,SACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,MAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CACEjnF,KAAM,KACNqH,MAAO,SACP4/E,MAAO,IACPC,WAAW,GAEb,CACElnF,KAAM,KACNqH,MAAO,0BACP4/E,MAAO,MAET,CACEjnF,KAAM,KACNqH,MAAO,oCACP4/E,MAAO,OAET,CACEjnF,KAAM,KACNqH,MAAO,2BACP4/E,MAAO,OAET,CACEjnF,KAAM,KACNqH,MAAO,yBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,MACxC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,MACpC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,mBAAoB4/E,MAAO,MAChD,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,OAC9C,CACEjnF,KAAM,KACNqH,MAAO,UACP4/E,MAAO,KACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,SACxC,CACEjnF,KAAM,KACNqH,MAAO,qBACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,OAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CACEjnF,KAAM,KACNqH,MAAO,8BACP4/E,MAAO,OAET,CACEjnF,KAAM,KACNqH,MAAO,kCACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CACEjnF,KAAM,KACNqH,MAAO,SACP4/E,MAAO,KACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,MAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,SACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,MACxC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,oBAAqB4/E,MAAO,OACjD,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CACEjnF,KAAM,KACNqH,MAAO,+CACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,SACpC,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CACEjnF,KAAM,KACNqH,MAAO,oCACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,MACzC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CACEjnF,KAAM,KACNqH,MAAO,iCACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CACEjnF,KAAM,KACNqH,MAAO,4BACP4/E,MAAO,MAET,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,MACrC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,SACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CACEjnF,KAAM,KACNqH,MAAO,QACP4/E,MAAO,KACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CACEjnF,KAAM,KACNqH,MAAO,wBACP4/E,MAAO,SAET,CACEjnF,KAAM,KACNqH,MAAO,yCACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,qBAAsB4/E,MAAO,MAClD,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,SAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,KAC1C,CACEjnF,KAAM,KACNqH,MAAO,mCACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,SAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,MACzC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CACEjnF,KAAM,KACNqH,MAAO,uBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CACEjnF,KAAM,KACNqH,MAAO,6BACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,mBAAoB4/E,MAAO,OAChD,CACEjnF,KAAM,KACNqH,MAAO,6CACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CACEjnF,KAAM,KACNqH,MAAO,2BACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,SAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,MACxC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,gBAAiB4/E,MAAO,OAC7C,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,iBAAkB4/E,MAAO,OAC9C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,MACpC,CAAEjnF,KAAM,KAAMqH,MAAO,mBAAoB4/E,MAAO,OAChD,CAAEjnF,KAAM,KAAMqH,MAAO,mBAAoB4/E,MAAO,OAChD,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,MAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,MACxC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CACEjnF,KAAM,KACNqH,MAAO,4BACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,KAC3C,CACEjnF,KAAM,KACNqH,MAAO,sBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,qBAAsB4/E,MAAO,KAClD,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,kBAAmB4/E,MAAO,OAC/C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,MACzC,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CACEjnF,KAAM,KACNqH,MAAO,yBACP4/E,MAAO,MAET,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,OACxC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,OAC3C,CACEjnF,KAAM,KACNqH,MAAO,wBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,OAC3C,CACEjnF,KAAM,KACNqH,MAAO,4BACP4/E,MAAO,SAET,CACEjnF,KAAM,KACNqH,MAAO,uBACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,OACzC,CACEjnF,KAAM,KACNqH,MAAO,2BACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CACEjnF,KAAM,KACNqH,MAAO,8BACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,OAAQ4/E,MAAO,OACpC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,MACxC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,cAAe4/E,MAAO,OAC3C,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,OAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,MACtC,CACEjnF,KAAM,KACNqH,MAAO,sBACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CACEjnF,KAAM,KACNqH,MAAO,4BACP4/E,MAAO,OAET,CACEjnF,KAAM,KACNqH,MAAO,8BACP4/E,MAAO,OAET,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CACEjnF,KAAM,KACNqH,MAAO,gBACP4/E,MAAO,IACPC,WAAW,GAEb,CAAElnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,aAAc4/E,MAAO,OAC1C,CACEjnF,KAAM,KACNqH,MAAO,gCACP4/E,MAAO,OAET,CACEjnF,KAAM,KACNqH,MAAO,mCACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,YAAa4/E,MAAO,MACzC,CACEjnF,KAAM,KACNqH,MAAO,yBACP4/E,MAAO,SAET,CACEjnF,KAAM,KACNqH,MAAO,oBACP4/E,MAAO,SAET,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,MACvC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,oBAAqB4/E,MAAO,OACjD,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,QAAS4/E,MAAO,OACrC,CAAEjnF,KAAM,KAAMqH,MAAO,UAAW4/E,MAAO,OACvC,CAAEjnF,KAAM,KAAMqH,MAAO,eAAgB4/E,MAAO,MAC5C,CAAEjnF,KAAM,KAAMqH,MAAO,SAAU4/E,MAAO,OACtC,CAAEjnF,KAAM,KAAMqH,MAAO,WAAY4/E,MAAO,Q,sHCxa3BE,GAJO,WACpB,OAAO,IACT,E,+DCWMxpD,GAAYC,aAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,wBAu2BF02D,GAh2BG,SAAC3jF,GACjB,IACEY,EAKEZ,EALFY,SACAgjF,EAIE5jF,EAJF4jF,qBACAC,EAGE7jF,EAHF6jF,wBACAvjF,EAEEN,EAFFM,UACAO,EACEb,EADFa,QAGIxD,EAAQgE,cACR2J,EAAQC,cACRkyB,EAAUjD,KAEZpsB,EAAS,GACPg2E,EAAgB,SACtB,EAA8BxiF,IAAMC,SAASqiF,EAAqB/gF,MAAK,mBAAhEijC,EAAO,KAAEu0C,EAAU,KAC1B,EAA4C/4E,IAAMC,SAChDqiF,EAAqB1xE,aACtB,mBAFM6xE,EAAc,KAAEC,EAAiB,KAGxC,EAA4C1iF,IAAMC,cACdJ,IAAlCyiF,EAAqBK,eAEmC9iF,IAApDyiF,EAAqBK,SAASC,mBAC6B,IAA3DN,EAAqBK,SAASC,kBAAkB97E,OAFhD,yCAIAw7E,EAAqBK,SAASC,mBACnC,mBAPMC,EAAc,KAAEC,EAAiB,KAQxC,EAAkD9iF,IAAMC,cACpBJ,IAAlCyiF,EAAqBK,eAEqC9iF,IAAtDyiF,EAAqBK,SAASI,qBAC+B,IAA7DT,EAAqBK,SAASI,oBAAoBj8E,OAFlD07E,EAIAF,EAAqBK,SAASI,qBACnC,mBAPMC,EAAiB,KAAEC,EAAoB,KAQ9C,EAAsDjjF,IAAMC,cACxBJ,IAAlCyiF,EAAqBK,SACjB,8CACyD9iF,IAAzDyiF,EAAqBK,SAASO,wBACkC,IAAhEZ,EAAqBK,SAASO,uBAAuBp8E,OACrD,8CACAw7E,EAAqBK,SAASO,wBACnC,mBAPMC,EAAmB,KAAEC,EAAsB,KAQlD,EAA4DpjF,IAAMC,cAC9BJ,IAAlCyiF,EAAqBK,eAE0C9iF,IAA3DyiF,EAAqBK,SAASU,0BACoC,IAAlEf,EAAqBK,SAASU,yBAAyBv8E,OAFvD07E,EAIAF,EAAqBK,SAASU,0BACnC,mBAPMC,EAAsB,KAAEC,EAAyB,KAQxD,EAA0CvjF,IAAMC,cACVJ,IAApCyiF,EAAqBkB,iBAEkC3jF,IAAnDyiF,EAAqBkB,WAAWC,gBAC0B,IAA1DnB,EAAqBkB,WAAWC,eAAe38E,OAF/C,GAIAw7E,EAAqBkB,WAAWC,gBACrC,mBAPMC,EAAa,KAAEC,EAAgB,KAQtC,EAA4C3jF,IAAMC,cACZJ,IAApCyiF,EAAqBkB,iBAEmC3jF,IAApDyiF,EAAqBkB,WAAWI,iBAC2B,IAA3DtB,EAAqBkB,WAAWI,gBAAgB98E,OAFhD,GAIAw7E,EAAqBkB,WAAWI,iBACrC,mBAPMC,EAAc,KAAEC,EAAiB,KAQxC,EAAwD9jF,IAAMC,cAC1BJ,IAAlCyiF,EAAqBK,eAEuC9iF,IAAxDyiF,EAAqBK,SAASoB,uBACiC,IAA/DzB,EAAqBK,SAASoB,sBAAsBj9E,OAFpD,GAIAw7E,EAAqBK,SAASoB,uBACnC,mBAPMC,GAAoB,KAAEC,GAAuB,KASpD,GAA4DjkF,IAAMC,cAC9BJ,IAAlCyiF,EAAqBK,eAEyC9iF,IAA1DyiF,EAAqBK,SAASuB,yBACmC,IAAjE5B,EAAqBK,SAASuB,wBAAwBp9E,OAFtD,GAIAw7E,EAAqBK,SAASuB,yBACnC,qBAPMC,GAAsB,MAAEC,GAAyB,MAQxD,GAA4CpkF,IAAMC,cACZJ,IAApCyiF,EAAqBkB,iBAE6B3jF,IAA9CyiF,EAAqBkB,WAAWziE,WACqB,IAArDuhE,EAAqBkB,WAAWziE,UAAUja,OAF1C,GAIAw7E,EAAqBkB,WAAWziE,WACrC,qBAPMsjE,GAAc,MAAEC,GAAiB,MAQxC,GAAoDtkF,IAAMC,cACpBJ,IAApCyiF,EAAqBkB,iBAEiC3jF,IAAlDyiF,EAAqBkB,WAAWxiE,eACyB,IAAzDshE,EAAqBkB,WAAWxiE,cAAcla,OAF9C,GAIAw7E,EAAqBkB,WAAWxiE,eACrC,qBAPMujE,GAAkB,MAAEC,GAAqB,MAQhD,GAAsDxkF,IAAMC,cACtBJ,IAApCyiF,EAAqBkB,iBAEwC3jF,IAAzDyiF,EAAqBkB,WAAWiB,sBACgC,IAAhEnC,EAAqBkB,WAAWiB,qBAAqB39E,OAFrD,GAIAw7E,EAAqBkB,WAAWiB,sBACrC,qBAPMC,GAAmB,MAAEC,GAAsB,MAQlD,GAAsC3kF,IAAMC,cACNJ,IAApCyiF,EAAqBkB,iBAEgC3jF,IAAjDyiF,EAAqBkB,WAAWoB,cACwB,IAAxDtC,EAAqBkB,WAAWoB,aAAa99E,OAF7C,GAIAw7E,EAAqBkB,WAAWoB,cACtC,qBAPOC,GAAW,MAAEC,GAAc,MASlC,GAAwB9kF,IAAMC,SAAS,IAAG,qBAAnCgnC,GAAI,MAAEsiC,GAAO,MACpB,GAAoCvpE,IAAMC,SACxCqiF,EAAqBl4D,OACtB,qBAFMo/C,GAAU,MAAEC,GAAa,MAGhC,GAAgCzpE,IAAMC,UAAS,GAAM,qBAA9CirB,GAAQ,MAAE65D,GAAW,MAE5B,GAAa,KAAT99C,GAAa,CACf,IAAM6tC,GAAM5nE,SAASsE,eAAe,QAChCujE,GAAS7nE,SAAS6C,cAAc,UACpCglE,GAAO1zE,MAAQ,IACf0zE,GAAOtwE,OAAS,IAChB,IAAIuwE,GAAMD,GAAOE,WAAW,MAE5BH,GAAII,OAAS,WAKXF,GAAIG,UACFL,GACA,EACA,EACAA,GAAIzzE,MACJyzE,GAAIrwE,OACJ,EACA,EACAswE,GAAO1zE,MACP0zE,GAAOtwE,QAGT,IAAM2wE,EAAYL,GAAOM,YACrBD,IAAc5L,KAChBC,GAAc2L,GACdkN,EAAqBl4D,MAAQgrD,EAC7BmN,EAAwBD,GAE5B,CACF,CAEA,IAqDM0C,GACJ,cAACvzE,GAAA,EAAO,CAACvR,MAAM,wBAAwBoV,UAAU,SAAQ,SACvD,cAACrD,EAAA,EAAM,CACLnW,MAAO,CAAEuF,MAAO,IAAKoD,OAAQ,GAAIsM,KAAM,GACvCnN,QAAQ,YACRzG,MAAM,UACNsZ,cACe5W,IAAbP,GACa,OAAbA,GACmB,SAAnBA,EAASkU,MAEXvR,QAAS,kBAhEO,SACpBV,EACAqP,EACA6zB,EACAra,EACAu4D,EACAa,GAGA,IAAM7nF,EAAO,CACX4F,KAAMA,EACNqP,YAAaA,EACbkvB,OAAQ2E,EACRra,MAAOA,EACPu4D,SAAUA,EACVa,WAAYA,GAGR7zE,EAAM3Q,EAAS,uBAAmBsjF,EAAqBnnF,IAC7DkS,MAAMsC,EAAK,CACTsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBlE,EAAM6E,MAAM,wBAAyBX,EAAasJ,QAElDxN,EAAMiF,QAAQ,2BAElB,GAAE,IAEHL,OAAM,SAACC,GACN7E,EAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,CAuBQ88E,CACEzgD,EACAi+C,EACAH,EAAqBnnF,GACrBmnF,EAAqBl4D,MACrB,CACEw4D,kBAAmBC,EACnBE,oBAAqBC,EACrBE,uBAAwBC,EACxBE,yBAA0BC,EAC1BS,sBAAuBC,GACvBE,wBAAyBC,IAE3B,CACEV,eAAgBC,EAChBE,gBAAiBC,EACjB9iE,UAAWsjE,GACXrjE,cAAeujE,GACfE,qBAAsBC,GACtBE,aAAcC,IAEjB,EACF,SAED,cAAC,KAAQ,QAKX7O,GAAY/uC,GAAKngC,OAAS,EAAImgC,GAAOuiC,GACzCwM,QACgBn2E,IAAdm2E,IAAgD,IAArBA,GAAUlvE,OA9PvC,q7qBAgQMkvE,GACN,IAAME,GACJ,qBACE1yE,IAAKwyE,GACLzyE,IAAI,qCACJpI,GAAG,OACHW,MAAO,CACLwB,SAAU,IACVqD,UAAW,IACX+C,SAAU,IACVtG,UAAW,IACXg5E,UAAW,aAIjB,OACE,gCACE,sBACEt6E,MAAO,CACLqB,MAAO,QACP4T,KAAM,IACNzN,QAAS,OACT2N,cAAe,OACf,UAEF,cAACQ,GAAA,EAAO,CACNvR,MAAM,oDACNoV,UAAU,SAAQ,SAElB,sBACExZ,MAAO,CACLiV,KAAM,IACNxL,OAAQ,qBACRzI,YACgB+C,IAAdm2E,IAA2BA,GAAUlvE,OAAS,EAC1C,KACA,oBACN5F,OAAQ,UACRjE,qBACgB4C,IAAdm2E,IAA2BA,GAAUlvE,OAAS,EAC1C,KACA/K,EAAME,QAAQO,WACpBc,SAAU,IACVqD,UAAW,KAEbsB,QAAS,WACPuK,EAAO6M,OACT,EAAE,UAEF,uBACEH,QAAM,EACN5c,KAAK,OACLgL,IAAK,SAACA,GAAG,OAAMkF,EAASlF,CAAG,EAC3BvC,SA1GY,SAAC5C,GACVA,EAAM2R,OAAO7O,MAA1B,IACM2vE,EAAazyE,EAAM2R,OAAO7M,MAAM,GAChC4tE,EAAajlE,IAAIC,gBAAgB+kE,GACvCrL,GAAQsL,EACV,IAuGWqB,QAGL,sBAAKp6E,MAAO,CAAEiV,KAAM,IAAK5T,MAAO,SAAU,UACxC,qBAAKrB,MAAO,CAAE+H,UAAW,KAAO,OAEhC,cAACS,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXO,YAAY,OACZxI,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRqB,MAAOu/B,EACPz/B,SAAU,SAAChK,GACT,IAAMgT,EAAU,CAAC,IAAK,IAAK,KAC3B,IAAK,IAAIxF,KAAOwF,EACd,GAAIhT,EAAE+Y,OAAO7O,MAAMgD,SAAS8F,EAAQxF,IAElC,YADAmB,EAAM6E,MAAM,aAAeR,EAAQxF,GAAO,YAK1CxN,EAAE+Y,OAAO7O,MAAM6B,OAAS,IAC1B4C,EAAM6E,MAAM,0BAIdwqE,EAAWh+E,EAAE+Y,OAAO7O,MACtB,EACA9H,MAAM,UACNqH,WAAY,CACV1I,MAAO,CACLqB,MAAO,QACPsH,OAAQ,OACRlH,SAAU,OAEZs+B,QAAS,CACP+V,eAAgB/V,EAAQ+V,mBAI9B,qBAAK91C,MAAO,CAAE+H,UAAW,UAAY,cAErC,sBAAK/H,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,qCACZG,MAAOw9E,EACP19E,SAAU,SAAChK,GACT2nF,EAAkB3nF,EAAE+Y,OAAO7O,MAC7B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,YAIb,qBAAKrB,MAAO,CAAEyJ,OAAQ,OAAQ2/E,UAAW,UAAW,SACjDF,cAKT,sBAAKlpF,MAAO,CAAEmF,UAAW,UAAW,UAClC,cAACwT,GAAA,EAAU,CACT3Y,MAAO,CAAEqB,MAAO,QAAS0G,UAAW,IACpC5B,QAAS,WACP8iF,IAAa75D,GACf,EAAE,SAEDA,GAAW,cAAC,KAAc,IAAM,cAAC,KAAc,MAEjDA,GACC,eAAC1qB,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAAEmF,UAAW,QAAS,UACvD,cAACT,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC,EAAE,SAC3B,iCACE,cAAC6H,EAAA,EAAU,uCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,8CACZG,MAAO++E,GACPj/E,SAAU,SAAChK,GACTkpF,GAAwBlpF,EAAE+Y,OAAO7O,MACnC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAMjB,cAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC,EAAE,SAC3B,iCACE,cAAC6H,EAAA,EAAU,0CACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,uDACZG,MAAOk/E,GACPp/E,SAAU,SAAChK,GACTqpF,GAA0BrpF,EAAE+Y,OAAO7O,MACrC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAMtBoC,EAAU,KACX,eAACiB,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,IAAK,UAC1C,cAACF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,UAAW,4BACvD,eAACT,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAC+H,UAAW,IAAM,UAClC,cAACrD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,wBACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLm7B,WAAW,EACXiB,KAAM,EACNjiB,cACwC5W,IAAtCyiF,EAAqB6C,cACiB,OAAtC7C,EAAqB6C,cACrB7C,EAAqB6C,aAAar+E,OAAS,EAE7C3L,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,kDACZG,MAAOo/E,GACPt/E,SAAU,SAAChK,GACTupF,GAAkBvpF,EAAE+Y,OAAO7O,MAC7B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAMjB,cAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,uCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLm7B,WAAW,EACXiB,KAAM,EACNjiB,cACwC5W,IAAtCyiF,EAAqB6C,cACiB,OAAtC7C,EAAqB6C,cACrB7C,EAAqB6C,aAAar+E,OAAS,EAE7C3L,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,gFACZG,MAAOs/E,GACPx/E,SAAU,SAAChK,GACTypF,GAAsBzpF,EAAE+Y,OAAO7O,MACjC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,oBAOxB,eAACqD,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAC+H,UAAW,IAAM,UAClC,cAACrD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,gCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACR6zB,WAAW,EACXiB,KAAM,EACN5zB,YAAY,8DACZG,MAAOy/E,GACP3/E,SAAU,SAAChK,GACT4pF,GAAuB5pF,EAAE+Y,OAAO7O,MAClC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAMjB,cAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,wBACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACR6zB,WAAW,EACXiB,KAAM,EACN5zB,YAAY,kDACZG,MAAO4/E,GACP9/E,SAAU,SAAChK,GACT+pF,GAAe/pF,EAAE+Y,OAAO7O,MAC1B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,uBAUzB,eAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,GAAIhE,MAAO,CAAC+H,UAAW,IAAK,UACpC,cAACF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,UAAW,6BAC7D,eAACT,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAC+H,UAAW,IAAM,UAClC,cAACrD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,mCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLm7B,WAAW,EACXiB,KAAM,EACNjiB,cACwC5W,IAAtCyiF,EAAqB6C,cACiB,OAAtC7C,EAAqB6C,cACrB7C,EAAqB6C,aAAar+E,OAAS,EAE7C3L,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,wCACZG,MAAOy+E,EACP3+E,SAAU,SAAChK,GACT4oF,EAAiB5oF,EAAE+Y,OAAO7O,MAC5B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAMjB,cAACqD,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,qCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACR6zB,WAAW,EACXiB,KAAM,EACN5zB,YAAY,8BACZG,MAAO4+E,EACP9+E,SAAU,SAAChK,GACT+oF,EAAkB/oF,EAAE+Y,OAAO7O,MAC7B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,oBAOvBoC,EACA,cAACoE,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAACmF,UAAW,QAAU9D,MAAM,gBAAe,uEAG7E,QAEFoC,EAAU,KACH,cAACiB,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,+BACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,qCACZG,MAAO49E,EACP99E,SAAU,SAAChK,GACT+nF,EAAkB/nF,EAAE+Y,OAAO7O,MAC7B,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAOlBoC,EAAU,KACT,cAACiB,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,kCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,qCACZG,MAAO+9E,EACPj+E,SAAU,SAAChK,GACTkoF,EAAqBloF,EAAE+Y,OAAO7O,MAChC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAOlBoC,EAAU,KACT,cAACiB,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,oCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,qCACZG,MAAOk+E,EACPp+E,SAAU,SAAChK,GACTqoF,EAAuBroF,EAAE+Y,OAAO7O,MAClC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAOlBoC,EAAU,KACT,cAACiB,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAC,EAAE,SAC1B,iCACE,cAAC6H,EAAA,EAAU,uCACX,cAACW,EAAA,EAAS,CACR8Q,UAAQ,EACRtZ,MAAO,CACLiV,KAAM,IACNlN,UAAW,MACX2D,YAAa,OACbvK,gBAAiBlB,EAAME,QAAQO,YAEjC+H,WAAW,EACXjI,KAAK,OACLnB,GAAG,4BACHoK,OAAO,SACP3B,QAAQ,WACRkB,YAAY,qCACZG,MAAOq+E,EACPv+E,SAAU,SAAChK,GACTwoF,EAA0BxoF,EAAE+Y,OAAO7O,MACrC,EACAT,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACLqB,MAAO,iBAQnB,qBAAKrB,MAAO,CAAEyJ,OAAQ,OAAQ2/E,UAAW,SAAUrhF,UAAW,GAAIuJ,aAAc,IAAM,SACnF43E,QAYH,UAIZ,ECvyBMpsD,GAAYC,aAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,wBAMXtL,GAAY,CAChB/H,WAAY,CACVxc,MAAO,CACL6E,UAAW2f,IACXjf,MAAO,MAGXmf,mBAAoB,kBAAM,IAAI,GA0gKjB4kE,GA7+JD,SAAC1mF,GACb,IAAQM,EAAoCN,EAApCM,UAAWM,EAAyBZ,EAAzBY,SAAUilE,EAAe7lE,EAAf6lE,WAEzB/3D,EAAS,GAEPzQ,EAAQgE,cAEV6J,GADYgvB,KACD/uB,eAEf,EAAwC7J,IAAMC,UAAS,GAAK,mBAArDgnB,EAAY,KAAEC,EAAe,KACpC,EAAoClnB,IAAMC,UAAS,GAAK,mBAAjDolF,EAAU,KAAEC,EAAa,KAChC,EAAkCtlF,IAAMC,SAAS,CAAC,GAAE,mBAA7CslF,EAAS,KAAEC,EAAY,KAC9B,EAA8BxlF,IAAMC,SAAS,IAAG,mBAAzCukC,EAAO,KAAEu0C,EAAU,KAC1B,EAAkC/4E,IAAMC,UAAS,GAAM,mBAAhDg2B,EAAS,KAAEC,EAAY,KAE9B,EAAoDl2B,IAAMC,UAAS,GAAM,mBAAlEwlF,EAAkB,KAAEC,EAAqB,KAChD,EAA8C1lF,IAAMC,SAAS,IAAG,mBAAzD0lF,EAAe,KAAEC,GAAkB,KAC1C,GAA8B5lF,IAAMC,UAAS,GAAM,qBAA5C4lF,GAAO,MAAEC,GAAU,MAE1B,GAAwD9lF,IAAMC,SAAS,CAAC,GAAE,qBAAnEqiF,GAAoB,MAAEC,GAAuB,MACpD,GACEviF,IAAMC,UAAS,GAAM,qBADhB8lF,GAAqB,MAAEC,GAAwB,MAGtD,GAAwDhmF,IAAMC,SAAS,CAAC,GAAE,qBAA7CgmF,IAAF,MAAyB,OACpD,GAAkCjmF,IAAMC,SAAS,IAAG,qBAA7C6hF,GAAS,MAAEC,GAAY,MAC9B,GAA4B/hF,IAAMC,SAAS,GAAE,qBAAtCimF,GAAM,MAAEC,GAAS,MACxB,GAA0BnmF,IAAMC,SAAS,IAAG,qBAArCmmF,GAAK,MAAEC,GAAQ,MACtB,GAA0CrmF,IAAMC,SAAS,IAAG,qBAC5D,IADoB,MAAkB,MACQD,IAAMC,SAAS,KAAG,qBAAzDqmF,GAAe,MAAEC,GAAkB,MAC1C,GAAwCvmF,IAAMC,SAAS,CAAC,GAAE,qBAAnDumF,GAAY,MAAE7oC,GAAe,MACpC,GAA0D39C,IAAMC,SAAS,IAAG,qBAArEwmF,GAAqB,MAAEC,GAAwB,MAEtD,GAAwC1mF,IAAMC,SAAS,IAAG,qBAAnD4yC,GAAY,MAAEgP,GAAe,MACpC,GAA4C7hD,IAAMC,SAAS,IAAG,qBAAvD+b,GAAc,MAAE2qE,GAAiB,MACxC,GAAkC3mF,IAAMC,SAAS,IAAG,qBAA7C2mF,GAAS,MAAEC,GAAY,MAC9B,GAA0B7mF,IAAMC,SAAS,IAAG,qBAArCgH,GAAK,MAAEq3C,GAAQ,MACtB,GAAkDt+C,IAAMC,SAAS,WAAU,qBAApE6mF,GAAiB,MAAEC,GAAoB,MAC9C,GAA4C/mF,IAAMC,SAAS,IAAG,qBAAvD+mF,GAAc,MAAEC,GAAiB,MACxC,GAAwCjnF,IAAMC,SAAS,CAAC,GAAE,qBAAnDinF,GAAY,MAAEC,GAAe,MACpC,GAAsCnnF,IAAMC,SAAS,IAAG,qBAAjDmnF,GAAW,MAAEC,GAAc,MAClC,GAAsCrnF,IAAMC,SAAS,IAAG,qBAAjDqnF,GAAW,MAAEC,GAAc,MAClC,GACEvnF,IAAMC,UAAS,GAAM,qBADhBunF,GAAqB,MAAEC,GAAwB,MAEtD,GAA4DznF,IAAMC,SAChE,CAAC,GACF,qBAFMmkB,GAAsB,MAAEsjE,GAAyB,MAGxD,GACE1nF,IAAMC,UAAS,GAAM,qBADhB0nF,GAA+B,MAAEC,GAAkC,MAE1E,GAAwD5nF,IAAMC,SAAS,IAAG,qBAAnE4nF,GAAoB,MAAEC,GAAuB,MACpD,GAAwC9nF,IAAMC,UAAS,GAAM,qBAAtD8nF,GAAY,MAAEC,GAAe,MACpC,GAAoChoF,IAAMC,UAAS,GAAM,qBAAlDqM,GAAU,MAAEC,GAAa,MAEhC,GAAgCvM,IAAMC,SAAS,IAAG,qBAA3CgoF,GAAQ,MAAEC,GAAW,MAC5B,GAAgCloF,IAAMC,SAAS,IAAG,qBAA3CkoF,GAAQ,MAAEC,GAAW,MAC5B,GAAkCpoF,IAAMC,SAAS,IAAG,qBAA7CooF,GAAS,MAAEC,GAAY,MAC9B,GAAwCroF,oBAAS,GAAM,qBAAhDsoF,GAAY,MAAEC,GAAe,MAEpC,GAAgCxoF,IAAMC,SAAS,IAAG,qBAA3CwoF,GAAQ,MAAEC,GAAW,MAC5B,GAAsC1oF,IAAMC,SAAS,IAAG,qBAAjD0oF,GAAW,MAAEC,GAAc,MAClC,GAAgC5oF,IAAMC,SAAS,QAAO,qBAA/C4oF,GAAQ,MAAEC,GAAW,MAC5B,GAAsC9oF,IAAMC,SAAS,iBAAgB,qBAA9D8oF,GAAW,MAAEC,GAAc,MAClC,GAAwChpF,IAAMC,SAAS,OAAM,qBAC7D,IADmB,MAAiB,MACAD,IAAMC,SAAS,cAAY,qBAC/D,IADiB,MAAe,MACED,IAAMC,SAAS,KAAG,qBAA7CgpF,GAAS,MAAEC,GAAY,MAC9B,GAAwClpF,IAAMC,SAAS,IAAG,qBAC1D,IADmB,MAAiB,MACFD,IAAMC,SAAS,KAAG,qBAA7CkpF,GAAS,MAAEC,GAAY,MAC9B,GAAgCppF,IAAMC,SAAS,IAAG,qBAA3CopF,GAAQ,MAAEC,GAAW,MAE5B,GAAsCtpF,IAAMC,SAAS,IAAG,qBAAjDspF,GAAW,MAAEC,GAAc,MAElCrlF,qBAAU,WACJmI,IAEFC,IAAc,EAElB,GAAG,CAACD,KAEJ,IAAM/M,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAElB,GAAoCK,IAAMC,UAAS,GAAM,qBAAlDwpF,GAAU,MAAEC,GAAa,MAChC,GAA0C1pF,IAAMC,UAAS,GAAM,qBAAxD0pF,GAAa,MAAEC,GAAgB,MACtC,GAAoC5pF,IAAMC,UAAS,GAAM,qBAAlD4pF,GAAU,MAAEC,GAAa,MAC1BC,GAAmB,CAAC,MAAO,KAAM,OAAO,MAAM,QA+H9CrgF,GAAQC,cAmKRqgF,GAAkB,SAACtlC,EAAQulC,EAAcC,GAC7C3D,GAAmB,IAEnB,IAAM5qF,EAAO,CACX+oD,OAAQA,EACRulC,aAAcA,EACdE,QAASD,GAIX78E,MADYrO,EAAY,sBACb,CACTiY,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAQL,OAPAq4E,IAAW,GACa,MAApBr4E,EAASC,OACXtK,QAAQC,IAAI,uBAEZD,QAAQC,IAAI,oBAGPoK,EAASE,MAGlB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,SAAUuK,IAEK,IAAzBA,EAAae,cACW9O,IAAxB+N,EAAasJ,QAEbqvE,GAAmB34E,EAAasJ,QAChCxN,GAAM6E,MAAM,0BAA4BX,EAAasJ,SAC3CtJ,EAAae,SAGvBy7E,KACIF,GACFxgF,GAAMiF,QAAQ,+BACd43E,GAAmB,0CAEnB78E,GAAMiF,QAAQ,6CACd43E,GACE,kGAIJjE,GAAqB7+B,YAAc6+B,GAAqB7+B,WACxD8+B,GAAwBD,IACxBsD,GAAmB,IAEnByE,GAAa/qF,EAASmU,WAAWtY,KAjBjCuO,GAAM6E,MAAM,yBAmBhB,IACCD,OAAM,SAACC,GACNu3E,IAAW,GACXp8E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,EAmLMmiF,GAAiB,SAAC7lD,GAGtB,GAFArhC,QAAQC,IAAI,cAES,IAAjBohC,EAAM39B,OAAV,CAOA,IAAM6I,EAAG,UAAM3Q,EAAS,wBAAgBylC,EAAK,UAC7Cp3B,MAAMsC,EAAK,CACTrC,OAAQ,MACRE,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAAkCoK,EAASC,QAGlDD,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,cAAeuK,IACE,IAAzBA,EAAae,QACfjF,GAAM6E,MAAM,0DAEZ+6E,GAAY17E,EAEhB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAI,4BAA6BkL,GACzC7E,GAAM6E,MACJ,uEAEJ,GA9BF,MAJE7E,GAAM6E,MACJ,6GAkCN,EAEM87E,GAAe,SAAC5lD,GACC,IAAjBA,EAAM39B,OAUVuG,MAFcrO,EACQ,gBAAkBylC,EAC7B,CACTn3B,OAAQ,MACRE,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAIL,OAHIA,EAASC,OAGND,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL,IAAgC,IAA5BA,EAAsB,QACxBlE,GAAM6E,MAAM,4BAA6BX,EAAa28E,YACjD,MAE4B1qF,IAA/B+N,EAAa48E,eACkB,OAA/B58E,EAAa48E,gBAEb58E,EAAa48E,cAAgB,CAAC,GAI9BjrF,SAC8BM,IAA9B+N,EAAa68E,eAC0B,IAAvC78E,EAAa68E,aAAaC,UAE1BJ,GAAe7lD,GAGjB89C,GAAwB30E,GAqBxBq4E,GApBY,CACV5pE,OAAQ,CACNK,SAAU,GACViuE,SAAU,GACVC,KAAM,IAERC,SAAU,CACRnuE,SAAU,GACViuE,SAAU,GACVC,KAAM,KAYZ,CACF,IACCt8E,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,GACnC7E,GAAM6E,MAAM,qCACd,IApEA7E,GAAM6E,MACJ,iGAoEN,EAgUMu8E,GAAmB,SAAC7zB,EAAUhwB,GAClC,IAAItrC,EAAO,CACTs7D,SAAUA,EACVn3B,OAAQwiD,GAAqBnnF,GAC7BgnB,YAAa,eAIStiB,IAAtBinF,IACsB,OAAtBA,IACAA,GAAkBhgF,OAAS,GACL,YAAtBggF,KAEAnrF,EAAKykE,UAAY0mB,IAGnBz5E,MAAMrO,EAAY,uBAAwB,CACxCsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,UACbyB,KAAMF,KAAKS,UAAU7T,KAEpBb,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,IAEwB,IAAzBA,EAAae,QA5DE,SAACo8E,EAAS9jD,GAEjC55B,MAAM,GAAD,OAAIrO,EAAS,yBAAiB+rF,EAAO,WAAW,CACnDz9E,OAAQ,OACRE,YAAa,UACbyB,KAAMg4B,IAELnsC,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QAAsC,MAApBD,EAASC,QACtCtK,QAAQC,IAAI,oCACZqG,GAAM6E,MAAM,4CAIPd,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAEL,IAEDU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CAsCQ6iF,CAAiBp9E,EAAazS,GAAI8rC,GAElCv9B,GAAM6E,MAAM,yBAA0B0oD,EAE1C,IACC3oD,OAAM,SAACC,GACN7E,GAAM6E,MAAM,yBAA0B0oD,GACtC7zD,QAAQC,IAAIkL,EAAMpG,WACpB,GACJ,EAEMugD,GAAW,WACfr7C,MAAMrO,EAAY,gBAAiB,CACjCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,QACsB/N,IAAvB+N,EAAa3G,OAA8C,OAAvB2G,EAAa3G,MACnDq3C,GAAS1wC,EAAa3G,OAEtBq3C,GAAS,IAGXl7C,QAAQC,IAAI,eAAgBuK,EAAasrC,iBAEXr5C,IAA5B+N,EAAasrC,YACe,OAA5BtrC,EAAasrC,YAEb+tC,GAAkBr5E,EAAasrC,WAEnC,IACC5qC,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA4IM8iF,GAAe,WACnB59E,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,GACLi5E,GAAaj5E,EACf,IACCU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEMyY,GAAuB,WAC3BvT,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,GACDA,EAAae,QAGfg4E,GAAkB/4E,EAAajS,MAE/B+N,GAAM6E,MAAM,iCAEhB,IACCD,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEM2gD,GAAkB,WACtBz7C,MAAMrO,EAAY,0BAA2B,CAC3CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAKb,OAAOD,EAASE,OAJdvK,QAAQC,IAAI,8BAKhB,IACCvI,MAAK,SAAC8S,GACLi0C,GAAgBj0C,EAClB,IACCU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EAEMiiF,GAAU,WA0BhB,EAEMc,GAAW,WACf79E,MAAMrO,EAAY,mBAAoB,CACpCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,GAAwB,MAApBA,EAASC,OAMb,OAAOD,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLy4E,GAASz4E,EACX,IACCU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,EA0BMgjF,GAAQ,CACZ,EAAG,eACH,EAAG,QACH,EAAG,WACH,EAAG,QACH,EAAG,YACH,EAAG,eACH,EAAG,WAECC,GAAY,SAACjpF,EAAOq5C,GACxB,IAAM7E,EAAW7jB,SAAS0oB,GAE1B2qC,GAAUxvC,GACO,IAAbA,GACFzpC,SAAShN,MAAQ,0BACjBgrF,MACsB,IAAbv0C,GACTzpC,SAAShN,MAAQ,uCACjB0gB,MACsB,IAAb+1B,GACTzpC,SAAShN,MAAQ,0BACjBwoD,MACsB,IAAb/R,GACTzpC,SAAShN,MAAQ,8BACjB+qF,MACsB,IAAbt0C,GACTzpC,SAAShN,MAAQ,iCACjB4oD,MACsB,IAAbnS,GACTzpC,SAAShN,MAAQ,yBACjBkqF,MAEAl9E,SAAShN,MAAQ,kBAGF,IAAby2C,GACFvzC,QAAQC,IAAI,mCAGduG,EAAS,cAAD,OAAeuhF,GAAMx0C,KAC7B6uC,EAAa,CAAC,EAChB,EAEA,GAAIv+D,IACFC,GAAgB,GAChBha,SAAShN,MAAQ,kBACZX,GArEL8N,MAAMrO,EAAY,sBAAuB,CACvCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,4CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL+vC,GAAgB/vC,EAClB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,IAkDA28E,MAMe,IAAf3mB,QAC2B1kE,IAA3BJ,OAAOC,SAAS+V,QACW,OAA3BhW,OAAOC,SAAS+V,QAChB,CACA,IAAMikE,GAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDkkE,GADSn+E,OAAOo+E,YAAYF,GAAgBpxE,WACrB,IAC7B,GAAiB,OAAbqxE,SAAkC95E,IAAb85E,GACvB,IAAK,IAAIpxE,MAAO/M,OAAOD,KAAK4vF,IAAQ,CAClC,IAAMlmF,GAAQkmF,GAAM5iF,IAEpB,GADAnF,QAAQC,IAAIkF,GAAKtD,IACbA,KAAU00E,GAAU,CACtByR,GAAU,EAAI7iF,IACd,KACF,CACF,CAEJ,MAI4B1I,IAA5ByiF,GAAqBnnF,SACR0E,IAAbP,QACwBO,IAAxBP,EAASmU,YACT4xE,IAEAC,GAAc,GACd+E,GAAa/qF,EAASmU,WAAWtY,KAGnC,IAAM4F,GAAa,CACjBzD,SAAU,KACViI,OAAQ,OACRpI,MAAO,QACPF,gBAAiBlB,EAAME,QAAQM,aAC/B6Q,aAAc,GACdrQ,QAAS,IAGLsuF,GAAkB,SAACzlD,EAAO3gC,GAC9BsgF,EAAU3/C,GAAS3gC,CACrB,EAEMqmF,GAAU,SAACpR,EAAQt0C,EAAO3gC,GAC9B,IAAMtJ,EAAO,CAAE4vF,QAASrR,GACxBv+E,EAAKiqC,GAAS3gC,EAEdoI,MAAMrO,EAAY,2BAA4B,CAC5CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANwB,MAApBA,EAASC,OACXtK,QAAQC,IAAI,6CAEZ6nF,KAGKz9E,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,cAAmC9O,IAAxB+N,EAAasJ,QAGxCxN,GAAMiF,QAAQ,sBAAwBi3B,EAAQ,OAAS3gC,GAEzC,YAAV2gC,GACF6hD,IAAyB,IAL3B/9E,GAAM6E,MAAM,wBAA0BX,EAAasJ,OAQvD,IACC5I,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,GACJ,EAqCMi9E,GAA0B7D,GAC9B,eAACxvE,GAAA,EAAM,CACLC,KAAMuvE,GACNtvE,QAAS,WACPuvE,IAAmC,EACrC,EACAtvE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,uBAAMzc,MAAO,CAAEqB,MAAO,SAAU,qCACLinB,GAAuBpW,IAAIzM,KAAI,KACvD6iB,GAAuB9hB,MAAK,SAGjC,cAACkW,GAAA,EAAa,UACX4L,GAAuBnC,OAAO1nB,KAAI,SAACoB,EAAMmF,GAExC,OACE,gCACE,cAAC6C,EAAA,EAAU,CAAC7H,MAAO,CAAEsR,aAAc,EAAGvJ,UAAW,IAAK,SACnDlI,EAAK4M,MAER,cAACjE,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BqH,UAAW,GAEbW,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAanJ,EAAK4M,IAClBjM,KAAK,OACLnB,GAAE,yBAAoB2F,GACtByE,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GACT8sF,GAAqB/mF,GAAOmE,MAAQlK,EAAE+Y,OAAO7O,MAC7C6iF,GAAwBD,GAC1B,MA1BM/mF,EA8Bd,MAEF,eAAC8X,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAAM2lF,IAAmC,EAAM,EACxDzqF,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACP,IAAIsM,GAAQ,EACZ,IAAK,IAAIhG,KAAOs/E,GAAsB,CACpC,IAAM32E,EAAO22E,GAAqBt/E,GAClC,GAA0B,IAAtB2I,EAAKjM,MAAM6B,OAAc,CAC3B1D,QAAQC,IAAI,SAAU6N,GAEtB,IAAIu6E,EAAYv+E,SAASsE,eAAe,kBAAD,OACnBjJ,IAEF,OAAdkjF,QAAoC5rF,IAAd4rF,GACxBroF,QAAQC,IAAI,wBAAyBkF,GAEvCgG,GAAQ,CACV,CACF,CAEIA,EACF7E,GAAM6E,MAAM,qCAEZ7E,GAAMiF,QAAQ,6CACdyV,GAAuBnC,OAAS4lE,GAhuCjB,SAAC7rE,GAC1B,IAAMrgB,EAAOqgB,EAGb3O,MAFYrO,EAAY,8BAEb,CACTiY,KAAM,OACN3J,OAAQ,MACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBlE,GAAM6E,MAAM,mCAGZk5E,IAAyB,GACzB7mE,KAEJ,GAAE,IAEHtS,OAAM,SAACC,GACN7E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,CAosCYujF,CAAmBtnE,IACnBsjE,GAA0B,CAAC,GAC3BE,IAAmC,GAEvC,EACAzqF,MAAM,UAAS,0BAMnB,KAmBEwuF,QACgB9rF,IAApBqnF,GAAa/rF,SACS0E,IAAtBqnF,GAAaxiD,MACS,OAAtBwiD,GAAaxiD,WACuB7kC,IAApCyiF,GAAqBja,YACe,OAApCia,GAAqBja,YACrBia,GAAqBja,WAAWvhE,OAAS,EACvC,eAACiS,GAAA,EAAW,CAACxU,WAAS,EAAC01D,GAAI,CAAE2xB,EAAG,GAAI,UAClC,eAAC9zD,GAAA,EAAU,CAAC38B,GAAG,+BAA+BW,MAAO,CAAEiB,QAAS,GAAI,2CAEjEmqF,GAAaxiD,KAAOwiD,GAAaxiD,KAAK59B,OAAS,EAAI,EAAC,OAEvD,cAAC+M,GAAA,EAAM,CACLtP,WAAS,EACTzI,MAAO,CAAEuF,MAAO,QAChBoV,SAAUywE,GAAa/rF,KAAOmE,EAASnE,GACvC4+C,QAAQ,+BACR5+C,GAAG,yBACHie,UAAQ,EACRnU,MAAOwhF,GACP1hF,SArCoB,SAAC5C,GACvB7C,EAASnE,KAAO+rF,GAAa/rF,IAKjCiI,QAAQC,IAAI,UAAWlB,EAAM2R,OAAO7O,OACpCyhF,GAAyBvkF,EAAM2R,OAAO7O,OAEJ,IAA9B9C,EAAM2R,OAAO7O,MAAM6B,QACrB3E,EAAM2R,OAAO7O,MAAMgE,KAAK,UAG1BqiF,GAAQpE,GAAa/rF,GAAI,UAAWgH,EAAM2R,OAAO7O,QAX/CyE,GAAM+E,KAAK,kCAaf,EAuBQiV,MAAO,cAACmoE,GAAA,EAAa,CAACvpF,MAAM,QAC5BshB,YAAa,SAACC,GACZ,OAAOA,EAASxb,KAAK,KACvB,EACAgY,UAAWA,GAAU,SAEpBiiE,GAAqBja,WAAW9tE,KAAI,SAACqqC,EAAK9jC,GAAK,OAC9C,eAACuS,GAAA,EAAQ,CAAapO,MAAO2/B,EAAIzpC,GAAG,UAClC,cAAC2oB,GAAA,EAAQ,CAACC,QAAS0iE,GAAsBziE,QAAQ4gB,EAAIzpC,KAAO,IAC5D,cAACoiB,EAAA,EAAY,CAACrhB,QAAS0oC,EAAIrjC,SAFdT,EAGJ,SAIf,KASAgrF,GACJ,eAAC3zE,GAAA,EAAM,CACLC,KAAM2tE,GACN1tE,QAAS,WACP2tE,IAAyB,EAC3B,EACA1tE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,CAACzc,MAAO,CAAEwB,SAAU,IAAKiI,OAAQ,QAAS,SACpD,sBAAMzJ,MAAO,CAAEqB,MAAO,SAAU,iCAElC,eAACqb,GAAA,EAAa,WACZ,sBAAK1c,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNvJ,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,OACZxI,KAAK,OACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACPjD,MAAM,OACNsB,QAAQ,WACRiB,aAAc4jF,GACd1jF,SAAU,SAAChK,GACT2tF,GAAY3tF,EAAE+Y,OAAO7O,MACvB,IAEF,cAACX,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNvJ,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,UACZxC,MAAM,UACNhG,KAAK,OACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRiB,aAAc8jF,GACd5jF,SAAU,SAAChK,GACT6tF,GAAe7tF,EAAE+Y,OAAO7O,MAC1B,OAGJ,sBAAKnJ,MAAO,CAAEwH,QAAS,OAAQO,UAAW,IAAK,UAC7C,cAACS,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNvJ,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,OACZxC,MAAM,cACNhG,KAAK,OACLnB,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRiB,aAAcokF,GACdlkF,SAAU,SAAChK,GACTmuF,GAAanuF,EAAE+Y,OAAO7O,MACxB,IAEF,cAAC,KAAY,CACX9J,GAAG,iBACH8+D,GAAI,CAAE54D,MAAO,KACbyvC,QAASmxC,GACTr+E,QAAQ,WACR2yC,eAAa,EACbE,eAAgB,SAACC,GAAM,OAAKA,EAAOp0C,KAAK,EACxCyC,SAAU,SAAC5C,EAAOw0C,GAChBqyC,GAAeryC,EAASr0C,MAC1B,EACAs0C,aAAc,SAACl4C,EAAOg4C,GAAM,OAC1B,eAACq1C,GAAA,EAAG,yBACF75E,UAAU,KACV+nD,GAAI,CAAE,UAAW,CAAE+xB,GAAI,EAAGC,WAAY,KAClCvtF,GAAK,cAET,qBACEmnF,QAAQ,OACRxkF,MAAM,KACNmC,IAAG,kCAA6BkzC,EAAOz7C,KAAKwN,cAAa,QACzDyjF,OAAM,kCAA6Bx1C,EAAOz7C,KAAKwN,cAAa,WAC5DlF,IAAI,KAELmzC,EAAOp0C,MAAK,KAAIo0C,EAAOz7C,KAAI,MAAKy7C,EAAOwrC,SACpC,EAERprC,YAAa,SAAC9Q,GAAM,OAClB,cAAC1hC,EAAA,EAAS,2BACJ0hC,GAAM,IACVlqC,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNlN,UAAW,EACX2D,YAAa,IAEf5D,QAAQ,WACRtB,MAAM,mBACNuC,aAAckkF,GACdhyC,WAAU,2BACL/Q,EAAO+Q,YAAU,IACpBnyC,aAAc,mBAEhB,IAGN,cAAC,KAAY,CACXzJ,GAAG,iBACH8+D,GAAI,CAAE54D,MAAO,KACbyvC,QAhKO,CACf,CAAE71C,KAAM,GAAIqH,MAAO,OAAQ4/E,MAAO,IAClC,CAAEjnF,KAAM,GAAIqH,MAAO,aAAc4/E,MAAO,IACxC,CAAEjnF,KAAM,GAAIqH,MAAO,cAAe4/E,MAAO,IACzC,CAAEjnF,KAAM,GAAIqH,MAAO,UAAW4/E,MAAO,KA6J7Bt+E,QAAQ,WACR2yC,eAAa,EACbxxC,SAAU,SAAC5C,EAAOw0C,GAChBmyC,GAAYnyC,EACd,EACAF,eAAgB,SAACC,GAAM,OAAKA,EAAOp0C,KAAK,EACxCs0C,aAAc,SAACl4C,EAAOg4C,GAAM,OAC1B,cAACq1C,GAAA,EAAG,yBACF75E,UAAU,KACV+nD,GAAI,CAAE,UAAW,CAAE+xB,GAAI,EAAGC,WAAY,KAClCvtF,GAAK,aAERg4C,EAAOp0C,QACJ,EAERw0C,YAAa,SAAC9Q,GAAM,OAClB,cAAC1hC,EAAA,EAAS,2BACJ0hC,GAAM,IACVlqC,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNlN,UAAW,GAEbD,QAAQ,WACRtB,MAAM,mBACNuC,aAAcgkF,GACd9xC,WAAU,2BACL/Q,EAAO+Q,YAAU,IACpBnyC,aAAc,mBAEhB,OAIPukF,GAAUriF,OAAS,EAClB,eAACnD,EAAA,EAAU,CACTC,QAAQ,QACRzG,MAAM,gBACNrB,MAAO,CAAEyJ,OAAQ,IAAK,gCAEF4jF,MAEpB,KACJ,sBAAKrtF,MAAO,CAAEwH,QAAS,OAAQjC,MAAO,IAAKkE,OAAQ,QAAS,UAC1D,cAAC0M,EAAA,EAAM,CACLnW,MAAO,CAAE6E,UAAW,GAAIoQ,KAAM,EAAGxL,OAAQ,GACzC3B,QAAQ,WACRzG,MAAM,YACNsZ,UAAU,EACVxU,QAAS,WACP+jF,IAAyB,EAM3B,EAAE,oBAIJ,cAAC/zE,EAAA,EAAM,CACLnW,MAAO,CAAE6E,UAAW,GAAIoQ,KAAM,EAAGxL,OAAQ,GACzC3B,QAAQ,YACRzG,MAAM,UACNsZ,SACEgyE,GAAS3hF,QAAU,GACnB6hF,GAAY7hF,QAAU,GACC,IAAvBiiF,GAAYjiF,QACS,IAArBmiF,GAAUniF,QACU,IAApB+hF,GAAS/hF,OAEX7E,QAAS,WACPkqF,GAAW1D,GAAUE,GAAaI,GAAaE,GACjD,EAAE,6BASNmD,GACJ,eAACj0E,GAAA,EAAM,CACLC,KAAMovE,GACNnvE,QAAS,WACPovE,IAAyB,GACzBS,GAAY,IACZI,GAAa,GACf,EACAhwE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,CAACzc,MAAO,CAAEwB,SAAU,IAAKiI,OAAQ,QAAS,SACpD,uBAAMzJ,MAAO,CAAEqB,MAAO,SAAU,UAC9B,cAACmV,GAAA,EAAQ,CAACxW,MAAO,CAAE+H,UAAW,KAAO,YAAUqjF,GAAar9C,cAGhE,eAACrxB,GAAA,EAAa,WACXjZ,GAAU,KACT,sBAAKzD,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNvJ,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,eACZxI,KAAK,OACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRiB,aAAcqiF,GAAar9C,SAC3B9kC,SAAU,SAAChK,GACTssF,GAAetsF,EAAE+Y,OAAO7O,MAC1B,IAEF,cAACgN,EAAA,EAAM,CACLnW,MAAO,CAAE6E,UAAW,GAAIoQ,KAAM,GAC9BnN,QAAQ,WACRzG,MAAM,UACNsZ,SAAgC,UAAtBywE,GAAa7iF,KACvBpC,QAAS,WACPqpF,GAAQpE,GAAa/rF,GAAI,WAAYisF,GACvC,EAAE,uBAOP7nF,GAAU,KACT,sBAAKzD,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRxI,MAAO,CACL+H,UAAW,EACX5G,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,EACNvJ,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,eACZxI,KAAK,WACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAKwsF,GAAexsF,EAAE+Y,OAAO7O,MAAM,IAEjD,cAACgN,EAAA,EAAM,CACLnW,MAAO,CAAE6E,UAAW,GAAIoQ,KAAM,GAC9BnN,QAAQ,WACRzG,MAAM,UACNsZ,SAAgC,UAAtBywE,GAAa7iF,KACvBpC,QAAS,kBAzgDI,WACvB,IAAMtG,EAAO,CAAEkuC,SAAUq9C,GAAar9C,SAAUwiD,YAAa/E,IAG7Dj6E,MAFYrO,EAAY,+BAEb,CACTiY,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,aACI/N,IAAxB+N,EAAasJ,OACfxN,GAAM6E,MAAMX,EAAasJ,QAEzBxN,GAAM6E,MAAM,gCAGd7E,GAAMiF,QAAQ,kCACd84E,IAAyB,GAE7B,GAAE,IAEHn5E,OAAM,SAACC,GACN7E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,CAy+C2BmkF,EAAkB,EAAC,uBAOvCX,GACD,cAAC72E,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,sBAAKV,MAAO,CAAEyJ,OAAQ,OAAQjI,SAAU,KAAM,UAC5C,cAAC2U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,WACRzG,MAAM,UACNsZ,SAAUywE,GAAar9C,WAAavqC,EAASuqC,SAC7C5nC,QAAS,YA5/CA,SAACtG,GAElB,IAAMu+E,EAASv+E,EAAKR,GAGpBkS,MADYrO,EAAY,iBAAmBk7E,EAChC,CACT5sE,OAAQ,SACRE,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXw9E,KAGKz9E,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACAA,EAAae,cAAmC9O,IAAxB+N,EAAasJ,OAGxCxN,GAAMiF,QAAQ,+BAAiChT,EAAKR,IAFpDuO,GAAM6E,MAAM,8BAAgCX,EAAasJ,OAI7D,IAEC5I,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CA+9CYg+E,CAAWrF,IACXO,IAAyB,EAC3B,EAAE,UAEDP,GAAa7qE,OAAS,qBAEzB,cAACpK,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,WACRzG,MAAM,UACNsZ,SACwB,UAAtBywE,GAAa7iF,MACb6iF,GAAar9C,WAAavqC,EAASuqC,SAErC5nC,QAAS,kBAxjBI,SAACuqF,GACtB,IACM7wF,EAAO,CAAE4vF,QADAiB,EAAKrxF,IAGpBkS,MAAMrO,EAAY,yBAA0B,CAC1CsO,OAAQ,OACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,YAEZ1S,MAAK,SAAC2S,GAOL,OANwB,MAApBA,EAASC,OACXtK,QAAQC,IAAI,6CAEZ6nF,KAGKz9E,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,SAAUuK,GACjBA,EAAae,cAAmC9O,IAAxB+N,EAAasJ,OAGxCxN,GAAMiF,QAAQ,mBAFdjF,GAAM6E,MAAM,uBAAyBX,EAAasJ,OAItD,IACC5I,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,GACJ,CAuhByBk+E,CAAevF,GAAa,EAAC,2BAI9C,cAACj1E,EAAA,EAAM,CACLhQ,QAAS,WACPyqF,GAAYptF,EACd,EACAmX,SACwB,UAAtBywE,GAAa7iF,MACb6iF,GAAar9C,WAAavqC,EAASuqC,SAErCjmC,QAAQ,WACRzG,MAAM,UAAS,cAEY0C,IAA1BqnF,GAAayF,UACY,OAA1BzF,GAAayF,WACoB,IAAjCzF,GAAayF,SAAStwE,OAClB,cACA,kBAGPksE,GACC,sBACEzsF,MAAO,CACLyJ,OAAQ,OACRjI,SAAU,IACVoG,SAAU,IACVG,UAAW,IACX,eAIahE,IAAdwoF,IACa,OAAdA,IACAA,GAAUvhF,OAAS,EACjB,+BACE,eAACnD,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,qIAEM,IACpDkrF,GAAS,iBAGZ,UACUxoF,IAAbooF,IACY,OAAbA,IACAA,GAASnhF,OAAS,EAChB,qBACEvD,IAAK,eACLC,IAAKykF,GACLnsF,MAAK,aACHyJ,OAAQ,OACR1B,UAAW,GACXlD,UAAW,IACXrD,SAAU,IACVoG,SAAU,KAAG,WACH,OAId,cAACiT,EAAA,EAAgB,IAGnB,cAAChT,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,qGAIjD,sBAAKrB,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLiV,KAAM,EACN9T,gBAAiBlB,EAAME,QAAQO,WAC/BgL,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,GACRtH,MAAO,QACPI,SAAU,OAEZqvF,UAAW,GAEbx3E,UAAQ,EACR7Q,WAAW,EACXpJ,GAAG,UACHoK,OAAO,SACPT,YAAY,eACZlB,QAAQ,WACRmB,SAAU,SAAC5C,GACLA,EAAM2R,OAAO7O,MAAM6B,OAAS,GAIhCshF,GAAYjmF,EAAM2R,OAAO7O,MAC3B,IAEF,cAACgN,EAAA,EAAM,CACLwE,SAA8B,IAApB0xE,GAASrhF,OACnBlD,QAAQ,YACR9H,MAAO,CAAE+H,UAAW,GAAIY,OAAQ,GAAIsM,KAAM,GAC1C9O,QAAS,YAl6DC,SAACi4E,EAAQj/E,GAC/B,IAAMU,EAAO,CACXV,KAAMA,EACNswF,QAASrR,GAGX7sE,MAAM,GAAD,OAAIrO,EAAS,yBAAiBk7E,EAAM,WAAW,CAClDjjE,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAOL,OANIA,EAASC,OAMND,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACwB,IAAzBA,EAAae,SACfjF,GAAM+E,KAAK,4BAEXgK,YAAW,WACTyyE,KAEAhD,GAAY,IACZE,GAAY,IACZE,GAAa,IACbE,IAAgB,GAChBf,IAAyB,EAC3B,GAAG,MAEH/9E,GAAM+E,KAAK,qCAGf,IACCH,OAAM,SAACC,GACN7E,GAAM+E,KAAK,qCAEb,GACJ,CAm3DgBo+E,CAAgBvtF,EAASnE,GAAIgtF,GAC/B,EACAhrF,MAAM,UAAS,0BAMnB,WAKJ2vF,GAAW,SAACpuF,GAChB,MAAgCsB,IAAMC,UAAS,GAAM,mBAA9CirB,EAAQ,KAAE65D,EAAW,KAEtB7oF,EAAUwC,EAAM/C,KAAKO,QACrBE,EAAYsC,EAAM/C,KAAKS,UACvB2wF,EAAcruF,EAAM/C,KAAK+9B,KACzBszD,EAAgBtuF,EAAM/C,KAAK0gB,OAC/B,cAAC8rB,GAAA,EAAe,CAACrsC,MAAO,CAAEqB,MAAO,WAEjC,cAACioB,GAAA,EAAS,CAACtpB,MAAO,CAAEqB,MAAO,SAG7B,OACE,cAACqD,EAAA,EAAI,CACH0Q,MAAI,EACJpR,GAAI,EACJhE,MAAO,CAAEoF,OAAQ,WACjBe,QAAS,WACP8iF,GAAa75D,EACf,EAAE,SAEF,eAAC05C,GAAA,EAAI,CACH9oE,MAAO,CACLyJ,OAAQ,EACRtI,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPC,UAAW8tB,EAAW,IAAM,UAC5BvqB,UAAWuqB,EAAW,IAAM,WAC5B,UAEF,eAAC9N,EAAA,EAAQ,WACP,cAACC,EAAA,EAAc,UACb,cAACC,EAAA,EAAM,UAAEyvE,MAEX,cAACxvE,EAAA,EAAY,CACXzhB,MAAO,CAAE8hB,cAAe,cACxB1hB,QAASA,IAEV8wF,KAEF9hE,EACC,sBAAKpvB,MAAO,CAAEiB,QAAS,IAAK,UAC1B,eAAC4G,EAAA,EAAU,WACT,2CACsB,IAArBjF,EAAM/C,KAAKuJ,MACV,YAEA,iCACGxG,EAAM/C,KAAKumB,MAAK,MAA0B,KAArBxjB,EAAM/C,KAAKuJ,MAAe,YAAcxG,EAAM/C,KAAKuJ,YAO/E,eAACvB,EAAA,EAAU,CAAC7H,MAAO,CAAC6E,UAAW,IAAKE,UAAW,SAAUD,UAAW,QAAQ,UAAC,6CAAmB,IAAExE,QAElG,SAIZ,EAEM+Y,GAAY,QACd83E,GAAW,CACb,CACE/wF,QAAS,YACTE,UAAW,GACXigB,QAAQ,EACRqd,KAAM,cAAC2jC,GAAA,EAAW,CAACvhE,MAAO,CAAEqB,MAAOgY,OAErC,CACEjZ,QAAS,OACTE,UAAW,GACXigB,QAAQ,EACRqd,KAAM,cAAC,KAAQ,CAAC59B,MAAO,CAAEqB,MAAOgY,OAElC,CACEjZ,QAAS,eACTE,UAAW,GACXigB,QAAQ,EACRqd,KAAM,cAACwzD,GAAA,EAAY,CAACpxF,MAAO,CAAEqB,MAAOgY,QAIlCg4E,GACJ,eAACh1E,GAAA,EAAM,CACLC,KAAMqtE,EACNptE,QAAS,WACPqtE,GAAsB,EACxB,EACAptE,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,sBAAMzc,MAAO,CAAEqB,MAAO,SAAU,qCAElC,eAACqb,GAAA,EAAa,uBACF,IACV,mBACEhE,KAAK,oDACLV,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,wBAGjD,IAAG,MAER,sBAAKrB,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,IAAK,UAChD,cAAC9I,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BgL,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXkS,SAAU6rE,GAAqB7+B,WAC/B7+C,aAAa,eACbzJ,GAAG,eACHoK,OAAO,SACPT,YAAY,eACZlB,QAAQ,WACRmB,SAAU,SAAC5C,GACTyjF,GAAmBzjF,EAAM2R,OAAO7O,MAClC,IAEF,cAACgN,EAAA,EAAM,CACLwE,UACI6rE,GAAqB7+B,YACM,IAA3BkiC,EAAgB7+E,QAClB++E,GAEF/pF,MAAO,CAAEuB,WAAY,GAAIoH,OAAQ,GAAI/H,aAAc,OACnDuF,QAAS,WACP6jF,IAAW,GACXkE,GACErE,EACArD,GACAA,GAAqB7+B,WAEzB,EACAtmD,MAAM,UACNyG,SACsC,IAApC0+E,GAAqB7+B,WACjB,WACA,YACL,SAEA6+B,GAAqB7+B,WAAa,YAAc,kBAGpD6iC,GAAgBx/E,OAAS,EACxB,eAACnD,EAAA,EAAU,CAAC7H,MAAO,CAAE+H,UAAW,EAAGuJ,aAAc,IAAK,oBAC5Ck5E,MAER,KACJ,cAAC9lF,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAEuF,MAAO,OAAQ+L,aAAc,IAAK,SACxD6/E,GAAS1yF,KAAI,SAACoB,EAAMmF,GACnB,OAAO,cAACgsF,GAAQ,CAAanxF,KAAMA,GAAbmF,EACxB,MACK,+CAEP,wBAAO,4CAEP,wBAAO,mCAEP,wBAAO,oCAEP,wBAAO,0CAKPqrF,GAAa,SAAC1D,EAAUE,EAAaI,EAAaE,GAClDE,GAAUriF,OAAS,GACrBsiF,GAAa,IAGf,IAAM3kD,EAAQ69C,GAAqBnnF,GAC7BQ,EAAO,CACXyxF,aAAc3oD,EACdljC,KAAMknF,EACN4E,QAAS1E,EACT2E,QAASvE,EACT9jF,MAAOgkF,GAGHt5E,EAAG,UAAM3Q,EAAS,wBAAgBylC,EAAK,UAC7Cp3B,MAAMsC,EAAK,CACTsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAU2S,GAKd,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAU8S,IACe,IAAzBA,EAAae,SACfq3E,IAAyB,GACzBt8E,GAAMiF,QACJ,+DAGF+5E,GAAY,IACZE,GAAe,IACfM,GAAa,IACbF,GAAe,iBACfF,GAAY,SAEZM,GAAax7E,EAAasJ,OAE9B,IACC5I,OAAM,SAAUC,GAEf66E,GAAa76E,EAAMpG,YACnBuB,GAAM6E,MAAM,2BAA4BA,EAC1C,GACJ,EA4CMg/E,GACO,IAAXrH,SAA4CrmF,IAA5ByiF,GAAqBnnF,GACnC,sBAAKW,MAAO,CAAEqF,SAAU,YAAa,UACnC,sBAAKrF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,mCACjC,uBAAMxH,MAAO,CAAEuB,WAAY,IAAK,kFAEhB,IACd,mBACEyW,OAAO,SACPU,KAAK,sDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,mCAM7B0C,IAA5ByiF,GAAqBnnF,GACpB,sBACEW,MAAO,CACLiZ,WAAY,IACZ1T,MAAO,IACPkE,OAAQ,OACRtE,UAAW,UACX,UAEF,cAAC0V,EAAA,EAAgB,IACjB,cAAChT,EAAA,EAAU,sCAGb,gCAiBE,cAAC8N,GAAA,EAAO,CACNvR,MAAO,uBACPpE,MAAO,CAAC,EACR,aAAY,aAAa,SAEzB,cAAC2Y,GAAA,EAAU,CACT3Y,MAAO,CAAEsY,KAAM,GAAIC,MAAO,EAAGlT,SAAU,YACvCc,QAAS,WACP,IACM69B,EAASwiD,GAAqBnnF,GAChC4jB,EAAW7R,SAASsE,eAFJ,wBAGpB,GAAiB,OAAbuN,QAAkClf,IAAbkf,EAAwB,CAE/C,QAAkBlf,IADAmf,UAAUC,UAG1B,YADAvV,GAAM6E,MAAM,wCAIdyQ,UAAUC,UAAUC,UAAU4gB,GAC9B/gB,EAASI,SACTJ,EAASK,kBACP,EACA,OAIFlS,SAASmS,YAAY,QAErB3V,GAAM+E,KAAKqxB,EAAS,uBACtB,CACF,EAAE,SAEF,cAACsE,GAAA,EAAY,CAACtoC,MAAO,CAAEqB,MAAO,oCAGL0C,IAAlCyiF,GAAqBK,eAAoF9iF,IAA1DyiF,GAAqBK,SAASuB,yBAAmG,OAA1D5B,GAAqBK,SAASuB,yBAAoC5B,GAAqBK,SAASuB,wBAAwBj8E,SAAS,QACvP,cAACwJ,GAAA,EAAO,CACPvR,MAAO,kCACCpE,MAAO,CAAEsY,KAAM,GAAIC,MAAO,GAAIlT,SAAU,YAChD,aAAY,gBAAgB,SAE5B,mBAAGqT,KAAM8tE,GAAqBK,SAASuB,wBAAyBpwE,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,QAAWkC,IAAI,sBAAqB,SAC5I,cAACE,GAAA,EAAU,CACF3Y,MAAO,CAAEsY,KAAM,GAAIC,MAAO,GAAIlT,SAAU,YAAa,SAE7D,cAAC,KAAe,CAACrF,MAAO,CAAEqB,MAAO,iCAInC,KACKmlF,GAAqB/gF,KAAKuF,OAAS,EAClC,cAAC,GAAS,CACRvH,QAASA,GACTD,SAAUA,EACVijF,wBAAyBA,GACzBvjF,UAAWA,EACXsjF,qBAAsBA,KAGxB,sBACExmF,MAAO,CACLiZ,WAAY,IACZ1T,MAAO,IACPkE,OAAQ,OACRtE,UAAW,UACX,UAEF,cAAC0V,EAAA,EAAgB,IACjB,cAAChT,EAAA,EAAU,sCAGf,cAACmR,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,cAACmH,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEsR,aAAc,OAAQjQ,MAAO,SAAU,kCAGrC,YACH,IACV,mBACEqX,KAAK,oDACLV,OAAO,SACdS,IAAI,sBACGzY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,wBAGjD,IAAG,kFAEK,uCAAa,sHAGzBoC,GACC,qBAAKzD,MAAO,CAAE+H,UAAW,GAAIP,QAAS,QAAS,SAC7C,sBAAKxH,MAAO,CAAEiV,KAAM,GAAI,UACtB,eAACpN,EAAA,EAAU,CAAC7H,MAAO,CAAC,EAAE,oCACI,KACoB,IAA3CwmF,GAAqBkL,kBAClB,OACA,WAELlL,GAAqBkL,kBACpB,eAAC7pF,EAAA,EAAU,CAAC7H,MAAO,CAAC,EAAE,qCACK,IACsB,IAA9CwmF,GAAqBmL,YAAYC,SAC9B,KACApL,GAAqBmL,YAAYC,YAErC,KACJ,cAAC/pF,EAAA,EAAU,CACT7H,MAAO,CACL61C,WAAY,SACZ9tC,UAAW,GACX2D,YAAa,IACb,yBAIJ,sBAAK1L,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAACgB,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,YACxCgI,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXkS,UAAU,EACV7R,aAAa,eACbzJ,GAAG,eACHoK,OAAO,SACPT,YAAY,eACZlB,QAAQ,WACRiB,aAAc2hF,GAAa9hC,SAE5B49B,GAAqBkL,kBACpB,cAACv7E,EAAA,EAAM,CACLnW,MAAO,CACLuF,MAAO,IACPoD,OAAQ,GACRpH,WAAY,GACZwG,UAAW,IAEbD,SAC6C,IAA3C0+E,GAAqBkL,kBACjB,WACA,YAENrwF,MAAM,UACN8E,QAAS,WAv2EL,IAAC69B,OACVjgC,KADUigC,EAw2EewiD,GAAqBnnF,KAv2EtB,OAAX2kC,EAQ5BzyB,MADYrO,EAAY,gBAAkB8gC,EAAS,aACxC,CACT7oB,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UANA,CAAC,GAOZhC,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAWL,OAVwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,uBACZqG,GAAMiF,QAAQ,qCAEdvL,QAAQC,IAAI,oBACZqG,GAAM6E,MACJ,2EAIGd,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL6K,YAAW,WACT4xE,GAAavqD,EACf,GAAG,IACL,IACCxxB,OAAM,SAACC,GACN7E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,IAtCAuB,GAAM6E,MAAM,oBAAsBuxB,EAu2EhB,EAAE,uBAIF,aAKV,gCACE,sBAAKhkC,MAAO,CAAEwH,QAAS,OAAQ8J,aAAc,IAAK,UAChD,cAAC9I,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BgL,YAAa,IAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXkS,SAAU6rE,GAAqB7+B,WAC/B7+C,aAAa,eACbzJ,GAAG,eACHoK,OAAO,SACPT,YAAY,eACZlB,QAAQ,WACRmB,SAAU,SAAC5C,GACTyjF,GAAmBzjF,EAAM2R,OAAO7O,MAClC,IAEF,cAACgN,EAAA,EAAM,CACLwE,UACI6rE,GAAqB7+B,YACM,IAA3BkiC,EAAgB7+E,QAClB++E,GAEF/pF,MAAO,CAAE+H,UAAW,GAAIY,OAAQ,GAAIpD,MAAO,KAC3CY,QAAS,WACP6jF,IAAW,GACXkE,GACErE,EACArD,GACAA,GAAqB7+B,WAEzB,EACAtmD,MAAM,UACNyG,SACsC,IAApC0+E,GAAqB7+B,WACjB,WACA,YACL,SAEA6+B,GAAqB7+B,WAClB,YACA,kBAGP6iC,GAAgBx/E,OAAS,EACxB,eAACnD,EAAA,EAAU,CAAC7H,MAAO,CAAE+H,UAAW,EAAGuJ,aAAc,IAAK,yCACxB,4BAAIk5E,QAEhC,QAGR,cAAC3iF,EAAA,EAAU,CACT7H,MAAO,CAAE+H,UAAW,GAAIxG,WAAY,GAAI+P,aAAc,GAAI,iDAI5D,cAAC5M,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAAO,CAAEuF,MAAO,OAAQ+L,aAAc,IAAK,cACjBvN,IAAvCyiF,GAAqBkI,eACiB,OAAvClI,GAAqBkI,cACjB,KACAhvF,OAAOD,KAAK+mF,GAAqBkI,eAAejwF,KAAI,SAClDgO,EACAzH,GAGA,GAAY,aAARyH,GAA8B,SAARA,GAA0B,YAARA,EAC1C,OAAO,KAGT,IAAM2I,EAAOoxE,GAAqBkI,cAAcjiF,GAC1D,GAAa,OAAT2I,EACH,OAAO,KAGE,IACMy8E,EAAW,CACfzxF,QAFaqM,EAAI3G,WAAW,IAAK,KAGjCxF,eACuByD,IAArBqR,EAAKN,aACgB,OAArBM,EAAKN,aACuB,IAA5BM,EAAKN,YAAY9J,OACb,kBACAoK,EAAKN,YACX1L,MAAOgM,EAAKhM,MACZgd,WAAsBriB,IAAfqR,EAAKgR,OACK,OAAfhR,EAAKgR,MAAiB,EAAIhR,EAAKgR,MACjC0rE,gBAAiB,OACjBvxE,OAAQnL,EAAKmL,OACbqd,KAAM,cAAC2jC,GAAA,EAAW,CAACvhE,MAAO,CAAEqB,MAAOgY,OAGrC,OACE,cAAC2B,GAAA,EAAI,UACH,cAACg2E,GAAQ,CAACnxF,KAAMgyF,KADP7sF,EAIf,MAEN,cAACgU,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGlC+C,SACqCM,IAAtCyiF,GAAqBmI,eAC0B,IAA/CnI,GAAqBmI,aAAaC,SAChC,sBAAK5uF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,KAAM,UAC/C,cAACzJ,EAAA,EAAU,CACT7H,MAAO,CAAE+H,UAAW,GAAIxG,WAAY,GAAI+P,aAAc,GACtDxJ,QAAQ,KAAI,gCAId,cAACqO,EAAA,EAAM,CACLrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO,CAAEyJ,OAAQ,IACjBtD,QAAS,WACP+jF,IAAyB,EAC3B,EAAE,sBAIJ,cAAC/zE,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrC5D,QAAQ,YACRzG,MAAM,UACN8E,QAAS,WACPqoF,GAAehrF,EAASmU,WAAWtY,GACrC,EAAE,SAEF,cAAC0b,GAAA,EAAU,MAEb,eAACqJ,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CACL4H,SAAU,IACVpG,SAAU,OAGd,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,SACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAKD,WAAY,KAErD,cAACkgB,EAAA,EAAY,CACXrhB,QAAQ,QACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAGpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CACL6yC,WAAY,GACZjrC,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CACL6yC,WAAY,GACZjrC,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAId,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,cACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,UAGtC,cAACwX,GAAA,EAAO,IACa,IAApBu0E,GAASviF,OACR,cAACnD,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CACLmF,UAAW,SACXsE,OAAQ,OACRlE,MAAO,IACPwC,UAAW,GACXuJ,aAAc,IACd,uEAKJi8E,GAAS9uF,KAAI,SAACszF,EAAM/sF,GAClB,IAAIm0B,EAAU,UAKd,OAJIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIV,eAAC7X,EAAA,EAAQ,CAEPthB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UAEpC,cAAC1X,EAAA,EAAY,CACXrhB,QAAS2xF,EAAKtsF,KACdzF,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAS2xF,EAAKngF,OACd5R,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACVD,WAAY,EACZF,MACgC,cAA9B0wF,EAAKngF,OAAOjF,cACR,SAC8B,WAA9BolF,EAAKngF,OAAOjF,eACkB,cAA9BolF,EAAKngF,OAAOjF,cACZ,MACA,WAGV,cAAC8U,EAAA,EAAY,CACXrhB,QAAO,WAAO2xF,EAAK5oF,OACnBnJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAC2B,IAAzB2xF,EAAKC,SAAShnF,OAAe,MAAQ+mF,EAAKC,SAE5ChyF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAGpC,cAACigB,EAAA,EAAY,CACXrhB,QAAS2xF,EAAKR,QACdvxF,MAAO,CACL6yC,WAAY,GACZjrC,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAS2xF,EAAKP,QACdxxF,MAAO,CACL6yC,WAAY,GACZjrC,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAId,cAACmc,EAAA,EAAY,CACXrhB,QAAS,IAAI2G,KACI,IAAfgrF,EAAKE,SACLC,cACFlyF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAS,IAAI2G,KAAmB,IAAdgrF,EAAKtlC,QAAeylC,cACtClyF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,SAhE/BwD,EAoEX,OAIJ,cAACgU,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,iBAInC,KACH+C,SACsCM,IAAvCyiF,GAAqB2L,eACkB,OAAvC3L,GAAqB2L,eACrB3L,GAAqB2L,cAAcnnF,OAAS,EAC1C,sBAAKhL,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,eAACzJ,EAAA,EAAU,CACT7H,MAAO,CAAE+H,UAAW,GAAIxG,WAAY,GAAI+P,aAAc,GAAI,8BAGzDk1E,GAAqB2L,cAAcnnF,OAAS,EAAI,IAAM,MAEzD,cAACtG,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAAE+H,UAAW,IAAK,SAClDy+E,GAAqB2L,cACnB/xC,UACA3hD,KAAI,SAACiqD,EAAK1jD,GACT,OACE,cAACN,EAAA,EAAI,CAAC0Q,MAAI,EAAapR,GAAI,EAAE,SAC3B,eAAC8kE,GAAA,EAAI,CACH9iE,UAAW,EACXhG,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,QACPJ,QAAS,GACTkE,UAAW,QACX,UAEF,qCAAW,KAAGujD,EAAIyf,MAClB,wBACA,2CAAiB,KAAGzf,EAAI0pC,WACxB,wBACC1pC,EAAInoC,OACH,gCACE,wCAAc,IAAE,IACf,IAAIxZ,KAAqB,IAAhB2hD,EAAIg8B,WAAkBwN,cAChC,wBACA,cAAC/7E,EAAA,EAAM,CACLrO,QAAQ,WACRzG,MAAM,UACNrB,MAAO,CAAE+H,UAAW,IACpB5B,QAAS,YAplBb,SAACksF,GAC3B/qF,QAAQC,IAAIi/E,IACZ,IAAM79C,EAAQ69C,GAAqBnnF,GAC7BQ,EAAO,CACXwyF,gBAAiBA,EACjB9rF,OAAQ,SACRy9B,OAAQwiD,GAAqBnnF,IAGzBwU,EAAM3Q,EAAS,uBAAmBylC,GACxCp3B,MAAMsC,EAAK,CACTsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAU2S,GAMd,OALwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAGdgnF,GAAa/H,GAAqBnnF,IAC3BsS,EAASE,MAClB,IACC7S,MAAK,SAAU8S,QACe/N,IAAzB+N,EAAae,SAAyBf,EAAae,QACrDjF,GAAMiF,QAAQ,sCAEdjF,GAAM6E,MAAM,mDAEhB,IACCD,OAAM,SAAUC,GACfnL,QAAQC,IAAI,UAAWkL,GACvB7E,GAAM6E,MAAM,mDACd,GACJ,CA6iBkC6/E,CAAoB5pC,EAAI6pC,UAC1B,EAAE,oCAMN,gCACE,0CAAgB,IAAE,IACjB,IAAIxrF,KACoB,IAAvB2hD,EAAI8pC,kBACJN,cACF,wBACA,eAACrqF,EAAA,EAAU,CAACxG,MAAM,gBAAe,UAC/B,uCAAa,0BAtCP2D,EA6CpB,MAEJ,cAACgU,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQO,iBAInC,QAIR,qBAAKV,MAAO,CAAEmB,gBAAiB,UAAW8X,WAAY,IAAK,SACzD,cAAC,GAAa,aACZhZ,MAAOA,EACPwyF,UAAW7vF,EAAM6vF,UACjBjvF,SAAUA,EACVN,UAAWA,GACPN,SAIR,KAEAoa,GACJ,eAACX,GAAA,EAAM,CACLC,KAAM6d,EACN5d,QAAS,WACP6d,GAAa,EACf,EACA5d,WAAY,CACVxc,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPuG,SAAU,QACVtG,UAAW,UAEb,UAEF,cAACmb,GAAA,EAAW,UACV,sBAAMzc,MAAO,CAAEqB,MAAO,SAAU,SAClB,IAAX+oF,GACG,WACW,IAAXA,GACA,uBACA,sBAGR,eAAC1tE,GAAA,EAAa,WACA,IAAX0tE,IAAgB3mF,GACf,cAACoE,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAEsR,aAAc,IAAK,sEAG3C,IAAX84E,GACF,cAACviF,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAEsR,aAAc,IAAK,iHAItD,KACQ,IAAX84E,GACC,2CAEE,cAAC5hF,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,YACxCg7B,WAAS,EACThzB,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXK,aAAa,WACbE,YAAY,uBACZ3J,GAAG,aACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAC5C,GAAK,OACdkpF,GAAgB,WAAYlpF,EAAM2R,OAAO7O,MAAM,IAGlD1F,GAAU,KACT,4CAEE,cAAC+E,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,YACxCgI,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXK,aAAa,WACbtI,KAAK,WACLwI,YAAY,WACZ3J,GAAG,UACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAC5C,GAAK,OACdkpF,GAAgB,WAAYlpF,EAAM2R,OAAO7O,MAAM,UAM5C,IAAXihF,GACF,uCAEE,cAAC5hF,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,YACxCg7B,WAAS,EACThzB,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXO,YAAW,UAAKw9E,GAAqB/gF,KAAI,iBACzCpG,GAAG,UACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAC5C,GACT42E,EAAW52E,EAAM2R,OAAO7O,MAC1B,OAGS,IAAXihF,GACF,mDAEE,cAAC5hF,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,YACxCg7B,WAAS,EACThzB,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXO,YAAY,yBACZ3J,GAAG,mBACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAC5C,GAAK,OACdkpF,GAAgB,cAAelpF,EAAM2R,OAAO7O,MAAM,OAItD,KACH68E,MAEH,eAAClpE,GAAA,EAAa,WACZ,cAAC3G,EAAA,EAAM,CACLnW,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAAMi0B,GAAa,EAAM,EAClC/4B,MAAM,UAAS,oBAIjB,cAAC8U,EAAA,EAAM,CACLrO,QAAQ,YACR9H,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACQ,IAAXikF,GACE3mF,GA3/EG,SAAC5D,GAElBomF,GAAa,IAGTpmF,EAAO,CACTkuC,SAAUluC,EAAK6yF,SACflyF,KAAM,SACNwjC,OAAQwiD,GAAqBnnF,IAK/BkS,MAHcrO,EACQ,6BAEX,CACTsO,OAAQ,OACRE,YAAa,UACbyB,KAAMF,KAAKS,UAAU7T,GACrBgH,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBm0E,GAAa,UAAYn0E,EAAasJ,SAEtC6qE,GAAa,IACb7rD,GAAa,GACbzd,YAAW,WACTyyE,IACF,GAAG,KAEP,GAAE,IAEH58E,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CAu9EckgF,CAAWlJ,GAr9EN,SAAC5pF,GAClByH,QAAQC,IAAI,UAAW1H,GACvBomF,GAAa,IAGTpmF,EAAO,CAAEkuC,SAAUluC,EAAK6yF,SAAU9M,SAAU/lF,EAAK+yF,UAIrDrhF,MAHcrO,EACQ,yBAEX,CACTsO,OAAQ,OACRE,YAAa,UACbyB,KAAMF,KAAKS,UAAU7T,GACrBgH,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBm0E,GAAa,UAAYn0E,EAAasJ,SAEtC6qE,GAAa,IACb7rD,GAAa,GACbzd,YAAW,WACTyyE,IACF,GAAG,KAEP,GAAE,IAEH58E,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CAs7EcogF,CAAWpJ,GAEO,IAAXW,GAhuFA,SAAC0I,EAAcrtF,GAClC,IAAM5F,EAAO,CAAE4F,KAAMA,EAAMu+B,OAAQ8uD,GACnCxrF,QAAQC,IAAI1H,GACZ,IAAMgU,EAAM3Q,EAAS,uBAAmB4vF,EAAY,mBAEpDvhF,MAAMsC,EAAK,CACTsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,aACI/N,IAAxB+N,EAAasJ,OACfxN,GAAM6E,MAAMX,EAAasJ,QAEzBxN,GAAM6E,MAAM,6CAGd7E,GAAMiF,QACJ,wDAEF84E,IAAyB,GAEzBhvE,YAAW,WACThZ,OAAOC,SAAS0gB,QAClB,GAAG,OAGL24D,EAAW,IACX7iD,GAAa,EACf,GAAE,IAEH5nB,OAAM,SAACC,GACN7E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,CAurFY0mF,CAAavM,GAAqBnnF,GAAIqpC,GAClB,IAAX0hD,IAhwEK,SAACvqF,GAEzBk3C,GAAa5pC,KAAK,CAChB1H,KAAM5F,EAAKwmC,YACX7lC,KAAM,WAMR+Q,MAFcrO,EACQ,0BACX,CACTsO,OAAQ,MACRE,YAAa,UACbyB,KAAMF,KAAKS,UAAUqjC,IACrBlwC,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,SACxBm0E,GAAa,mBAAqBn0E,EAAasJ,QAC/C4xC,OAEAi5B,GAAa,IACb7rD,GAAa,GACb4yB,KAEJ,GAAE,IAEHx6C,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CAguEYugF,CAAkBvJ,EAEtB,EACApoF,MAAM,UAAS,0BAQjB4xF,GACO,IAAX7I,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,6BACjC,uBAAMxH,MAAO,CAAEuB,WAAY,IAAK,kDACQ,IACtC,mBACEyW,OAAO,SACdS,IAAI,sBACGC,KAAK,yDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,8BAM1D,wBACA,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAMi0B,GAAa,EAAK,EAAC,sBAIpC,cAACjkB,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrC5D,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAMipF,IAAU,EAAC,SAE1B,cAACr0E,GAAA,EAAU,MAEb,cAAC/B,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAGpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CACL6yC,WAAY,GACZjrC,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAId,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,SACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAKD,WAAY,KAErD,cAACkgB,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,MACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,YAECuC,IAApCyiF,GAAqBja,YACc,OAApCia,GAAqBja,YACrBia,GAAqBja,WAAWvhE,OAAS,EACvC,cAACyW,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAElC,KACJ,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,eAG3BuC,IAAVumF,IAAiC,OAAVA,GACpB,KACAA,GAAM7rF,KAAI,SAACoB,EAAMmF,GACf,IAAIm0B,EAAU,UAKd,OAJIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIV,eAAC7X,EAAA,EAAQ,CAAathB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UACxD,cAAC1X,EAAA,EAAY,CACXrhB,QAASP,EAAKkuC,SACd/tC,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAId,cAACmc,EAAA,EAAY,CACXzhB,MAAO,CAAEuB,WAAY,GAAIC,SAAU,IAAKoG,SAAU,KAClDxH,aACkB2D,IAAhBlE,EAAK+oD,QACkB,IAAvB/oD,EAAK+oD,OAAO59C,OACV,GAEA,cAAC2K,GAAA,EAAO,CACNvR,MAAO,eACPpE,MAAO,CAAC,EACR,aAAY,cAAc,SAE1B,cAAC2Y,GAAA,EAAU,CACT3Y,MAAO,CAAC,EACRmG,QAAS,WACP,IACI8c,EACF7R,SAASsE,eAFS,wBAGpB,GACe,OAAbuN,QACalf,IAAbkf,EACA,CAEA,QAAkBlf,IADAmf,UAAUC,UAK1B,YAHAvV,GAAM6E,MACJ,wCAKJyQ,UAAUC,UAAUC,UAAUvjB,EAAK+oD,QACnC3lC,EAASI,SACTJ,EAASK,kBACP,EACA,OAIFlS,SAASmS,YAAY,QAErB3V,GAAM+E,KAAK,6BACb,CACF,EAAE,SAEF,cAAC21B,GAAA,EAAY,CACXtoC,MAAO,CAAEqB,MAAO,iCAQ5B,cAACogB,EAAA,EAAY,CACXrhB,QACE,eAAC2X,GAAA,EAAM,CACLS,mBAAoB,CAClBxY,MAAO,CACLuB,WAAY,KAGhB4H,MAAOtJ,EAAK0I,KACZE,WAAS,EACTQ,SAAU,SAAChK,GACTqI,QAAQC,IAAI,UAAWtI,EAAE+Y,OAAO7O,OAChCqmF,GAAQ3vF,EAAKR,GAAI,OAAQJ,EAAE+Y,OAAO7O,MACpC,EACAnJ,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQM,aAC/BY,MAAO,QACPsH,OAAQ,QACR,UAEF,cAAC4O,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,QAAQ,uBAIjB,cAACoO,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,OAAO,sBAIhB,cAACoO,GAAA,EAAQ,CACPvX,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BW,MAAO,SAET8H,MAAO,aAAa,2BAM1BnJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAKkK,YAAa,MAEtD,cAAC+V,EAAA,EAAY,CACXrhB,QAASP,EAAK0gB,OAAS,OAAS,QAChCvgB,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,aACsB2D,IAApBlE,EAAKqzF,YACe,OAApBrzF,EAAKqzF,YACsB,IAA3BrzF,EAAKqzF,WAAWloF,OACZ,SACAnL,EAAKqzF,WAEXlzF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,aACoB2D,IAAlBlE,EAAKgxF,UACa,OAAlBhxF,EAAKgxF,WACoB,IAAzBhxF,EAAKgxF,SAAStwE,OACV,SACA,WAENvgB,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,YAECuC,IAApCyiF,GAAqBja,YACc,OAApCia,GAAqBja,YACrBia,GAAqBja,WAAWvhE,OAAS,EACvC,cAACyW,EAAA,EAAY,CACXzhB,MAAO,CAAEwH,QAAS,QAClBpH,aACgB2D,IAAdlE,EAAK+oC,MAAoC,OAAd/oC,EAAK+oC,KAC5B,EACA/oC,EAAK+oC,KAAK59B,OAAS,IAGzB,KACJ,cAACyW,EAAA,EAAY,CAACzhB,MAAO,CAAEwH,QAAS,QAAS,SACvC,cAACmR,GAAA,EAAU,CACTxS,QAAS,WAKP,GAJAwlF,IAAyB,GACzBN,GAAgBxrF,QAIIkE,IAAlBP,EAASolC,MACS,OAAlBplC,EAASolC,MACTplC,EAASolC,KAAK59B,OAAS,QACajH,IAApCyiF,GAAqBja,YACe,OAApCia,GAAqBja,YACrBia,GAAqBja,WAAWvhE,OAAS,EACzC,CACA1D,QAAQC,IAAI,YACZ,IAAIgZ,EAAS,GAAG,aAEdjZ,QAAQC,IAAI,QAAS/D,EAASolC,KAAKn8B,IACnC,IAAM+wB,EACJgpD,GAAqBja,WAAWr0D,MAC9B,SAAC9C,GAAI,OAAKA,EAAK/V,KAAOmE,EAASolC,KAAKn8B,GAAKpN,EAAE,IAE/C,GAAc,OAAVm+B,QAA4Bz5B,IAAVy5B,EAAqB,CACzC,QACgBz5B,IAAdlE,EAAK+oC,MACS,OAAd/oC,EAAK+oC,KAEL,iBAGF,IAAMuqD,EAAWtzF,EAAK+oC,KAAK1wB,MACzB,SAAC9C,GAAI,OAAKA,IAASooB,EAAMn+B,EAAE,IAGd,OAAb8zF,QACapvF,IAAbovF,GAEA5yE,EAAOpT,KAAKgmF,EAEhB,CAAC,EAvBH,IAAK,IAAI1mF,KAAOjJ,EAASolC,KAAM,IA0B/BgiD,GAAyBrqE,EAC3B,CACF,EAAE,SAEF,cAAC/J,GAAA,EAAQ,CAACnV,MAAM,kBArMP2D,EAoNnB,UAGN,KAEA4rF,GAAc,SAAC/wF,GA36GF,IAACu+E,EA46GlB92E,QAAQC,IAAI,QAAS1H,EAAM4sF,IACtBA,IAIHL,GAAY,IACZI,GAAa,MAl7GGpO,EA86GLv+E,EAAKR,GA76GlBkS,MAAM,GAAD,OAAIrO,EAAS,yBAAiBk7E,EAAM,WAAW,CAClD5sE,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,+BAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IAEwB,IAAzBA,EAAae,UAEfu5E,GAAYt6E,EAAasJ,QACzBoxE,GAAa16E,EAAa9E,OAE9B,IACCwF,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,KA25GFqgF,IAAiBD,GAEnB,EAEM2G,GAAc,SAACjoF,GACnB,IAAK,IAAIsB,KAAOtB,EACd,IACE,IAAMgwD,EAAWhwD,EAAMsB,GAAKhH,KACxB4tF,EAAW,IAAIC,SACnBD,EAASE,OAAO,eAAgBpoF,EAAMsB,IAEZ,kBAAftB,EAAMsB,IACfuiF,GAAiB7zB,EAAUk4B,EAe/B,CAFE,MAAOp0F,GACPqI,QAAQC,IAAI,sBAAuBtI,EACrC,CAGF0d,YAAW,WACTiwC,IACF,GAAG,KACL,EAaM4mC,GACO,IAAXpJ,GACE,cAAC,GAAQ,CACPpqF,MAAO,CACLwB,SAAUmC,OAAOupC,WAAa,KAAO,KAAO,KAC5CzjC,OAAQ,OACRxI,QAAS,IAEXmJ,OAnBa,SAACnL,GAClB,IAEMkM,OADepH,IAAnB9E,EAAE6L,cAAqC7L,EAAE6L,aAAaK,MAAMH,OAAS,EAC5C/L,EAAE6L,aAAaK,MAAQlM,EAAE+Y,OAAO7M,MAI3DioF,GAAYjoF,EACd,EAWyB,SAEnB,gCACE,sBAAKnL,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,mBACjC,uBAAMxH,MAAO,CAAEuB,WAAY,IAAK,kCACR,IACtB,mBACEyW,OAAO,SACfS,IAAI,sBACIC,KAAK,+CACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,8BAM1D,eAAC8U,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,YACR3B,QAAS,WACPuK,EAAO6M,OACT,EAAE,UAEF,cAAC7D,GAAA,EAAW,IAAG,mBAIjB,uBACE0D,QAAM,EACN5c,KAAK,OACL8c,UAAQ,EACR9R,IAAK,SAACA,GAAG,OAAMkF,EAASlF,CAAG,EAC3BvC,SAAU,SAAC5C,GAKT+sF,GAAY/sF,EAAM2R,OAAO7M,MAC3B,IAEF,cAACgL,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrC5D,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAMymD,IAAU,EAAC,SAE1B,cAAC7xC,GAAA,EAAU,WAGOhX,IAAnBmnF,IACkB,OAAnBA,IACAA,GAAelgF,OAAS,EACtB,eAACiS,GAAA,EAAW,CAACjd,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,KAAM,UACnD,cAACw6B,GAAA,EAAU,CAAC38B,GAAG,wBAAuB,2BACtC,cAAC0Y,GAAA,EAAM,CACLkmC,QAAQ,+BACR5+C,GAAG,4BACHW,MAAO,CACLqB,MAAO,QACPuG,SAAU,IACVpG,SAAU,IACVqX,MAAO,SAET1P,MAAO6hF,GACP/hF,SAAU,SAAC5C,GACTiB,QAAQC,IAAI,qBAAsBlB,EAAM2R,QACxCizE,GAAqB5kF,EAAM2R,OAAO7O,MACpC,EAAE,SAED+hF,GAAezsF,KAAI,SAACoB,EAAMmF,GACzB,OACE,cAACuS,GAAA,EAAQ,CAEPpO,MAAOtJ,EACPG,MAAO,CAAEqB,MAAO,SAAU,SAEzBxB,GAJImF,EAOX,SAGF,KACJ,sBAAKhF,MAAO,CAACwH,QAAS,cAAenC,SAAS,YAAY,UACzDwoF,GAED,cAACl4E,GAAA,EAAO,CAACvR,MAAO,QAASpE,MAAO,CAAC,EAAG,aAAY,GAAG,SACjD,cAACmW,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrCrK,MAAM,UACN8E,QAAS,WACP2nF,IAAiB,GACjBxmF,QAAQC,IAAI,iBACZ,EAAE,SAEJ,cAAC,KAAS,QAId,cAACoO,GAAA,EAAO,CAACvR,MAAO,wBAAyBpE,MAAO,CAAC,EAAG,aAAY,GAAG,SACjE,cAACmW,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrCrK,MAAM,UACN8E,QAAS,WACP2nF,IAAiB,EACjB,EAAE,SAEJ,cAAC,KAAO,QAGXD,IAAiB,cAACrlF,EAAA,EAAS,CACtB+yD,WAAY,SAACl1D,IA5mHL,SAACA,GACH,UAAdA,EAAMoG,MAERnF,QAAQC,IAAI,eACZD,QAAQC,IAAI,uBAAuBlB,EAAM2R,OAAO7O,OAChD+hF,GAAe/9E,KAAK9G,EAAM2R,OAAO7O,OACjC8hF,GAAqB5kF,EAAM2R,OAAO7O,OAClC2kF,IAAiB,IAED,WAAdznF,EAAMoG,MACRnF,QAAQC,IAAI,kBACZumF,IAAiB,GAGrB,CA+lHgB19B,CAAc/pD,EAChB,EACAqC,WAAY,CACV1I,MAAO,CACLqB,MAAO,UAGXA,MAAM,UACN2H,YAAY,qBACZsQ,UAAQ,EACR7P,OAAO,QACPV,aAAc,GACd2yB,WAAS,OAGf,cAAC,GAAU,CACTgT,mBAAoBi/C,GACpBh/C,sBAAuBi/C,GACvB/+C,YAAe6+C,GACf9+C,SAAU6+C,GACV3+C,cAAgB,EAEhBC,cArpHY,SAACxuC,GACrBgR,MAAM,GAAD,OAAIrO,EAAS,yBAAiB6qF,GAAU,SAAS,CACpDv8E,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEV0B,KAAK5S,EACLmR,YAAa,YACZ1S,MAAK,SAAC2S,GAIL,OAHwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,qBAEPoK,EAASE,MAClB,GAEJ,GAooHiB47E,IAIT,cAACz0E,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAInC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,OAEpC,cAAC6Z,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CACLwB,SAAU,IACVoG,SAAU,IACVtC,SAAU,SACV/D,WAAY,MAGhB,cAACkgB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,IAAKtC,SAAU,YAEnD,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,MACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,SACRJ,MAAO,CAAE4H,SAAU,GAAIpG,SAAU,GAAID,WAAY,MAEnD,cAACkgB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CAACrhB,QAAQ,oBAEb2D,IAAVoH,IAAiC,OAAVA,IAAmC,IAAjBA,GAAMH,OAC5C,KACAG,GAAM1M,KAAI,SAAC0sC,EAAMnmC,GAKf,GAJuB,KAAnBmmC,EAAKm5B,YACPn5B,EAAKm5B,UAAY,WAGfn5B,EAAKm5B,YAAc0mB,GACrB,OAAO,KAGT,IAAI7xD,EAAU,UACVn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAGrB,IAAMs6D,EAAmBhwF,IAAW0nC,EAAKuoD,SAAW,KAA2B,WAAjBvoD,EAAKv5B,SAAoF,IAA3Dq8E,GAAiB9hF,SAASg/B,EAAKgwB,SAASlvD,MAAM,KAAK,IAEtI,OACE,eAACqV,EAAA,EAAQ,CAEPthB,MAAO,CACLmB,gBAAiBg4B,EACjBt0B,UAAW,IACXS,SAAU,UACV,UAEF,cAACmc,EAAA,EAAY,CACXzhB,MAAO,CACLwB,SAAU,IACVoG,SAAU,IACVtC,SAAU,UAEZlF,QAAS,IAAI2G,KAAuB,IAAlBokC,EAAKwoD,YAAmBzB,gBAE5C,cAACzwE,EAAA,EAAY,CACXzhB,MAAO,CACLwB,SAAU,IACVoG,SAAU,IACVtC,SAAU,SACV/D,WAAY,IAEdnB,QAAS+qC,EAAKgwB,WAEhB,cAAC15C,EAAA,EAAY,CACXrhB,QACuB,WAArB+qC,EAAK9kB,YACH,cAAC1N,GAAA,EAAU,CACTgC,SAA+B,WAArBwwB,EAAK9kB,YAAyB,SAExC,cAACzN,GAAA,EAAa,CACZ5Y,MAAO,CACLqB,MACuB,WAArB8pC,EAAK9kB,YACD,QACA,YAKZ,cAAC1Q,GAAA,EAAO,CACNvR,MAAO,iBACPpE,MAAO,CAAC,EACR,aAAY,WAAW,SAEvB,+BACE,mBACEyY,IAAI,sBACJzY,MAAO,CACLuW,eAAgB,OAChBlV,MAAO,WAETqX,KAAI,qBAAgByyB,EAAK9kB,aACzBrO,OAAO,SAAQ,SAEf,cAACW,GAAA,EAAU,CACTgC,SAA+B,WAArBwwB,EAAK9kB,YAAyB,SAExC,cAACzN,GAAA,EAAa,CACZ5Y,MAAO,CACLqB,MACuB,WAArB8pC,EAAK9kB,YACD,QACA,kBAStBrmB,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAS+qC,EAAKyoD,QACd5zF,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAS+qC,EAAKv5B,OACd5R,MAAO,CACL4H,SAAU,GACVpG,SAAU,GACV8D,SAAU,SACV/D,WAAY,MAGhB,cAACkgB,EAAA,EAAY,CACXrhB,QAAS+qC,EAAKuoD,SACd1zF,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,uBAAMJ,MAAO,CAAEwH,QAAQ,UAAU,UACvC,cAACmO,GAAA,EAAO,CACNvR,MAAO,YACPpE,MAAO,CAAC,EACR,aAAY,OAAO,SAEnB,+BACE,cAAC2Y,GAAA,EAAU,CACTgC,UAAU84E,EACVzzF,MAAS,CAACiB,QAAS,OACnBkF,QAAS,WACPynF,IAAc,GACdI,GAAc7iD,EAAK9rC,IA5wF9B,SAAC8rC,GACpB55B,MAAMrO,EAAY,iBAAmBioC,EAAK9rC,GAAK,WAAY,CACzDmS,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,+BACL,IAEFoK,EAASpR,MAClB,IACCvB,MAAK,SAAC60F,GAIL,GAAwB,IAApBA,EAAS7oF,OAIb,OAAO6oF,EAHLjmF,GAAM6E,MAAM,sCAIhB,IACCzT,MAAK,SAAC80F,GAEPpG,GAAeoG,EAEf,IACCthF,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CA2uFgC0nF,CAAa5oD,EACf,EAAE,SAEF,cAAC30B,GAAA,EAAQ,CACPxW,MAAO,CACLqB,OAA4B,IAArBoyF,EACD,QACA,gBAMhB,cAAC99E,GAAA,EAAO,CACNvR,MAAO,gBACPpE,MAAO,CAAC,EACR,aAAY,WAAW,SAEvB,+BACE,cAAC2Y,GAAA,EAAU,CACT3Y,MAAS,CAACiB,QAAS,OACnB0Z,SAA0B,WAAhBwwB,EAAKv5B,OACfzL,QAAS,YAzvFlB,SAACglC,GACpB55B,MAAMrO,EAAY,iBAAmBioC,EAAK9rC,GAAK,WAAY,CACzDmS,OAAQ,MACRE,YAAa,YAEhB1S,MAAK,SAAC2S,GACN,OAAwB,MAApBA,EAASC,QACZtK,QAAQC,IAAI,+BACL,KAGRD,QAAQC,IAAI,SAAUoK,GAEfA,EAASgC,OACjB,IACK3U,MAAK,SAAC60F,GACL,GAAwB,IAApBA,EAAS7oF,OAAb,CAKA,IAAI2I,EAAO,IAAIC,KAAK,CAACigF,GAAW,CAC9BrzF,KAAM,6BAGJqT,EAAMC,IAAIC,gBAAgBJ,GAC1BK,EAAO5C,SAAS6C,cAAc,KAClCD,EAAKE,aAAa,OAAQL,GAC1BG,EAAKE,aAAa,WAAW,GAAD,OAAKi3B,EAAKgwB,WACtC,IAAI90D,EAAQ+K,SAAS+C,YAAY,eACjC9N,EAAM+N,eACJ,SACA,GACA,EACAzQ,OACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,MAEFqQ,EAAKK,cAAchO,EA5BnB,MAFEuH,GAAM6E,MAAM,sCAiChB,IACCzT,MAAK,SAAC8S,GAEL,IAEDU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CAgsFgC2nF,CAAa7oD,EACf,EAAE,SAEF,cAACv1B,GAAA,EAAiB,CAChB5V,MAAO,CACLqB,MACkB,WAAhB8pC,EAAKv5B,OACD,QACA,gBAMhB,cAAC+D,GAAA,EAAO,CACNvR,MAAO,cACPpE,MAAO,CAAC,EACR,aAAY,SAAS,SAErB,+BACE,cAAC2Y,GAAA,EAAU,CACTgC,SAA0B,WAAhBwwB,EAAKv5B,OACf5R,MAAS,CAACiB,QAAS,OACnBkF,QAAS,YA/1FpB,SAACglC,GAClB55B,MAAMrO,EAAY,iBAAmBioC,EAAK9rC,GAAI,CAC5CmS,OAAQ,SACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,sCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACDA,EAAae,QACfjF,GAAM+E,KAAK,6BAA+Bw4B,EAAK1lC,WAEvB1B,IAAxB+N,EAAasJ,QACW,OAAxBtJ,EAAasJ,QAEbxN,GAAM6E,MAAM,0BAA4BX,EAAasJ,QAEvDuB,YAAW,WACTiwC,IACF,GAAG,MAEHtlD,QAAQC,IAAIuK,EACd,IACCU,OAAM,SAACC,GACN7E,GAAM6E,MAAMA,EAAMpG,WACpB,GACJ,CA8zFgC4nF,CAAW9oD,EACb,EAAE,SAEF,cAACt0B,GAAA,EAAU,CACT7W,MAAO,CACLqB,MACkB,WAAhB8pC,EAAKv5B,OACD,QACA,gBAMhB,cAAC+D,GAAA,EAAO,CACNvR,MAAO,eACPpE,MAAO,CAAC,EACR,aAAY,OAAO,SAEnB,cAAC2Y,GAAA,EAAU,CACT3Y,MAAS,CAACiB,QAAS,OACnBkF,QAAS,WACP,IACI8c,EACF7R,SAASsE,eAFS,wBAGpB,GACe,OAAbuN,QACalf,IAAbkf,EACA,CAEA,QAAkBlf,IADAmf,UAAUC,UAK1B,YAHAvV,GAAM6E,MACJ,wCAKJyQ,UAAUC,UAAUC,UAAU+nB,EAAK9rC,IACnC4jB,EAASI,SACTJ,EAASK,kBACP,EACA,OAIFlS,SAASmS,YAAY,QAErB3V,GAAM+E,KAAKw4B,EAAK9rC,GAAK,uBACvB,CACF,EAAE,SAEF,cAACipC,GAAA,EAAY,CAACtoC,MAAO,CAAEqB,MAAO,kBAIpCrB,MAAO,CACL4H,SAAU,IACVpG,SAAU,SA7NTwD,EAmOX,YAIR,KAEAkvF,GACO,IAAX9J,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,uBACjC,uBAAMxH,MAAO,CAAEuB,WAAY,IAAK,4EACkC,IAChE,mBACEyW,OAAO,SACPU,KAAK,mDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,8BAM1D,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,OAEpC,cAAC6Z,EAAA,EAAY,CACXrhB,QAAQ,cACRJ,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,OAEpC,cAAC6Z,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,OAEpC,cAAC6Z,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CAACrhB,QAAQ,oBAET2D,IAAd+mF,IAAyC,OAAdA,GACxB,KACAA,GAAUrsF,KAAI,SAAC01F,EAAUnvF,GACvB,IAAIm0B,EAAU,UAKd,OAJIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIV,eAAC7X,EAAA,EAAQ,CAAathB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UACxD,cAAC1X,EAAA,EAAY,CACXzhB,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,KAClCxH,QAC2B,UAAzB+zF,EAAS9tD,YACP8tD,EAAS98B,UAET,iCAAO88B,EAASC,QAAO,gBAI7B,cAAC3yE,EAAA,EAAY,CACXzhB,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,KAClCxH,QAAS+zF,EAAS9tD,cAEpB,cAAC5kB,EAAA,EAAY,CACXzhB,MAAO,CAAEwB,SAAU,IAAKoG,SAAU,KAClCxH,QACE,mBACEJ,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WACxCqX,KAAI,qBAAgBy7E,EAAS9tE,aAC7BrO,OAAO,SAAQ,SAEdm8E,EAAS9tE,gBAIhB,cAAC5E,EAAA,EAAY,CACXrhB,QAAS+zF,EAASE,SAClBr0F,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,UACX,cAACtL,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBA53HR,SAACtG,GAEtByH,QAAQC,IAAI,UAAW1H,GAGvB,IAAMgU,EACJ3Q,EACA,qBACArD,EAAkB,YAClB,aACAA,EAAKR,GACPiI,QAAQC,IAAI,QAASsM,GACrBtC,MAAMsC,EAAK,CACTrC,OAAQ,SACRE,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,GACpBxK,QAAQC,IAAI,SAAUuK,IACU,IAA5BA,EAAsB,QACxBlE,GAAM6E,MAAM,4BAEZkK,YAAW,WACTwyE,IACF,GAAG,KAGP,GAAE,IAEH38E,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CAy1HqC6hF,CAAeH,EAAS,EAAC,+BAxC/BnvF,EA+CnB,UAGN,KAEAuvF,GACO,IAAXnK,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,wBACjC,sBAAMxH,MAAO,CAAEuB,WAAY,IAAK,2GAKlC,cAACyX,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,YACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,iBACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,eAz+H1C,CACjB,CACEG,KAAM,YACN2I,KAAM,CAAC,UAAW,cAAe,eACjCisD,WAAY,CAAC,UAAW,SAAU,eAw+HlB57D,KAAI,SAACoB,EAAMmF,GACrB,OAAyB,IAArBnF,EAAKuO,KAAKpD,OACL,KAIP,eAACsW,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAASP,EAAK4F,KACdzF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAS,GACTJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAS,GACTJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAS,GACTJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CACXzhB,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,UAAW,SAE5D,eAAC6Q,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,WACRzG,MAAM,UACN8E,QAAS,WACPmB,QAAQC,IAAI,+BACd,EAAE,uBAEuB,OAAd1H,EAAKuO,KAAgB,EAAIvO,EAAKuO,KAAKpD,OAAM,WA5B3ChG,EAiCnB,UAGF,KAgBAwvF,GACO,IAAXpK,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,gCACjC,sBAAMxH,MAAO,CAAEuB,WAAY,IAAK,oHAGzB,OAEP,mBACEyW,OAAO,SACPU,KAAK,4DACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,gDAKxD,cAAC2X,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,GAAIpG,SAAU,MAEnC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,QACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAKD,WAAY,MAMrD,cAACkgB,EAAA,EAAY,CACXrhB,QAAQ,YACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAQnD,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,SACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,YAEnD,cAACmc,EAAA,EAAY,CAACrhB,QAAQ,oBAEJ2D,IAAnBmc,IAAmD,OAAnBA,GAC7B,KACAA,GAAezhB,KAAI,SAACoB,EAAMmF,GACxB,IAAIm0B,EAAU,UA2Bd,OA1BIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIM,WAAdt5B,EAAKW,OACPX,EAAKsmB,OAAS,CACZ,CACE1Z,IAAK,MACLtD,MAAO,0CAET,CACEsD,IAAK,YACLtD,MAAO,0CAET,CACEsD,IAAK,gBACLtD,MAAO,0CAET,CACEsD,IAAK,QACLtD,MAAO,4CAMX,eAACmY,EAAA,EAAQ,CAAathB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UACxD,cAAC1X,EAAA,EAAY,CACXrhB,QAAQ,qBACNqH,IAAI,GACJC,IAAK7H,EAAKqS,IAAIwC,YACd1U,MAAO,CACLwB,SAAU,GACVZ,aAAcX,EAAME,QAAQS,gBAGhCZ,MAAO,CAAE4H,SAAU,GAAIpG,SAAU,MAEnC,cAACigB,EAAA,EAAY,CACXrhB,QAASP,EAAK2G,MACdxG,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QAASP,EAAKqS,IAAIzM,KAClBzF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,IAAKD,WAAY,MAQrD,cAACkgB,EAAA,EAAY,CACXrhB,QAC0B,OAAxBP,EAAK40F,eAA0B,EAAI50F,EAAK40F,eAE1Cz0F,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV2D,UAAW,SACXG,SAAU,YAcd,cAACmc,EAAA,EAAY,CACXrhB,QACkB,OAAhBP,EAAKsmB,aAAmCpiB,IAAhBlE,EAAKsmB,OACzB,GACAtmB,EAAKsmB,OACF1nB,KAAI,SAACoB,GACJ,OAAOA,EAAK4M,GACd,IACCF,KAAK,MAEdvM,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXzhB,MAAO,CACLwB,SAAU,IACVoG,SAAU,IACVtC,SAAU,UAEZlF,QAAS,IAAI2G,KAAoB,IAAflH,EAAKoyF,SAAgBC,gBAEzC,eAACzwE,EAAA,EAAY,WACX,cAAC9I,GAAA,EAAU,CACTxS,QAAS,YA1LC,SAAC2jC,GAC/BgiD,IAAmC,GACnCF,GAA0B9hD,GAE1B,IAAIyiB,EAAY,GAChB,IAAK,IAAI9/C,KAAOq9B,EAAM3jB,OACpBomC,EAAUp/C,KAAK,CACbV,IAAKq9B,EAAM3jB,OAAO1Z,GAAKA,IACvBtD,MAAO,KAGX6iF,GAAwBz/B,EAC1B,CA+KwBmoC,CAAwB70F,EAC1B,EAAE,SAEF,cAAC2W,GAAA,EAAQ,CAACnV,MAAM,cAEjBxB,EAAKqsD,QACJ,cAACv2C,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,wBACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACT3Y,MAAO,CAAE0L,YAAa,IACtBiP,UAA2B,IAAjB9a,EAAKqsD,QACf/lD,QAAS,YAh8HF,SAAC9G,GAChC,IAAMQ,EAAO,CACXR,GAAIA,EACJkH,OAAQ,qBAIVgL,MAFYrO,EAAY,+BAAiC7D,EAAK,UAEnD,CACT8b,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBlE,GAAM6E,MAAM,4CAEZ7E,GAAMiF,QAAQ,yCACd84E,IAAyB,GACzBhvE,YAAW,WACTmI,IACF,GAAG,KAEP,GAAE,IAEHtS,OAAM,SAACC,GACN7E,GAAM6E,MAAM,QAAUA,EAAMpG,WAC9B,GACJ,CA+5H4BsoF,CAAyB90F,EAAKR,GAChC,EAAE,SAEF,cAACu1F,GAAA,EAAa,CACZvzF,MAAOxB,EAAKqsD,QAAU,UAAY,kBAKxC,cAACv2C,GAAA,EAAO,CACNtU,MAAM,UACN+C,MAAM,gDACNoV,UAAU,MAAK,SAEf,cAACb,GAAA,EAAU,CACT3Y,MAAO,CAAE0L,YAAa,IACtBvF,QAAS,WAAO,EAAE,SAElB,cAACyuF,GAAA,EAAa,CACZvzF,MAAOxB,EAAKqsD,QAAU,UAAY,kBAK1C,cAACvzC,GAAA,EAAU,CACTxS,QAAS,YA9tIF,SAACtG,GAC5B+N,GAAM+E,KAAK,iBAAmB9S,EAAK2G,OAGnC,IAAMqN,EAAM3Q,EAAY,+BAAiCrD,EAAKR,GAC9DiI,QAAQC,IAAI,QAASsM,GACrBtC,MAAMsC,EAAK,CACTrC,OAAQ,SACRE,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBlE,GAAM6E,MAAM,wBAGZkK,YAAW,WACTmI,IACF,GAAG,IAGP,GAAE,IAEHtS,OAAM,SAACC,GACNnL,QAAQC,IAAI,sBAAuBkL,EACrC,GACJ,CAksIwBoiF,CAAqBh1F,EACvB,EAAE,SAEF,cAACgX,GAAA,EAAU,CAACxV,MAAM,mBA3HT2D,EAgInB,UAGN,KAEA8vF,GACO,IAAX1K,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,0BACjC,uBAAMxH,MAAO,CAAEuB,WAAY,IAAK,oFAE1B,IACJ,mBACEyW,OAAO,SACPU,KAAK,sDACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,8BAM1D,cAAC8U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAMi0B,GAAa,EAAK,EAAC,6BAIpC,cAACjkB,EAAA,EAAM,CACLnW,MAAO,CAAEuB,WAAY,EAAGmK,YAAa,IACrC5D,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBAAM6mD,IAAiB,EAAC,SAEjC,cAACjyC,GAAA,EAAU,MAEb,cAAC6mD,GAAA,EAAM,CACL35C,QAASgkE,GACThjF,SAAU,WACRijF,IAAiBD,GACnB,IACC,IAAG,gBAEN,cAACjzE,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,kBACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,cACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,eAGpBuC,IAAjBgzC,IAA+C,OAAjBA,GAC3B,KACAA,GAAat4C,KAAI,SAAC4nC,EAAarhC,GAC7B,IAAKinF,IAAgB5lD,EAAYiZ,SAC/B,OAAO,KAGT,QAA6Bv7C,IAAzBsiC,EAAYiZ,SAEd,OADA0N,KACO,KAGT,IAAI7zB,EAAU,UAKd,OAJIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIV,eAAC7X,EAAA,EAAQ,CAAathB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UACxD,cAAC1X,EAAA,EAAY,CACXrhB,QAASimC,EAAY8Y,KACrBn/C,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAGd,cAACmc,EAAA,EAAY,CACXrhB,QACuB,UAArBimC,EAAY6sB,UACmBnvD,IAA3BsiC,EAAY0uD,YACe,OAA3B1uD,EAAY0uD,YACsB,IAAlC1uD,EAAY0uD,WAAW/pF,OAErC,8CAGgBq7B,EAAY0uD,WACd,MAEN/0F,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,YAId,cAACmc,EAAA,EAAY,CACXzhB,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,KAClCpB,QACV,cAACuV,GAAA,EAAO,CACPvR,MAAO,uBACPpE,MAAO,CAAC,EACR,aAAY,uBAAuB,SAEnC,cAAC2Y,GAAA,EAAU,CACV3Y,MAAO,CAAC,EACR2a,SAA+B,UAArB0rB,EAAY6sB,KACtB/sD,QAAS,WACR,GAAyB,UAArBkgC,EAAY6sB,KAAhB,CAKA,IACM5yC,EAA4B,KAArB+lB,EAAY/lB,KAAc,sBAAwB+lB,EAAY/lB,KACrE00E,EAAW,+FAA2F3uD,EAAY8Y,KAAI,uBAAc7+B,EAAI,sBAAa1d,EAAMY,SAASmU,WAAWtY,GAAE,qDAA6C6D,EAAS,gDACzO+f,EAAW7R,SAASsE,eAHJ,wBAIpB,GAAiB,OAAbuN,QAAkClf,IAAbkf,EAAwB,CAEhD,QAAkBlf,IADAmf,UAAUC,UAG3B,YADAvV,GAAM6E,MAAM,wCAIbyQ,UAAUC,UAAUC,UAAU4xE,GAC9B/xE,EAASI,SACTJ,EAASK,kBACR,EACA,OAIDlS,SAASmS,YAAY,QAErB3V,GAAM+E,KAAK,sCACZ,CAxBA,MAFC/E,GAAM+E,KAAK,oHA2Bb,EAAE,SAEF,cAAC21B,GAAA,EAAY,CAAC3tB,SAA+B,UAArB0rB,EAAY6sB,KAAkBlzD,MAAO,CAAEqB,MAA4B,UAArBglC,EAAY6sB,KAAmB,wBAA0B,iCAMzH,cAACzxC,EAAA,EAAY,CACXrhB,QAASimC,EAAY6sB,KACrBlzD,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXzhB,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,UAEZlF,QAASimC,EAAY+sB,QAAU,OAAS,KAAK,SAE5C/sB,EAAY+sB,QAAU,KACrB,cAACj9C,EAAA,EAAM,CACLrO,QAAQ,WACR9H,MAAO,CAAEY,aAAc,MAAO8K,YAAa,GAC3CvF,QAAS,kBA11HH,SAACkgC,GAE7Bz4B,GAAM+E,KAAK,0BAA4B0zB,EAAY5gC,MACnD,IAAIwvF,EAAS,GACb,IAAK,IAAIxoF,KAAOsqC,GAAc,CAC5B,GAAIA,GAAatqC,GAAKpN,IAAMgnC,EAAYhnC,GAAI,CAC1C,GAAI03C,GAAatqC,GAAK6yC,SAEpB,YADA1xC,GAAM6E,MAAM,iCAIdskC,GAAatqC,GAAK2mD,SAAU,CAC9B,MAC+B,GAA7Brc,GAAatqC,GAAK2mD,SAClBrc,GAAatqC,GAAKpN,KAAOgnC,EAAYhnC,KAErC03C,GAAatqC,GAAK2mD,SAAU,GAG9B6hC,EAAO9nF,KAAK4pC,GAAatqC,GAC3B,CAIA8E,MADYrO,EAAY,0BACb,CACTsO,OAAQ,MACRE,YAAa,UACbyB,KAAMF,KAAKS,UAAUuhF,GACrBpuF,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,SACxBlE,GAAM6E,MAAMX,EAAasJ,QACzBuB,YAAW,WACTqwC,IACF,GAAG,QAEHi5B,GAAa,IACb7rD,GAAa,GACbzd,YAAW,WACTqwC,IACF,GAAG,MAEP,GAAE,IAEHx6C,OAAM,SAACC,GACNnL,QAAQC,IAAI,0BAA2BkL,EACzC,GACJ,CAuyHuCyiF,CAAsB7uD,EAAY,EACjDhlC,MAAM,UAAS,4BAMrB,cAACogB,EAAA,EAAY,CACXzhB,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,SACV/D,WAAY,IAEdnB,QAASimC,EAAYiZ,SAASjzC,aAEhC,cAACoV,EAAA,EAAY,CACXzhB,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,UAEZlF,aACyB2D,IAAvBsiC,EAAYomB,QACW,OAAvBpmB,EAAYomB,QACW,IAAvBpmB,EAAYomB,OACR,IAAI1lD,KAA0B,IAArBs/B,EAAYomB,QAAeylC,cACpC,IAGR,cAACzwE,EAAA,EAAY,CACXzhB,MAAO,CACL4H,SAAU,IACVpG,SAAU,IACV8D,SAAU,SACV/D,WAAY,IACZ,SAEF,sBAAKvB,MAAO,CAAEwH,QAAS,QAAS,UAC9B,cAAC2O,EAAA,EAAM,CACLrO,QACEu+B,EAAYiZ,SAAW,YAAc,WAEvCt/C,MAAO,CAAEY,aAAc,OACvBuF,QAAS,kBAvxHP,SAACkgC,GAuBzB,IAAMhnC,EAAKgnC,EAAYhnC,GAGnB41F,EAAS,GACb,IAAK,IAAIxoF,KAAOsqC,GAAc,CAC5B,GAAIA,GAAatqC,GAAKpN,IAAMA,EAAI,CAC9B,GAAI03C,GAAatqC,GAAK2mD,QAEpB,YADAxlD,GAAM6E,MAAM,wCAId,GAA+B,UAA3BskC,GAAatqC,GAAKjM,OAAqBu2C,GAAatqC,GAAK6yC,SAE3D,YADA1xC,GAAM6E,MAAM,mCAIdskC,GAAatqC,GAAK6yC,UAAYvI,GAAatqC,GAAK6yC,QAClD,CAEA21C,EAAO9nF,KAAK4pC,GAAatqC,GAC3B,CAIA8E,MADYrO,EAAY,0BACb,CACTsO,OAAQ,MACRE,YAAa,UACbyB,KAAMF,KAAKS,UAAUuhF,GACrBpuF,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,SACxBlE,GAAM6E,MAAMX,EAAasJ,QACzB4xC,OAEAi5B,GAAa,IACb7rD,GAAa,GACb4yB,KAEJ,GAAE,IAEHx6C,OAAM,SAACC,GACNnL,QAAQC,IAAI,wBAAyBkL,EACvC,GACJ,CAitHuC0iF,CAAkB9uD,EAAY,EAC7ChlC,MAAM,UAAS,SAEdglC,EAAYiZ,SAAW,WAAa,YAEvC,cAACnpC,EAAA,EAAM,CACLrO,QAAS,WACT9H,MAAO,CAAEY,aAAc,OACvBuF,QAAS,WACPmB,QAAQC,IACN,gCACA8+B,GAj0HM,SAACA,GAGjC90B,MAAM,GAAD,OACArO,EAAS,gCAAwBmjC,EAAYhnC,GAAE,wBAClD,CACEmS,OAAQ,MACRE,YAAa,YAGd1S,MAAK,SAAC2S,GACL,OAAwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,oCACZqG,GAAM6E,MAAM,wCAGZ7E,GAAM+E,KAAK,kCAGNhB,EAASE,OAClB,IACC7S,MAAK,SAAC8S,GACLxK,QAAQC,IAAI,+BAAgCuK,EAG9C,IACCU,OAAM,SAACC,GACN,GAEN,CAsyH0B2iF,CAA0B/uD,EAC5B,EACAhlC,MAAM,UAAS,0BAxJR2D,EAgKnB,UAGN,KAEAqwF,GACO,IAAXjL,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,2BACjC,sBAAMxH,MAAO,CAAEuB,WAAY,IAAK,oDAIlC,cAAC4U,EAAA,EAAM,CACLnW,MAAO,CAAC,EACR8H,QAAQ,YACRzG,MAAM,UACNsZ,SAA6B,SAAnBnX,EAASkU,MACnBvR,QAAS,WACPi0B,GAAa,EACf,EAAE,iCAIJ,cAACphB,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,YACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,KACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,WACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,aACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,eAGnBuC,IAAlBP,EAASolC,MACQ,OAAlBplC,EAASolC,MACTplC,EAASolC,KAAK59B,OAAS,EACrB,+BACGxH,EAASolC,KAAKnqC,KAAI,SAACoB,EAAMmF,GACxB,IAAMswF,OAC6BvxF,IAAjCnB,EAAMY,SAASmU,WAAWtY,GACtB,QACAuD,EAAMY,SAASmU,WAAWtY,KAAOQ,EAAKR,GACtC,OACA,QAGA0pC,EAAa,CACjBxjC,MAFgB,GAGhBoD,OAHgB,GAIhBikB,cAAe,QAEX0B,EACW,KAAfzuB,EAAKyuB,MACH,qBACE7mB,IAAK5H,EAAK4F,KACViC,IAAKzH,EAAME,QAAQyB,aACnB5B,MAAO+oC,IAGT,qBAAKthC,IAAK5H,EAAK4F,KAAMiC,IAAK7H,EAAKyuB,MAAOtuB,MAAO+oC,IAG7C5P,EAAU,UAKd,OAJIn0B,EAAQ,IAAM,IAChBm0B,EAAU,WAIV,eAAC7X,EAAA,EAAQ,CAAathB,MAAO,CAAEmB,gBAAiBg4B,GAAU,UACxD,cAAC1X,EAAA,EAAY,CACXrhB,QAASkuB,EACTtuB,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAASP,EAAK4F,KACdzF,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAASP,EAAK0I,KACdvI,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAASP,EAAKR,GACdW,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAASk1F,EACTt1F,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,cAACwhE,GAAA,EAAM,CACb35C,QAASpoB,EAAK8nD,WACd1+C,SAAU,WACR2gF,GAAsB,GACtBnD,GAAwB5mF,GACxByH,QAAQC,IAAI,oBACd,IAEFvH,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,SA9BvBwD,EAkCnB,MAEA,WAGN,KAEAuwF,GACO,IAAXnL,GACE,gCACE,sBAAKpqF,MAAO,CAAE+H,UAAW,GAAIuJ,aAAc,IAAK,UAC9C,oBAAItR,MAAO,CAAEwH,QAAS,UAAW,oBACjC,sBAAMxH,MAAO,CAAEuB,WAAY,SAE7B,cAACyX,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,GACXuJ,aAAc,GACdnQ,gBAAiBlB,EAAME,QAAQO,cAGnC,eAAC0jB,EAAA,EAAI,WACH,eAAC9C,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,OACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,kBACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,UAGtC,eAAC8f,EAAA,EAAQ,WACP,cAACG,EAAA,EAAY,CACXrhB,QAAQ,UACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,QACRJ,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,OAEpC,cAACigB,EAAA,EAAY,CACXrhB,QAAQ,cAACwhE,GAAA,EAAM,CACb35C,SAAS,EACThf,SAAU,WACR3B,QAAQC,IAAI,SACd,IAEFvH,MAAO,CAAE4H,SAAU,IAAKpG,SAAU,gBAKxC,KAIA08C,GAAY,CAAExyC,YAAa,IAC3B7L,GACJ,qBACEG,MAAO,CACLuF,MAAO,KACPkE,OAAQ,OACR1E,UAAW,SACXgD,UAAW,IACX,SAEF,eAAChC,EAAA,EAAK,CAAC/F,MAAOiF,GAAW,UACvB,eAACmzD,GAAA,EAAI,CACHjvD,MAAOihF,GACP/xB,eAAe,UACfm9B,UAAU,YACVvsF,SAAUqmF,GACV,aAAW,wBAAuB,UAElC,cAACh3B,GAAA,EAAG,CACF9xD,MAAM,iCACJ,cAAC4qF,GAAA,EAAY,CAACpxF,MAAOk+C,KAAa,qBAGtC,cAACoa,GAAA,EAAG,CACF39C,SAA6B,SAAnBnX,EAASkU,MACnBlR,MAAM,iCACJ,cAACivF,GAAA,EAAoB,CAACz1F,MAAOk+C,KAAa,aAI9C,cAACoa,GAAA,EAAG,CACF9xD,MAAM,iCACJ,cAACkvF,GAAA,EAAQ,CAAC11F,MAAOk+C,KAAa,0BAIlC,cAACoa,GAAA,EAAG,CACF39C,SAA6B,SAAnBnX,EAASkU,MACnBlR,MAAM,iCACJ,cAAC,KAAe,CAACxG,MAAOk+C,KAAa,aAIzC,cAACoa,GAAA,EAAG,CACF39C,SAA6B,SAAnBnX,EAASkU,MACnBlR,MAAM,iCACJ,cAACgyD,GAAA,EAAY,CAACx4D,MAAOk+C,KAAa,iBAItC,cAACoa,GAAA,EAAG,CACFtzD,MAAO,EACP2V,SAA6B,SAAnBnX,EAASkU,MACnBlR,MAAM,iCACJ,cAACmvF,GAAA,EAAO,CAAC31F,MAAOk+C,KAAa,oBAIjC,cAACoa,GAAA,EAAG,CACFtzD,MAAO,EACPmE,MAAO,EACP3C,MAAM,iCACJ,cAAC4qF,GAAA,EAAY,CAACpxF,MAAOk+C,KAAa,yBAMxC,cAACllC,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,EACXuJ,aAAc,GACdnQ,gBAAiB,sBAGrB,sBAAKnB,MAAO,CAAEiB,QAAS,IAAK,UACzBwwF,GACA+C,GACAvB,GACA6B,GACAZ,GACAV,GACA+B,GACAF,GACAd,WAMT,OACE,gCACGv3E,GACAq0E,GACAf,GACAN,GACAN,GACA7vF,GACD,cAAC2I,EAAA,EAAS,CACRnJ,GAAG,uBACH8J,MAl+Ja,GAm+JbnJ,MAAO,CAAEwH,QAAS,YAI1B,EC3kKMouF,GAAO,CAGXp0F,SAAU,OACVoG,SAAU,OACVJ,QAAS,OACTmB,OAAQ,OACRtH,MAAO,QACRgE,SAAU,YAKL0lE,GAAY,CAChB1pE,MAAO,4BACPkV,eAAgB,QAGZs/E,GAAa,CACjBx0F,MAAO,UACPkV,eAAgB,QAGZu/E,GAAiB,CACrBz0F,MAAO,4BACPkV,eAAgB,QAk2BHw/E,GA/1BF,SAACj1C,GACZ,IAAQ59C,EAAqD49C,EAArD59C,UAAW8yF,EAA0Cl1C,EAA1Ck1C,YAAavtB,EAA6B3nB,EAA7B2nB,WAAYwtB,EAAiBn1C,EAAjBm1C,aAEzCnoF,EAAWC,cACR9N,EAAQgE,cAGTimC,EAAS6W,cAEXn+C,EAAQlD,OAAOk8E,OAAO,CAAC7zD,UAAU,GAAQ+4B,GAC7Cl+C,EAAM6vC,MAAQ,CAAC,EACf7vC,EAAM6vC,MAAMvI,OAASA,EAErB7hC,qBAAU,WAIT,GACE,IAGF,MAA4BlE,oBAA0B,IAAjB8xF,IAAsC,IAAbhzF,YAAiC,mBAAxFizF,EAAM,KAAEC,EAAS,KACxB,EAAwBhyF,mBAAS,IAAG,mBAA7BtE,EAAI,KAAEo9D,EAAO,KACpB,EAAwC94D,oBAAS,GAAK,mBAA/C+J,EAAY,KAAEC,EAAe,KACpC,EAAwBhK,mBAAS,IAAG,mBAA7B5B,EAAI,KAAE6zF,EAAO,KACpB,EAA0BjyF,oBAAS,GAA1BkyF,EAAgC,iBAAnB,GACtB,EAAgCnyF,IAAMC,SAAS,MAAK,mBAA7CujC,EAAQ,KAAEC,EAAW,KAC5B,EAAoCzjC,IAAMC,UAAS,GAAM,mBACzD,GADiB,KAAe,KACQD,IAAMC,SAAS,CACrD6P,KAAM,QACNsiF,UAAW,KACX,mBAHKC,EAAY,KAAEC,EAAe,KAIpC,EAAgCtyF,IAAMC,SAAS,IAAG,mBAA3CsyF,EAAQ,KAAEC,EAAW,KAC5B,GAA8BxyF,IAAMC,UACnB,IAAfskE,EAAsB,GAAK9kE,OAAOC,SAAS8U,MAC5C,qBAFMs1D,GAAO,MAAEC,GAAU,MAI1B,SAASz8B,GAAYnrC,GACnBshC,EAAYthC,EAAM6C,cACpB,CAMA,IAAMytF,GAAoB,CACxBx1F,gBAAiBlB,EAAME,QAAQM,aAC/BsE,UAAW,SACXM,SAAU,WACVpE,QAAS,GACTgY,WAAY,GACZlR,UAAW,GACbzG,UAAW,QAwCLs1F,GAAY,SAACC,GACjBtlF,MAAMrO,EAAY,gBAAkB2zF,EAAO,CACzCrlF,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,sBAGTzS,MAAK,SAAC2S,GAAQ,OAAKA,EAASE,MAAM,IAClC7S,MAAK,SAAC8S,GACL,GAAIA,EAAae,QAAS,CAQ7B,GAPKoqD,EAAQnrD,EAAasJ,QAEpBhK,SAAShN,WADDL,IAAV8yF,EACmB,qCAEA,WAAaA,EAAQ,sBAGhB9yF,IAAxB+N,EAAasJ,QAAgD,OAAxBtJ,EAAasJ,QAAmBtJ,EAAasJ,OAAOjP,SAAS,kBAErG,YADA2B,EAAS,SASL,QAL0B/J,IAAtB+N,EAAaglF,MACfN,EAAgB1kF,EAAaglF,WAKL/yF,IAAxB+N,EAAasJ,QACW,OAAxBtJ,EAAasJ,OACb,CACA,IAAMtO,EAAWgF,EAAasJ,OAAOnP,MAAM,MACvC8qF,EAAgB,GAChB5sD,GAAS,EACb,IAAK,IAAI19B,KAAOK,EAAU,CACxB,IAAMmmC,EAAOnmC,EAASL,GAEtB,GAAIwmC,EAAKtmC,cAAcR,SAAS,qBAC9Bg+B,GAAS,OAQX,GAJIA,GAAU8I,EAAKjoC,OAAS,IAC1Bm/B,GAAS,GAGPA,EAAQ,CACV,IAAM6sD,EAAa/jD,EAAKhnC,MAAM,MAC1B+qF,EAAWhsF,OAAS,GACtBgsF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGnwE,OAE9BmwE,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGlxF,WAAW,IAAK,IAC9CkxF,EAAW,GAAKA,EAAW,GAAGnwE,OAG9BkwE,EAAc5pF,KAAK,CACjB5M,KAAMy2F,EAAW,GACjBhjF,KAAMgjF,EAAW,MAGnB1vF,QAAQC,IAAI,yBAA0B0rC,EAE1C,CACF,CAEAyjD,EAAYK,EACd,CACF,MACE95B,EAAQ,oCAEZ,IACCzqD,OAAM,SAACC,GAAW,GACvB,EAEIvE,IACFC,GAAgB,GACXs6D,GACC9kE,OAAOupC,WAAa,KACtBipD,GAAU,QAIMpyF,IAAhBiyF,GACF/4B,EAAQ+4B,EAAY56E,QACpBg7E,EAAQJ,EAAYzzF,MACpB8zF,GAAc,IAET5tB,IAtHPl3D,MAAMrO,EAAY,eAAgB,CAChCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,sBAGTzS,MAAK,SAAC2S,GAAQ,OAAKA,EAASE,MAAM,IAClC7S,MAAK,SAAC8S,GACDA,EAAae,QACfujF,EAAQtkF,EAAavP,MAErB6zF,EAAQ,CACN,uEAGJC,GAAc,EAChB,IACC7jF,OAAM,SAACC,GAAW,SA6GU1O,IAA3BnB,EAAM6vC,MAAMvI,OAAOz9B,MAGtBnF,QAAQC,IAAI,UAAW3E,EAAM6vC,MAAMvI,OAAOz9B,KACtCmqF,GAAUh0F,EAAM6vC,MAAMvI,OAAOz9B,SAOjB,IAAfg8D,GAAuB9kE,OAAOC,SAAS8U,OAASs1D,KAClDC,GAAWtqE,OAAOC,SAAS8U,MAC3Bk+E,GAAUh0F,EAAM6vC,MAAMvI,OAAOz9B,OAqFZ,IAAfg8D,GAAuB9kE,OAAOC,SAASqzF,KAAKjsF,OAAS,GAlF9B,WACzB,IACI60D,EAASzuD,SAASsE,eAAe,0BACrC,GAAe,OAAXmqD,EAAiB,CAEnB,IAAIz2C,EAAWy2C,EAAOq3B,qBAAqB,MAErCzxF,EAAO9B,OAAOC,SAASqzF,KAC1B13F,MAAM,EAAGoE,OAAOC,SAASqzF,KAAKE,OAC9BxqF,cACAV,MAAM,OACNM,KAAK,KACLN,MAAM,KACNM,KAAK,KACLN,MAAM,KACNM,KAAK,KACTN,MAAM,KAAK,GAGNuxB,GAAQ,EACZ,IAAK,IAAI/wB,KAAO2c,EAAU,CACxB,IAAM8+C,EAAU9+C,EAAS3c,QACC1I,IAAtBmkE,EAAQphC,WAKRohC,EAAQphC,UAAUn6B,gBAAkBlH,IAEtCyiE,EAAQkvB,eAAe,CAAE9V,SAAU,WAKnC9jD,GAAQ,EAMZ,CAGA,IAAKA,EAIH,IAAK/wB,KADL+wB,GAAQ,EAFRpU,EAAWy2C,EAAOq3B,qBAAqB,MAGjB,CACpB,IAAMhvB,EAAU9+C,EAAS3c,QACC1I,IAAtBmkE,EAAQphC,WAKRohC,EAAQphC,UAAUn6B,gBAAkBlH,IACtCyiE,EAAQkvB,eAAe,CAAE9V,SAAU,WAKnC9jD,GAAQ,EAMZ,CAEJ,CAYF,CAGE65D,GAGF,IAAMC,GAAa,aACjBj2F,MAAO,4BACPiE,SAAU,SACV4T,cAAe,IACjBzP,OAAQ,OACRjI,SAAU,OACVoG,SAAU,QAAM,WACN,UAGV,SAAS2vF,GAAU30F,GACjB,OAAIA,EAAM8V,KAAKvM,SAAS,SAAWvJ,EAAM8V,KAAKvM,SAAS,UAEnD,mBACEuM,KAAM9V,EAAM8V,KACZ1Y,MAAO,CAAEqB,MAAO,UAAWkV,eAAgB,QAAS,SAEnD3T,EAAMuH,WAKX,cAAC,IAAI,CACHmM,GAAI1T,EAAM8V,KACV1Y,MAAO,CAAEqB,MAAO,UAAWkV,eAAgB,QAAS,SAEnD3T,EAAMuH,UAGb,CAEA,SAASqtF,GAAI50F,GACX,OAAO,qBAAK5C,MAAO,CAAEY,aAAcX,EAAME,QAAQS,aAAcY,SAAU,OAAQuG,UAAW,GAAIuJ,aAAc,IAAO7J,IAAK7E,EAAM6E,IAAKC,IAAK9E,EAAM8E,KAClJ,CAEA,SAAS+vF,GAAY70F,GACnB,OACE,qBACE5C,MAAO,CACLiB,QAAS,GACT2G,SAAU,MACVpG,SAAU,OACVL,gBAAiBlB,EAAME,QAAQO,WAC/BqE,UAAW,OACXD,UAAW,UACX,SAEF,+BAAOlC,EAAMuG,SAGnB,CAEA,IAAMuuF,GAAU,SAAC90F,GACf,IAAMslE,EAAUhkE,IAAM+P,cAAc,IAAD,OAC7BrR,EAAMulE,OACV,CAAEnoE,MAAO,CAAE+H,UAA2B,IAAhBnF,EAAMulE,MAAc,GAAK,KAC/CvlE,EAAMuH,UAER,EAA0BhG,oBAAS,GAAM,mBAA3B8iC,GAAF,KAAU,MAElB0wD,EAAY,GAkFhB,OAjFoB,IAAhB/0F,EAAMulE,QACRwvB,EACE,sBACE33F,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BO,QAAS,GACTL,aAAcX,EAAME,QAAQS,aAC5B0Q,aAAc,GACd9J,QAAS,QACT,UAEF,sBAAKxH,MAAO,CAAEiV,KAAM,EAAGzN,QAAS,OAAQowF,OAAQ,SAAUvyF,SAAU,SAAUiT,IAAK,IAAO,UACvF49E,EAAS,KACR,cAACruF,EAAA,EAAU,CAAC7H,MAAO,CAAEwH,QAAS,SAAUO,UAAW,GAAI,SACrD,mBACE0Q,IAAI,sBACJT,OAAO,SACPU,KAAM69E,EAAaviF,KACnBhU,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEpD,eAAC8U,EAAA,EAAM,CAACnW,MAAO,CAAC,EAAG8H,QAAQ,WAAU,UACnC,cAAC0O,GAAA,EAAQ,IAAG,uBAKnB0/E,EAAS,KACR,qBACEl2F,MAAO,CACL2I,OAAQ,OACRpD,MAAO,EACPpE,gBAAiB,QACjBI,WAAY,GACZmK,YAAa,MAInB,eAAC7D,EAAA,EAAU,CAAC7H,MAAO,CAAEwH,QAAS,SAAUO,UAAW,IAAK,UACrDwuF,EAAaD,UAAS,UACK,IAA3BC,EAAaD,UAAkB,GAAK,IAAG,iBAG5C,qBAAKt2F,MAAO,CAAEiV,KAAM,GAAI,SACrBihF,QAC6BnyF,IAA9BwyF,EAAasB,cACiB,OAA9BtB,EAAasB,aACX,GAEA,qBAAK73F,MAAO,CAAEyJ,OAAQ,GAAId,OAAQ,OAAQnB,QAAS,UAAW,SAC3D+uF,EAAasB,aAAat4F,MAAM,EAAG,GAAGd,KAAI,SAACoB,EAAMmF,GAAW,IAAD,EAC1D,OACE,sBAEEyT,IAAI,sBACJT,OAAO,SACPU,KAAM7Y,EAAKgU,KAAI,uBACR,UAAQ,sBACR,CAAE0C,eAAgB,OAAQlV,MAAO,YAAW,yBAEnD,cAACsU,GAAA,EAAO,CAACvR,MAAOvE,EAAKgU,IAAK2F,UAAU,SAAQ,SAC1C,qBACE/R,IAAK5H,EAAKgU,IACVnM,IAAK7H,EAAKyuB,MACVtuB,MAAO,CACL+H,UAAW,EACX2D,YAAa,GACb/C,OAAQ,GACR/H,aAAc,SAGV,GAlBhBoE,EAqBA,YASV,eAAC6C,EAAA,EAAU,CACT5B,YAAa,WACXghC,GAAS,EACX,EAAE,UAEe,IAAhBrkC,EAAMulE,MACL,cAACnvD,GAAA,EAAO,CACNhZ,MAAO,CACLuF,MAAO,MACPwC,UAAW,GACX5G,gBAAiBlB,EAAME,QAAQO,cAGjC,KACHwnE,EASAyvB,IAGP,EAYKG,GAAe,SAACl1F,GACrB,IAAOwB,EAAqBxB,EAArBwB,MAAOw5B,EAAch7B,EAAdg7B,KAAM5pB,EAAQpR,EAARoR,KAEpB,EAA0B7P,oBAAS,GAAM,mBAAlC6iC,EAAK,KAAEC,EAAQ,KAEtB,OACC,mBACCvuB,KAAM1E,EACFyE,IAAI,sBACJT,OAAO,SACPhY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,UAAW4T,KAAM,EAAGxL,OAAQ,IAAM,SAE9E,sBAAKzJ,MAAO,CAACoF,OAAQ4hC,EAAQ,UAAY,UAAWpmC,aAAcX,EAAME,QAAQS,aAAcqU,KAAM,EAAGjU,OAAQ,kCAAmCG,gBAAiB6lC,EAAQ/mC,EAAME,QAAQM,aAAeR,EAAME,QAAQO,WAAYO,QAAS,IAC1OkF,QAAS,SAACE,GACI,KAAT2N,QAAwBjQ,IAATiQ,GAClB3N,EAAMsE,iBACNrD,QAAQC,IAAI,kBACSxD,IAAjBJ,OAAOi7D,MACVj7D,OAAOi7D,MAAMC,IAAIC,iBAAiB,CAAEC,cAAe,SAEnDz3D,QAAQC,IAAI,oFAAqF5D,OAAOi7D,QAGzGt3D,QAAQC,IAAI,iBAAkByM,EAEhC,EAAG/N,YAAa,WACfghC,GAAS,EACV,EACA/gC,WAAY,WACX+gC,GAAS,EACV,EAAE,UAEDrJ,EACD,cAAC/1B,EAAA,EAAU,CAACC,QAAQ,QAAQ9H,MAAO,CAAC,EAAE,SACpCoE,QAKN,EA+BM2zF,GAAc,CACnBhwF,UAAW,IAGNiwF,GACL,sBAAKh4F,MAAK,aACTqB,MAAO,4BACP4T,KAAM,IACN3P,SAAU,SACV4T,cAAe,IACf3X,WAAY20F,EAAS,EAAI,GACzBnuF,UAAW,GACX5C,UAAW,SACXsE,OAAQ,QAAM,YACH,IACV,UACA,cAAC5B,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACmF,UAAW,UAAW,2BAGvD,sBAAKnF,MAAO,CAACwH,QAAS,OAAQO,UAAW,IAAM,UAC9C,cAAC+vF,GAAY,CAAC1zF,MAAM,kBAAkBw5B,KAAK,qBAAKl2B,IAAI,+BAA+B1H,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAIvE,OAAQ,GAAIJ,aAAcX,EAAME,QAAQS,kBAC1J,cAACk3F,GAAY,CAAC1zF,MAAM,oBAAoBw5B,KAAK,qBAAKl2B,IAAI,6BAA6B1H,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAIvE,OAAQ,GAAIJ,aAAcX,EAAME,QAAQS,gBAAoBoT,KAAK,kCAGpL,sBAAKhU,MAAO,CAACmF,UAAW,QAAQ,UAC/B,cAAC0C,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,sBAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,yCAAe,+KAA4K,cAAC,IAAI,CAACwO,GAAG,wBAAwBtW,MAAO61F,GAAW,6BAAuB,+BAGtQ,cAAChuF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,0BAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,gDAAsB,kJAA+I,mBAAG4Q,KAAK,uCAAuCV,OAAO,SAAShY,MAAO61F,GAAW,2BAAkB,oIAGzQ,cAAChuF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,sBAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,4CAAkB,yIAAsI,mBAAG4Q,KAAK,uCAAuCV,OAAO,SAAShY,MAAO61F,GAAW,+CAAsC,8IAA2I,mBAAGn9E,KAAK,wCAAwCV,OAAO,SAAShY,MAAO61F,GAAW,sBAAa,OAG1f,cAAChuF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,kBAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,uCAAa,qRAGd,cAACD,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,+BAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,uCAAa,wEAAqE,cAAC,IAAI,CAACwO,GAAG,mBAAmBtW,MAAO61F,GAAW,6BAAuB,+GAGxJ,cAAChuF,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO+3F,GAAY,8BAC5C,eAAClwF,EAAA,EAAU,CAACC,QAAQ,QAAO,UAC1B,0CAAgB,oMAyDdmwF,QACKl0F,IAATxB,GAA+B,OAATA,EAAgB,KACpC,sBAAKvC,MAAO41F,GAAK,UACf,qBAAK51F,MA/lBK,CACd4H,SAAU,IACVpG,SAAU,IACZy7B,YAAa,kCACb9T,KAAM,EACN9jB,SAAU,SACViT,IAAK,GACLhX,UAAW,OACXuD,UAAW,OACXE,UAAW,SACXD,UAAW,OACXiF,OAAQ,KAolBkB,SAClB,cAAChE,EAAA,EAAK,CAAC/F,MAAO22F,GAAkB,SAC9B,cAACvyE,EAAA,EAAI,CAACpkB,MAAO,CAAEk4F,UAAW,OAAQvsF,YAAa,KAAM,SAClDpJ,EAAK9D,KAAI,SAACoB,EAAMmF,GACf,IAAMoQ,EAAOvV,EAAK4F,KAClB,QAAa1B,IAATqR,EACF,OAAO,KAGT,IAAMtJ,EAAO,SAAWsJ,EAClBu9B,EACJv9B,EAAKzP,OAAO,GAAGC,cACfwP,EAAKvP,UAAU,GAAGoG,MAAM,KAAKM,KAAK,KAAKN,MAAM,KAAKM,KAAK,KAEnD4rF,OAA0Cp0F,IAA3BnB,EAAM6vC,MAAMvI,OAAOz9B,KACtC7J,EAAM6vC,MAAMvI,OAAOz9B,IAAIE,gBAAkByI,EAAKzI,cAEhD,OACE,qBAAgB3M,MAAO,CAAE+H,UAAW,IAAK,UACvC,cAAC,IAAI,CAEH/H,MAAO+qE,GACPz0D,GAAIxK,EACJ3F,QAAS,WACPuwF,EAAY,IACZE,GAAUxhF,EACZ,EAAE,SAEF,cAACvN,EAAA,EAAU,CACT7H,MAAO,CAAEqB,MAAO82F,EAAe,UAAY,WAC3CrwF,QAAQ,QAAO,SAEf,mCAAM6qC,QAZH3tC,GAeNmzF,GACY,OAAb1B,QACa1yF,IAAb0yF,GACAA,EAASzrF,OAAS,EAChB,qBAAKhL,MAAO,CAAEuB,WAAY,GAAI,SAC3Bk1F,EAASh4F,KAAI,SAACoB,EAAMmF,GAGnB,OACE,cAAC,IAAI,CAEHhF,MAAO81F,GACPx/E,GAAIzW,EAAKmU,KACT7N,QAAS,WAAO,EAAE,SAElB,eAAC0B,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEoF,OAAQ,WAAY,eAE1BvF,EAAKU,SATLyE,EAaX,MAEA,OA1CGA,EA6Cb,UAIV,qBAAKhF,MAAO,CAACwB,SAAU,IAAKoG,SAAU,IAAK6B,OAAQ,OAAQnE,SAAU,SAAUyC,UAAW,IAAM,cACnEhE,IAA3BnB,EAAM6vC,MAAMvI,OAAOz9B,IACnBurF,GAEA,qBAAK34F,GAAG,yBAAyBW,MAAOs3F,GAAc,SACrD,cAAC,KAAa,CACbj4F,GAAG,mBACH0oE,YAAY,EACZp8C,OAAQ9rB,EACRG,MAAO,CAACwB,SAAU,OAAQoG,SAAU,QACpCogE,UAAW,CACVh0D,KAAMujF,GACNjpE,MAAOkpE,GACPr4F,KAAMs4F,GACNxvB,QAASyvB,aAmBVU,QACKr0F,IAATxB,GAA+B,OAATA,EAAgB,KACpC,sBAAKvC,MAZW,CAClBqB,MAAO,QACPE,WAAY,GACZmK,YAAa,GACbwN,cAAe,GACf/X,gBAAiB,UACjBqG,QAAS,OACT2N,cAAe,UAKW,UACtB,gCACE,cAACgB,EAAA,EAAM,CACL1N,WAAS,EACT,gBAAc,cACd,gBAAc,OACdX,QAAQ,WACRzG,MAAM,UACN8E,QAASqrC,GAAY,SAErB,qBAAKxxC,MAAO,CAAEqB,MAAO,SAAU,yBAEjC,cAAC2mC,GAAA,EAAI,CACH3oC,GAAG,cACHqoC,SAAUA,EACV1nC,MAAO,CAAC,EACRioC,aAAW,EACX3rB,KAAMo0B,QAAQhJ,GACdnrB,QAtuBV,WACEorB,EAAY,KACd,EAouB+B,SAEpBplC,EAAK9D,KAAI,SAACoB,EAAMmF,GACf,IAAMoQ,EAAOvV,EAAK4F,KAClB,QAAa1B,IAATqR,EACF,OAAO,KAGT,IAAMtJ,EAAO,SAAWsJ,EAClBu9B,EACJv9B,EAAKzP,OAAO,GAAGC,cACfwP,EAAKvP,UAAU,GAAGoG,MAAM,KAAKM,KAAK,KAAKN,MAAM,KAAKM,KAAK,KACzD,OACE,cAACgL,GAAA,EAAQ,CAEPvX,MAAO,CAAEqB,MAAO,SAChB8E,QAAS,WACPxC,OAAOC,SAASgP,SAAW9G,CAC7B,EAAE,SAED6mC,GANI3tC,EASX,cAGoBjB,IAA3BnB,EAAM6vC,MAAMvI,OAAOz9B,IACnBurF,GAEA,qBAAK34F,GAAG,yBAAyBW,MAAOs3F,GAAc,SACrD,cAAC,KAAa,CACbj4F,GAAG,mBACH0oE,YAAY,EACZp8C,OAAQ9rB,EACRmoE,UAAW,CACVh0D,KAAMujF,GACNjpE,MAAOkpE,GACPr4F,KAAMs4F,GACNxvB,QAASyvB,QAKT,cAAC1+E,GAAA,EAAO,CACNhZ,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACdnQ,gBA90BS,wBAi1Bb,cAACgV,EAAA,EAAM,CACL1N,WAAS,EACT,gBAAc,cACd,gBAAc,OACdX,QAAQ,WACRzG,MAAM,UACN8E,QAASqrC,GAAY,SAErB,qBAAKxxC,MAAO,CAAEqB,MAAO,SAAU,4BAYjC4rC,GACJ,sBAAKjtC,MAAO,CAACsB,UAAW,IAAM4X,cAAe,IAAKnP,OAAQ,KAAS,UACjE,cAAC,cAAW,UAAEkuF,KACd,cAAC,aAAU,UAAEG,QAIjB,OAAO,qBAAKp4F,MAAO,CAAC,EAAE,SAAEitC,IAC1B,E,sBCvrBenN,GAjNG,SAACghB,GAC2BA,EAApC59C,UAAoC49C,EAAzBpzC,WAAyBozC,EAAbnzC,SADI,IAAD,EAG5B1N,EAAQgE,cACTimC,EAAS6W,cACXn+C,EAAQqQ,KAAKC,MAAMD,KAAKS,UAAUotC,IACtCl+C,EAAM6vC,MAAQ,CAAC,EACf7vC,EAAM6vC,MAAMvI,OAASA,EAEpB,MAA8B/lC,mBAAS,GAAE,mBAAlCk0F,EAAO,KAAEC,EAAU,KAC1B,EAAwCn0F,oBAAS,GAAK,mBAA/C+J,EAAY,KAAEC,EAAe,KACpC,EAA0ChK,mBAAS,IAAG,mBAA/Co0F,EAAa,KAAEC,EAAgB,KAEhCC,EAAY,CAChB,CACEr0F,MAAO,UACP8V,QAAS,sCACTw+E,SAAU,CACR,CACEjzF,KAAM,SACNkzF,SAAU,iCAEZ,CACElzF,KAAM,UACNkzF,SAAU,0BAEZ,CACElzF,KAAM,eACNkzF,SAAU,UAIhB,CACEv0F,MAAO,YACPs0F,SAAU,CACR,CACEjzF,KAAM,SACNkzF,SAAU,iCAEZ,CACElzF,KAAM,UACNkzF,SAAU,0BAEZ,CACElzF,KAAM,eACNkzF,SAAU,UAIhB,CACEv0F,MAAO,eACPs0F,SAAU,CACR,CACEjzF,KAAM,SACNkzF,SAAU,iCAEZ,CACElzF,KAAM,UACNkzF,SAAU,0BAEZ,CACElzF,KAAM,eACNkzF,SAAU,WAMlB,GAAIzqF,IACFC,GAAgB,GACZvL,EAAM6vC,MAAMvI,OAAOz9B,KAAK,CAC1BnF,QAAQC,IAAI,UAAW3E,EAAM6vC,MAAMvI,OAAOz9B,KAC1C,IAAMmsF,EAAWH,EAAUvgF,MACzB,SAAC9C,GAAI,OACHA,EAAKhR,MAAMuI,gBAAkB/J,EAAM6vC,MAAMvI,OAAOz9B,IAAIE,aAAa,SAEpD5I,IAAb60F,GAAuC,OAAbA,GAC5BN,EAAW,EAGf,CAGF,IAAMO,EAAmB,CACvBlwF,OAAQ,OACRpD,MAAO,OACPtE,QAAS,IAQLgE,GAAU,GACd0D,OAAQ,IACRtH,MAAO,QACPF,gBAAiBlB,EAAME,QAAQM,cAAY,sBACpC,SAAO,uBACN,WAAS,wBACR,QAAM,0BACJ,UAAQ,GAiDfq4F,EACQ,IAAZT,EACE,gCACE,cAACxwF,EAAA,EAAU,CAACC,QAAQ,KAAI,yCACxB,cAACpD,EAAA,EAAI,CAACC,WAAS,EAAC3E,MAjEA,CACpBuF,MAAO,OACPwC,UAAW,IA+D+BnD,QAAS,EAAE,SAC9C6zF,EAAUh6F,KAAI,SAACoB,GACd,OApDc,SAACA,GACvB,MAAgCsE,oBAAS,GAAM,mBAAxC4jB,EAAQ,KAAEgxE,EAAW,KAExBC,EAAY/lF,KAAKC,MAAMD,KAAKS,UAAUzO,IAM1C,OALI8iB,IACFixE,EAAU73F,gBAAkB,QAC5B63F,EAAU33F,MAAQ,SAIlB,cAACqD,EAAA,EAAI,CACH0Q,MAAI,EACJpR,GAAI,EACJmC,QAAS,WAEP,GADAmB,QAAQC,IAAIgxF,GACRxwE,EAAU,CACZ,IAAM/iB,EAAQuzF,EAAcr3E,WAC1B,SAAC9L,GAAI,OAAKA,EAAKhR,QAAUvE,EAAKuE,KAAK,IAEjCY,GAAS,IACXuzF,EAAcx8D,OAAO/2B,EAAO,GAC5BwzF,EAAiBD,GAErB,MACEA,EAAcprF,KAAKtN,GACnB24F,EAAiBD,GAGnBQ,GAAahxE,EAKf,EAAE,SAEF,cAAC+gD,GAAA,EAAI,CAAC9oE,MAAOg5F,EAAU,SACrB,cAAC,KAAc,CAACh5F,MAAO64F,EAAiB,SACtC,cAACI,GAAA,EAAW,UACV,cAACpxF,EAAA,EAAU,CAACC,QAAQ,KAAI,SAAEjI,EAAKuE,eAM3C,CAQiB80F,CAAgBr5F,EACzB,SAUF,KAEAs5F,EACQ,IAAZd,EACE,8BACE,cAACxwF,EAAA,EAAU,CAACC,QAAQ,KAAI,uBAyBxB,KAEAsxF,EACJ,sBAAKp5F,MAAO,CAAEwB,SAAU,KAAMiI,OAAQ,OAAQwP,WAAY,IAAK,UAC5D6/E,EACAK,KAIL,OAAO,8BAAMC,GACf,ECuGeC,GA7TW,SAACz2F,GACzB,IAAQM,EAAcN,EAAdM,UAER,EAAwCiB,oBAAS,GAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAAgCjnB,oBAAS,GAAM,mBAAxCqe,EAAQ,KAAE82E,EAAW,KAC5B,EAAgCn1F,mBAAS,IAAG,mBAArCwN,EAAQ,KAAE4nF,EAAW,KAC5B,EAA4Bp1F,oBAAS,GAAM,mBAApCq1F,EAAM,KAAEC,EAAS,KAExB,GAAItuE,EAAc,CAChBC,GAAgB,GAIhB,IAAMwyD,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QACtDuwB,EAASxqC,OAAOo+E,YAAYF,EAAgBpxE,WACpDlF,QAAQC,IAAI,WAAY2iC,GAGtB,IAAI3hB,EAAc,CAChB/hB,MAAO,GACP0L,IAAK,CACHzM,KAAM,GACNpG,GAAI,GACJ0V,YAAa,IAEfoR,OAAQ,GACR3lB,KAAM,eAGOuD,IAAXJ,QAAmC,OAAXA,QAE1B4kB,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,eACLtD,MAAOxF,OAAOC,SAAS28D,OAAS58D,OAAOC,SAASgP,gBAKvB7O,IAAzBmmC,EAAOwvD,eAAwD,OAAzBxvD,EAAOwvD,eAC/CnxE,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,gBACLtD,MAAO+gC,EAAOwvD,gBAIpB,IAAIC,EAAe,CAClBC,gBAAgB,EAChBlJ,KAAM,GACNlwF,KAAM,GACNrB,KAAM,SAGe4E,IAAhBmmC,EAAO/qC,MAAsC,OAAhB+qC,EAAO/qC,OACtCopB,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,OAAQtD,MAAO+gC,EAAO/qC,OACxDw6F,EAAax6F,KAAO+qC,EAAO/qC,MAG5B,IAAI06F,EAAa,GACf,QAAqB91F,IAAjBmmC,EAAOhjB,OAAwC,OAAjBgjB,EAAOhjB,MAAgB,CACvD,IAAMqqD,EAAarnC,EAAOhjB,MAAMjb,MAAM,KAEtC,IAAK,IAAIQ,KADTnF,QAAQC,IAAIgqE,GACIA,EAAY,CAC1B,IAAMsF,EAAQtF,EAAW9kE,GAAKR,MAAM,KACpC3E,QAAQC,IAAI,QAASkF,EAAKoqE,GAC1BA,EAAM7rE,OAAS,IACD,SAAb6rE,EAAM,IAA8B,WAAbA,EAAM,KAChC8iB,EAAaC,gBAAiB,EAC9BD,EAAan5F,KAAO,UAGJ,aAAbq2E,EAAM,IAAkC,SAAbA,EAAM,KACpC8iB,EAAajJ,KAAO7Z,EAAM,KAIH,IAAjBA,EAAM7rE,QAKO,gBAAb6rE,EAAM,KACRtuD,EAAYuxE,mBAAqBjjB,EAAM,IAGrCA,EAAM,GAIO,aAAbA,EAAM,KACRtuD,EAAYrW,IAAIzM,KAAOoxE,EAAM,GAC7BtuD,EAAY/hB,MAAQ,cAAgBqwE,EAAM,IAG3B,WAAbA,EAAM,KACRtuD,EAAYrW,IAAI7S,GAAKw3E,EAAM,IAGZ,gBAAbA,EAAM,KACRtuD,EAAYrW,IAAI6C,YAAc8hE,EAAM,IAGrB,uBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,qBACLtD,MAAO0tE,EAAM,KAIA,UAAbA,EAAM,KACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,QAAStD,MAAO0tE,EAAM,KAC1DgjB,EAAahjB,EAAM,IAGC,cAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,YAAatD,MAAO0tE,EAAM,KAG1C,kBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,gBAAiBtD,MAAO0tE,EAAM,KAG9C,cAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,YAAatD,MAAO0tE,EAAM,KAG1C,gBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,cAAetD,MAAO0tE,EAAM,KAG5C,gBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,cAAetD,MAAO0tE,EAAM,MAtD3DvvE,QAAQC,IAAI,kBAAmBsvE,EAwDnC,CACF,MAEiB9yE,IAAf81F,GAA2C,OAAfA,GAAuBA,EAAW7uF,OAAS,IAC1Eud,EAAY/hB,MAAK,UAAMqzF,IAGxB,IAAIhc,EAAW3zC,EAAc,MAC7B,GAAiB,OAAb2zC,QAAkC95E,IAAb85E,GAA0BA,EAAS7yE,OAAS,EAAG,CACvE1D,QAAQC,IAAI,gBAAiBs2E,EAAU,kDACvC,IAAIkc,EAAY7vD,EAA0B,kBACxB,OAAd6vD,QAAoCh2F,IAAdg2F,GAA2BA,EAAU/uF,OAAS,IACvE6yE,GAAY,OAAOkc,GAGpBN,GAAU,GACVF,EAAY,GAAD,OAAI1b,GAChB,KAAO,CACN,GAAI8b,EAAaC,eAqEhB,OApECtyF,QAAQC,IAAI,mBAAoBoyF,QAEhCpoF,MAAMrO,EAAY,mCAAoC,CACrDsO,OAAQ,MACR3K,QAAS,CACR,eAAgB,mBAChB4K,OAAQ,oBAETC,YAAa,UACbyB,KAAMF,KAAKS,UAAUimF,KAErB36F,MAAK,SAAC2S,GACL,IAAMzB,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OAClG6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,SAmBpD,YAjBcjlD,IAAZyhC,GACY,OAAZA,GACAA,EAAQx6B,OAAS,GAEjB1D,QAAQC,IAAI,gCAAiCi+B,GAGvB,MAApB7zB,EAASC,QACZtK,QAAQC,IAAI,4CACZkyF,GAAU,IAEVH,GAAY,GAMN3nF,EAASE,MACjB,IACC7S,MAAK,SAAC8S,GAIN,GAFAxK,QAAQC,IAAI,SAAUuK,QAEM/N,IAAxB+N,EAAasJ,OAChBm+E,EAAYznF,EAAasJ,QACzBk+E,GAAY,OAEN,CACN,IAAMppF,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OACpG6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,2BAEpCjlD,IAAZyhC,GACY,OAAZA,GACAA,EAAQx6B,OAAS,QAMJjH,KAFbyhC,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,WAGhC,OAAZxjB,GACAA,EAAQx6B,OAAS,IANlBuuF,EAAY/zD,EAWd,CAED,IACChzB,OAAM,SAACC,GACPnL,QAAQC,IAAIkL,EACb,IAKAlB,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,UACbyB,KAAMF,KAAKS,UAAU6U,KAEpBvpB,MAAK,SAAC2S,GACH,IAAMzB,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OACvG6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,SAmBhD,YAjBcjlD,IAAZyhC,GACY,OAAZA,GACAA,EAAQx6B,OAAS,GAErB1D,QAAQC,IAAI,gCAAiCi+B,GAGnB,MAApB7zB,EAASC,QACXtK,QAAQC,IAAI,4CACZkyF,GAAU,KAEXH,GAAY,GAChB38E,YAAW,WACVhZ,OAAOq7B,OACR,GAAG,OAGOrtB,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAET,QAA4B/N,IAAxB+N,EAAasJ,OACZm+E,EAAYznF,EAAasJ,QACzBk+E,GAAY,OAEV,CACD,IAAMppF,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OACzG6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,2BAEhCjlD,IAAZyhC,GACY,OAAZA,GACAA,EAAQx6B,OAAS,QAMJjH,KAFjByhC,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,WAG5B,OAAZxjB,GACAA,EAAQx6B,OAAS,IANtBuuF,EAAY/zD,EAWd,CAEE,IACChzB,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,GACJ,CACD,CAEA,OACE,sBAAKzS,MAAO,CAAEg6F,UAAW,GAAI/4F,QAAS,GAAID,OAAQ,kCAAmCJ,aAAcX,EAAME,QAAQS,aAAe2E,MAAO,IAAKkE,OAAQ,OAAQ4/D,UAAW,SAAUlkE,UAAW,UAAW,UACrM,cAAC0C,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEuB,WAAY,OAAQmK,YAAa,OAAQ3D,UAAW,IAAI,0BAInE,eAACF,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEuB,WAAY,OAAQmK,YAAa,OAAQ3D,UAAW,IAAI,UAE/Dya,EAKA,oDAJLg3E,EACC,KACK,cAAC3+E,EAAA,EAAgB,IAIpB,wBACC2+E,EAAS,wBAA0B,GAAE,IAAG7nF,EAC7C,uBACA,uBACK6nF,EAAS,wJAA0J,QAI5K,ECnKeH,GAzJW,SAACz2F,GACzB,IAAQM,EAAcN,EAAdM,UAER,EAAwCiB,oBAAS,GAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAAgCjnB,oBAAS,GAAM,mBAAxCqe,EAAQ,KAAE82E,EAAW,KAC5B,EAAgCn1F,mBAAS,IAAG,mBAArCwN,EAAQ,KAAE4nF,EAAW,KAC5B,EAA4Bp1F,oBAAS,GAAM,mBAApCq1F,EAAM,KAAEC,EAAS,KAExB,GAAItuE,EAAc,CAChBC,GAAgB,GAIhB,IAAMwyD,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QACtDuwB,EAASxqC,OAAOo+E,YAAYF,EAAgBpxE,WAG9C+b,EAAc,CAChB/hB,MAAO,GACP0L,IAAK,CACHzM,KAAM,GACNpG,GAAI,GACJ0V,YAAa,IAEfoR,OAAQ,GACR3lB,KAAM,UAsBR,QAnBeuD,IAAXJ,QAAmC,OAAXA,SAC1B2D,QAAQC,IAAI5D,OAAOC,UACnB2kB,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,eACLtD,MAAOxF,OAAOC,SAAS28D,OAAS58D,OAAOC,SAASgP,iBAIhC7O,IAAhBmmC,EAAO/qC,MAAsC,OAAhB+qC,EAAO/qC,MACtCopB,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,OAAQtD,MAAO+gC,EAAO/qC,YAG1B4E,IAAzBmmC,EAAOwvD,eAAwD,OAAzBxvD,EAAOwvD,eAC/CnxE,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,gBACLtD,MAAO+gC,EAAOwvD,qBAIG31F,IAAjBmmC,EAAOhjB,OAAwC,OAAjBgjB,EAAOhjB,MAAgB,CACvD,IAAMqqD,EAAarnC,EAAOhjB,MAAMjb,MAAM,KAEtC,IAAK,IAAIQ,KADTnF,QAAQC,IAAIgqE,GACIA,EAAY,CAC1B,IAAMsF,EAAQtF,EAAW9kE,GAAKR,MAAM,KACpC3E,QAAQC,IAAIsvE,GAES,IAAjBA,EAAM7rE,QAKO,gBAAb6rE,EAAM,KACRtuD,EAAYuxE,mBAAqBjjB,EAAM,IAGrCA,EAAM,GAIO,aAAbA,EAAM,KACRtuD,EAAYrW,IAAIzM,KAAOoxE,EAAM,GAC7BtuD,EAAY/hB,MAAQ,cAAgBqwE,EAAM,IAG3B,WAAbA,EAAM,KACRtuD,EAAYrW,IAAI7S,GAAKw3E,EAAM,IAGZ,gBAAbA,EAAM,KACRtuD,EAAYrW,IAAI6C,YAAc8hE,EAAM,IAGrB,uBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CACtBV,IAAK,qBACLtD,MAAO0tE,EAAM,KAIA,UAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,QAAStD,MAAO0tE,EAAM,KAGtC,cAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,YAAatD,MAAO0tE,EAAM,KAG1C,kBAAbA,EAAM,IACRtuD,EAAYpC,OAAOhZ,KAAK,CAAEV,IAAK,gBAAiBtD,MAAO0tE,EAAM,MAzC7DvvE,QAAQC,IAAI,kBAAmBsvE,EA2CnC,CACF,CAEAvvE,QAAQC,IAAIghB,GAEZhX,MAAMrO,EAAY,8BAA+B,CAC/CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,UACbyB,KAAMF,KAAKS,UAAU6U,KAEpBvpB,MAAK,SAAC2S,GAML,OALwB,MAApBA,EAASC,SACXtK,QAAQC,IAAI,4CACZkyF,GAAU,IAGL9nF,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GAELxK,QAAQC,IAAI,SAAUuK,GACtBwnF,GAAY,GACZC,EAAYznF,EAAasJ,QAEzBuB,YAAW,WACThZ,OAAOq7B,OACT,GAAG,IACL,IACCxsB,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,GACJ,CAEA,OACE,qBAAKzS,MAAO,CAAEuF,MAAO,IAAMkE,OAAQ,OAAQ4/D,UAAW,UAAW,SAC/D,eAACxhE,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CAAEuB,WAAY,OAAQmK,YAAa,OAAQ3D,UAAW,KAAM,UAEjEya,EAGA,0CAFA,cAAC3H,EAAA,EAAgB,IAInB,wBACC2+E,EAAS,wBAA0B,GAAE,IAAG7nF,MAIjD,E,sBClIMlP,GAAeC,KAAc,aAAc,oCAgWlCu3F,GA9VC,SAAAr3F,GACf,IAAQC,EAAgFD,EAAhFC,QAASE,EAAuEH,EAAvEG,SAAUC,EAA6DJ,EAA7DI,eAAgBC,EAA6CL,EAA7CK,SAAUC,EAAmCN,EAAnCM,UAAWJ,EAAwBF,EAAxBE,SAAUU,EAAcZ,EAAdY,SAEnEC,EACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAEbC,OAAyBC,IAAZlB,GAAqC,OAAZA,EAAmB,GAAKA,EAC9DmB,OAAkBD,IAAbjB,GAAuC,OAAbA,EAAoBG,EAAW,EAAI,EAAIH,EACtE7C,EAAQgE,cAGd,EAAgCC,IAAMC,SAAS,IAAG,mBAA3C+1F,EAAQ,KAAEC,EAAW,KAC5B,EAA8Bj2F,IAAMC,SAAS,IAAG,mBAAzCi2F,EAAO,KAAEC,EAAU,KAC1B,EAAsCn2F,IAAMC,SAAS,IAAG,mBAAjDm2F,EAAW,KAAEC,EAAc,KAE5B7b,EAAc,CAAC99E,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,IAAKkE,OAAQxG,EAAW,sBAAwB,GAAIxB,SAAU,IAIxHkC,OAAOS,MAAQ,8CAEf,IAoFIonC,GAAiB,GAsIfxjC,EAAkBC,aApLN,SAAH,GAAuD,IAAlDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAa9C,OAZAC,qBAAU,WACT,QAAetE,IAAXJ,aAA4CI,IAApBJ,OAAOC,eAAqDG,IAA3BJ,OAAOC,SAAS+V,QAAmD,OAA3BhW,OAAOC,SAAS+V,OAAiB,CACrI,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDgqE,EADSjkF,OAAOo+E,YAAYF,EAAgBpxE,WACrB,EACV,OAAfm3E,QAAsC5/E,IAAf4/E,IAC1Br8E,QAAQC,IAAI,cAAeo8E,GAC3Bx7E,EAAOw7E,GAET,CACD,GAAG,IAGD,sBAAMr7E,YAAU,EAAC/B,OAAO,GAAGgC,KAAK,SAAQ,SACxC,cAACC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aA1DlC,EA0D8D6I,OAAQ,GAAIlE,MAAO,QAClGmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,IAETC,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN0H,aAAcb,EACdc,YAAY,eACZ3J,GAAG,uBACH4J,SAAU,SAAC5C,GACV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAKX,IAyIMC,EAAaC,aAtIN,SAAH,GAA4B,IAAtBhF,EAAI,EAAJA,KACf,GAD6B,EAARk2F,SACyBr2F,oBAAU,IAAE,mBAAnDI,EAAe,KAAEC,EAAkB,KACtCC,EAAU,EAgBd,OAFA6C,QAAQC,IAAI,cAGX,cAAC7C,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAE,SACzBN,EAAK7F,KAAI,SAACoB,EAAMmF,GAEhBwmC,GAAiB,GAEjB,IAAMvmC,EAAa,CAClB9D,gBAAiB6D,IAAUT,EAAkB,wBAA0BtE,EAAME,QAAQO,WACrFW,MAAO2D,IAAUT,EAAkBtE,EAAME,QAAQO,WAAa,wBAC9DM,OAAO,aAAD,OApHQ,0BAqHdC,QAAS,GACTmE,OAAQ,UACRC,SAAU,WACV/D,UAAW,KAGZ,GAAImD,IAAY,GAAGT,EAAGF,EACrB,OAAO,KAGRW,GAAW,EAEX,IADA,IAAIe,EAAa,GACRiH,EAAM,EAAGA,EAAM5M,EAAK4F,KAAKuF,OAAQyB,IAAO,CAChD,IAAIguF,EAAY56F,EAAK4F,KAAKE,OAAO8G,GAC7BguF,IAAcA,EAAU70F,qBAEK7B,IAA5BlE,EAAK4F,KAAKE,OAAO8G,EAAI,IAAoB5M,EAAK4F,KAAKE,OAAO8G,EAAI,KAAO5M,EAAK4F,KAAKE,OAAO8G,EAAI,GAAG7G,gBAEhGJ,GAAc,MAIhBA,GAAci1F,CACf,CAEAj1F,GAAcA,EAAWG,OAAO,GAAGC,cAAcJ,EAAWK,UAAU,IAAIC,WAAW,IAAK,KAC1F,IAAM40F,EAASj3F,EAAO,gBAAY5D,EAAKqF,SAAQ,oBAAYrF,EAAKy7D,WAAS,mCAAiCz7D,EAAKqF,SAAQ,oBAAYrF,EAAKy7D,WACxI,OACC,cAACtgD,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKswB,EAAa,OAAO,SAC5E,cAAC9mC,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAIA,EAAG,SACjB,mBAAG0U,KAAMgiF,EAAQjiF,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAW,SAC5G,eAAC0E,EAAA,EAAK,CAACC,UAAW,EAAGhG,MAAOiF,EAAYgB,YAAa,WACpDzB,EAAmBQ,EAQpB,EAAGkB,WAAY,WACd1B,GAAoB,EACrB,EAAG2B,QAAS,WACP1C,GACH2C,IAAQC,MAAM,CACbC,SAAU,gBACVC,OAAO,OAAD,OAASf,EAAU,YAAI3F,EAAKR,GAAE,UACpCmH,MAAO,KAKTc,QAAQC,IAAI9E,IACZgE,IAAG,OAAQ,CACVC,MAAOjE,GAAaiE,MACpBC,OAAQlE,GAAamE,YAAYoiE,gBAAgB,uBAGlD,IAAMliE,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,QACXC,UAAW,kBACXlC,MAAO,YACPmC,UAAW,CAACtH,EAAKqF,UACjB4B,UAAWA,EACXM,QAASvH,EAAKy7D,UACd2N,UAAW,CAACppE,EAAKqpE,YACjB7hE,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,KAItH,EAAE,UACD,cAAC6V,GAAA,EAAU,CAAClV,MAAO,CAACiB,QAAS,EAAGL,aAAc,EAAGU,UAAW,IAAKsG,SAAU,KAAM,SAChF,qBAAKH,IAAK5H,EAAK4F,KAAMiC,IAAK7H,EAAK8H,UAAW3H,MAAO,CAACuF,MAAO,OAAQ/D,SAAU,IAAKoG,SAAU,IAAKtG,UAAW,IAAKuD,UAAW,IAAK2C,QAAS,QAASiC,OAAQ,cAE1J,wBACCzE,IAAUT,IAAgC,IAAbxB,EAC7ByC,EAEA,KAEA3F,EAAKwS,UACL,cAACsD,GAAA,EAAO,CAACvR,MAAO,0BAA2BpE,MAAO,CAAC+H,UAAW,OAAQxC,MAAO,QAAS,aAAY1F,EAAK4F,KAAK,SAC1G5F,EAAKoS,QACL,cAAC0oF,GAAA,EAAc,CAAC36F,MAAO,CAACqF,SAAU,WAAYiT,IAAK,EAAG6Q,KAAM,EAAGxgB,OAAQ,GAAIpD,MAAO,GAAIlE,MAAOpB,EAAME,QAAQC,QAAQC,QAEnH,cAACs6F,GAAA,EAAc,CAAC36F,MAAO,CAACqF,SAAU,WAAYiT,IAAK,EAAG6Q,KAAM,EAAGxgB,OAAQ,GAAIpD,MAAO,GAAIlE,MAAQ,8BAIhG,cAACsU,GAAA,EAAO,CAACvR,MAAO,mCAAoCpE,MAAO,CAAC+H,UAAW,OAAQxC,MAAO,QAAS,aAAY1F,EAAK4F,KAAK,SACpH,cAACm1F,GAAA,EAAQ,CAAC56F,MAAO,CAACqF,SAAU,WAAYiT,IAAK,EAAG6Q,KAAM,EAAGxgB,OAAQ,GAAIpD,MAAO,GAAIlE,MAAQ,oCA/DrE2D,IADdA,EAwEb,KAGH,IAWA,OACC,qBAAKhF,MAAO,CAACuF,MAAO,OAAQJ,UAAW,SAAUE,SAAU,WAAYsD,OAAQ,OAAQnB,QAAS,QAAQ,SAoBvG,sBAAKxH,MAAO,CAACuF,MAAO,OAAQF,SAAU,WAAYsD,OAAQ,QAAS,UAClE,eAACY,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,YAAW,UAC/D,qBAAKxJ,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAW,GAAIuJ,aAAc,IAAM,SAC9E,cAACtJ,EAAe,MAEjB,cAACqB,EAAU,CAACK,YAAa,IACxB,cAAC+/D,GAAA,EAAS,CAACC,gBAAc,QAEP,IAAnB1mE,EACA,sBAAKhD,MAAO,CAACiZ,WAAY,EAAGzX,SAAUyB,EAAW,OAAS,MAAOwG,OAAQ,QAAQ,UAChF,cAAC5B,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,QAAS0G,UAAW,IAAK,iDAGjE,sBAAK/H,MAAO,CAACiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,MAAOhQ,UAAW,UAAW,UACpF,cAACqD,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBlB,EAAME,QAAQO,YACvEgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,mBACZxI,KAAK,QACJnB,GAAG,gBACJyJ,aAAa,QACbW,OAAO,SACP3B,QAAQ,WACHmB,SAAU,SAAAhK,GAAC,OAAIk7F,EAAYl7F,EAAE+Y,OAAO7O,MAAM,IAEhD,cAACX,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAK9T,gBAAiBlB,EAAME,QAAQO,YAClDgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,gCACZxI,KAAK,GACJnB,GAAG,oBACJoK,OAAO,SACP3B,QAAQ,WACRgB,aAAa,MACTG,SAAU,SAAAhK,GAAC,OAAIo7F,EAAWp7F,EAAE+Y,OAAO7O,MAAM,OAG/C,cAACgN,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO0+E,EACP/jE,SAA6B,IAAnBy/E,EAAQpvF,OAClB7E,QAAS,YAhTO,SAACkrD,EAAO+oC,GAC7B,IAAMv6F,EAAO,CACZ,UAAa,GACb,SAAY,GACZ,MAAS,GACT,YAAe,GACf,MAASwxD,EACT,MAAS,GACT,QAAW+oC,GAGNS,EAAe,oEAErBtpF,MAAMrO,EAAU,kBAAmB,CAClCsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,oBAEjBsM,KAAMF,KAAKS,UAAU7T,KAErBb,MAAK,SAAA2S,GAAQ,OAAIA,EAASE,MAAM,IAChC7S,MAAK,SAAA2S,IACoB,IAArBA,EAASkB,QACZ0nF,EAAe5oF,EAASyJ,QAGxBm/E,EAAeM,GAGhBV,EAAY,IACZE,EAAW,GACV,IACD7nF,OAAM,SAAAC,GACN8nF,EAAeM,GACbvzF,QAAQC,IAAIkL,EACf,GACD,CA6QOqoF,CAAcZ,EAAUE,EACzB,EAAE,oBAIH,cAACvyF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,SAAUyG,QAAQ,QAAO,SAAEwyF,OAErD,KAGH,uBAAMt6F,MAAO,CAACqF,SAAU,WAAYmC,QAAS,OAAQrC,UAAW,QAAS0T,MAAO,QAASN,MAAO,EAAGuhB,OAAQ,KAAO,UACjH,cAACjyB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC,EAAE,uBAG5D,mBAAGyY,IAAI,sBAAsBC,KAAK,2BAA2BV,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAS,SAC5H,qBAAKqG,IAAK,4CAA6CD,IAAI,eAAezH,MAAO,CAAC2I,OAAQ,GAAIpH,WAAY,EAAGwG,UAAW,cAM9H,EC7VMg+B,GAAsB,CAC3Bv+B,QAAS,OACTjC,MAAO,IACPoD,OAAQ,GACRsB,eAAgB,iBAGXoH,GAAgB,CACrB/P,UAAW,IACXuD,UAAW,IACXS,SAAU,SACVC,MAAO,OACPlE,MAAO,QACPF,gBAAiBlB,EAAME,QAAQM,aAC/BQ,QAAS,qBACTL,aAAc,EACd4G,QAAS,OACTq+B,UAAW,aACXxgC,SAAU,YA+RImiC,GAjRO,SAAC5kC,GACnB,IAAQ/C,EAAS+C,EAAT/C,KACNiO,EAAWC,cAEb,EAAwB7J,IAAMC,UAAS,GAAM,mBAC7C,GADW,KAAS,KACYD,IAAMC,SAAS,OAAK,mBAWhDyjC,GAXW,KAAa,UACc7jC,IAA3BlE,EAAKupE,mBAA8D,OAA3BvpE,EAAKupE,mBAAkCvpE,EAAKupE,kBAUlFvpE,EAAK4F,WAEL1B,IAAf6jC,GACe,OAAfA,GACAA,EAAW58B,OAAS,KAEpB48B,EAAaA,EAAWroC,MAAM,EAAG,IAAM,MAG3C,IAAMwpC,EAAa,CAClBxjC,MAAO,GACPoD,OAAQ,GACR+C,YAAa,GACb1K,OAAQ,mCAGHstB,OAA8BvqB,IAAtBlE,EAAK08E,cAAoD,OAAtB18E,EAAK08E,mBAAqDx4E,IAA5BlE,EAAK08E,aAAajuD,OAAmD,OAA5BzuB,EAAK08E,aAAajuD,OAAkBzuB,EAAK08E,aAAajuD,MAAMtjB,OAAS,EAAI,cAACwW,EAAA,EAAM,CAAC/Z,IAAK5H,EAAK28E,QAAS90E,IAAK7H,EAAK08E,aAAajuD,MAAOtuB,MAAO+oC,IAAgB,cAACvnB,EAAA,EAAM,CAAC/Z,IAAK,gBAAiBC,IAAKzH,EAAME,QAAQyB,aAAc5B,MAAO+oC,IACjV0zC,OAAoC14E,IAAtBlE,EAAK08E,cAAoD,OAAtB18E,EAAK08E,mBAAwDx4E,IAA/BlE,EAAK08E,aAAaxuC,UAAyD,OAA/BluC,EAAK08E,aAAaxuC,UAAqBluC,EAAK08E,aAAaxuC,SAAS/iC,OAAS,EAAInL,EAAK08E,aAAaxuC,SAAW,eAGtNhqC,IAAlBlE,EAAKqF,UAA4C,OAAlBrF,EAAKqF,eAAkCnB,IAAZlE,EAAKR,IAAgC,OAAZQ,EAAKR,KAC5FQ,EAAKqF,SAAWrF,EAAKR,IAItB,IAAI0pE,EAAS,qBAAiBlpE,EAAKqF,eACZnB,IAAnBlE,EAAKy7D,WAA8C,OAAnBz7D,EAAKy7D,YACxCyN,GAAS,mBAAgBlpE,EAAKy7D,YAG/B,IAWMy/B,EAAW,GAEf,OACD,sBAAK/6F,MAAO,CAACuF,MAAO,OAAQF,SAAU,YAAa,UAClD,sBAAKrF,MAfe,CACrB2I,OAAQ,IACRpD,MAAO,OACPy1F,gBAAiB,8CACjB35F,MAAO,QACPgE,SAAU,WACVzE,aAAc,mBASa,UACzB,qBAAKZ,MAAO,CAACqF,SAAU,WAAY8jB,KAAM,GAAI7Q,IAAK,GAAI3P,OAAQoyF,EAAUx1F,MAAOw1F,GAAY,SAC1F,qBAAKrzF,IARQ,sDAQOD,IAAI,YAAYzH,MAAO,CAACsF,SAAU,SAAUC,MAAOw1F,EAAUpyF,OAAQoyF,EAAUn6F,aAAc,GAAII,OAAQ,uCAE9H,qBAAKhB,MAAO,CAACqF,SAAU,WAAY8jB,KAAM,IAAK7Q,IAAK,GAAI3P,OAAQoyF,EAAUx1F,MAAOw1F,GAAY,SAC3F,qBAAKrzF,IAVQ,sDAUOD,IAAI,YAAYzH,MAAO,CAACsF,SAAU,SAAUC,MAAOw1F,EAAUpyF,OAAQoyF,EAAUn6F,aAAc,GAAII,OAAQ,0CAG3H,eAAC+E,EAAA,EAAK,CAACiP,QAAM,EAAChV,MAAOqR,GAAc,UACjC,qBACErR,MAAO,CACLqF,SAAU,WACVy0B,OAAQ,EACR3Q,KAAM,EACNxgB,OAAQ,GACRpD,MAAO,GACPpE,gBA/DK,UAgELP,aAAc,iBAGlB,eAAC8D,EAAA,EAAI,CACH0Q,MAAI,EACJpV,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,SAAU5P,MAAO,QAAS,UAEnE,eAACb,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEwH,QAAS,OAAQ3C,UAAW,IAAK,UACnD,cAAC8Q,GAAA,EAAO,CAACvR,MAAK,sBAAiBq4E,GAAejjE,UAAU,SAAQ,SAC9D,qBACExZ,MAAO,CACfoF,YAA8BrB,IAAtBlE,EAAK08E,aAA6B,UAAY,WAE9Cp2E,QAAS,gBACSpC,IAAtBlE,EAAK08E,cACRzuE,EAAS,aAAajO,EAAK08E,aAAaxuC,SAEjC,EAAE,SAEDzf,MAGL,cAAC3Y,GAAA,EAAO,CAACvR,MAAK,cAASvE,EAAK4F,MAAQ+T,UAAU,SAAQ,SACpD,cAAC3R,EAAA,EAAU,CACTC,QAAQ,KACR9H,MAAO,CACLsR,aAAc,EACd4H,cAAe,EACfrU,UAAW,GACXoQ,KAAM,IACN,SAEF,cAAC,IAAI,CACHqB,GAAIyyD,EACJ/oE,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,SAEnDumC,WAKT,cAACljC,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO+lC,KA+IxB,cAAC5vB,EAAA,EAAM,CAACrO,QAAQ,WAAW9H,MAAO,CAACuW,eAAgB,OAAQ3V,aAAc,IAAMuF,QAAS,WA9PnE,IAACsX,IA+PJ5d,EA9PrByH,QAAQC,IAAI,oBAAqBkW,EA+P9B,EAAE,uCAON,EChTIhb,GAAeC,KAAc,aAAc,oCAwVlCu3F,GAvVC,SAAAr3F,GACf,IAAQC,EAAwFD,EAAxFC,QAAmBG,GAAqEJ,EAA/EG,SAA+EH,EAArEI,gBAAgBC,EAAqDL,EAArDK,SAAUC,EAA2CN,EAA3CM,UAAWJ,EAAgCF,EAAhCE,SAAUm4F,EAAsBr4F,EAAtBq4F,gBAMpEn3F,GAHsB,mBAAzBH,OAAOC,SAASC,MAChBF,OAAOC,SAASC,UAEYE,IAAZlB,GAAqC,OAAZA,EAAmB,GAAKA,GAC9DmB,OAAkBD,IAAbjB,GAAuC,OAAbA,EAAoBG,EAAW,EAAI,EAAIH,EACtE7C,EAAQgE,cAGd,EAAgCC,IAAMC,SAAS,IAAG,mBAA3C+1F,EAAQ,KAAEC,EAAW,KAC5B,EAA8Bj2F,IAAMC,SAAS,IAAG,mBAAzCi2F,EAAO,KAAEC,EAAU,KAC1B,EAAsCn2F,IAAMC,SAAS,IAAG,mBAAjDm2F,EAAW,KAAEC,EAAc,KACjC,EAAgCr2F,IAAMC,SAAS,IAAG,mBAA3CgoB,EAAQ,KAEVuyD,GAFuB,KAET,CAAC99E,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,IAAKkE,OAAQxG,EAAW,sBAAwB,GAAIxB,SAAU,KAIxHkC,OAAOS,MAAQ,+CAwHfiE,qBAAU,WA3BPkJ,MAAMrO,EAAY,6BAA8B,CAC9CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,+BAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,SAChBvL,QAAQC,IAAI,aAAcuK,EAGzB,IACCU,OAAM,SAACC,GAENnL,QAAQC,IAAI,UAAYkL,EAAMpG,WAChC,GAKL,GAAG,IAGH,IA8CMq5B,EAAoB,CACvBl+B,QAAS,OACTm+B,SAAU,OACVC,aAAc,gBACd79B,UAAW,GAGVyjC,GAAiB,GAgCfxjC,EAAkBC,aArFN,SAAH,GAAuD,IAAlDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAa9C,OAZAC,qBAAU,WACT,QAAetE,IAAXJ,aAA4CI,IAApBJ,OAAOC,eAAqDG,IAA3BJ,OAAOC,SAAS+V,QAAmD,OAA3BhW,OAAOC,SAAS+V,OAAiB,CACrI,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDgqE,EADSjkF,OAAOo+E,YAAYF,EAAgBpxE,WACrB,EACV,OAAfm3E,QAAsC5/E,IAAf4/E,IAC1Br8E,QAAQC,IAAI,cAAeo8E,GAC3Bx7E,EAAOw7E,GAET,CACD,GAAG,IAGD,sBAAMr7E,YAAU,EAAC/B,OAAO,GAAGgC,KAAK,SAAQ,SACxC,cAACC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aA/IlC,EA+I8D6I,OAAQ,GAAIlE,MAAO,QAClGmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,IAETC,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN8H,MAAOjB,EACPc,YAAY,oBACZ3J,GAAG,uBACH4J,SAAU,SAAC5C,GACV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAKX,IA0CMC,EAAaC,aAhCN,SAAH,GAAkB,IAAZhF,EAAI,EAAJA,KACf,EAA8CH,oBAAU,GAAE,mBACtDM,GADkB,KAAoB,KAC5B,GAEd,OACI,cAACC,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO0lC,EAAkB,SACtDphC,EAAK7F,KAAI,SAACoB,EAAMmF,GAGhB,OAFAwmC,GAAiB,GAEb/mC,IAAY,GAAGT,EAAGF,EACd,MAGRW,GAAW,EAGV,cAACuW,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKswB,EAAa,OAAO,SAC5E,cAAC9mC,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAIA,EAAIhE,MAAO,CAAEiB,QAAS,uBAAwB,UACvC,IAApBg6F,EACA,cAACC,GAAgB,CAAar7F,KAAMA,GAAbmF,GAEvB,cAAC,GAAa,CAAanF,KAAMA,GAAbmF,MALZA,GAUb,KAGH,IAKA,OACC,sBAAKhF,MAAO,CAACuF,MAAO,OAAQF,SAAU,WAAYsD,OAAQ,QAAS,UAClE,eAACY,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,YAAW,UAC/D,cAACigE,GAAA,EAAS,CAACC,gBAAc,IACzB,qBAAK1pE,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAW,GAAIuJ,aAAc,IAAM,SAC9E,cAACtJ,EAAe,MAEH,OAAbmkB,QAAkCpoB,IAAbooB,GAA0BA,EAASnhB,OAAS,EACjE,qBAAKhL,MAAO,CAAEwH,QAAS,OAAQiC,OAAQ,OAAQlE,MAAO,KAAM,SAC1D4mB,EAAS1tB,KAAI,SAAC+sB,EAASxmB,GAEvB,OADAsC,QAAQC,IAAIikB,GAEX,cAACjW,GAAA,EAAI,CAEJvV,MAAO,CACNmB,gBAAiBlB,EAAME,QAAQM,aAC/BiL,YAAa,GACbC,YAAa,EACbC,aAAc,EACdjD,OAAQ,GACRvD,OAAQ,UACRpE,OAAO,aAAD,OAAewqB,EAAQnqB,OAC7BA,MAAO,SAERmF,MAAK,UAAKglB,EAAQ/lB,KAAI,aAAK+lB,EAAQgJ,QAAQxpB,OAAM,YAAIwgB,EAAQjpB,KAAKyI,OAAM,KACxE7E,QAAS,WACRmB,QAAQC,IAAI,WAEb,EACAO,QAAQ,WACRzG,MAAM,WAjBDmqB,EAAQ/lB,KAoBhB,MAEA,KACF,cAAC4D,EAAU,CAACK,YAAa,QAEN,IAAnB1G,EACA,sBAAKhD,MAAO,CAACwB,SAAUyB,EAAW,OAAS,MAAOwG,OAAQ,OAAQwP,WAAY,EAAG9T,UAAW,UAAW,UACtG,cAAC0C,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,QAAS0G,UAAW,IAAK,iDAGjE,sBAAK/H,MAAO,CAACiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAO,UAC9D,cAAC3M,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBlB,EAAME,QAAQO,YACvEgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,mBACZxI,KAAK,QACJnB,GAAG,gBACJyJ,aAAa,QACbW,OAAO,SACP3B,QAAQ,WACHmB,SAAU,SAAAhK,GAAC,OAAIk7F,EAAYl7F,EAAE+Y,OAAO7O,MAAM,IAEhD,cAACX,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAK9T,gBAAiBlB,EAAME,QAAQO,YAClDgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,gCACZxI,KAAK,GACJnB,GAAG,oBACJoK,OAAO,SACP3B,QAAQ,WACRgB,aAAa,MACTG,SAAU,SAAAhK,GAAC,OAAIo7F,EAAWp7F,EAAE+Y,OAAO7O,MAAM,OAG/C,cAACgN,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO0+E,EACP/jE,SAA6B,IAAnBy/E,EAAQpvF,OAClB7E,QAAS,YAzSQ,SAACkrD,EAAO+oC,GAC7B,IAAMv6F,EAAO,CACZ,UAAa,GACb,SAAY,GACZ,MAAS,GACT,YAAe,GACf,MAASwxD,EACT,MAAS,GACT,QAAW+oC,GAGNS,EAAe,oEAErBtpF,MAAMrO,EAAU,kBAAmB,CAClCsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,oBAEjBsM,KAAMF,KAAKS,UAAU7T,KAErBb,MAAK,SAAA2S,GAAQ,OAAIA,EAASE,MAAM,IAChC7S,MAAK,SAAA2S,IACoB,IAArBA,EAASkB,QACZ0nF,EAAe5oF,EAASyJ,QAGxBm/E,EAAeM,GAGhBV,EAAY,IACZE,EAAW,GACV,IACD7nF,OAAM,SAAAC,GACN8nF,EAAeM,GACbvzF,QAAQC,IAAIkL,EACf,GACD,CAsQMqoF,CAAcZ,EAAUE,EACzB,EAAE,oBAIH,cAACvyF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,SAAUyG,QAAQ,QAAO,SAAEwyF,OAErD,KAGH,uBAAMt6F,MAAO,CAACqF,SAAU,WAAYmC,QAAS,OAAQrC,UAAW,QAAS0T,MAAO,QAASN,MAAO,EAAGuhB,OAAQ,KAAO,UACjH,cAACjyB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC,EAAE,uBAG5D,mBAAGyY,IAAI,sBAAsBC,KAAK,2BAA2BV,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAS,SAC5H,qBAAKqG,IAAK,4CAA6CD,IAAI,eAAezH,MAAO,CAAC2I,OAAQ,GAAIpH,WAAY,EAAGwG,UAAW,YAK7H,E,sBCtUMtF,GAAeC,KAAc,aAAc,oCAwQlCy4F,GAvQK,SAAAv4F,GACnB,IAAQC,EAAsED,EAAtEC,QAAmBG,GAAmDJ,EAA7DG,SAA6DH,EAAnDI,gBAAgBC,EAAmCL,EAAnCK,SAAUC,EAAyBN,EAAzBM,UAAWJ,EAAcF,EAAdE,SAC1DgB,OAAyBC,IAAZlB,GAAqC,OAAZA,EAAmB,GAAKA,EAC9DmB,OAAkBD,IAAbjB,GAAuC,OAAbA,EAAoBG,EAAW,EAAI,EAAIH,EACtE7C,EAAQgE,cAGd,EAAgCC,IAAMC,SAAS,IAAG,mBAA3C+1F,EAAQ,KAAEC,EAAW,KAC5B,EAA8Bj2F,IAAMC,SAAS,IAAG,mBAAzCi2F,EAAO,KAAEC,EAAU,KAC1B,EAAsCn2F,IAAMC,SAAS,IAAG,mBAAjDm2F,EAAW,KAAEC,EAAc,KAE5B7b,EAAc,CAAC99E,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,IAAKkE,OAAQxG,EAAW,sBAAwB,GAAIxB,SAAU,IAElHgC,EACoB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAIjBF,OAAOS,MAAQ,+CAEf,IAmFMshC,EAAoB,CACvBl+B,QAAS,OACTm+B,SAAU,OACVC,aAAc,gBACd79B,UAAW,GAiFRC,EAAkBC,aAjIN,SAAH,GAAuD,IAAlDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAY9C,OAXAC,qBAAU,WACT,QAAetE,IAAXJ,aAA4CI,IAApBJ,OAAOC,eAAqDG,IAA3BJ,OAAOC,SAAS+V,QAAmD,OAA3BhW,OAAOC,SAAS+V,OAAiB,CACrI,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDgqE,EADSjkF,OAAOo+E,YAAYF,EAAgBpxE,WACrB,EACV,OAAfm3E,QAAsC5/E,IAAf4/E,GAC1Bx7E,EAAOw7E,EAET,CACD,GAAG,IAGD,sBAAMr7E,YAAU,EAAC/B,OAAO,GAAGgC,KAAK,SAAQ,SACxC,cAACC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aA1DlC,EA0D8D6I,OAAQ,GAAIlE,MAAO,QAClGmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,IAETC,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN8H,MAAOjB,EACPc,YAAY,mBACZ3J,GAAG,uBACH4J,SAAU,SAAC5C,GACV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,KAKJ,IAwFME,EAAaC,aA/EN,SAAH,GAAkB,IAAZhF,EAAI,EAAJA,KACf,EAA8CH,oBAAU,GAAE,mBACtDM,GADkB,KAAoB,KAC5B,GAEd,OACI,cAACC,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO0lC,EAAkB,SACtDphC,EAAK7F,KAAI,SAACoB,EAAMmF,GAChB,GAAIP,IAAY,GAAGT,EAAGF,EACrB,OAAO,KAGRW,GAAW,EACX,IAAM22F,EAAc33F,EAAuD,oBAAkB5D,EAAKkuC,UAAvE,uCAAmCluC,EAAKkuC,UAEnE,OACC,cAAC/yB,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAC,EAAE,SACrC,cAAC0E,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAIA,EAAIhE,MAAO,CAAEiB,QAAS,uBAAyB,SAC7D,cAAC6nE,GAAA,EAAI,CAAC9oE,MAAO,CAACgB,OAAQ,kCAAmCM,UAAW,IAAKuD,UAAW,KAAM,SACzF,mBAAG6T,KAAM0iF,EAAY3iF,IAAI,sBAAsBT,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,WAAY,SAChH,cAAC,KAAc,CAACrB,MAAO,CAACiB,QAAS,oBAAqBK,UAAW,IAAKuD,UAAW,KAAM,SACvF,eAACo0F,GAAA,EAAW,CAAC96B,GAAI,CAAElpD,KAAM,WAAYrN,SAAU,IAAKpG,SAAU,IAAK8D,SAAU,SAAUrE,QAAS,GAAK,UACpG,sBAAKjB,MAAO,CAACwH,QAAS,QAAQ,UAC7B,qBAAKxH,MAAO,CAAC2I,OAAQ,GAAIpD,MAAO,GAAI3E,aAAc,KAAQ6G,IAAK,sBAAsB5H,EAAKkuC,SAAUrmC,IAAK7H,EAAKyuB,QAC9G,eAACzmB,EAAA,EAAU,CAACuO,UAAU,MAAMtO,QAAQ,QAAQ9H,MAAO,CAAC+H,UAAW,GAAIxG,WAAY,IAAM,cAClF1B,EAAKkuC,YAER,sBAAM/tC,MAAO,CAAC+H,UAAW,OAAQuJ,aAAc,OAAQ/P,WAAY,IAAM,UACrD,IAAlB1B,EAAKw7F,SACL,cAAC1lF,GAAA,EAAO,CAACvR,MAAM,kDAAkDoV,UAAU,MAAK,SAC/E,cAAC8hF,GAAA,EAAgB,CAACt7F,MAAO,CAAC,MAG5B,UAIF,eAAC6H,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC+H,UAAW,IAAM,UAC1E,iCAAkBhE,IAAdlE,EAAKuO,MAAoC,OAAdvO,EAAKuO,KAAgB,EAAIvO,EAAKuO,OAAS,SAAM,sBAAMpO,MAAO,CAACuB,WAAY,MAAQ,4BAAuB,OAAnB1B,EAAKmgC,gBAAyCj8B,IAAnBlE,EAAKmgC,UAA0B,EAAIngC,EAAKmgC,YAAc,qBAE1Kj8B,IAA1BlE,EAAK07F,kBAA4D,OAA1B17F,EAAK07F,kBAA6B17F,EAAK07F,iBAAiBvwF,OAAS,EACxG,cAACs+B,GAAA,EAAW,CAACC,IAAK,GAAIvpC,MAAO,CAACmV,cAAe,MAAOlU,QAAS,EAAGwI,OAAQ,EAAG4/D,UAAW,OAAQlkE,UAAW,OAAQ4C,UAAW,GAAI,SAC9HlI,EAAK07F,iBAAiB98F,KAAI,SAACyT,EAAKlN,GAEhC,OACC,qBAEChF,MAAO,CACN2I,OAAQ,GACRpD,MAAO,GACPsU,OAAQ,kBACRzU,OAAQ,WAETe,QAAS,WACRmB,QAAQC,IAAI,QAEb,EAAE,SAEF,cAACoO,GAAA,EAAO,CAACtU,MAAM,UAAU+C,MAAO8N,EAAIzM,KAAM+T,UAAU,SAAQ,SAC3D,cAAC,KAAM,CAAC/R,IAAKyK,EAAIzM,KAAMiC,IAAKwK,EAAIoc,MAAOtuB,MAAO,CAACuF,MAAO,GAAIoD,OAAQ,SAb9D3D,EAiBR,MAGD,iBAlDKA,EA0Db,KAGH,IAKA,OACC,sBAAKhF,MAAO,CAACuF,MAAO,OAAQF,SAAU,WAAYsD,OAAQ,QAAS,UAClE,eAACY,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,WAAU,UAC9D,cAACigE,GAAA,EAAS,CAACC,gBAAc,IACzB,qBAAK1pE,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAW,GAAIuJ,aAAc,IAAM,SAC9E,cAACtJ,EAAe,MAEjB,cAACqB,EAAU,CAACK,YAAa,SAEN,IAAnB1G,EACA,sBAAKhD,MAAO,CAACwB,SAAUyB,EAAW,OAAS,MAAOwG,OAAQ,OAAQwP,WAAY,GAAI9T,UAAW,UAAW,UACvG,cAAC0C,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,QAAS0G,UAAW,IAAK,iDAGjE,sBAAK/H,MAAO,CAACiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAO,UAC9D,cAAC3M,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBlB,EAAME,QAAQO,YACvEgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,mBACZxI,KAAK,QACJnB,GAAG,gBACJyJ,aAAa,QACbW,OAAO,SACP3B,QAAQ,WACHmB,SAAU,SAAAhK,GAAC,OAAIk7F,EAAYl7F,EAAE+Y,OAAO7O,MAAM,IAEhD,cAACX,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAK9T,gBAAiBlB,EAAME,QAAQO,YAClDgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,uBACZxI,KAAK,GACJnB,GAAG,oBACJoK,OAAO,SACP3B,QAAQ,WACRgB,aAAa,MACTG,SAAU,SAAAhK,GAAC,OAAIo7F,EAAWp7F,EAAE+Y,OAAO7O,MAAM,OAG/C,cAACgN,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO0+E,EACP/jE,SAA6B,IAAnBy/E,EAAQpvF,OAClB7E,QAAS,YApOQ,SAACkrD,EAAO+oC,GAC7B,IAAMv6F,EAAO,CACZ,UAAa,GACb,SAAY,GACZ,MAAS,GACT,YAAe,GACf,MAASwxD,EACT,MAAS,GACT,QAAW+oC,GAGNS,EAAe,oEAErBtpF,MAAMrO,EAAU,kBAAmB,CAClCsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,oBAEjBsM,KAAMF,KAAKS,UAAU7T,KAErBb,MAAK,SAAA2S,GAAQ,OAAIA,EAASE,MAAM,IAChC7S,MAAK,SAAA2S,IACoB,IAArBA,EAASkB,QACZ0nF,EAAe5oF,EAASyJ,QAGxBm/E,EAAeM,GAGhBV,EAAY,IACZE,EAAW,GACV,IACD7nF,OAAM,SAAAC,GACN8nF,EAAeM,GACbvzF,QAAQC,IAAIkL,EACf,GACD,CAiMMqoF,CAAcZ,EAAUE,EACzB,EAAE,oBAIH,cAACvyF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,SAAUyG,QAAQ,QAAO,SAAEwyF,OAErD,OAIN,ECjRM73F,GAAeC,KAAc,aAAc,oCAqUlC84F,GApUE,SAAA54F,GAChB,IAAQC,EAAiFD,EAAjFC,QAAmBG,GAA8DJ,EAAxEG,SAAwEH,EAA9DI,gBAAgBC,EAA8CL,EAA9CK,SAAUC,EAAoCN,EAApCM,UAAWJ,EAAyBF,EAAzBE,SAAUU,EAAeZ,EAAfY,SACpEM,OAAyBC,IAAZlB,GAAqC,OAAZA,EAAmB,GAAKA,EAC9DmB,OAAkBD,IAAbjB,GAAuC,OAAbA,EAAoBG,EAAW,EAAI,EAAIH,EACtE7C,EAAQgE,cAGd,EAAgCC,IAAMC,SAAS,IAAG,mBAA3C+1F,EAAQ,KAAEC,EAAW,KAC5B,EAA8Bj2F,IAAMC,SAAS,IAAG,mBAAzCi2F,EAAO,KAAEC,EAAU,KAC1B,EAAsCn2F,IAAMC,SAAS,IAAG,mBAAjDm2F,EAAW,KAAEC,EAAc,KAE5B7b,EAAc,CAAC99E,aAAc,GAAI+H,OAAQ,GAAIpD,MAAO,IAAKkE,OAAQxG,EAAW,sBAAwB,GAAIxB,SAAU,IAIxHkC,OAAOS,MAAQ,8CAEf,IAoFIonC,GAAiB,GAkHfxjC,EAAkBC,aAhKN,SAAH,GAAuD,IAAlDC,EAAiB,EAAjBA,kBAAmBC,EAAM,EAANA,OAAuB,EAAfC,gBAa9C,OAZAC,qBAAU,WACT,QAAetE,IAAXJ,aAA4CI,IAApBJ,OAAOC,eAAqDG,IAA3BJ,OAAOC,SAAS+V,QAAmD,OAA3BhW,OAAOC,SAAS+V,OAAiB,CACrI,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDgqE,EADSjkF,OAAOo+E,YAAYF,EAAgBpxE,WACrB,EACV,OAAfm3E,QAAsC5/E,IAAf4/E,IAC1Br8E,QAAQC,IAAI,cAAeo8E,GAC3Bx7E,EAAOw7E,GAET,CACD,GAAG,IAGD,sBAAMr7E,YAAU,EAAC/B,OAAO,GAAGgC,KAAK,SAAQ,SACxC,cAACC,EAAA,EAAS,CACTC,WAAS,EACTzI,MAAO,CAACmB,gBAAiBlB,EAAME,QAAQO,WAAYE,aA1DlC,EA0D8D6I,OAAQ,GAAIlE,MAAO,QAClGmD,WAAY,CACX1I,MAAM,CACLqB,MAAO,QACPI,SAAU,MACVkH,OAAQ,IAETC,eACC,cAACC,EAAA,EAAc,CAACxD,SAAS,QAAO,SAC/B,cAAC,IAAU,CAACrF,MAAO,CAACuB,WAAY,QAInCuH,aAAa,MACbtI,KAAK,SACLa,MAAM,UACN0H,aAAcb,EACdc,YAAY,8BACZ3J,GAAG,uBACH4J,SAAU,SAAC5C,GACV8B,EAAO9B,EAAM6C,cAAcC,MAC5B,EACAC,MAAO,KAKX,IAqHMC,EAAaC,aAlHN,SAAH,GAAkB,IAAZhF,EAAI,EAAJA,KACf,EAA8CH,oBAAU,GAAE,mBAAnDI,EAAe,KAAEC,EAAkB,KAatCC,EAAU,EACd,OACC,cAAC2f,EAAA,EAAI,UACH9f,EAAK7F,KAAI,SAACoB,EAAMmF,GAChBwmC,GAAiB,GAEjB,IAAM0vB,EAAqB,CAC1B31D,MAAO,OACPR,UAAW,SACXD,UAAW,SACXo4B,aAAc,kCACd/7B,gBAAiBoD,IAAoBS,EAAQ,UAAY,UACzDI,OAAQ,UACR7D,WAAY,EACZmK,YAAa,EACb7G,UAAW,GACXvD,UAAW,GACXE,SAAU,IACVoG,SAAU,QAGX,GAAInD,GAAW,GAAGT,EAAGF,EACpB,OAAO,KAGRW,GAAW,EAEX,IAAIgB,OAAqB1B,IAAdlE,EAAK4F,KACd5F,EAAKs7D,SAASx1D,OAAO,GAAGC,cAAgB/F,EAAKs7D,SAAS57D,MAAM,GAAGuG,WAAW,IAAK,KAAO,MAAQjG,EAAKuE,OAClGvE,EAAK4F,KAAKE,OAAO,GAAGC,cAAc/F,EAAK4F,KAAKlG,MAAM,IAAIuG,WAAW,IAAK,KAErEL,EAAKuF,OAAS,KACjBvF,EAAOA,EAAKlG,MAAM,EAAG,IAAI,OAI1B,IAAM67D,OAA8Br3D,IAAdlE,EAAKA,KAAqBA,EAAKA,KAAKN,MAAM,EAAG,KAAK,MAAQ,GAC1Eu7D,EAAY,cAACyG,GAAA,EAAW,IACxBlG,OAA4Bt3D,IAAnBlE,EAAK8H,UACnBmzD,EAEA,cAACt5C,EAAA,EAAM,CACN9Z,IAAK7H,EAAK8H,UACVG,QAAQ,YAGNihE,OAA6BhlE,IAAjBlE,EAAKygE,QAAwBzgE,EAAKygE,QAAU,GAG5D,OAFAyI,GAAS,mBAAgBlpE,EAAKy7D,WAG7B,cAACtgD,GAAA,EAAI,CAAaC,IAAI,EAAMjb,MAAO,CAAEkb,gBAAgB,GAAD,OAAKswB,EAAa,OAAO,SAC5E,cAAC,IAAI,CAAqBl1B,GAAIyyD,EAAW/oE,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAW8E,QAAS,SAACE,GACpGI,IAAG,OAAQ,CACTC,MAAOjE,GAAaiE,MACpBC,OAAQlE,GAAamE,YAAYoiE,gBAAgB,uBAGnD,IAAMliE,GAAY,IAAIC,MAAOC,UAC7BP,IAAG,aAAc,CAChB,CACCQ,UAAW,QACXC,UAAW,0BACXlC,MAAO,gBACPmC,UAAW,CAACtH,EAAKqF,UACjB4B,UAAWA,EACXM,QAASvH,EAAKy7D,UACd2N,UAAW,CAACppE,EAAKqpE,YACjB7hE,eAAwBtD,IAAbP,GAAuC,OAAbA,QAAqCO,IAAhBP,EAASnE,GAAmB,kBAAoBmE,EAASnE,MAIrHiI,QAAQC,IAAI,QACb,EAAE,SACD,eAAC+Z,EAAA,EAAQ,CAAqBthB,MAAOk7D,EAAoBj1D,YAAa,WACrEzB,EAAmBQ,EACpB,EAAE,UACD,cAACuc,EAAA,EAAc,UACb85C,IAEF,cAAC55C,EAAA,EAAY,CACZrhB,QAASqF,EACTnF,UAAW86D,MAREv7D,EAAKqF,WAtBVrF,EAAKqF,WADNF,EA4Cb,KAGH,IAUA,OACC,qBAAKhF,MAAO,CAACuF,MAAO,OAAQJ,UAAW,SAAUE,SAAU,WAAYsD,OAAQ,OAAQnB,QAAS,QAAQ,SAoBvG,sBAAKxH,MAAO,CAACuF,MAAO,OAAQF,SAAU,WAAYsD,OAAQ,QAAS,UAClE,eAACY,EAAA,EAAa,CAAC9G,aAAcA,GAAc+G,UAAU,gBAAe,UACnE,qBAAKxJ,MAAO,CAACwB,SAAU,IAAKiI,OAAQ,OAAQ1B,UAAW,GAAIuJ,aAAc,IAAM,SAC9E,cAACtJ,EAAe,MAEjB,cAACyhE,GAAA,EAAS,CAACC,gBAAc,IACzB,cAACrgE,EAAU,CAACK,YAAa,QAEN,IAAnB1G,EACA,sBAAKhD,MAAO,CAACiZ,WAAY,EAAGzX,SAAUyB,EAAW,OAAS,MAAOwG,OAAQ,QAAQ,UAChF,cAAC5B,EAAA,EAAU,CAACC,QAAQ,KAAK9H,MAAO,CAACqB,MAAO,QAAS0G,UAAW,IAAK,iDAGjE,sBAAK/H,MAAO,CAACiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,MAAOhQ,UAAW,UAAW,UACpF,cAACqD,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAKvJ,YAAa,OAAQvK,gBAAiBlB,EAAME,QAAQO,YACvEgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,mBACZxI,KAAK,QACJnB,GAAG,gBACJyJ,aAAa,QACbW,OAAO,SACP3B,QAAQ,WACHmB,SAAU,SAAAhK,GAAC,OAAIk7F,EAAYl7F,EAAE+Y,OAAO7O,MAAM,IAEhD,cAACX,EAAA,EAAS,CACT8Q,UAAQ,EACRtZ,MAAO,CAACiV,KAAM,IAAK9T,gBAAiBlB,EAAME,QAAQO,YAClDgI,WAAY,CACX1I,MAAM,CACLqB,MAAO,YAGTA,MAAM,UACNoH,WAAW,EACXO,YAAY,uBACZxI,KAAK,GACJnB,GAAG,oBACJoK,OAAO,SACP3B,QAAQ,WACRgB,aAAa,MACTG,SAAU,SAAAhK,GAAC,OAAIo7F,EAAWp7F,EAAE+Y,OAAO7O,MAAM,OAG/C,cAACgN,EAAA,EAAM,CACNrO,QAAQ,YACRzG,MAAM,UACNrB,MAAO0+E,EACP/jE,SAA6B,IAAnBy/E,EAAQpvF,OAClB7E,QAAS,YA3RO,SAACkrD,EAAO+oC,GAC7B,IAAMv6F,EAAO,CACZ,UAAa,GACb,SAAY,GACZ,MAAS,GACT,YAAe,GACf,MAASwxD,EACT,MAAS,GACT,QAAW+oC,GAGNS,EAAe,oEAErBtpF,MAAMrO,EAAU,kBAAmB,CAClCsO,OAAQ,OACR3K,QAAS,CACR,eAAgB,oBAEjBsM,KAAMF,KAAKS,UAAU7T,KAErBb,MAAK,SAAA2S,GAAQ,OAAIA,EAASE,MAAM,IAChC7S,MAAK,SAAA2S,IACoB,IAArBA,EAASkB,QACZ0nF,EAAe5oF,EAASyJ,QAGxBm/E,EAAeM,GAGhBV,EAAY,IACZE,EAAW,GACV,IACD7nF,OAAM,SAAAC,GACN8nF,EAAeM,GACbvzF,QAAQC,IAAIkL,EACf,GACD,CAwPOqoF,CAAcZ,EAAUE,EACzB,EAAE,oBAIH,cAACvyF,EAAA,EAAU,CAAC7H,MAAO,CAACqB,MAAO,SAAUyG,QAAQ,QAAO,SAAEwyF,OAErD,KAGH,uBAAMt6F,MAAO,CAACqF,SAAU,WAAYmC,QAAS,OAAQrC,UAAW,QAAS0T,MAAO,QAASN,MAAO,EAAGuhB,OAAQ,KAAO,UACjH,cAACjyB,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAgBrB,MAAO,CAAC,EAAE,uBAG5D,mBAAGyY,IAAI,sBAAsBC,KAAK,2BAA2BV,OAAO,SAAShY,MAAO,CAACuW,eAAgB,OAAQlV,MAAO,SAAS,SAC5H,qBAAKqG,IAAK,4CAA6CD,IAAI,eAAezH,MAAO,CAAC2I,OAAQ,GAAIpH,WAAY,EAAGwG,UAAW,cAM9H,E,WC1UM+kE,GAAe,CACpBrjE,OAAQ,OACRjI,SAAU,KACVijB,QAAS,SACT1f,UAAW,UAgKG02F,GA5JA,SAAC74F,GACd,IAAQM,EAA4DN,EAA5DM,UAAWyK,EAAiD/K,EAAjD+K,SAAU86D,EAAuC7lE,EAAvC6lE,WAAYjlE,EAA2BZ,EAA3BY,SAAUk4F,EAAiB94F,EAAjB84F,YAChD5tF,EAAWC,cAEd,EAA4B5J,mBAAS,GAAE,mBAAhCimF,EAAM,KAAEC,EAAS,KAClBnsC,EAAY,CAAExyC,YAAa,IAoBlC,GAlBArD,qBAAU,WACT,IAAmB,IAAfogE,QAAkD1kE,IAA3BJ,OAAOC,SAAS+V,QAAmD,OAA3BhW,OAAOC,SAAS+V,OAAiB,CACnG,IAAMikE,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDkkE,EADSn+E,OAAOo+E,YAAYF,EAAgBpxE,WACrB,IAC7B,GAAiB,OAAbqxE,QAAkC95E,IAAb85E,EACxB,IAAK,IAAIpxE,KAAO/M,OAAOD,KAAK4vF,GAAQ,CACnC,IAAMlmF,EAAQkmF,EAAM5iF,GAEpB,GADAnF,QAAQC,IAAIkF,EAAKtD,GACbA,IAAU00E,EAAU,CACvByR,EAAU,GAAI7iF,GACd,KACD,CACD,CAEF,CACD,GAAG,KAEgB,IAAfg8D,EACH,OAAO,KAGR,IAAMuE,EAAW,CAChB3rE,MAAO,QACP4T,KAAM,IACN1T,WAAY,GACZmK,YAAa,GACbC,YAAa,GACbC,aAAc,GACdsN,cAAe,GACfD,YAA4B,IAAhByiF,EAAuB,EAAI,GACvCl0F,QAAS,OACT2N,cAAe,SACfpQ,UAAW,SACXzD,UAAW,KAGN+tF,EAAQ,CACX,EAAG,OACH,EAAG,YACH,EAAG,OACH,EAAG,YAGAC,EAAY,SAACjpF,EAAOq5C,GACzB,IAAM7E,EAAW7jB,SAAS0oB,GAExB2qC,EAAUxvC,GAERzpC,SAAShN,MADM,IAAby2C,EACe,0BACK,IAAbA,EACQ,+BACK,IAAbA,EACQ,mCACK,IAAbA,EACQ,8BAEA,mBAIrB,IAAM+iC,EAAkB,IAAI70B,gBAAgBplD,OAAOC,SAAS+V,QAEtDgqE,EADSjkF,OAAOo+E,YAAYF,EAAgBpxE,WACrB,EACzBmvF,EAAS,GACM,OAAfhY,QAAsC5/E,IAAf4/E,IAC1BgY,EAAS,MAAMhY,IAII,IAAflb,QAAuC1kE,IAAf0kE,IAA6B9kE,OAAOC,SAASgP,SAASzG,SAAS,YAC3F2B,EAAS,sBAAeuhF,EAAMx0C,IAAY8gD,EAE3C,EAED,IAAiB,IAAbhuF,EACH,OAAO,KAKR,IAAMytE,EACL,qBAAKp7E,MAAO,CAACkZ,eAA+B,IAAhBwiF,EAAuB,EAAI,IAAKr6F,MAAO,QAASF,gBAAiBlB,EAAME,QAAQy7F,aAAa,SACvH,sBAAK57F,MAAOgtE,EAAS,UACpB,eAAC5U,GAAA,EAAI,CACJp4D,MAAO,CAACuF,MAAO,IAAKkE,OAAQ,OAAQ1B,WAA2B,IAAhB2zF,EAAuB,EAAI,IAC1EvyF,MAAOihF,EACP/xB,eAAe,UACfm9B,UAAU,YACVvsF,SAAUqmF,EACV,aAAW,wBAAuB,UAElC,cAACh3B,GAAA,EAAG,CACH9xD,MAAM,iCACL,cAAC,KAAQ,CAACxG,MAAOk+C,IAAa,aAGhC,cAACoa,GAAA,EAAG,CACH9xD,MAAM,iCACL,cAAC+6D,GAAA,EAAW,CAACvhE,MAAOk+C,IAAa,kBAGnC,cAACoa,GAAA,EAAG,CACH9xD,MAAM,iCACJ,cAAC,KAAe,CAACxG,MAAOk+C,IAAa,aAGxC,cAACoa,GAAA,EAAG,CACH9xD,MAAM,iCACL,cAACq1F,GAAA,EAAgB,CAAC77F,MAAOk+C,IAAa,oBAI7B,IAAXksC,EACA,cAAC,GAAO,CAACvnF,QAAS,EAAGG,gBAAgB,EAAME,UAAWA,EAAWD,SAAUA,WAAUO,SAAUA,IAErF,IAAX4mF,GACGzmF,OAAOC,SAASgP,SACjB,cAACkpF,GAAY,CAACj5F,QAAS,EAAGG,gBAAgB,EAAME,UAAWA,EAAWD,SAAUA,WAAWO,SAAUA,KAI5F,IAAX4mF,EACC,cAAC,GAAQ,CAACvnF,QAAS,EAAGC,SAAU,GAAIE,gBAAgB,EAAME,UAAWA,EAAWD,SAAUA,WAAWO,SAAUA,IAErG,IAAX4mF,EACC,cAAC,GAAW,CAACtnF,SAAU,EAAGE,gBAAgB,EAAME,UAAWA,EAAWD,SAAUA,WAAWO,SAAUA,IAEtG,UAKGypC,EAAct/B,EACnB,8BACC,qBAAK3N,MAAO8sE,GAAa,SAAEsO,MAG5B,wBAID,OACC,qBAAKp7E,MAAO,CAACmB,gBAAiB,WAAY,SACxC8rC,GAGJ,E,yICrKM6/B,GAAe,CACnBrjE,OAAQ,QAIJujE,GAAW,CACf/3D,KAAM,IACN1T,WAAY,OACZmK,YAAa,OACb/C,OAAQ,QAERxH,gBAPmB,UAQnBgE,UAAW,SACXqC,QAAS,OACT2N,cAAe,UAOX41D,GAAY,CAChB1pE,MAAO,UACPkV,eAAgB,QAqeHwlF,GAjeK,SAACn5F,GACnB,IAAQ+K,EAAa/K,EAAb+K,SAGFkwB,EAAY,UACZ3F,EAAW,MAEX8jE,EAAa,SAACtkB,EAAQ5iE,EAAad,EAAM4pB,GAC7C,OACE,cAAC73B,EAAA,EAAK,CAAC/F,MAAOgtE,GAAS,SACrB,oBAAGt0D,KAAM1E,EAAMhU,MAAO+qE,GAAU,UAC9B,qBAAK/qE,MAAO,CAAEiV,KAAM,IAAK5T,MAAO,WAAY,SAC1C,6BAAKq2E,MAEP,cAAC1+D,GAAA,EAAO,IACR,qBACEhZ,MAAO,CACLiV,KAAM,IACN1T,WAAY,OACZmK,YAAa,OACb3D,UAAW,OACX1G,MAlBM,WAmBN,SAEDyT,IAEH,qBAAK9U,MAAO,CAAEyJ,OAAQ,QAAS,SAAEm0B,IACjC,cAAC5kB,GAAA,EAAO,CAAChZ,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,UACnD,qBAAKtR,MAAO,CAAEiV,KAAM,IAAK5T,MAAO,WAAY,SAC1C,qBAAKrB,MAAO,CAAC,EAAE,8BAKzB,EAEMi8F,EAAY,CAChBD,EACE,sBACA,oDACA,iBACA,cAAC,KAAG,CACFh8F,MAAO,CAAEyB,SAAUy2B,EAAUnwB,UAAW,OAAQ1G,MAAOw8B,MAG3Dm+D,EACE,YACA,wFACA,iBACA,cAAC,KAAW,CACVh8F,MAAO,CAAEyB,SAAUy2B,EAAUnwB,UAAW,OAAQ1G,MAAOw8B,MAG3Dm+D,EACE,mBACA,qDACA,iBACA,cAAC,KAAY,CACXh8F,MAAO,CAAEyB,SAAUy2B,EAAUnwB,UAAW,OAAQ1G,MAAOw8B,OAQvDq+D,EAAiB,oBASjBC,EAAoB,CACxB,CACEC,YAAa,mBACbhhC,cACE,8FACF9sC,MAAO,oBAET,CACE8tE,YAAa,wBACbhhC,cACE,yFACF9sC,MAAO,wBAET,CACE8tE,YAAa,qBACbhhC,cACE,gGACF9sC,MAAO,wBAGX,EAA0BnqB,mBAASg4F,EAAkB,GAAG7tE,OAAM,mBAAvDA,EAAK,KAAE+tE,EAAQ,KAEhBjhB,EACJ,gCACE,sBACEp7E,MAAO,CACLg7F,gBAAiB,0BACjBsB,eAAgB,WAChBC,iBAAkB,YAClBj7F,UAAW,QACXuD,UAAW,MACX,UAEF,sBACE7E,MAAO,CACLmF,UAAW,OACX8T,WAAY,IACZzX,SAAU,IACVmK,YAAa,MACbtK,MAAO66F,EACP10F,QAAS,OACT/F,SAAU,IACV,UAEF,qBAAKzB,MAAO,CAAEiV,KAAM,GAAI,SACtB,mBAAGyD,KAAK,cAAc1Y,MAAO+qE,GAAU,SACrC,eAACrmE,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,UACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAAC,KAAQ,MAEX,cAAC1Q,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEuB,WAAY,GAAI,0BAM1C,qBAAKvB,MAAO,CAAEiV,KAAM,GAAI,SACtB,mBAAGyD,KAAK,WAAW1Y,MAAO+qE,GAAU,SAClC,eAACrmE,EAAA,EAAI,CAACC,WAAS,EAAC4zD,UAAU,MAAMvuD,WAAW,SAAQ,UACjD,cAACtF,EAAA,EAAI,CAAC0Q,MAAI,WACR,cAAC,KAAU,MAEb,cAAC1Q,EAAA,EAAI,CAAC0Q,MAAI,EAACpV,MAAO,CAAEuB,WAAY,GAAI,iCAM1C,qBAAKvB,MAAO,CAAEiV,KAAM,GAAI,SACtB,mBAAGyD,KAAK,SAAS1Y,MAAO+qE,GAAU,SAChC,eAAC50D,EAAA,EAAM,CACLnW,MAAO,CACLY,aAAc,GACd+H,OAAQ,GACRf,SAAU,IACVzG,gBAAiB+6F,EACjB76F,MAAO,SAETyG,QAAQ,YAAW,wBAER,cAAC,KAAgB,cAKpC,sBACE9H,MAEE,CACEmF,UAAW,OACX8T,WAAY,KACZtN,YAAa,MACbnK,SAAU,KAEb,UAED,qBAAKxB,MAAO,CAAEyB,SAAU,GAAIJ,MAAO,oBAAqB,qBACxD,sBAAKrB,MAAO,CAAEyB,SAAU,GAAIJ,MAAO,mBAAoB,yBACzC,qBAAKrB,MAAO,CAAEqB,MAAO66F,GAAiB,yBAEpD,sBACEl8F,MAAO,CACLyB,SAAU,GACVJ,MAAO,sBACP0G,UAAW,IACX,gLAI0B,IAC5B,qBAAK/H,MAAO,CAAEqB,MAAO66F,EAAgBn0F,UAAW,IAAK,qCAIvD,mBAAG2Q,KAAK,iBAAiB1Y,MAAO+qE,GAAU,SACxC,cAAC50D,EAAA,EAAM,CACLnW,MAAO,CACLY,aAAc,GACd+H,OAAQ,GACRZ,UAAW,GACXxC,MAAO,IACPpE,gBAAiB+6F,EACjB76F,MAAO,SAETyG,QAAQ,YAAW,+BAO3B,sBACE9H,MAAO,CACLsB,UAAW,KACXiE,MAAO,OACPy1F,gBAAiB,sDACjB,UAEF,sBACEh7F,MAAO,CACLsB,UAAW,IACX2X,WAAY,IACZzX,SAAU,KACViI,OAAQ,QACR,UAEF,qBACEzJ,MAAO,CACLqB,MAAO,uBACPI,SAAU,GACVF,WAAY,IACZ,SAEF,oEAEF,sBAAKvB,MAAO,CAAE+H,UAAW,GAAIP,QAAS,OAAQ2N,cAAe,OAAQ,UACnE,qBACEnV,MAAO,CACLiV,KAAM,EACNzN,QAAS,OACT2N,cAAe,SACf1T,SAAU,IACV,SAED06F,EAAkB19F,KAAI,SAACoB,EAAMmF,GAC5B,IAAM3D,EACJitB,IAAUzuB,EAAKyuB,MACX,sBACA,wBACN,OACE,sBACEtuB,MAAO,CACLY,aAAc,GACdK,QAAS,GACTO,SAAU,IACVmH,OAAQ,IACRlH,SAAU,GACVJ,MAAOA,EACP+D,OAAQ,WAEVe,QAAS,kBAAMk2F,EAASx8F,EAAKyuB,MAAM,EAAC,UAEnCzuB,EAAKu8F,YACN,qBAAKp8F,MAAO,CAAEyB,SAAU,GAAIsG,UAAW,IAAK,SACzClI,EAAKu7D,kBAId,MAEF,qBAAKp7D,MAAO,CAAEiV,KAAM,KACpB,qBAAKjV,MAAO,CAAEiV,KAAM,GAAItM,OAAQ,OAAQpD,MAAO,QAAS,SACtD,qBACEmC,IAAK4mB,EACLtuB,MAAO,CACLY,aAAc,GACdU,UAAW,OACXsG,SAAU,OACVpG,SAAU,OACVqD,UAAW,kBAMrB,sBACE7E,MAAO,CACLwB,SAAU,KACVyX,WAAY,IACZC,cAAe,IACfzP,OAAQ,OACRpI,MAAO,yBACP,UAEF,cAAC2X,GAAA,EAAO,CAAChZ,MAAO,CAAEmB,gBAAiB,2BACnC,sBACEnB,MAAO,CACL+H,UAAW,IACXtG,SAAU,GACV+F,QAAS,OACTjG,WAAY,IACZmK,YAAa,KACb,UAEF,qBAAK1L,MAAO,CAAEiV,KAAM,GAAI,sDAGxB,qBAAKjV,MAAO,CAAEiV,KAAM,GAAI,SACtB,mBAAGyD,KAAK,iBAAiB1Y,MAAO+qE,GAAU,SACxC,cAAC50D,EAAA,EAAM,CACL1N,WAAS,EACTzI,MAAO,CACLY,aAAc,GACdU,UAAW,GACXsG,SAAU,IACVzG,gBAAiB+6F,EACjB76F,MAAO,SAETyG,QAAQ,YAAW,uCAS/B,sBACE9H,MAAO,CACLmF,UAAW,SACX3D,SAAU,KACVF,UAAW,IACX2X,WAAY,IACZxP,OAAQ,OACRpI,MAAO,iBACP,UAEF,qBAAKrB,MAAO,CAAEyB,SAAU,IAAK,SAC3B,wEAEF,sBACEzB,MAAO,CAAEyB,SAAU,GAAIJ,MAAO,kBAAmBG,SAAU,QAAS,uFAG3D,kEAEX,sBAAKxB,MAAO,CAAEwH,QAAS,OAAQO,UAAW,IAAK,UAC7C,eAAC+gE,GAAA,EAAI,CACH3iE,QAAS,WACPxC,OAAOC,SAASgP,SAAW,gBAC7B,EACA5S,MAAO,CAAEiV,KAAM,EAAGxL,OAAQ,GAAItE,UAAW,UAAW,UAEpD,eAAC,KAAc,WACb,cAACq3F,GAAA,EAAS,CAACp4F,MAAM,OAAOkqB,MAAM,qBAC9B,eAAC2qE,GAAA,EAAW,WACV,mDACA,mFAGJ,cAAC9iF,EAAA,EAAM,CAAC2E,KAAK,SAASzZ,MAAM,QAAO,2BAIrC,eAACynE,GAAA,EAAI,CACH3iE,QAAS,WACPxC,OAAOC,SAASgP,SAAW,gBAC7B,EACA5S,MAAO,CAAEiV,KAAM,EAAGxL,OAAQ,GAAItE,UAAW,UAAW,UAEpD,eAAC,KAAc,WACb,cAACq3F,GAAA,EAAS,CAACp4F,MAAM,OAAOkqB,MAAM,qBAC9B,eAAC2qE,GAAA,EAAW,WACV,iDACA,sEAGJ,cAAC9iF,EAAA,EAAM,CAAC2E,KAAK,SAASzZ,MAAM,QAAO,2BAIrC,eAACynE,GAAA,EAAI,CACH3iE,QAAS,WACPxC,OAAOC,SAASgP,SAAW,gBAC7B,EACA5S,MAAO,CAAEiV,KAAM,EAAGxL,OAAQ,GAAItE,UAAW,UAAW,UAEpD,eAAC,KAAc,WACb,cAACq3F,GAAA,EAAS,CAACp4F,MAAM,OAAOkqB,MAAM,qBAC9B,eAAC2qE,GAAA,EAAW,WACV,0DACA,mFAGJ,cAAC9iF,EAAA,EAAM,CAAC2E,KAAK,SAASzZ,MAAM,QAAO,2BAIrC,eAACynE,GAAA,EAAI,CACH9oE,MAAO,CAAEiV,KAAM,EAAGxL,OAAQ,GAAItE,UAAW,UACzCgB,QAAS,WACPxC,OAAOC,SAASgP,SAAW,gBAC7B,EAAE,UAEF,eAAC,KAAc,WACb,cAAC4pF,GAAA,EAAS,CAACp4F,MAAM,OAAOkqB,MAAM,oBAC9B,eAAC2qE,GAAA,EAAW,WACV,sDACA,kFAGJ,cAAC9iF,EAAA,EAAM,CAAC2E,KAAK,SAASzZ,MAAM,QAAO,oCASvCo7F,EACJ,sBAAKz8F,MAAO,CAAEmB,gBAAiB,UAAW8X,WAAY,IAAK,UACzD,sBACEjZ,MAAO,CACLqB,MAAO,QACP8D,UAAW,SACX5D,WAAY,OACZmK,YAAa,QACb,UAEF,yCACA,gGACA,mBAAGgN,KAAK,WAAW1Y,MAAO+qE,GAAU,SAClC,cAAC50D,EAAA,EAAM,CACLnW,MAAO,CAAEuF,MAAO,QAASoD,OAAQ,OAAQ/H,aAAc,OACvDkH,QAAQ,YACRzG,MAAM,UAAS,0BAMrB,sBACErB,MAAO,CAAEwH,QAAS,OAAQ2N,cAAe,SAAUpN,UAAW,SAAU,UAExE,8BAAMk0F,EAAU,KAChB,qBAAKj8F,MAAO,CAAE+H,UAAW,QAAS,SAAEk0F,EAAU,KAC9C,qBAAKj8F,MAAO,CAAE+H,UAAW,OAAQuJ,aAAc,QAAS,SACrD2qF,EAAU,KAEb,qBACEj8F,MAAO,CACL+H,UAAW,OACXuJ,aAAc,OACdnM,UAAW,UACX,SAEF,mBAAGuT,KAAK,WAAW1Y,MAAO+qE,GAAU,SAClC,cAAC50D,EAAA,EAAM,CACLnW,MAAO,CAAEuF,MAAO,QAASoD,OAAQ,OAAQ/H,aAAc,OACvDkH,QAAQ,YACRzG,MAAM,UAAS,+BAYrBq7F,EAAc,qBAAK18F,MAAO8sE,GAAa,SAAEsO,IAEzCnuC,EAAct/B,EAClB,gCACE,cAAC,cAAW,UAAE+uF,IACd,cAAC,aAAU,UAAED,OAGf,wBAGF,OAAO,8BAAMxvD,GACf,EC1fM6/B,GAAe,CACnBrjE,OAAQ,OACR1B,UAAW,IACXxC,MAAO,SAGHu3B,GAAYC,aAAW,CAC3B+Y,eAAgB,CACdjmB,YAAa,wBA0fF8sE,GAtfK,SAAC/5F,GACnB,IACEM,EAOEN,EAPFM,UACAyK,EAME/K,EANF+K,SACAD,EAKE9K,EALF8K,WACAkvF,EAIEh6F,EAJFg6F,cACAC,EAGEj6F,EAHFi6F,UACAC,EAEEl6F,EAFFk6F,SACAC,EACEn6F,EADFm6F,WAGI98F,EAAQgE,cACX6J,EAAWC,cACRgyB,EAAUjD,KAEhB,EAAgC34B,mBAAS,IAAG,mBAArC4pC,EAAQ,KAAE43C,EAAW,KAC5B,EAAgCxhF,mBAAS,IAAG,mBAArCyhF,EAAQ,KAAEC,EAAW,KAC5B,EAAwC1hF,oBAAS,GAAK,mBAA/CgnB,EAAY,KAAEC,EAAe,KACpC,EAAwCjnB,oBAAS,GAAM,mBAAhD2hF,EAAY,KAAEC,EAAe,KACpC,EAAgD5hF,oBAAS,GAAM,mBAAxD64F,EAAgB,KAAEC,EAAmB,KAC5C,EAA4B94F,mBAAS,IAAG,mBAAjC+4F,EAAM,KAAEC,EAAS,KAExB,EAAgCh5F,oBAAS,GAAM,mBAAxCi5F,EAAQ,KAAEC,EAAW,KAC5B,EAAgCl5F,mBAAS,IAAG,mBAArCm5F,EAAQ,KAAEC,EAAW,KAK7Bl1F,qBAAU,WACTm1F,IACD,GAAG,CAACR,IAGH,OAAkC74F,mBAAS,IAAG,qBAAvC6hF,GAAS,MAAEC,GAAY,OAMX,IAAfv4E,GAEFI,EAAS,cAGX,IAAM0vF,GAAa,WAEjBjsF,MADYrO,EAAY,qBACb,CACTsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBm0E,GAAan0E,EAAqB,cAGP/N,IAAzB+N,EAAa2rF,SACY,OAAzB3rF,EAAa2rF,SAEbN,EAAUrrF,EAAa2rF,SAGrBT,IACFC,GAAoB,GACpBF,IACA5rF,UAG0BpN,IAAxB+N,EAAasJ,QACW,OAAxBtJ,EAAasJ,QAEb6qE,GAAan0E,EAAasJ,SAIF,SAAxBtJ,EAAasJ,QACftN,EAAS,eAGf,GAAE,IAEH0E,OAAM,SAACC,GACDuqF,IACHC,GAAoB,GACpB/rF,KAEJ,GACJ,EAEA,GAAwBL,YAAY,CAClCC,SAAU,IACVC,gBAAgB,EAChBC,SAAU,WACRwsF,IACF,IALMtsF,GAAK,GAALA,MAAOC,GAAI,GAAJA,KAQXga,IACFC,GAAgB,GAChBoyE,MAGF,IAmHIE,GAAYZ,EAAW,wCAAmB,2CACxCt3B,GAAU,IACV1yD,GACJ,qBAAK9S,MAAO8sE,GAAa,SACvB,eAAC/mE,EAAA,EAAK,CACJ/F,MAAO,CACL2L,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZ5T,SAAU,WACVlE,gBAAiBlB,EAAME,QAAQM,cAC/B,UAEF,qBACET,MAAO,CACLqF,SAAU,WACViT,KAAK,GACL6Q,KAAM,IACNxgB,OAAQ68D,GACRjgE,MAAOigE,IACP,SAEF,qBACE99D,IAAI,0BACJ1H,MAAO,CACL2I,OAAQ68D,IACRjgE,MAAOigE,IACPxkE,OAAQ,kCACRJ,aAAc4kE,QAKnBw3B,EACC,sBAAKh9F,MAAO,CAAEmF,UAAW,SAAU4C,UAAW,IAAK,UACjD,cAACF,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAAU,sGAM/B0C,IAAdiiF,IACa,OAAdA,IACqB,IAArBA,GAAUh7E,OAAe,KACvB,sBAAKhL,MAAO,CAAE+H,UAAW,QAAS,gCAAqBi+E,MAEzD,cAACnrE,EAAA,EAAgB,CAACxZ,MAAM,YAAYrB,MAAO,CAAEqB,MAAO,WAEpD,eAAC0E,EAAA,EAAK,CACJ/F,MAAO,CACL2L,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZ5T,SAAU,WACVlE,gBAAiBlB,EAAME,QAAQO,WAC/ByE,UAAW,OACX4C,UAAW,IACX,UAEF,cAACF,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAAU,SAE5C,wDAC0B,IACxB,mBACEoX,IAAI,aACJT,OAAO,SACPU,KAAK,yEACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,iCAGlD,SAIR,eAACwG,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAAU,UAE5C,mCAAS,yDAAuD,IAChE,uBACA,uBAAM,8CAIR,eAACwG,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,SAAU,UAE5C,kCAAQ,4BACR,uBACA,uBAAM,oCAIV,eAACwG,EAAA,EAAU,CACTC,QAAQ,QACR9H,MAAO,CAAEsR,aAAc,GAAIjQ,MAAO,QAAS0G,UAAW,IAAK,uBAEhD,IACX,mBACE0Q,IAAI,aACJT,OAAO,SACPU,KAAK,6BACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,qCAO1D,uBACE6kF,SAxOO,SAACjnF,GAChB8mF,GAAgB,GAChB9mF,EAAE0L,iBACFs7E,GAAa,IAIb,IAAIpmF,EAAO,CAAEkuC,SAAUA,EAAU63C,SAAUA,QAC1B7hF,IAAbu5F,GAAuC,OAAbA,GAAqBA,EAAStyF,OAAS,IACnEnL,EAAe,SAAIy9F,GAGrB,IAAIK,EAAUz6F,EACd,GAAI45F,EAAU,CACZ,IAAIjpF,EAAM8pF,EAAU,gBACpBpsF,MAAMsC,EAAK,CACTsH,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,GAEpB,GADAi0E,GAAgB,IACgB,IAA5Bj0E,EAAsB,QACxBm0E,GAAan0E,EAAqB,YAC7B,CACL,GAA+B,iBAA3BA,EAAqB,OAKvB,OAJAm0E,GACE,sEAEFoX,GAAY,GAKd,IAAK,IAAI5wF,KADTw5E,GAAa,+BACGn0E,EAAsB,QACpC+qF,EACE/qF,EAAsB,QAAErF,GAAKA,IAC7BqF,EAAsB,QAAErF,GAAKtD,MAC7B,CAAE2C,KAAM,MAInB,QAA+B/H,IAA3B+N,EAAakxB,WAAsD,OAA3BlxB,EAAakxB,YAAuBlxB,EAAakxB,UAAU72B,SAAS,WAG/G,OAFA7E,QAAQC,IAAI,sBACZ5D,OAAOC,SAASgP,SAAW,YAI5B,IAAM4yB,EAAU,IAAIujB,gBAAgBplD,OAAOC,SAAS+V,QAAQqvC,IAAI,QAChE,QAAgBjlD,IAAZyhC,GAAqC,OAAZA,EAAkB,CAE9C,IAAM06B,EAAM,WAAO16B,GACnB7hC,OAAOC,SAASgP,SAAWstD,CAC5B,MACCv8D,OAAOC,SAASgP,SAAW,aAGrBgqF,GAAc,EAChB,CACF,GAAE,IAEHpqF,OAAM,SAACC,GACNszE,GAAgB,GAChBE,GAAa,qBAAuBxzE,EACtC,GACJ,MACEoB,EAAM8pF,EAAU,yBAChBpsF,MAAMsC,EAAK,CACTrC,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrBgH,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxBm0E,GAAan0E,EAAqB,QAElCm0E,GAAa,uBAEjB,GAAE,IAEHzzE,OAAM,SAACC,GACNwzE,GAAa,0BAA2BxzE,EAC1C,GAEN,EA2IUzS,MAAO,CAAEyJ,OAAQ,sBAAuBpI,MAAO,SAAU,UAEzD,6BAAKq8F,KAAe,WAEpB,8BACE,cAACl1F,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BqH,UAAW,GAEb2zB,WAAS,EACThzB,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACR7Q,WAAW,EACXK,aAAa,WACbE,YAAY,uBACZ3J,GAAG,aACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAtKO,SAAChK,GACpB0mF,EAAY1mF,EAAE+Y,OAAO7O,MACvB,MAsKgB,WAEN,8BACE,cAACX,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BqH,UAAW,GAEbW,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACRja,GAAG,0BACHoJ,WAAW,EACXjI,KAAK,WACLsI,aAAa,mBACbE,YAAY,aACZS,OAAO,SACP3B,QAAQ,WACRmB,SA/LO,SAAChK,GACpB4mF,EAAY5mF,EAAE+Y,OAAO7O,MACvB,OAgMwB,IAAbi0F,EACC,sBAAKp9F,MAAO,CAAE+H,UAAW,IAAK,0BAE5B,cAACS,EAAA,EAAS,CACRnH,MAAM,UACNrB,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BqH,UAAW,GAEbW,WAAY,CACVq3B,QAAS,CACP+V,eAAgB/V,EAAQ+V,gBAE1B91C,MAAO,CACL2I,OAAQ,OACRtH,MAAO,QACPI,SAAU,QAGd6X,UAAQ,EACRja,GAAG,0BACHoJ,WAAW,EACXjI,KAAK,OACLwI,YAAY,eACZS,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAC5C,GACTk3F,EAAYl3F,EAAM2R,OAAO7O,MAC3B,OAGF,KACJ,qBAAKnJ,MAAO,CAAEwH,QAAS,OAAQO,UAAW,QAAS,SACjD,cAACoO,EAAA,EAAM,CACL9U,MAAM,UACNyG,QAAQ,YACRtH,KAAK,SACLR,MAAO,CAAEiV,KAAM,KACf0F,WAhZLozB,EAAS/iC,OAAS,GAAK46E,EAAS56E,OAAS,IAgZD86E,EAAa,SAE/CA,EACC,cAACjrE,EAAA,EAAgB,CACfxZ,MAAM,YACNrB,MAAO,CAAEqB,MAAO,WAGlB,aAIN,qBAAKrB,MAAO,CAAE+H,UAAW,QAAS,SAAEi+E,UACxBjiF,IAAXm5F,GAAmC,OAAXA,GAAmBA,EAAOlyF,OAAS,EAC1D,gCACE,cAACnD,EAAA,EAAU,CAAC7H,MAAO,CAAEmF,UAAW,UAAW,gBAC3C,qBAAKnF,MAAO,CAAEmF,UAAW,SAAUsE,OAAQ,IAAK,SAC9C,cAAC0M,EAAA,EAAM,CACL1N,WAAS,EACnBpJ,GAAG,aACOgC,MAAM,YACNyG,QAAQ,WACRtH,KAAK,SACLR,MAAO,CAAEiV,KAAM,IAAKlN,UAAW,GAC/B5B,QAAS,WAElBxC,OAAOC,SAAS8U,KAAOwkF,CAEd,EAAE,0BAMN,aAORjwD,GAAct/B,EAAW,8BAAMmF,KAAkB,wBAsBvD,OApBDzK,qBAAU,WACTsU,YAAW,WACV,QAAe5Y,IAAXm5F,GAAmC,OAAXA,GAAmBA,EAAOlyF,OAAS,EAAG,CAE/D,IAAM4yF,EAASxsF,SAASsE,eAAe,cACzC,QAAe3R,IAAX65F,GAAmC,OAAXA,EAAiB,CAC5Ct2F,QAAQC,IAAI,YAAaq2F,GACzB,IAAM1tF,EAA8B,qBAAXvM,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAAS+V,OACpG6rB,EAAU,IAAIujB,gBAAgB74C,GAAW84C,IAAI,kBACjCjlD,IAAZyhC,GAAqC,OAAZA,GACZ,SAAZA,IACHl+B,QAAQC,IAAI,QAASi+B,GACrBo4D,EAAOrgF,QAGV,CACD,CACD,GAAG,IACJ,GAAG,CAAC2/E,IAEI,8BAAMjwD,IACf,E,kBColBe4wD,I,OAzlCE,SAACj7F,GAChB,IAAQM,EAA+CN,EAA/CM,UAAWyK,EAAoC/K,EAApC+K,SAAUnK,EAA0BZ,EAA1BY,SACvBvD,GADiD2C,EAAhBk7F,YACzB75F,eACR2J,EAAQC,cACXC,EAAWC,cAEd,EAAgC5J,mBAAS,IAAG,mBAArC4pC,EAAQ,KAAE43C,EAAW,KAC5B,EAAkCxhF,mBAAS,IAAG,mBAAvC45F,EAAS,KAAEC,EAAY,KAC9B,EAAgC75F,mBAAS,IAAG,mBAArC85F,EAAQ,KAAEC,EAAW,KAC5B,EAA0B/5F,mBAAS,IAAG,mBAA/BktD,EAAK,KACZ,GADsB,KACwBltD,mBAAS,KAAG,mBAAnDg6F,EAAe,KAAEC,EAAkB,KAC1C,EAAsCj6F,mBAAS,IAAG,mBAA3CqnF,EAAW,KAAEC,EAAc,KAClC,EAAwCtnF,mBAAS,IAAG,mBAA7Ck6F,EAAY,KAAEC,EAAe,KAOpC,EACEp6F,IAAMC,SAAS,IAAG,mBADbo6F,EAAyB,KAEhC,GAF8D,KAEVr6F,IAAMC,SAAS,KAAG,mBAA/Dq6F,EAAkB,KACzB,GADgD,KAE9Ct6F,IAAMC,SAAS,KAAG,mBAGpB,IAJgC,KAA8B,KAIRA,mBAAS,KAAG,qBAA3Ds6F,GAAmB,MAAEC,GAAsB,MAElD,GAAwCv6F,oBAAS,GAAK,qBAA/C+J,GAAY,MAAEkd,GAAe,MAEpC,GAAwCjnB,mBAAS,CAAC,GAAE,qBAA7CumF,GAAY,MAAE7oC,GAAe,MA4B9Bp+C,GACqB,mBAAzBE,OAAOC,SAASC,MACS,gBAAzBF,OAAOC,SAASC,KAQZmpE,GAAW,CACf/3D,KAAM,IACN5T,MAAO,QACPgE,SAAU,WACV9D,WAAY,OACZmK,YAAa,OACbC,YAAa,OACbC,aAAc,OACdsN,cAAe,OACfD,WAAY,OACZ9X,gBAAiBlB,EAAME,QAAQM,aAC/B+G,QAAS,OACT2N,cAAe,UAGXwpF,GAAa,SAAC9+F,EAAM2D,GACxB,IAAIo7F,GAAe,EACnB,GAAI/+F,EAAK6W,MAAM66E,UAAY/tF,EAASq7F,SAASC,QAC3CF,GAAe,OAEf,QAC0B76F,IAAxBlE,EAAKk/F,gBACmB,OAAxBl/F,EAAKk/F,gBAC0B,IAA/Bl/F,EAAKk/F,eAAe/zF,OAEpB,IAAK,IAAIyB,KAAO5M,EAAKk/F,eACnB,GACEl/F,EAAKk/F,eAAetyF,GAAKiK,MAAM66E,UAAY/tF,EAASq7F,SAASC,QAC7D,CACAF,GAAe,EACf,KACF,CAKN,OAAOA,CACT,EAmOAv2F,qBAAU,WACJ6F,KACFkd,IAAgB,GA3GlB7Z,MAAMrO,EAAY,sBAAuB,CACvCsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAML,OALwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,6CAIPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL+vC,GAAgB/vC,EAClB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,KA4FA/S,OAAO05B,oBAAoB51B,GAAUwH,OAAS,GACjC,KAAb+iC,GACU,KAAVsjB,QAzFwBttD,IAAtBP,EAASuqC,UACPvqC,EAASuqC,SAAS/iC,OAAS,GAC7B26E,EAAYniF,EAASuqC,SA2F3B,IAEA,IAAMixD,GAAqB,SAACp8F,GAC1B,IAAQ/C,EAAS+C,EAAT/C,KAEJo/F,EAAkB,CACpB99F,gBAAiBlB,EAAME,QAAQO,WAC/B8G,QAAS,OACT2N,cAAe,SACflU,QAAS,mBACTL,aAAcX,EAAME,QAAQS,cAQ9B,OAJqB,IADA+9F,GAAW9+F,EAAM2D,KAEpCy7F,EAAgBj+F,OAAS,qBAIzB,cAAC0D,EAAA,EAAI,CAAC0Q,MAAI,EAACpR,GAAI,EAAGhE,MAAO,CAAEY,aAAcX,EAAME,QAAQS,cAAe,SACpE,eAACmF,EAAA,EAAK,CAAC/F,MAAOi/F,EAAgB,UAC5B,qBACEv3F,IAAK7H,EAAKyuB,MACV7mB,IAAK5H,EAAK4F,KACVzF,MAAO,CAAEuF,MAAO,OAAQ+L,aAAc,MAExC,cAACzJ,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,SAC9CxB,EAAKq/F,aAER,cAACr3F,EAAA,EAAU,CAACC,QAAQ,QAAO,SAAEjI,EAAK4F,WAI1C,EAGK05F,QAAgCp7F,IAAtBP,EAASq7F,eAAwD96F,IAA9BP,EAASq7F,SAASC,SACpEt7F,EAASq7F,SAASC,QAAQ9zF,OAAS,QAA0CjH,IAArCP,EAASq7F,SAASO,eAQrDllB,QAAmCn2E,IAAvB2mF,GAAap8D,OAA6C,MAAtBo8D,GAAap8D,OAA+C,IAA9Bo8D,GAAap8D,MAAMtjB,OAAe/K,EAAME,QAAQyB,aAAe8oF,GAAap8D,MACzJ8rD,GACJ,qBACE1yE,IAAKwyE,GACLzyE,IAAI,qCACJpI,GAAG,OACN8G,QAAS,WACJ+zE,KAAcj6E,EAAME,QAAQyB,aAC/BkM,EAAS,aAAD,OAActK,EAASugE,kBAE/Bj2D,EAAS,YAEX,EACG9N,MAAO,CACToF,OAAQ,UACJ5D,SAAU,IACVqD,UAAW,IACX+C,SAAU,IACVtG,UAAW,IACX+D,SAAU,WACViT,KAAM,GACN6Q,KAAM,IACNvoB,aAAc,GACd05E,UAAW,UACXt5E,OAAQ,qCAKRq+F,GACJ,qBAAKr/F,MAAO,CAAEwH,QAAS,OAAQO,UAAW,KAAM,SAC9C,eAAChC,EAAA,EAAK,CAAC/F,MAAOgtE,GAAS,UACpBoN,GACD,0CACA,qBAAKp6E,MAAO,CAAEiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAQ,SAC/D,cAAC3M,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,WAAYuU,KAAM,KAC1DvM,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACRqB,UAAQ,EACRlS,WAAW,EACXU,MAAO4kC,EACP/kC,YAAY,WACZxI,KAAK,WACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,eAIZ,sBAAK9H,MAAO,CAAEiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAQ,UAC/D,cAAC3M,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,IACNvJ,YAAa,QAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXU,MAAO40F,EACP/0F,YAAY,aACZxI,KAAK,YACLma,UAAQ,EACRtb,GAAG,oBACHyJ,aAAa,YACbW,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAK++F,EAAa/+F,EAAE+Y,OAAO7O,MAAM,IAE/C,cAACX,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,IACN1T,WAAY,QAEdmH,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACRnQ,MAAO80F,EACPx1F,WAAW,EACXO,YAAY,YACZ2R,UAAQ,EACRna,KAAK,WACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAKi/F,EAAYj/F,EAAE+Y,OAAO7O,MAAM,OAGhD,wCACA,mBACE6O,OAAO,SACPU,KAAK,2BACL1Y,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAY,2CAItD,cAACmH,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,WAAYuU,KAAM,KAC1DvM,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACN8H,MAAOuhF,GAAa9hC,OACpBtvC,UAAQ,EACRqB,UAAQ,EACRlS,WAAW,EACXO,YAAY,SACZ3J,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,aAEV,cAACqO,EAAA,EAAM,CACLnW,MAAO,CAAEuF,MAAO,OAAQoD,OAAQ,OAAQZ,UAAW,QACnDD,QAAQ,WACRzG,MAAM,UACN8E,QAAS,WAvUfoL,MAAMrO,EAAY,yBAA0B,CAC1CsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,6CAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,GACL+vC,GAAgB/vC,EAClB,IACCU,OAAM,SAACC,GACNnL,QAAQC,IAAIkL,EACd,GAmTmC,EAAC,gCAIlC,cAACuG,GAAA,EAAO,CAAChZ,MAAO,CAAE+H,UAAW,UAiG7B,0CACA,qBAAK/H,MAAO,CAAEiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAQ,SAC/D,cAAC3M,EAAA,EAAS,CACRxI,MAAO,CAAEmB,gBAAiBlB,EAAME,QAAQO,WAAYuU,KAAM,KAC1DvM,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,mBACZxI,KAAK,WACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAKm/F,EAAmBn/F,EAAE+Y,OAAO7O,MAAM,MAGvD,sBAAKnJ,MAAO,CAAEiV,KAAM,IAAKzN,QAAS,OAAQ2N,cAAe,OAAQ,UAC/D,cAAC3M,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,IACNvJ,YAAa,QAEfhD,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXO,YAAY,eACZxI,KAAK,WACLnB,GAAG,oBACHyJ,aAAa,WACbW,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAKwsF,EAAexsF,EAAE+Y,OAAO7O,MAAM,IAEjD,cAACX,EAAA,EAAS,CACRxI,MAAO,CACLmB,gBAAiBlB,EAAME,QAAQO,WAC/BuU,KAAM,IACN1T,WAAY,QAEdmH,WAAY,CACV1I,MAAO,CACL2I,OAAQ,OACRtH,MAAO,UAGXA,MAAM,UACNiY,UAAQ,EACR7Q,WAAW,EACXjI,KAAK,WACLwI,YAAY,sBACZ3J,GAAG,oBACHoK,OAAO,SACP3B,QAAQ,WACRmB,SAAU,SAAChK,GAAC,OAAKq/F,EAAgBr/F,EAAE+Y,OAAO7O,MAAM,OAGpD,cAACgN,EAAA,EAAM,CACLwE,SACGlX,KACE+nF,EAAYxgF,OAAS,IACpBqzF,EAAarzF,OAAS,IACtBmzF,EAAgBnzF,OAAS,KAC7BwgF,IAAgB6S,GACO,IAAvB7S,EAAYxgF,OAEdhL,MAAO,CAAEuF,MAAO,OAAQoD,OAAQ,OAAQZ,UAAW,QACnDD,QAAQ,YACRzG,MAAM,UACN8E,QAAS,kBA7lBQ,WACvB,IAAMtG,EAAO,CACXkuC,SAAU28C,GAAa38C,SACvBuxD,gBAAiBnB,EACjB5N,YAAa/E,EACb+T,aAAclB,GAGhB9sF,MADYrO,EAAY,yBACb,CACTiY,KAAM,OACN3J,OAAQ,OACR2B,KAAMF,KAAKS,UAAU7T,GACrB6R,YAAa,UACboc,aAAa,EACbC,iBAAiB,EACjBlnB,QAAS,CACP,eAAgB,qCAGjB7H,MAAK,SAAC2S,GAAQ,OACbA,EAASE,OAAO7S,MAAK,SAAC8S,IACY,IAA5BA,EAAsB,QACxB4sF,GAAuB5sF,EAAqB,SAE5ClE,EAAMiF,QAAQ,qBACd6rF,GAAuB,IAE3B,GAAE,IAEHlsF,OAAM,SAACC,GACNisF,GAAuB,wBACzB,GACJ,CA6jBuBlO,EAAkB,EAAC,oCAIpC,6BAAKiO,KACL,cAACzlF,GAAA,EAAO,CAAChZ,MAAO,CAAE+H,UAAW,UAC7B,mDACA,sBAAK/H,MAAO,CAAEwH,QAAS23F,GAAU,OAAS,GAAI55F,MAAO,QAAS,UACjE,8BACG9B,GACD,iCACC,eAACoE,EAAA,EAAU,CAACC,QAAQ,QAAQzG,MAAM,gBAAe,6EACgB,mBAAGqX,KAAK,yBAAyBV,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAW,8BAAsB,wEAAoE,mBAAG2W,OAAO,SAAShY,MAAO,CAAEuW,eAAgB,OAAQlV,MAAO,WAAYqX,KAAK,0CAAyC,6BAAoB,gHAExY,cAACvC,EAAA,EAAM,CACNnW,MAAO,CAAE2I,OAAQ,GAAIZ,UAAW,IAChCD,QAAQ,WACRzG,MAAM,UACNoH,WAAW,EACXtC,QAAS,WACRq5F,IACD,EAAE,kCAKH,OAEE,sBAAKx/F,MAAO,CAAEiV,KAAM,EAAGzN,QAAS,QAAS,UACvC,mCACyBzD,IAAtBP,EAASq7F,eACoB96F,IAA9BP,EAASq7F,SAASC,SAClBt7F,EAASq7F,SAASC,QAAQ9zF,OAAS,QACEjH,IAArCP,EAASq7F,SAASO,eAChB,qBACEp/F,MAAO,CAAE+H,UAAW,GAAIP,QAAS,OAAQ3C,UAAW,QAAS,SAE7D,eAACkB,EAAA,EAAK,CACJiP,QAAM,EACNhV,MAAO,CACLY,aAAcX,EAAME,QAAQS,aAC5BK,QAAS,GACTE,gBAAiBlB,EAAME,QAAQO,YAC/B,UAEF,cAACmH,EAAA,EAAU,UACT,qBACEH,IAAI,8BACJD,IAAI,gBACJzH,MAAO,CAAE2I,OAAQ,QAGrB,eAACd,EAAA,EAAU,WAERrE,EAASq7F,SAASO,eAAeK,QAAQ,GAAE,eAIhD,YAEW17F,IAAtBP,EAASq7F,eACoB96F,IAA9BP,EAASq7F,SAASC,SAClBt7F,EAASq7F,SAASC,QAAQ9zF,OAAS,QACEjH,IAArCP,EAASq7F,SAASO,eACZ,qBACEp/F,MAAO,CACL+H,UAAW,GACXP,QAAS,OACT3C,UAAW,OACXtD,WAAY,IACZ,SAEF,eAACwE,EAAA,EAAK,CACJiP,QAAM,EACNhV,MAAO,CACLY,aAAcX,EAAME,QAAQS,aAC5BK,QAAS,GACTE,gBAAiBlB,EAAME,QAAQO,YAC/B,UAEF,cAACmH,EAAA,EAAU,CAACC,QAAQ,QAAO,6BAC3B,cAACD,EAAA,EAAU,CAACC,QAAQ,KAAI,SACrB02F,EAAmBxzF,cAI5B,QAEA,qBAAKhL,MAAO,CAAEiV,KAAM,EAAGlN,UAAW,cA+DLhE,IAA9Bw6F,GAC6B,OAA9BA,EACIA,EAA0B9/F,KAAI,SAACoB,EAAMmF,GACnC,OACE,cAACN,EAAA,EAAI,CAACC,WAAS,EAACC,QAAS,EAAG5E,MAAO,CAAE+H,UAAW,IAAK,SACnD,cAACi3F,GAAkB,CAAan/F,KAAMA,GAAbmF,IAG/B,IACA,UA0CJw6F,GAAyB,WAC/Bl4F,QAAQC,IAAI,uBAAwB9D,IAGpC6D,QAAQC,IAAI,SAAU5D,OAAOC,SAASC,MACtCyD,QAAQC,IAAI,aAAc5D,OAAOC,UACjC,IAAMojB,EAAcvjB,GACQ,mBAAzBE,OAAOC,SAASC,KACf,mDACA,iDAC4B,UAA7BF,OAAOC,SAASqjB,SAAoB,uBACrBtjB,OAAOC,SAASC,KAAI,iDAEnBF,OAAOC,SAASC,KAAI,yBAEvCyD,QAAQC,IAAI,aAAcyf,GAE1B,IACM+mB,EAAWvqC,EAASnE,GAGpBwU,EAAG,gGAJS,uBAI4F,yBAAiBmT,EAAW,qCAF3H,YAE8J,6BAAqB+mB,EAAQ,oBAE1MzmC,QAAQC,IAAI,QAASsM,GAERlQ,OAAO2Y,KAAKzI,EAAK,GAAI,uBAgCnC,EAqIOo5B,GACJt/B,IAAaO,GACX,qBAAKlO,MAphCY,CACnByJ,OAAQ,OACRtE,UAAW,SACXI,MAAO,UAihCoB,SAAE85F,KAE3B,wBAGJ,OAAO,8BAAMpyD,IACf,GCvhCeyyD,GA9EG,SAAC5+C,GACjB,IAAQ59C,EAA8C49C,EAA9C59C,UAER,GAFsD49C,EAAnCpzC,WAAmCozC,EAAvBnzC,SAAuBmzC,EAAbt9C,SAEjBU,IAAMC,SAAS,KAAG,mBAAnCtE,EAAI,KAAEo9D,EAAO,KACpB,EAA4B/4D,IAAMC,SAAS,GAAE,mBAA9BwmB,GAAF,KAAW,MAEnBg1E,EAA4B,SAACxlF,GAChC7S,QAAQC,IAAI,YAAa4S,EAC5B,EAEMylF,EAAyB,SAACC,GAC7Bv4F,QAAQmL,MAAMotF,EACjB,EAEMC,EAAsB,mDAAG,WAAOnuF,GAAQ,0FAwB5C,OAvBGpR,EAAO,GACPyZ,EAASrI,EAASwB,KAAK4sF,YACvBC,EAAU,IAAIC,YAEZC,EAAe,SAAC/lF,GACrB,IAAIgmF,EAAQH,EAAQI,OAAOjmF,EAAOhR,OAAS,IAAIk3F,WAAY,CAACC,QAASnmF,EAAOgpB,OAQ5E,OAPAtjC,EAAKsN,KAAKgzF,GACVljC,EAAQp9D,GACN8qB,EAAUqB,KAAKC,UAEjB3kB,QAAQC,IAAI,eAAgB44F,EAAMn1F,OAAQ,iBAAkBm1F,GAC5D5/F,GAAQ4/F,EAEJhmF,EAAOgpB,MACV77B,QAAQC,IAAI,aACLhH,GAEAggG,GAET,EAEMA,EAAY,WACjB,OAAOvmF,EAAOyxD,OAAOzsE,KAAKkhG,EAC3B,EAAC,kBAEMK,KAAW,2CAClB,gBA3B2B,sCA+BtBC,EAAiB,mDAAG,yGACjBjvF,MAAMrO,EAAY,gEAAiE,CACvFsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEhB1S,KAAK8gG,GACL9gG,KAAK2gG,GACLntF,MAAMotF,GAAuB,2CAC7B,kBAZqB,mCAmBvB,OALCv3F,qBAAU,WACVf,QAAQC,IAAI,iBACZi5F,GACD,GAAG,IAGF,uCAEE3gG,EAAKpB,KAAI,SAAC2xB,EAAWprB,GACrB,OACC,8BACEorB,GADQprB,EAIZ,MAGH,E,0EC/Ee,ICAA,ICAA,I,uBCqFAy7F,GAzEG,SAAC79F,GACjB,IAAOM,EAA2EN,EAA3EM,UAAWyK,EAAgE/K,EAAhE+K,SAAUD,EAAsD9K,EAAtD8K,WAEtBE,GAF4EhL,EAA1CyvB,YAA0CzvB,EAA7B0vB,eAA6B1vB,EAAb2vB,QAEvD1kB,eACd,EAA8C1J,oBAAS,GAAM,mBAAtDu8F,EAAe,KAAEC,EAAkB,KAC1C,EAA0Cx8F,qBAAU,mBAA7CssB,EAAa,KAAE+B,EAAgB,KA4CvC,OAJCnqB,qBAAU,WArCRkJ,MAAMrO,EAAY,sCAAuC,CACvDsO,OAAQ,MACR3K,QAAS,CACP,eAAgB,mBAChB4K,OAAQ,oBAEVC,YAAa,YAEZ1S,MAAK,SAAC2S,GAKL,OAJwB,MAApBA,EAASC,QACXtK,QAAQC,IAAI,iCAGPoK,EAASE,MAClB,IACC7S,MAAK,SAAC8S,IACoB,IAAzBA,EAAae,cACY9O,IAAxB+N,EAAasJ,OAChBxN,EAAM6E,MAAM,mBAAqBX,EAAasJ,QAE9CxN,EAAM6E,MAAM,0CAGbkuF,GAAmB,IAEnBz4D,IAASC,yBAAwB,WAChC3V,EAAiB1gB,GACjB6uF,GAAmB,EACpB,GAEF,IACInuF,OAAM,SAACC,GACVkuF,GAAmB,GACf/yF,EAAM6E,MAAMA,EAAMpG,WACpB,GAKJ,GAAG,IAGH,gCACC,qBAAKrM,MAAO,CAACsR,aAAc,GAAIvJ,UAAW,GAAIxC,MAAO,IAAKkE,OAAQ,OAAQtE,UAAW,UAAW,SAC/F,cAAC,IAAI,CAACnF,MAAO,CAACuW,eAAgB,QAAWD,GAAG,mBAAkB,SAC7D,cAACH,EAAA,EAAM,CAACrO,QAAQ,WAAWzG,MAAM,YAAW,0CAKzB,IAApBq/F,GAA4B/yF,EAC5B,cAAC,GAAY,CACZ8iB,cAAeA,EACf6B,eAAgB,OAChBD,aAAa,EAEb1kB,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IAEX,OAGL,ECnDe09F,OA3Bf,SAAqB,GAAyD,IAAvDC,EAAoB,EAApBA,qBAAsBv8C,EAAO,EAAPA,QAASw8C,EAAU,EAAVA,WACjDl9F,GADoE,EAAPo/C,QAClD+9C,eAoBd,OAlBA14F,qBAAU,WAGVf,QAAQC,IAAI,QAAS+8C,EAAS,QAAS3gD,OAAOC,SAASgP,UACnD0xC,IAAY3gD,OAAOC,SAASgP,UAAwB,cAAZ0xC,IAG3C3gD,OAAOq9F,OAAO,CACb1oF,IAAK,EACL6Q,KAAM,EACNm4D,SAAU,WAGXwf,EAAWn9F,OAAOC,SAASgP,UAC3BiuF,IAED,GAAG,CAACj9F,IAEG,IACT,E,+DCpBMq9F,GAAa,CACjB9/F,gBAAiB,kBACjBE,MAAO,QACPJ,QAAS,GACT6gB,cAAe,YACflhB,aAAc,MACd4G,QAAS,OACTyC,eAAgB,gBAChBD,WAAY,SACZrI,UAAW,sCACX4D,MAAO,IACPsgC,UAAW,aACX97B,OAAQ,OACRzE,SAAU,UAGNo5E,GAAc,CAClBn9E,WAAY,OACZP,OAAQ,OACRG,gBAAiB,cACjBiE,OAAQ,UACR/D,MAAO,WAmBM6/F,GAhBO,SAAH,GAA4C,IAAtC9G,EAAO,EAAPA,QAASplD,EAAO,EAAPA,QAASh1C,EAAK,EAALA,MAAOg/B,EAAK,EAALA,MAChD,OACE,sBAAKh/B,MAAK,2BAAOihG,IAAejhG,GAAQ,UACpB,SAAjBg1C,EAAQx0C,MAAmB,cAAC,KAAQ,CAACR,MAAO,CAAEqB,MAAO,WACpC,YAAjB2zC,EAAQx0C,MAAsB,cAAC,KAAS,CAACR,MAAO,CAAEqB,MAAO,WACxC,UAAjB2zC,EAAQx0C,MACP,cAAC,KAAgB,CAACR,MAAO,CAAEqB,MAAO,SAEpC,cAACwG,EAAA,EAAU,CAAC7H,MAAO,CAAEuB,WAAY,GAAI0T,KAAM,GAAI,SAAEmlF,IACjD,wBAAQj0F,QAAS64B,EAAOh/B,MAAO0+E,GAAY,SACzC,cAAC,KAAS,QAIlB,E,wFCpBM7+E,GAAO,CACX,CACE4M,IAAK,IAAI1F,KAAK,cACdlH,KAAM,IAER,CACE4M,IAAK,IAAI1F,KAAK,cACdlH,KAAM,IAER,CACE4M,IAAK,IAAI1F,KAAK,cACdlH,KAAM,GAER,CACE4M,IAAK,IAAI1F,KAAK,cACdlH,KAAM,KAIJshG,GAAapkE,aAAW,SAAC98B,GAAK,MAAM,CACxCmhG,YAAa,CACX33F,OAAQxJ,EAAM2E,QAAQ,GACtBgD,SAAU,KAEZy5F,YAAa,CACXt5F,UAAW9H,EAAM2E,QAAQ,IAE5B,IAGKk4B,GAAYC,YAAW,CAC3BukE,MAAO,CACL15F,SAAU,KAEZmuC,KAAM,CACJnuC,SAAU,KAEZ25F,OAAQ,CACN/5F,QAAS,eACTiC,OAAQ,QACR+3F,UAAW,cAEbp9F,MAAO,CACL3C,SAAU,IAEZggG,IAAK,CACHnwF,aAAc,MAIlB,SAASowF,GAAWj8F,EAAMk8F,EAAUC,EAAKC,EAAOC,GAC9C,MAAO,CAAEr8F,OAAMk8F,WAAUC,MAAKC,QAAOC,UACvC,CAEA,IAAMllE,GAAO,CACX8kE,GAAW,iBAAkB,IAAK,EAAK,GAAI,GAC3CA,GAAW,qBAAsB,IAAK,EAAK,GAAI,KAC/CA,GAAW,SAAU,IAAK,GAAM,GAAI,GACpCA,GAAW,UAAW,IAAK,IAAK,GAAI,KACpCA,GAAW,cAAe,IAAK,GAAM,GAAI,MAqN5BK,GAlNO,WACpB,IAAMhiE,EAAUjD,KACVklE,EAAWb,KAEjB,EAAsBj9F,IAAMC,SAAS,GAAE,mBAA3B89F,GAAF,KAAQ,MAOlB,OACE,eAACC,GAAA,EAAS,CAAC1gG,SAAS,KAAI,UACtB,eAAC,KAAI,WACH,cAAC,KAAI,CAAC4T,MAAI,EAAC+sF,GAAI,EAAGniG,MAAO,CAAC,OAAS,QAAQ,SACzC,mCACE,cAAC6H,EAAA,EAAU,CAACrH,KAAK,QAAQsH,QAAQ,KAAKzG,MAAM,UAAS,uBAGrD,qBAAKrB,MAAO,CACZ,YAAe,QACf,SACA,eAACid,GAAA,EAAW,CAACstB,UAAWy3D,EAASZ,YAAY,UAC3C,cAACplE,GAAA,EAAU,CAAC38B,GAAG,2BAA0B,0BACzC,eAAC0Y,GAAA,EAAM,CACLkmC,QAAQ,2BACRh1C,SApBO,SAAC5C,GACpB47F,EAAO57F,EAAM2R,OAAO7O,MAEtB,EAiBqC,UAEvB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,GAAG,iBACpB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,GAAG,oBACpB,cAACoO,GAAA,EAAQ,CAACpO,MAAO,GAAG,iCAM1B,cAAC,KAAO,OAEZ,eAAC,KAAI,CACHxE,WAAS,EACTC,QAAS,EACT5E,MAAO,CACLwB,SAAU,SACViI,OAAQ,iBACRxI,QAAS,QACT,UAEF,cAAC,KAAI,CAACmU,MAAI,EAACpR,GAAI,EAAE,SACf,cAAC8kE,GAAA,EAAI,CACHv+B,UAAWxK,EAAQgW,KACnB/1C,MAAO,CACLqB,MAAO,QACPF,gBAAiB,kBACjBwH,OAAQ,QACR3H,OAAQ,8BACR,SAEF,eAACi4F,GAAA,EAAW,WACV,cAACpxF,EAAA,EAAU,CACT0iC,UAAWxK,EAAQ37B,MACnB/C,MAAM,gBACN+gG,cAAY,0CAId,cAACv6F,EAAA,EAAU,CACTC,QAAQ,KACRyiC,UAAWxK,EAAQ0hE,IACnBpgG,MAAM,gBAAe,wBAO7B,cAAC,KAAI,CAAC+T,MAAI,EAACpR,GAAI,EAAE,SACf,cAAC8kE,GAAA,EAAI,CACHv+B,UAAWxK,EAAQgW,KACnB/1C,MAAO,CACLqB,MAAO,QACPF,gBAAiB,kBACjBwH,OAAQ,QACR3H,OAAQ,+BACR,SAEF,eAACi4F,GAAA,EAAW,WACV,cAACpxF,EAAA,EAAU,CACT0iC,UAAWxK,EAAQ37B,MACnB/C,MAAM,gBACN+gG,cAAY,qCAId,cAACv6F,EAAA,EAAU,CACTC,QAAQ,KACRyiC,UAAWxK,EAAQ0hE,IACnBpgG,MAAM,gBAAe,wBAO7B,cAAC,KAAI,CAAC+T,MAAI,EAACpR,GAAI,EAAE,SACf,cAAC8kE,GAAA,EAAI,CACHv+B,UAAWxK,EAAQgW,KACnB/1C,MAAO,CACLqB,MAAO,QACPF,gBAAiB,kBACjBwH,OAAQ,QACR3H,OAAQ,+BACR,SAEF,eAACi4F,GAAA,EAAW,WACV,cAACpxF,EAAA,EAAU,CACT0iC,UAAWxK,EAAQ37B,MACnB/C,MAAM,gBACN+gG,cAAY,uCAId,cAACv6F,EAAA,EAAU,CACTC,QAAQ,KACRyiC,UAAWxK,EAAQ0hE,IACnBpgG,MAAM,gBAAe,2BAQ/B,eAAC,KAAI,CACHsD,WAAS,EACTC,QAAS,EACT5E,MAAO,CACLwB,SAAU,SACViI,OAAQ,iBACRpI,MAAO,QACPF,gBAAiB,kBACjBF,QAAS,QACT,UAEF,cAAC,KAAI,CAACmU,MAAI,EAACitF,GAAI,EAAE,SACf,cAAC,YAAQ,CAAC98F,MAAO,IAAKoD,OAAQ,IAAK9I,KAAMA,OAE3C,cAAC,KAAI,CAACuV,MAAI,EAACitF,GAAI,EAAE,SACf,cAAC,aAAS,CACR98F,MAAO,IACPoD,OAAQ,IACR9I,KAAMA,GACNozC,KAAM,cAAC,cAAU,CAACxT,KAAM,aACxByiD,OAAQ,cAAC,cAAU,CAAC+C,QAAS,cAInC,cAAC,KAAI,CACHtgF,WAAS,EACTC,QAAS,EACT5E,MAAO,CACLwB,SAAU,SACViI,OAAQ,iBACRpI,MAAO,QACPF,gBAAiB,kBACjBF,QAAS,QACT,SAEF,cAAC,KAAI,CAACmU,MAAI,EAACitF,GAAI,GAAG,SAChB,cAACC,GAAA,EAAc,CACblsF,UAAWrQ,IACX/F,MAAO,CACLqB,MAAO,QACPF,gBAAiB,oBACjB,SAEF,eAACohG,GAAA,EAAK,CACJh4D,UAAWxK,EAAQuhE,MACnBxmF,KAAK,QACL,aAAW,gBAAe,UAE1B,cAAC0nF,GAAA,EAAS,UACR,eAACC,GAAA,EAAQ,WACP,cAACC,GAAA,EAAS,qCACV,cAACA,GAAA,EAAS,CAACC,MAAM,QAAO,sBACxB,cAACD,GAAA,EAAS,CAACC,MAAM,QAAO,wBACxB,cAACD,GAAA,EAAS,CAACC,MAAM,QAAO,0BACxB,cAACD,GAAA,EAAS,CAACC,MAAM,QAAO,iCAG5B,cAACC,GAAA,EAAS,UACPhmE,GAAKn+B,KAAI,SAAC89B,GAAG,OACZ,eAACkmE,GAAA,EAAQ,WACP,cAACC,GAAA,EAAS,CAACtsF,UAAU,KAAK6L,MAAM,MAAK,SAClCsa,EAAI92B,OAEP,cAACi9F,GAAA,EAAS,CAACC,MAAM,QAAO,SAAEpmE,EAAIolE,WAC9B,cAACe,GAAA,EAAS,CAACC,MAAM,QAAO,SAAEpmE,EAAIqlE,MAC9B,cAACc,GAAA,EAAS,CAACC,MAAM,QAAO,SAAEpmE,EAAIslE,QAC9B,cAACa,GAAA,EAAS,CAACC,MAAM,QAAO,SAAEpmE,EAAIulE,YAPjBvlE,EAAI92B,KAQR,iBAS7B,ECvPIvC,GAAYS,OAAOC,SAAS28D,OAGH,SAAzB58D,OAAOC,SAASi/F,OAClB3/F,GAAY,yBAKVA,GAAUiJ,SAAS,oBAEtBjJ,GAAY,mEAIb,IAwpBe4/F,GAxpBH,SAAC1I,EAASx3F,GAAW,IAAD,MAE9B,EAAgCuB,mBAAS,CAAC,GAAE,mBAArCX,EAAQ,KAAEs6F,EAAW,KAC5B,EAA0C35F,mBAAS,IAAG,mBAA/C4lE,EAAa,KAAED,EAAgB,KACtC,EAA2Ci5B,YAAW,IAAG,mBAAlD74B,EAAO,KAAE2yB,EAAS,KAAE7yB,EAAY,KACvC,EAAoC7lE,oBAAS,GAAM,mBAA5CuJ,EAAU,KAAEkvF,EAAa,KAChC,EAA8Bz4F,oBAAS,GAAM,mBAAtC6+F,EAAO,KAAEC,EAAU,KAC1B,EAAgC9+F,oBAAS,GAAM,mBAAxCwJ,EAAQ,KAAEu1F,EAAW,KAC5B,EAA8B/+F,mBAA2B,qBAAXR,aAA8CI,IAApBJ,OAAOC,SAAyB,GAAKD,OAAOC,SAASgP,UAAS,mBAA/H0xC,EAAO,KAAEw8C,EAAU,KAG1Bz4F,qBAAU,YACQ,IAAZ26F,IACFnC,IACA9D,IACAkG,GAAW,GAEf,GAAG,KAGDt1F,GACCD,GACA/J,OAAOC,SAASgP,SAAS1G,WAAW,WACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,UACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,aACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,wBACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,kBACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,gBACpCvI,OAAOC,SAASgP,SAAS1G,WAAW,eAErCvI,OAAOC,SAAW,UAGpB,IAAMi9F,EAAuB,WAC3BtvF,MAAM,GAAD,OAAIrO,GAAS,+BAA+B,CAC/CwO,YAAa,UACb7K,QAAS,CACP,eAAgB,oBAErBs8F,KAAM,SAEFnkG,MAAK,SAAC2S,GAAQ,OAAKA,EAASE,MAAM,IAClC7S,MAAK,SAAC8S,IAEsB,IAAzBA,EAAae,SACkB,OAA/Bf,EAAai4D,oBACkBhmE,IAA/B+N,EAAai4D,eACbj4D,EAAai4D,cAAc/+D,OAAS,GAGpC8+D,EAAiBh4D,EAAai4D,cAElC,IACCv3D,OAAM,SAACC,GACNnL,QAAQC,IAAI,0CAA2CkL,EACzD,GACJ,EAEMsqF,EAAa,WAEjBxrF,MAAM,GAAD,OAAIrO,GAAS,mBAAmB,CACnCwO,YAAa,UACb7K,QAAS,CACP,eAAgB,sBAGjB7H,MAAK,SAAC2S,GAAQ,OAAKA,EAASE,MAAM,IAClC7S,MAAK,SAAC8S,GACL,IAAIsxF,EAAW,CAAC,EAChB,IAA6B,IAAzBtxF,EAAae,QAOf,IAAK,IAAIpG,KAJT22F,EAAWtxF,EACX8qF,GAAc,GAGE9qF,EAAsB,QACpC+qF,EACE/qF,EAAsB,QAAErF,GAAKA,IAC7BqF,EAAsB,QAAErF,GAAKtD,MAC7B,CAAE2C,KAAM,MA0HdgyF,EAAYsF,GACZF,GAAY,EACd,IACC1wF,OAAM,SAACC,GACNywF,GAAY,EACd,GACJ,EAIMluD,EAAU,CACd2xB,QAAS,IACTthE,SAAU4jE,IAAUo6B,aAOhBC,EACyB,UAA7B3/F,OAAOC,SAASgP,UACa,cAA7BjP,OAAOC,SAASgP,SACd,8BACF,cAAC,IAAM,UACN,cAAC,IAAK,CACL2wF,OAAK,EACLz3F,KAAK,QACL03F,OAAQ,SAAC5gG,GAAK,OAAK,cAAC,GAAc,aAAC+K,SAAUA,GAAc/K,GAAS,QAKpE,sBACE5C,MAAO,CACLmB,gBAAiB,UACjBE,MAAO,4BACPC,UAAW,SACX,UAEF,cAAC,GAAW,CACVu/F,qBAAsBA,EAC3Bv8C,QAASA,EACJw8C,WAAYA,IAEhBnzF,GAC0B,IAA3BnK,EAAS4oE,cAAyB,KACjC,cAAC,KAAK,CACL1lE,MAAM,eACN+8F,WAAY,CACXh+F,UAA4B1B,IAAtBP,EAASuqC,UAAgD,OAAtBvqC,EAASuqC,SAAoB,WAAU,cAAUvqC,EAASuqC,WAEpG21D,cAAe,CACd,CACCr9F,MAAO,gCACPs9F,SAvCuB,SAACt9F,GAC/BiB,QAAQC,IAAI,sBAAuBlB,EACpC,MA2BgB,KAeT,cAAC,GAAM,aACL0jE,cAAeA,EACfD,iBAAkBA,EAClBizB,WAAYA,EACZ7yB,QAASA,EACTF,aAAcA,EACdr8D,SAAUA,EACVzK,UAAWA,GACX05F,cAAeA,EACflvF,WAAYA,EACZlK,SAAUA,GACNZ,IAEN,qBAAK5C,MAAO,CAAE2I,OAAQ,MAC1B,eAAC,IAAM,WACF,cAAC,IAAK,CACJ46F,OAAK,EACLz3F,KAAK,SACLo8D,QACE,cAAC07B,GAAS,aACRl2F,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,EACT6yB,WAAYA,GACRn6F,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,SACLo8D,QACE,cAAC,GAAK,aACJ1kE,SAAUA,EACVkK,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,MAId,cAAC,IAAK,CAAC2gG,OAAK,EAACz3F,KAAK,UAAUo8D,QAAS,cAAC,GAAM,aAACO,YAAY,EAAO96D,SAAUA,EAAUnK,SAAUA,EAAUN,UAAWA,GAAWzC,aAAcR,EAAME,QAAQM,aAAcC,WAAYT,EAAME,QAAQO,YAAgBkC,MAC9M,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,cACLo8D,QACE,cAAC,GAAK,aACJx6D,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,WAIOmB,IAAhBP,EAASnE,GACR,cAAC,IAAK,CACJkkG,OAAK,EACLz3F,KAAK,YACLo8D,QACE,cAAC27B,GAAY,aACXl2F,SAAUA,EACVmwF,YAAaA,EACbt6F,SAAUA,EACVN,UAAWA,IACPN,MAIR,KACJ,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,cACLo8D,QACE,cAAC47B,GAAU,aACTn2F,SAAUA,EACVnK,SAAUA,EACVN,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,sBACLo8D,QACE,cAAC67B,GAAgB,aACtBzxE,eAAgB,OAChBD,aAAa,EAEN1kB,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,OACLo8D,QACE,cAAC67B,GAAgB,aACtBzxE,eAAgB,OAChBD,aAAa,EAEN1kB,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,YACLo8D,QACE,cAAC,GAAS,aACRv6D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,YACLo8D,QACE,cAAC,GAAU,aACTv6D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,QACLo8D,QACH,cAAC,GAAI,aACJv6D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,GACXM,SAAUA,GACNZ,MAIJ,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,oBACLo8D,QACE,cAAC,GAAU,aACTv6D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,aACLo8D,QACE,cAAC,GAAS,gBACRgC,QAASA,EACTF,aAAcA,EACdr8D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IAAU,wBACZgnE,GAAO,yBACN1mE,GAAQ,GACdZ,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,mBACLo8D,QACE,cAAC,GAAc,gBACbgC,QAASA,EACTF,aAAcA,EACdr8D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IAAU,wBACZgnE,GAAO,yBACN1mE,GAAQ,GACdZ,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,kBACLo8D,QACE,cAAC,GAAe,aACrBt6D,MAAOA,MACApK,SAAUA,EACVN,UAAWA,GACXyK,SAAUA,EACVD,WAAYA,GACR9K,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,aACLo8D,QACE,cAAC,GAAI,aACHjlE,SAAUA,WACV0K,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,QACLo8D,QAEE,cAAC,GAAI,aACHjlE,SAAUA,WACV0K,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,WACLo8D,QAEE,cAAC,GAAI,aACHjlE,SAAUA,WACV0K,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,gBACLo8D,QACE,cAAC87B,GAAY,aACXr2F,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,qBACLo8D,QACE,cAAC87B,GAAY,aACXr2F,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,sBACLo8D,QACE,cAAC,GAAiB,aAChB1kE,SAAUA,EACVkK,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,aACLo8D,QACE,cAAC+7B,GAAoB,aACnBzgG,SAAUA,EACVkK,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,aACLo8D,QACE,cAAC,GAAS,aACRx6D,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,MAIhB,cAAC,IAAK,CACE2gG,OAAK,EACLz3F,KAAK,iBACLo8D,QACE,cAAC,GAAa,aACZv6D,SAAUA,EACVzK,UAAWA,IACPN,MAIV,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,cACLo8D,QACE,cAAC,GAAa,aACZv6D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IACPN,MAId,cAAC,IAAK,CACL2gG,OAAK,EACLz3F,KAAK,WACLo8D,QACC,cAAC,GAAO,gBACPgC,QAASA,EACTF,aAAcA,EACdr8D,SAAUA,EACVD,WAAYA,EACZxK,UAAWA,IAAU,wBACZgnE,GAAO,yBACN1mE,GAAQ,GACdZ,MAIH,cAAC,IAAK,CACJ2gG,OAAK,EACLz3F,KAAK,IACLo8D,QACE,cAAC07B,GAAS,aACRl2F,WAAYA,EACZkvF,cAAeA,EACfE,UAAU,EACVnvF,SAAUA,EACVzK,UAAWA,GACX25F,UAAWA,EACX3yB,QAASA,GACLtnE,YAWjB,OACE,cAAC,KAAgB,CAAC3C,MAAOA,EAAM,SAC7B,cAACikG,EAAA,EAAe,UACd,cAAC,IAAa,UACZ,cAAC,IAAQ,yBAAC5pD,SAAU4mD,IAAmBlsD,GAAO,aAC3CsuD,UAMb,EC3sBoB5yD,QACW,cAA7B/sC,OAAOC,SAASugG,UAEe,UAA7BxgG,OAAOC,SAASugG,UAEhBxgG,OAAOC,SAASugG,SAAS1xD,MACvB,2DCVNvK,IAASs7D,OAAO,cAAC,GAAG,IAAKpyF,SAASsE,eAAe,SDmH3C,kBAAmBwN,WACrBA,UAAUkhF,cAAcC,MAAMrlG,MAAK,SAACslG,GAClCA,EAAaC,YACf,G","file":"static/js/main.25e6def4.chunk.js","sourcesContent":["var map = {\n\t\"./apl/apl.js\": [\n\t\t854,\n\t\t30\n\t],\n\t\"./asciiarmor/asciiarmor.js\": [\n\t\t855,\n\t\t31\n\t],\n\t\"./asn.1/asn.1.js\": [\n\t\t856,\n\t\t32\n\t],\n\t\"./asterisk/asterisk.js\": [\n\t\t857,\n\t\t33\n\t],\n\t\"./brainfuck/brainfuck.js\": [\n\t\t858,\n\t\t34\n\t],\n\t\"./clike/clike.js\": [\n\t\t843,\n\t\t2\n\t],\n\t\"./clojure/clojure.js\": [\n\t\t859,\n\t\t35\n\t],\n\t\"./cmake/cmake.js\": [\n\t\t860,\n\t\t36\n\t],\n\t\"./cobol/cobol.js\": [\n\t\t861,\n\t\t37\n\t],\n\t\"./coffeescript/coffeescript.js\": [\n\t\t844,\n\t\t38\n\t],\n\t\"./commonlisp/commonlisp.js\": [\n\t\t862,\n\t\t39\n\t],\n\t\"./crystal/crystal.js\": [\n\t\t863,\n\t\t40\n\t],\n\t\"./css/css.js\": [\n\t\t840,\n\t\t1\n\t],\n\t\"./cypher/cypher.js\": [\n\t\t864,\n\t\t41\n\t],\n\t\"./d/d.js\": [\n\t\t865,\n\t\t42\n\t],\n\t\"./dart/dart.js\": [\n\t\t866,\n\t\t2,\n\t\t43\n\t],\n\t\"./diff/diff.js\": [\n\t\t867,\n\t\t44\n\t],\n\t\"./django/django.js\": [\n\t\t868,\n\t\t0,\n\t\t1,\n\t\t11\n\t],\n\t\"./dockerfile/dockerfile.js\": [\n\t\t869,\n\t\t21\n\t],\n\t\"./dtd/dtd.js\": [\n\t\t870,\n\t\t45\n\t],\n\t\"./dylan/dylan.js\": [\n\t\t871,\n\t\t46\n\t],\n\t\"./ebnf/ebnf.js\": [\n\t\t872,\n\t\t47\n\t],\n\t\"./ecl/ecl.js\": [\n\t\t873,\n\t\t48\n\t],\n\t\"./eiffel/eiffel.js\": [\n\t\t874,\n\t\t49\n\t],\n\t\"./elm/elm.js\": [\n\t\t875,\n\t\t50\n\t],\n\t\"./erlang/erlang.js\": [\n\t\t876,\n\t\t51\n\t],\n\t\"./factor/factor.js\": [\n\t\t877,\n\t\t22\n\t],\n\t\"./fcl/fcl.js\": [\n\t\t878,\n\t\t52\n\t],\n\t\"./forth/forth.js\": [\n\t\t879,\n\t\t53\n\t],\n\t\"./fortran/fortran.js\": [\n\t\t880,\n\t\t54\n\t],\n\t\"./gas/gas.js\": [\n\t\t881,\n\t\t55\n\t],\n\t\"./gfm/gfm.js\": [\n\t\t882,\n\t\t4,\n\t\t20\n\t],\n\t\"./gherkin/gherkin.js\": [\n\t\t883,\n\t\t56\n\t],\n\t\"./go/go.js\": [\n\t\t884,\n\t\t57\n\t],\n\t\"./groovy/groovy.js\": [\n\t\t885,\n\t\t58\n\t],\n\t\"./haml/haml.js\": [\n\t\t886,\n\t\t0,\n\t\t1,\n\t\t14\n\t],\n\t\"./handlebars/handlebars.js\": [\n\t\t845,\n\t\t16\n\t],\n\t\"./haskell-literate/haskell-literate.js\": [\n\t\t887,\n\t\t26\n\t],\n\t\"./haskell/haskell.js\": [\n\t\t846,\n\t\t59\n\t],\n\t\"./haxe/haxe.js\": [\n\t\t888,\n\t\t60\n\t],\n\t\"./htmlembedded/htmlembedded.js\": [\n\t\t889,\n\t\t0,\n\t\t1,\n\t\t10\n\t],\n\t\"./htmlmixed/htmlmixed.js\": [\n\t\t839,\n\t\t0,\n\t\t1,\n\t\t27\n\t],\n\t\"./http/http.js\": [\n\t\t890,\n\t\t61\n\t],\n\t\"./idl/idl.js\": [\n\t\t891,\n\t\t62\n\t],\n\t\"./javascript/javascript.js\": [\n\t\t841,\n\t\t0\n\t],\n\t\"./jinja2/jinja2.js\": [\n\t\t892,\n\t\t63\n\t],\n\t\"./jsx/jsx.js\": [\n\t\t893,\n\t\t0,\n\t\t28\n\t],\n\t\"./julia/julia.js\": [\n\t\t894,\n\t\t64\n\t],\n\t\"./livescript/livescript.js\": [\n\t\t895,\n\t\t65\n\t],\n\t\"./lua/lua.js\": [\n\t\t896,\n\t\t66\n\t],\n\t\"./markdown/markdown.js\": [\n\t\t851,\n\t\t4\n\t],\n\t\"./mathematica/mathematica.js\": [\n\t\t897,\n\t\t67\n\t],\n\t\"./mbox/mbox.js\": [\n\t\t898,\n\t\t68\n\t],\n\t\"./meta.js\": [\n\t\t372\n\t],\n\t\"./mirc/mirc.js\": [\n\t\t899,\n\t\t69\n\t],\n\t\"./mllike/mllike.js\": [\n\t\t900,\n\t\t70\n\t],\n\t\"./modelica/modelica.js\": [\n\t\t901,\n\t\t71\n\t],\n\t\"./mscgen/mscgen.js\": [\n\t\t902,\n\t\t72\n\t],\n\t\"./mumps/mumps.js\": [\n\t\t903,\n\t\t73\n\t],\n\t\"./nginx/nginx.js\": [\n\t\t904,\n\t\t74\n\t],\n\t\"./nsis/nsis.js\": [\n\t\t905,\n\t\t23\n\t],\n\t\"./ntriples/ntriples.js\": [\n\t\t906,\n\t\t75\n\t],\n\t\"./octave/octave.js\": [\n\t\t907,\n\t\t76\n\t],\n\t\"./oz/oz.js\": [\n\t\t908,\n\t\t77\n\t],\n\t\"./pascal/pascal.js\": [\n\t\t909,\n\t\t78\n\t],\n\t\"./pegjs/pegjs.js\": [\n\t\t910,\n\t\t0,\n\t\t79\n\t],\n\t\"./perl/perl.js\": [\n\t\t911,\n\t\t80\n\t],\n\t\"./php/php.js\": [\n\t\t912,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t17\n\t],\n\t\"./pig/pig.js\": [\n\t\t913,\n\t\t81\n\t],\n\t\"./powershell/powershell.js\": [\n\t\t914,\n\t\t82\n\t],\n\t\"./properties/properties.js\": [\n\t\t915,\n\t\t83\n\t],\n\t\"./protobuf/protobuf.js\": [\n\t\t916,\n\t\t84\n\t],\n\t\"./pug/pug.js\": [\n\t\t852,\n\t\t0,\n\t\t1,\n\t\t3\n\t],\n\t\"./puppet/puppet.js\": [\n\t\t917,\n\t\t85\n\t],\n\t\"./python/python.js\": [\n\t\t847,\n\t\t86\n\t],\n\t\"./q/q.js\": [\n\t\t918,\n\t\t87\n\t],\n\t\"./r/r.js\": [\n\t\t919,\n\t\t88\n\t],\n\t\"./rpm/rpm.js\": [\n\t\t920,\n\t\t89\n\t],\n\t\"./rst/rst.js\": [\n\t\t921,\n\t\t13\n\t],\n\t\"./ruby/ruby.js\": [\n\t\t842,\n\t\t90\n\t],\n\t\"./rust/rust.js\": [\n\t\t922,\n\t\t24\n\t],\n\t\"./sas/sas.js\": [\n\t\t923,\n\t\t91\n\t],\n\t\"./sass/sass.js\": [\n\t\t849,\n\t\t1,\n\t\t92\n\t],\n\t\"./scheme/scheme.js\": [\n\t\t924,\n\t\t93\n\t],\n\t\"./shell/shell.js\": [\n\t\t925,\n\t\t94\n\t],\n\t\"./sieve/sieve.js\": [\n\t\t926,\n\t\t95\n\t],\n\t\"./slim/slim.js\": [\n\t\t927,\n\t\t0,\n\t\t1,\n\t\t15\n\t],\n\t\"./smalltalk/smalltalk.js\": [\n\t\t928,\n\t\t96\n\t],\n\t\"./smarty/smarty.js\": [\n\t\t929,\n\t\t97\n\t],\n\t\"./solr/solr.js\": [\n\t\t930,\n\t\t98\n\t],\n\t\"./soy/soy.js\": [\n\t\t931,\n\t\t0,\n\t\t1,\n\t\t18\n\t],\n\t\"./sparql/sparql.js\": [\n\t\t932,\n\t\t99\n\t],\n\t\"./spreadsheet/spreadsheet.js\": [\n\t\t933,\n\t\t100\n\t],\n\t\"./sql/sql.js\": [\n\t\t934,\n\t\t101\n\t],\n\t\"./stex/stex.js\": [\n\t\t848,\n\t\t102\n\t],\n\t\"./stylus/stylus.js\": [\n\t\t853,\n\t\t5\n\t],\n\t\"./swift/swift.js\": [\n\t\t935,\n\t\t103\n\t],\n\t\"./tcl/tcl.js\": [\n\t\t936,\n\t\t104\n\t],\n\t\"./textile/textile.js\": [\n\t\t937,\n\t\t105\n\t],\n\t\"./tiddlywiki/tiddlywiki.js\": [\n\t\t938,\n\t\t106\n\t],\n\t\"./tiki/tiki.js\": [\n\t\t939,\n\t\t107\n\t],\n\t\"./toml/toml.js\": [\n\t\t940,\n\t\t108\n\t],\n\t\"./tornado/tornado.js\": [\n\t\t941,\n\t\t0,\n\t\t1,\n\t\t12\n\t],\n\t\"./troff/troff.js\": [\n\t\t942,\n\t\t109\n\t],\n\t\"./ttcn-cfg/ttcn-cfg.js\": [\n\t\t944,\n\t\t110\n\t],\n\t\"./ttcn/ttcn.js\": [\n\t\t943,\n\t\t111\n\t],\n\t\"./turtle/turtle.js\": [\n\t\t945,\n\t\t112\n\t],\n\t\"./twig/twig.js\": [\n\t\t946,\n\t\t19\n\t],\n\t\"./vb/vb.js\": [\n\t\t947,\n\t\t113\n\t],\n\t\"./vbscript/vbscript.js\": [\n\t\t948,\n\t\t114\n\t],\n\t\"./velocity/velocity.js\": [\n\t\t949,\n\t\t115\n\t],\n\t\"./verilog/verilog.js\": [\n\t\t950,\n\t\t116\n\t],\n\t\"./vhdl/vhdl.js\": [\n\t\t951,\n\t\t117\n\t],\n\t\"./vue/vue.js\": [\n\t\t952,\n\t\t0,\n\t\t1,\n\t\t5,\n\t\t3,\n\t\t9\n\t],\n\t\"./wast/wast.js\": [\n\t\t953,\n\t\t25\n\t],\n\t\"./webidl/webidl.js\": [\n\t\t954,\n\t\t118\n\t],\n\t\"./xml/xml.js\": [\n\t\t838,\n\t\t119\n\t],\n\t\"./xquery/xquery.js\": [\n\t\t955,\n\t\t120\n\t],\n\t\"./yacas/yacas.js\": [\n\t\t956,\n\t\t121\n\t],\n\t\"./yaml-frontmatter/yaml-frontmatter.js\": [\n\t\t957,\n\t\t29\n\t],\n\t\"./yaml/yaml.js\": [\n\t\t850,\n\t\t122\n\t],\n\t\"./z80/z80.js\": [\n\t\t958,\n\t\t123\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 731;\nmodule.exports = webpackAsyncContext;","const data = [{\n\t\t\tselector: 'node',\n\t\t\tcss: {\n\t\t\t\t'label': 'data(label)',\n\t\t\t\t'text-valign': 'center',\n\t\t\t\t'font-family': 'Segoe UI, Tahoma, Geneva, Verdana, sans-serif, sans-serif',\n\t\t\t\t'font-weight': 'lighter',\n\t\t\t\t'font-size': 'data(font_size)',\n\t\t\t\t'text-algin': 'center',\n\t\t\t\t'border-width': '3px',\n\t\t\t\t'border-color': '#8a8a8a',\n\t\t\t\t'color': '#f85a3e',\n\t\t\t\t'text-margin-x': '0px',\n\t\t\t\t'text-margin-y': 'data(text_margin_y)',\n\t\t\t\t'background-color': '#27292d',\n\t\t\t\t'background-image': 'data(large_image)',\n\t\t\t\t'background-position-x': 'data(margin_x)',\n\t\t\t\t'background-position-y': 'data(margin_y)',\n\t\t\t\t'background-clip': \"node\",\n\t\t\t\t'background-width': 'data(width)',\n\t\t\t\t'background-height': 'data(width)',\n\t\t\t\t'width': 'data(boxwidth)',\n\t\t\t\t'height': 'data(boxheight)',\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tselector: 'edge',\n\t\t\tcss: {\n\t\t\t\t'target-arrow-shape': 'triangle',\n\t\t\t\t'target-arrow-color': '#8a8a8a',\n\t\t\t\t'curve-style': 'bezier',\n\t\t\t\t'label': 'data(label)',\n\t\t\t\t'text-wrap': 'wrap',\n\t\t\t\t'text-max-width': '120px',\n\t\t\t\t\"color\": \"rgba(255,255,255,0.7)\",\n\t\t\t\t'line-style': 'dashed',\n\t\t\t\t\"line-fill\": \"linear-gradient\",\n\t\t\t\t\"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n\t\t\t\t\"line-gradient-stop-colors\": [\"#8a8a8a\", \"#8a8a8a\"],\n\t\t\t\t'width': '1px',\n\t\t\t\t'z-compound-depth': 'top',\n\t\t\t\t'font-size': '13px',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tselector: `node[!is_valid]`,\n\t\t\tcss: {\n\t\t\t\t'height': '20px',\n\t\t\t\t'width': '20px',\n\t\t\t\t'background-color': '#6d9eeb',\n\t\t\t\t'border-color': '#4c6ea4',\n\t\t\t\t'border-width': '1px',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tselector: `edge[?human]`,\n\t\t\tcss: {\n\t\t\t\t'target-arrow-color': '#6d9eeb',\n\t\t\t\t'line-style': 'solid',\n\t\t\t\t\"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n\t\t\t\t\"line-gradient-stop-colors\": [\"#6d9eeb\", \"#6d9eeb\"],\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tselector: `node[?middle_node]`,\n\t\t\tcss: {\n\t\t\t\t'background-image': '/images/Shuffle_logo.png',\n\t\t\t\t'height': 'data(width)',\n\t\t\t\t'width': 'data(height)',\n\t\t\t\t'background-width': 'data(width)',\n\t\t\t\t'background-height': 'data(height)',\n\t\t\t\t'background-position-x': '0px',\n\t\t\t\t'background-position-y': '0px',\n\t\t\t\t'border-width': '2px',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tselector: `node[?invisible]`,\n\t\t\tcss: {\n\t\t\t\t'height': '10x',\n\t\t\t\t'width': '10px',\n\t\t\t\t'background-position-x': '0px',\n\t\t\t\t'background-position-y': '0px',\n\t\t\t\t'border-width': '0px',\n\t\t\t\t'font-size': '0px',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tselector: `node[?font_size]`,\n\t\t\tcss: {\n\t\t\t\t'font-size': 'data(font_size)',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tselector: \".eh-preview, .eh-ghost-edge\",\n\t\t\tstyle: {\n\t\t\t\t\"background-color\": \"#337ab7\",\n\t\t\t\t\"line-color\": \"#337ab7\",\n\t\t\t\t\"target-arrow-color\": \"#337ab7\",\n\t\t\t\t\"source-arrow-color\": \"#337ab7\",\n\t\t\t},\n\t\t},\n \t{\n\t\t\tselector: \"node:selected\",\n\t\t\tcss: {\n\t\t\t\t\"border-color\": \"#f86a3e\",\n\t\t\t\t\"border-width\": \"3px\",\n\t\t\t},\n\t\t},\n\t]\n\nexport default data \n","import React from \"react\";\nimport { createMuiTheme } from \"@material-ui/core/styles\";\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: \"#f85a3e\",\n },\n secondary: {\n main: \"#e8eaf6\",\n },\n text: {\n secondary: \"rgba(255,255,255,0.7)\",\n },\n type: \"dark\",\n surfaceColor: \"#27292d\",\n inputColor: \"#383B40\",\n platformColor: \"#1F2023\",\n borderRadius: 5,\n defaultBorder: \"1px solid rgba(255,255,255,0.3)\",\n\t\tjsonTheme: \"brewer\",\n\t\treactJsonStyle: {\n\t\t\tborderRadius: 5,\n\t\t\tborder: \"1px solid rgba(255,255,255,0.7)\",\n\t\t\tpadding: 5, \n\t\t},\n textFieldStyle: {\n backgroundColor: \"#383B40\",\n borderRadius: 5,\n },\n innerTextfieldStyle: {\n color: \"white\",\n minHeight: 50,\n marginLeft: \"5px\",\n maxWidth: \"95%\",\n fontSize: \"1em\",\n borderRadius: 5,\n },\n tooltip: {\n backgroundColor: \"white\",\n color: \"rgba(0, 0, 0, 0.87)\",\n boxShadow: 1,\n fontSize: 11,\n },\n defaultImage:\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAACuCAYAAACvDDbuAAAgAElEQVR4Xu19e9CvV1Xe3r/vnJOcBEhBSgMEBaoUK9POCOVmAuP0HwcUCNYZSUsh9xv3hGl1qNippQRE20IFEhQoBJiaKVpEgQRnhD+0QHSmRkAsxE4doBZQTs71u/zezruv6/Ksvffvkn/qd8bBfN/3XvZe+1nPevbaa+/XuxX/Tbe6C/ece8qOd5dNk3um9+7Jk/OPds49zE3uyPy4ST5zCr/y4f+sfxO4j16vHsqfmV7gpgm8Yzm/lP9+km1B9+W2zn/zzk2sDeR55ffy3enn1Lf5J/1e3bb42kX43/Do1nt9fUdpLrSbbFt8vvls+idlm/qsaJPWuNK/TfvOLU44577pnPuSc9PvT95/9szu3p9c/IH/c2oVKDbeyB8z/Yz7noNd9zzn3U+5hX+6m9wjnXM7GqXCHpbR0+PnjudGxEtBkzRo02vFtRB83rkAXPqPGD4MnmWGGa3CDqp9+pp4Bwd2dCwPzIXur6D1xaGRXaQz8nf4Kfix1/3joDXtDm0jHVbYspirbZdkj4Npcv/XO/8F59xdfv/o7zz0A1/9yxEAd4E7/by74OCke5Fb+Bvd5J7unDvGHmyCKiMzX40ByW+XQCxvyoSafgGMBT0fgTayXmA/kykr8PI1kS0JIOMPRiSJ7ctOWfuI+mcw4Uj7lO25Y0TQoyHGbKsjJbqXR5HoKijK6nuz3bPhokEX+f4956Z7nXP/8cz+w//bxR/4H00GbgJ3ep170sHC/WxgWecvUJ5AemrLA4NF2cCAa4BDSCbjYVR2RYN2ZXlAOgxZqcXUDLh9toyvSkybopAJ+KBbOpHADOEjoO1EkVYU6LB0HbPUDtaN8N7TzrmPOnfwry9631/8mcW+JnD3Xu+eu3DubZNzT1Xhu8eyxaXw47lWBIzcAW2fGSpoM1WPgzYNWqSRwqjsnSYokgMyvW5JnzWZNrQpC9tC+ZVZW1Ek9GbBQK8ZuS99mrrW1sPh7XXsTeDmqHrvYvKve+j77/8MAi9E1v6t7vnOu7c7555gaM4SuiHGOsajcV8xmeEUMSDFf4yJQLiUmpYNTg906iVCl7b6ltu4gi5lTMs6Z4RpwLQsVMP+IZaNTtYngRoNI1uOzwdYhJxtEhqKAFsdvoI0XHy/m3ZeedH7v/ZxCV7Vir1b3HP8wr3PBC1HDsog5IkJxSdDHAyBlRqBgyHwAANuI3sg3j4G+shSHASQaRlbZtDW8AmiT7b3TLJD8qACrWrwkclYg2l70qACWow5IZvQ9lHQUmeZ7p+8v/Lh7/3z36NDw6w7a9rljvvw5NwPWykOOuEono5YT8IvXQNBK5yhGnwFVoCgZYPYZgvSBtnGMMkJnR2ZrIh3Fga3mGoR9YgpL2xAjbGlBC2YTEGWJu01J3mkrwYGuFP25EF1XMFj9y6Wiyse9p+/9hXl2il78G7n3T9radomMVphpMdGUG9wAJRLYJ4Wz2CZ73QmUpkxa9jlA2fmKvNz0414Fm+Abw6b+U8D4Km+xfsb0l5E99Z+S4mApIHhaEz2bCAPSmMkaNMzW4Av94ac3vtPHdu96TG3f32evFXhuH+ru8J5f4dzrmYPVGiKN7Bfsx/syVj+C07AA3WQmlYBa4TR+bpWnhYCgjyLtN+OBrbezPdAwNcQCjq4EAsaCEAS8BF4PNIZoBKhWdo9PMO0DX5vbmGTRMi41SgyxrQlTcmsVQB+2jt/3UXv/9qdxVLTre5RBwv/m25yz+Qspe2NQWt5ZEQ5x79kMgzaoTC4DM9SuoqDvcEWSqKsNlnJHYvvQ5oWvRutiInrijdwALGBLZ003sEcMl7DSEdHoGTHyoQ4eqTxaqymzdmYuq40wrS1D5A80i+985/1u0de/LAPf+Vb4Y7917uXO+dud84fRcClIOKdVwPGQZRuNBuj6DujMHakCUCgadUsubeMS1A/vhRLBxZEgR6g8juLbUzAE1tWe8wslv9hh9HyQPknZNpEAsUQaJWPDgpttyCjsDxuTMQMwAOiUoTknNv1frrmovfd/wE/1x4cTP4jbuF+3AItwFe81ACGXm0SAC/5UTYGoSBAdwCwmZE9GAqhInmvBr8JPMmAo0zLB7G5YmdMALkTy/fOz5+NonO0VaJl0Bmyh3jDakzL2xL6JnLF8dGjk8xKDBWPtc3euY+dWT7kJX73VveMhfe/4Zy7ONOcgDpnP+a+iC1WLpZJ7RPhArLCPD7snZSVpnmGkgMZTdIrA5BIwOoHBkDLHWs1eRBMZ/Wr2FWGTcFmGQSMZYhjAInAB1C2WQIlrBGUi1JtUaJ8DHrtVIJtwyjZ6bxKjA3Q1n590y8Wl/uDW9wt08LfFgpmCCgx81FroU40KqhUvNLPYu+0NBSYiBUckjDHxtX0eCJJeqBN7cfh2WazKa/FK4MK+wGmHV/t40wbmyoBj8erYDQ5VGYC1VzFmBZpjUzEjGIjhREO5NS2A+f9v/T7t7q7nPc/qZPbYuhZeJdGL6lIMgFQ12gsJUBxwObLxP1KHujO+8nQZT15ANiOsrRcooZVXjDEyyovAzypbDKNQRifdSZiFXTI9m2JQCNBZcAcv+x7w9iF/zEACwlLZEd6ZZiFmWI7vJvu8gevd/dNk/+hPFDa02rwtXOZdZij8axlUoldwnilAYaRDKa1c5ixizxMVqfAEcUIo122RW2OCwv8/aPSotolLn5Y+nBkRWxk4aQuqGu7GOMxE5nPtQcN0DLggvGGYySjRR3L1L77/P6t/tvOuUc0gdvSZb0qL+hxtbSw/tkGma49SB3J2sl4R0SOBqNm+AYbFW9Hz0KgqIPIgWsCgHhzvaZ9rwYsjgKyzZiJMVmNVoiNsi3oWxi3BlkUwshMW7JO35mBu+dc3LmgwNvUfZVNasfH5AHVX/kOvHNBDzbXfX3jZkxnThliwSwtSswcLQDng7haFVUEWb99umAm6+5iyzA0yDbcntDmhQSwo2U5EvPzI3pWOzzDC/OaLtMm0Pm9GbhVpkD0hheX9hZwpxdWPYQ6iiqMweCgUMizB7nBYtXOeKeo0optXC1Mg8WFagMzAtV62mpKwCiC4miBdcCNSRg2aOnQNSu4Amn5MAi2LGyzoF2aaDtLflfCS2kDtBPRtBVf+cr4Dr+XgMs7Tn9CA86uNkDBr4k/AY0jQ0XRsoIdUqV9NXjLUXrywAJ8Yj2LBYrXovsrqMwI1Mhlhn6xUWq/I9tzTKsT1hNO15dNkqV5VFHAE7bTzpGep/6Afi8jXXWMBnBB2CeGXVUeaNAaYV5kD3IYLP5mFpTwlFSkx9VraWv1m+UYNqB46AL2Q6yf2lgr0HRoDX1PBTk1EliEgkO8dPhcLs+Ba9ybTRsuXmVFLI6Cwgoihh7gBcFx4JohKoli8nAJqGhczbIZQIWsynXCSA2mHQ6Don0YuHYY5HvEWsArMKs6by2Wthml9pkzeWwVilwI8KQPrdJEU/rI+xtsa/SfQwKQ1RRlKL1OLwpph6rAtUEbH5z+Xkm3LyFoOMtXwwkLBO1g8XgeSADa7COlzWqASHhKS0RU0rAwqJwyLrOGCUrD4XFKrtqusDRMefEVsfyaVR0ya17AK7GLrWXmsoxGioOKYXB4p0SjCA7ZyqpFNh3KTRG4LbZIf4vMKXa66hYKyh2ZJfNl3Poe6hhW9iCxDGkjBF6nAJwHi5EQT1hwrrBYYatOjkDM5I3FCxrJxmt9OaDs2oP2ZCqMd2jo6osL7SiJbcww1okCfu+WzNK5mXUjXjZafmAc4Lb2ZSzF1IOlafnzqIcaOw9qc0jnKhD6LMByu8Tbx3KhYiAt0ALDZ9uRqUJiAhm9UPagioTS15ZDkrqIEu0U0WBNW5+fbwDABflXjhMiXSxihDZK76x/I4+t7U3ARR1AtbRCR5mxR4TC1myarYhx7RaWcNkoU8t3KrXsMGOsqInoEJqCnA2F7x5Lz88m9m9FOMpu5LqxsksepfBuaquuAsiXYG5QT6vG3SCf1nVCMpSgGTqKHYqN/t4tCxN+sAjcvjopDvnSRiJcLOOW9fkm6LAnjw0sdryxe9Hyqnhetmyr5hSDNqGarLqxsxWkYxhEkydtyX6mz7P2aaerTVwNtENRT/Rfw6mzcJJu8BC4Bf55JEjnGsDV9bRGI1TdQZUgVVdZUUCyeSsKGJ7bOvfALD6viwsVEONOysOvBTxZTxtTekWDC5aSsixcR5weArcxEVt1qw1lxnVAW/ycSRhgU3Xhwmng1haE7BCuV2XSO/0AKn4QyMWKWKQaOYlrhArmVEL3mQOrwR0v7YX4PBlNxwT1nm+ExiwS2gfEVdCOti0afgTYluyR0my9ZVwbtNl17D1szPk6EsSF1FmYg00KuP0TCTVo1SY3GOo7RyL1QFFop2afMmzDrTgEF6eqbGSE93CBdphcT8tlUx/wehuR9V5UBL7i3rfEtPhQPQu08ffBqQoZrFZ7wHGWbGKNAxnfdeUB1dsMuCZoFTC0hGiHQnz4XGaMuN1jLOVVo8YIeMigRT/lk6Tig3bZIHcKW3pwdxZyxnTK0doDBHoJFM6erD1W9kFJwnFNC8HHcMLbB6NIa9LO5EP+obavAheE4HIvCvkpTKk/WUaqupY4ee6cAkSKrqjzOuzTkIkA1HRIw3iFaUHRi9K4lkRoRhEN2jjuKzpkM7cenpWVChnOFKuK1h/L08J0ngU+I11GMWUeu8pAi5eY/d7rYlahT/scEklbsf1JJNSmx3lv1dLyk1usMBqZsFpesEoFhhqcov1aEgJKmrktqQi8KT9Im0UYDMAeBC1tuLFVR/SNs/mcMsQBsV/WCEoTK2GAvvdDPHI6MfGuIVMcR4XvtRY/AHDJAyDTijBYrCZZU8oDYGATOCTE03BOHawJjDpoOERZuUyUORgJ0/Wa0qyGU2ikVU1rH/ckB9bapmT1TUeq8Xpa0L9evW/zFHZDcil5YGtuv5sYV64mSX6tPyPWMxqS5AFlzAIkU37USZJkWsYsEBi54ECwUiy1EA2XbRY7F0zH6NScNlkayYPVJ2J27QGaIOWRk7JrTB5Qs9UdvzpLwPCSbIBroBtEwAa4OVGc/O7rdjiENKAKfnRDRhcXJNs2JmJQG5FoaTKZZFlgIBOMaHFhtYlYn2lTaWIa4dijUdDSvnhwdBMBJyCEUqheAIWWcG25xh85tkAQMSijd4dpw4uMsknO8EPAZTWVZWJiMd78brAiVjyydboMaZxmaTLi1pLgWgcqI00LDGy2O4GvKV309nG9WGNXaWVp0ZY9DeCx72yMgraSTZ2M2hKOTpJUerSXPSi2a0QBIeQr47ZCt4yy/cxBsnUFQJywII/LwxK3k0BJkn8PU2ZEFrTAAx2NL7HGd1ttxEzDmRbd3znzoHS4x2RygYeYKnh5I3wXpkWM1ulXfk2LqBioQI2xAJ2yMwRudhfcvgHgjoR5fGJiZs32ipHWZYpZWvKAGAUyknnvINOG53Mwjy24EJAQh1w53RWEZXw/Zz7iJIp0eIiOfwY5WgbK/AOYRCvGtLT06KZSKSEa7TP6FoELdVE1TDUYQH/v8LkVWXAcfJxpYxtRiDdYkBJWKWiR90MtHs6ibUsmDdqsaRX5dEoTY8pq6Ms2iSdQBDJAKyJclWc0PYpAZrM0cy7xvQoWTcPybe78yMJHHcfQzt3XsslZ+F02Mg+DABQDp4CbeUbx0T71ThF+CM7Sfw5MxkxtJSdj4xOxvjQIoC0YaO5h6xS4w2382C4MtDzSjTOt5i+bWa0l9vAMk6ykEwwtMUOHlMCtoMjvR40IBwNyeTAM9hz00nOLkUswTE1oMnWs07WPn7dzmSx3GZkWnOaNBmx04+Wgpm2A1pJWbZbX8sDnhRTm9YwtCyj4OCAZojUnjY7ZYtGksI65MmwZ2xHg4igqgIvSMyDU9j4SEhpmTsRYgTaUBsVrbSas7IA6hu5DedoRphWar+VQWUsSpxypQNM7MizbNRiQrO02t9soWl1B0zJNrO8L6b1YeCIC5IimTZgR8oU+iLI5AS7RRqWBRgPsExPjBKKlbZTIG89lhtCpPl7XCk3cGNUmwtM7oa1ffGQ7yur3jjK7ZjU88dMTn0wWsdWD28eFBFD4r2RFkCvsYjJt2yELHEmUSsAFxmqlnhrbbTqnqLCiCNvQmAnVqYlHLnDuyBG1LV6xeJMlyeF0s4XgZNPKsZKBN5gsGt1c0RMn8zSS7wk4/DWAWFQ7ePRjNRTLAzftnSWk1l8RG4+QCLQj0kBEa8HA+ccM3OAl5Rqkv4ayBw15AItBUOcMlk+TuYrBhTvyYz/jdn7wR51bHojQxH+EYyl1n4oEzUcO/tGwR79BHEyDb5NBWr+mtsf7hdv/8/vcubtuc9PuWTsPLB6igTtQzBNsO764kAu45nSK5Sj+3GuP6P2IaM/U2l+24WyFG2ItAWttVO73O+7Yle91O0990eCwHl4mLbD/p59zp3/5ajedPSl0KdKk4XeC4AQ7lhdIQhqti0DRATu/333tkbkxMWuzxopYjHV9pi29hsciGZMkaml5EsshcDf2xP0vf86d/vfjwGXkC8d9BXkAIxxzmFD2iIOTd4Fxqw6TtkgPEpqWd6ABWlF7AAGuDCAmibV1fIHhELgPAnAx02YJUse9tzwdyAx8/jU1OeQy29utcEqQSJ1zryHAlbqPAHZM2+QHoMUBJLo7TNsqmjkE7vaAe+ZU4hQJ3Phzn2nR2M6/G1uxY4G1FATJd/PMg4/ANSZEDLhi2bFRLRU6S9JW0bmwUbT1a9ledUpw72LWuL92qHE3gG+QCkHjEuDW2S+oBBiYiJX74TIumT8C0jKPstLj78+95iiXERGsheYz0+Zbw8+t0kSRPVCgLS6MnUWfvmIAfmbcqw6BuwFuHQcuZzRddjk+gR5jWj03wsVE5b0J9LGdArh6GZezcaMAPDNqcgOmh1i8seVBdAoiN+SoUIc5BO4mmA33RuBeo7IKxt438T40EWvIA2Ns65gT/crkCcUc07iUcSVwx8O7jiujx4RWT1dgz6ZCM9igcX/N7TztMB22LoI1cKuuZHMn40gpLoDXWFxIDcd12gmwoSGa7Py51xyb9NfHI413GTCSdnw9ERyR0/un05Ql3LywRJ9XRkM/P152JAH3heuO29/4+2bgnvrla5wLeVxRy5HHQuWjENOOTMK0NIi4MWp4W9F3GaQCB67MHsQKLBTes7vUBunMQ3vHadMxSg4GvXsRvhcbGfcQuOt6YAZumJyhCfpaoMVkFtuoQM9rm+E19Z7cnPk3ALiV4eCsnjKh6NhK1f1EBkDAmx6fvPsQuOvitdxXgBvSYRJUePLMJeGaK2I5IjP8kMhagAdIa5mW78696li5fZWUVepA4MVVmTZLi+pBoxVi5NyDxSHjborcANxfmidnBLhoPqGZMr0abbw0AE8Ij0fa/AcqCfkzGL5TzYzPwB2bSeIwMF7lxfXqaoCvVVxx08cipMOOHEqFtfEbgXttzCpkxh2aiM2vHNluwyf3OLKiOYwBXHLSZwKuqMlU2obYhnQMZgGgxybAs9NNbLHOR0IXgIduJeAeaty1cev2v/x5zrhxQPPsgmjStD8s/H297IG9YVYCV8uDQoxkQcyffdV5BKbjB3WsxpYo84Bmp8ZELK3E1SGa17oX7ryrfnWzydlcDjmBU6bXx8L6d9KZB30KgVGB1chbWD4L3LCz4/a/+N/dqf9wQ5QKa+9a6JwHkV4NU16S3Y0a8GAaMUwVuCZT8swAZNnsp3lCxewUwdj8hhjeo8THqbw4gTsw7q9uJBX2P/NBt//Hdzvnd8TIGlkUGG2MyJGf2FhlzMerBozBKDeWzSmvYvATs3H5fL9w04nvuP2v/qFzB7KemYd4u2BmbAkYnoBEGw1wU5JK8NO4ziXgdlbESKfXYloCbLyF3GbajF713i0A99ydP+v2Pv0O5xdHe6dVJjvSyJEmisBJNTMm52WHKKM+06S7dggyixaF3yR8s6+kCPBmgBR2nyOXdNogB8TGxpWLwIk9ObbY5lRAlgWwgWXtiZ4/+6rz4bkKVe3wF+vMA2ScWtKWjISFuRVmyHYaybQZKNsA7kfe4Pbv+RXnFkcLVzFi6hQSxUhisaI16UhDM3Y2rdKbdGDtzxw0xqwbCSTbjh7ZBByts/0+NgVMxKztU+Raf/aV5xtTMdn5uBrGVEFrIrYFeWB++G5+71wddtV7NpIK5wJw35mAK8v3DEZMA58nG2nRT1yMQBsHqSCxOPTIZKfBnErLcuCpw5hDA0bqaRv73xRiBPhauGD3oolYm2kLb2Hgoh2kwjtaTKM+Kd+fiMUBHWDa7DlzrcLVmwN3LwGXj//IwBrn05rhr2r9qi7QbmM0mPF3+S8l6iEQgN/1o4hk2SAXmAhCS/v2xgC52qo0s3g2IQ2oaTURAMaNg1ZDEjr+xy5xK/dZIR7+nuhF677S1awDF9sB7t3vdG5nlgrFl9WuYXnuQf5ZhypsF8p69SMo48Dg77EkSA4F8f9nabaSQ5Ybx9tGEbhZygsxLRkTFuoXTgBXG0WHGkvTJb3aK5hRo03ytOYZXgBUs8a9es4qvEB57+gvzn3oDW7v0xS4IzWnKGwnPrRCaJa1pX8UGIjtKr9C0LJBRPcLSYePouJba8qLRqSLiL6pPbimRWIK4Ccv46LzglURV2wfAS7WtKU/JhOSgbS+hlhoWDaa7Etqnm0LALU14L7LuZ35bAbLIanhJSAIyw0fgTrCZhq4kTmlHTDo9WmSqG9Ivo20zXiWkofSmQ09mw/0s3aRM8+tkTkBV4NWV/J0BrZ4HfZGrYdEOqkl2hGo5rLGq+/YjHE/8ga3d/e7yuRMM7UuYuZ6UYQy9gCuac1zvBh7WkzbYPSq6dipjkUi9E6DDG1GB093okjxWS/OcEPhHWMny5m0uFDmrVpPE8Dmpb2zrzwe7s8J8OLZTLwAMOa/q3pK5Mn8d7HB/GuN8L2g1rd0KkzONgRukAoIuDKKWBMxzD5kBFJN81geFIXakvJCMgR8kagMSwyoA3o9AVd5bT/Er6tpS1daEzHm0DJn7mepcLzkcfGBxRZoeceK90jW0TMY8DmmTigjMqX+544776o73JF/tInG/VdR44Y8bp6Pyn41Io2haQNwm3laBCokQyR4CJuRd8txi5UFDVnB0D1amogJSZlgRtN8fHD4Q4NpG4sLBULhGXihpwAXAg/qWq6rasPHmTY0rCUNwt+VHha3bB243NDJ8NDvOkxWl2/HQaHfg0Ar5Yd1mLU8twAAiICCk+34Mm6RI+UBtM0GaAcWFyo+xLluJAL7s69IUmHVCvho6UQufdCqrSGmR9qGK4M7/8diS8Cd87ghHYZDIyO2sp9JOxVTVi1Q2E6biRpuhwK7B4ydKWPAG8vTctaMmjL+DoIWEh1dc7E+jRvsGRWWsJ0ixvQLf+YVxye9ImaHbl4sI/aWQaaMQ1oOVG4yrWaZ2Bu5fy3uOTvv6tu3IBVmjXuEgSWHXrL4l3CJQZG7FM0vWUKEdzXiI0X0KMqNkIUI18X266W8eqfLNORBdMrBxQW9/y05CsGOP/OKC+qP2GPqoKHywrU0LdI/NijCWEvA+53tAPeeOR12lEoXcEJ5Z+8ca9s4KKJTgu8tIOcmYwPly0j2YF15kDSz/owtGUcdQUsE8Uke6HYjohqzHwCuwbbprYoBqb6BFpWrYsZkpxo+BwMSP9LginMVtsG4u/e8y/mdo8kxrLZhRwunby9RPW/HCQsJH6nzGHXSjwQFYe4MdvV+zszxMrmZjLRt/tMcbZpRsO7EXUEe1JVXrmmzr4L5hJ6ItTIqFbjaY9TDY/+6wCtQDl8gJ4CPf2D3hzkorBBS+5zEe7fCuD/ndu95p/M7x0S9MAkjFpNNS7d4zJPdzt9/bu3T7KOwLh2Twf6f/r47+F/3haL4pKdY/MrprCpFqGSa3M6jv98decpzNDbRGJEFgtAav3DLb3/d7f3R7zq3v8+iKm3EWPUb719AZ1oNaxaoZ2UbXggmYooI63v8mZtnqWCAkcyelUhuMi0qlgGgbzgLazNcgNiGVJiB++6kcQVmgvUbNRkH++7YpVe48696q3MLq5JKPFP8eOZDv+B2P/HuWiuBpJp1ntbBgTv67Be7C69/i3M7qKa2/e75r/tf+oI7+bYbnIM7IKwNBCgSVPwwnGgnVuWusZVGbXMjEvgzN18IAjzXHqsxLZcG+Ulzco+ZEoKWh7bmh/22xrgWcO0JaiCKg3139NIr3PFNgHvnL7jdT94RMiT1H9J98XcsVG8FuJ93J992o3Nye3oam6YmDY0BTDs3NLCttB+aTFbQVvLV/VdFTnOMJsCt+kM1qK17uW8v2qtweQigHqahEL0zh9RlYMnzrn73hlkFi3E7Kbm57csDd/TSl2wZuEqjJq0IjrNaLt2xZ7/YXXD9bRsw7ufdyV+8MTJu2eWbVYsBPBQVEgCqRGg7fdXUekVMbEXRGj3PgCDjqu81IG+RjYvyIDhiU+y3S//aEwWiBefNktfM6bCf6MdE44qzd/6c25ulwlxkk/91qvZL17YOXA3aktaksixT0/JgY+Dufenz7tTMuEQqzJo2t4RzC2VCDcxqlzHQsu/NjdieXBNwVoFbG1YAaIh8rImTrl0RtPFd8pwyoIdpYXM6V+H8DYF77s7EuAW4/bLG8g2xgz139LJZKrxlfY175791u5+4vTqOsJ0KStSpZscJGndzxp13+YZV2qGUGp4PBWnQ+E6IzbJ56UFKBPAeUhdTgFuS7ubhutb+MKJTVi1NHP4ehJvcNH/KkhLjwm0HuDNwZo3ZTmGpAvCDvenopVf441dvCbggBFcCSY5MkbwVxv2CO/WLN6ZjRkcKgYxJPNS0gnxK20HBzFSSOlrrV/FbF9YK47ZOzGvSONq5gNhyYP9aaKBhGPSpoa1JhdtxVoHurxNGDyYJk2tz7OsAAB/vSURBVLOXuO0CN/afARZOYn18/49sxrh7X4rAnaXCqlvIWfYgTci4IpMMamQOGDABdkQFXH6vP3PTQ8J/K+8ugM3/oTUte6dmjPhIAMbxw/FQnWjacBiAO0/ONtW4beDmEKc02ZaAe+4TdzifsgqqOi9EgTpnrsCYgXvgjv7I5RtJhQxcfSCI1NvAoUJjVpMHHKMD2YPUYVjuGYBL8ixjZ4jFnQsFq+ZMEzeueE1TWiQJIq4pTfWzVNgUuG+Mk7NQq1AdlEwyZ7fzcCKxJeDufuIONy129A5qsxY5te5BAy4GLZNpiWFZDUkGsrqwSJDQ8Dj2CBeSbWuUVlp/ttbpxLhwwhXuIIdDhJeinQtISAPaR3uKoDzQK0nqPIfFgwFcvn08GszQfvPkbAtSYWZc7jjJbnq0+KpjAO4sFd68QTrsCyEdNp09neBmT5BUc3A9bVwJJUTIC2YGACtIkL+3gjkBdyTdRQYxOT37Liz1tMZEJ1xmMnRhWRIfa5gqr5j/ujXgzlIhTc5KDUB+U6PgYzlr3J/eWOMOAldvbJyzChsCN0iFtybgijwuIrIwbO0KrwhbMidQErTnkOnvWjZxh/ZnbnooOLbK8gyZ8mrk7EgDV9K0XAixmWSEU92efv6179pQ477R7d1N0lEJryXlxZxRhLitAfc9fOVMTcZQfncG0NIdffbl7sIb1mfcCNybuufjlqE0vufMCEVEqQqD7jaihHFAVEBe+NM3PZT7AAvd6XjJ1Jj2woIV4kAtLayN0BOx5jljs8bdMnCzCIOaVkaRWeNeNmcVbtsgj/smFxk3Lfm2zqbN6IjyLWUVtgxc5TTVc+OhlpKokFPpjY2McMojUZSv72CA52QWoo8ALvKKGi5tabBd0DIBb0mLLQF3lzJuBgViWhHi5lqFY5sC94MUuEb0YrGWSJeQDtsicK1PmI7kaMsYEaxIgDL7YdByojIiTWLfClzzXIFYexAKpUyPLNICa9NWo8XWaAXaYhTR2ZBVeKc78vQXGDWxCn3qF2c/9PNu9573kHQU0LQgdIdfHextEbg0q5GbifOgpRNbA+7N9HxcMn5pKmIc86kKX6BE6KS8yNhq6du+NwIXApJQPllNYxNGqjkJLAZPdIT7+bEexmFq5wee5fwjH08OZ7bCTz2SiKJ3ef8fuYNvfCWFwLHK+zxgoTrs2T/ljr/830SpACcdDedZLNzZD93mzt39PlEdJvpqRYEHB7iswaY8KExGL+8WzOBa7snn3WDkYf19c/70jQ9TJs8aL8CgtQQsdJ+tS1AY5Cmv6Opy/1WjdmC+YVq6sAuBnQkb+m9W/nPy3zHOh0XSR0wapsktHn6xWzz2B5PBUR/xlp/c14Nv/E+3/NZfiAHtMG0miwLcf7d2OmyenJ18682yHjcCqdQd0H4hYjDkgULViDwgTtuM0s5h4M5LrIVarQHBQr28r/wHuF+xSAVFeS0I0ZwOeEhlK4MwgtR2FNk4pUNJupqW31suD1tn5AilvliGp3aZdz6UMuU2KGoT03VbAu6pt97sptOnnMulIDMXhNEfmYjNrZJVgQZexNYkKAnNRRcWzmOqmDJu2GqjcpmlIVX/GFVEbKwa8kOsL/OcdQvwbEeGNlBse1sbccdCwG3v5I0mJO+WABU/g3DWnp3nMYISgbRtTseFydlmjHvqLTe7aS4kX+Ro58O2myI/ZX/LH7g0iBaZK8wkCyBbrfE1SYZLAdyyKmbStAWKKHrCbU3gSS1Iwm+hQQEMaDgRtoutbNCGx4+cLsNHrOSRi0Pn9nQZNQ0kG8d+2aSbyEGA9F5JBFsE7vLM6Tj0wymvyLQQ3K0QX8IikITMYREG+OnvgXEZ05bWIMq3j/WpTGaFCg7arPO4g7ZFeQQfB20FFAItZkedp+2UNBZ/bLN5LcgxnE+xEWpfo7yQ3r8/55G3wbivcMszJ/mh2tLZGEJr7UHdrNifTEWUA8IJg9o/LkrWCvvTN/4tHuFb+tDwJh5+EXA7tQeQxfSg4vNX03UtUORPcaDySKPgw1xybEUVYTtuWIMIGNMMgnYOyftzHvlFG0uFk295RZQKQ5qWfCTRlGW5Q9LJUZTsEEF6lC5wD1IhAreGUmDgTUsTxWDzAe3sps0mhTXDuWf2RGLdc7zyE2Nbx5jW3Gbf1X2tXcIGAAJwZ8Z902ZZhRWBq+RBq28getfLB2RTmtNoTkrAfXBWxDTLRpiBjX9wCZgP2Nhp19rbY6cNYMBdqsbEwRogoemVUw4yGYvO5YeGNJuBe+nl7sIbtw1c5KTcfpHpLEnIJ2M4cqH79fNaW4n8qRuyVLBZi0646MCYX8UJHQOdRYPY1X0MSPnqmK5p3FvCCARu47yEpr4jjhFFespzG4PYqz0IjRxZrROyaX7trHEvvdw9ZKvARRmAdfO087hlIxGjhgpndu4UlinWCefpUf7UDQ8Hw6+32kTT1Y41WZrkgWvTpcbphIrQcMurka6Vnj7OtDGixfvbkz09sLgQSAMtRxvtbBS4Y5ovtHcrwL3XBY0753HpsRcFEegAv4GJWJJ1Cp+43JWhOyaR+1EPALc/O69s1piIJX1DNWLpCA4zbLUrhwndeStMcaeK9wk2E5OnAiZJAErTin6mgWX61wzvQr4U3bfaEnO5LdZGuWl/PtfhhZsx7hcTcOmBIAC0tfed3djFLiPRmzt3G1MKk9MgcEd1aUp5FbShIzQbbFRGx2LbwRAPswdtXcXDToNVBPhVuGrJAwIKrWn7bJuLnIJ5Z+BetiFwv3SvO3kbyirIxQUEWDGOsW98S1fTmTm4cQTHhBHezKTCUPZglGUB5ff27TfrIpA8qMbralriFONMa7ElYfciLwZmySZwkbYUAyvD7IMGXJny6kc4Kn/gbmHm3Qg/0XZas9p2qcCNoCJ6A7GsxZYogzBSMENYJtCI8ZGQrD5Vz7g8MPeHgfsMI8X+lz9iTZt/S+ZncpZtHB00lt1QOVWk97cB3CIV8p4zuRo2NvunCwt1REc20/Lns3qTKteSmTngE3DlZAwclQ71YZoACRT0vU47gK1pG2F7marDMjHmdhjfHGPNbNQf11qKaCwO0NGJF2CWhsbO1VjxXZbEEoXkz7ncPeTmDbbuBOC+Mi1AiOyBOd5AvxLD1v8cm8TJoaPRsHUclz91wyPA19NX1LTp7XqyMhY+zexB03gLt/P3nuUWj3qiqsfVbNrKO1K1icJY7yw0cr/Z3ngNGlTK3mzQtAhOD8mctnRHvv8fuvN+9PK1tw7tAeAW3+8dElO8mcum0uyhVOBIsQ0niowxf+r6R5Bxrg9KGx7SL+SA6lpauL0dpz/YKALQVrliHqocP15y/rXvcEef8eMEuNZo///6+zknip1tpMczcB8gjFvm1D3QBS9EgEUTTD4PiVegKjIRyTAJhM8czM8gwK1hkdODMRlT4UHOAC2D5t9bjcfF19Qxwgx0seOOX/ef3NGnP39kjA6vARYowD09H3qX9G1vAl1ChwRuf4IZNVej9LExh4mvjRGcABeB1gKenIiN3is7ZkzEWjpwbnzu3CFwN3bGCtwzjT2FGJDG5Nb8nkQsfB2v16WdK6qEOJU/df338DlL+cmQB0ysjeZpqdbtZg6KzMqarzY8d2feObBwx69/xyHjbgDfCNxX15WzFuMJQuGXdspRy8fJwcQut589kF+HahYKcMt9kPHQ/rCkVZjhOnvEkr7hE5X0gEaICsAtuZKUZzwE7gaQjbcG4N726phVYJkYnBExT3TshPiYo1XPjCnDwkpC45beYUkZgNsG7fyEWgSeZ3XQak1RbyWZBzRtQTrZanMI3O0CNwIrwUjOVxBJjeZ4O9+DMCN8axK3cP5klgoDTFsEsjRZR5fm7e9aFyUvszw2r6aEIxNFwcchcB8M4Or9dDwnzjdSDkymmh/1E7KTqoaQ4VBEWHPN/uR1WeOi8BAuzJE6PXcke0BmnKnaB8sDOzyE64s2AitOM3Cvm9Nhh1mFdRFcpEKpDuMTsUi/YvKd5V5Dk4ZLzOq+fvbBXowqkX/yJ697JCBClKcFIOukTnKJGvWkYuSBe+MbQWndfO9iBu7bD4G7Lmqpxj192ihr7JcX2vn7+cSLxlctgSwpMlQhkhBX+hsGLqmuMjVtL9/XqqfV0qJoK5pBiAlxWZqYPPYQuBtANt4aGfc1sB63eeAgmTixRoTBG015oWiL7tWgDXdqxm1sIS/UiXK86+ZpReojhRnItLRO9hC4WwDuH8asQpYKhFBUuktpPYyBsXMVNGj1uXQzYOf98hK48b0EuPZO3Mh86V+Lac2Om/fy4vFinIHdrmFydigVNkHv3hclcOVqGAFYayKW/ja+L1Bo6QCwsXWD3F8O3NIAROP9ukxW6Kws2ikCL4YZAG1oXlqAeMbzNhm7v9H3BuC+ec7jzmWNqxe8yPmKwnY4WD/pXJH2yj+GSrgBTcuW/CvjysM6UFmjLQ/Ce9MXCWHKC6bLonOklEVKIIxuZ5lv3UmMewjcdb1vBu6JN7/aOQjcNN4dps27eHNMZYeENOTFKhMxtO3fn7z2UbF2wUpvNEBX1IN5jb24QCdh8TnDoI2zVb9wFwSpcAjczYD7mnIgSJWE/ZRVwGRvi7qBKRu0AgcN6RmBW3K1eMWEG0auIxuyIkposB+j5gXjQf3W2bJop3ES5uHR3h37x1e6nSc9DZyYWFsMI4BigtbQo0hDrjdf0LlPvLI4cvl9inrm81GbV3inX7j9//1Vd/Y33++m3V3yMMS0+rm5UgtiwyLBzGOQ6FT2IJlE6u48OYvAxVvBe3WZ4ECN0JEeS5cjkcaZFgt/ckynFdIMbVXb2dDUJaQYgOjaZ5UyPvAOfUhfncwa381lDjCSsmShdhC0LaYtDcA2w6fao5SX4SxpTBLjVhasHlQYLzelLAdGXYruyUrHSJUkULMshZWnVYRinPAnAbv2hk8UbdBhHbbWz85Qm8RCrmIQpd0YGOV7UPQiX0EKl4/pUnMi1tKzaexKmGfjI9+7yvjb8oAHRm5L/8C1fycMNWvzgKfKWR4AvIBeAnprGRcydWlw9JcsQWqvOCAAw/L+dfZClft72Q3ECLmKDYCuGYmSqXofCmGDJPaIhed3nCq2obC2crBGiI9OKckKOTtxIIIALC2a516QI/bpe1IxeQFuk+IZ2o3UyUCVVxMU7WqjYSMn8Ofrc8ubmqwYuKG3ufuDY4NybYX8poE2ugwmwfTLRjpKvXtkN25+S2FDnTPXJJADcRFJNfUzuoVcO23SoqLbTdCGHsOT0ZPzBMYtT+zWD4A0Wbm5X0wcL0XhV3upmcxuhbOWntUTxTqQPZbtMVFiI9W0DIyATJzHLhFEaVZiE/Jg9n0OOjfp2qUCipFATx6UXSfCASm0KQYEPNdg2kju1KnyL4gNI3DbIZoc1oAFdy97UHWIBC3SZMjAeBCZRiRM25cGIJxB8LbbV8ZuKC3Ebcfw0vrMKGHbsQOpcd/GisDB+LZ2+7YcepoZE+3kbDOtiqyl/7xt/oFrMuMaHpVutLeQG3oujWr3fFrGJo0Dz1i4lNKlhkXNeiOatqdnRdilrNLdxo21cHhEAqxyNPb8GqWKmjOjnLBLKnipcon0A4YHfn/zIG1jPMpjIRl25YFm2hTNBJE7/8A1F4Mu0A5IQU4eMTMNt3rNPLCnji4uoHc1WI9IgzHACjYKN422TTNZ6/zWGu/sKBW/I0b/YYek8qACo00YuHjfdnjZEnQKOLtGyLISfQygWcUy7D50OqchXwFwA0OFlTyac1Ne29XDuUkjmtZyDgO0gnrW0sPBwAi0CaCNMBj+1DrzoTJibmlRS6FH6SMh0NnYSNZJWOWHAflCSkohm7dCvLkiJhwFMKpdq4JLE3larvv8aMv0XgFcoi9N3TaWdomdGGWzkYJlwnjJ8Guddg21rGA9hShp1JEMALGlpDOlaS0mlCmvEdnTOenSiJDFX/KsnaVIUfvqPsfqazjXrKKKkIfx7zrKS7MFvihZBSoVClgNBoThgQ9q1rRmPa0AhQYf8jwNWjOP3FvNCr1HTsWYLDElCPOwQF4OrL4vPBDmaVV/p/q1PLptCjGtHPD4s8nkHabNk2x+f5vh87W4ymtuSv7yH0+X1qBpSB4gYPOhiPMd/oFrHl0vWW3XQnKI2jH+Lsq2yhNDu8eq7PHgFPzVsGzWRZRLWlGAi63ctxrq6945khi326bat+I3xCog4oJBs0CbpKwUoYKQrrfbrH0kUsEAbx+ahAlbpTsZBqwon3CZ+8aBS8IvoujxlNlIyqt2ooLdCpc6TGvQosUP9LyR7MEoy7ZBy9o4mO6i0qrYBQJvhGkHGDqFaO0U6Pn8d7V9KLdv1x4Qh4yRv6TMjHrt1H9JwJVxm2wLBpPuww/3rjbRWSmcEYkC70NhhWkmJA2yyxuhqjCCpemlfBGSKXs/BG26l7e7hFXmzEN9Q9KuHeJrFBqRFlj64AnqGhOxVo2FOPC5sO4sFXDFTnsJN8X69P8MYIwUvMBGE6OX2DdUZKO1aRl4EAkUKAD4WqG2OlSRFJxpUXi0IovczTwAPMFG8Q5iJ9Y/g3zUSeDyvei+egAdj84StMiZAVEwsZoB0d506R+4+jHhNjWGAyFqlcWF+I5sWrAOTVi1yM1STs9BW7A8NBFbLRLQd0cYGA5TjKYHJ7bPp7QXHdoUDpkQBSmv3kocfzfW3C2nJJqRj33oS0yGln/1PzNLmSWmtKsEP9mrY5OovaztXDHKtaJrAO5KoE0fr4olZauBYizMa4/nHYdhVqRTwjX6OPtsuB7T9pwWOFkBfH6HtbgA5AH/1YA2Je/v34s0ewMUzKnKvRGz4X87KS9hG9i+YizM5vYnFeq7/YnEuIzyjeR69bh89Xi9KvQ6jWRwYLAd4hArVO2G5Mto+G2cd9UDbSt7oPoL5AGyidLrnAVjnwf6BhcXkHTRNsfFMgAHUB6OMm0FZjUDllYAuI0kN9NDI9mD+NLciLi1jRReIBC0PHY4hIa2ZV+p+B5e7QM6jMVUNLC19oCRgAJd/Kt50Am7WbeD6gI1uAz0oI2t/rfunQtmwuG2vGetZVyTafPOX4O02gxdHaACN4dHFiq0J8cHj6SV8ApOWEk2NFQ1DDvSPw50oy6Cecfgd3vRztFWlRt/B2A8xbTZkJIJQS2tKrkUoAPSpUaw/kdCYqTkJMJY2nDKONaWdLFTXuxxQ5q2UevLQnW1iwYu8vgm06bOKQ8ywhnybK4j9P63XmV/eaZRFyFOHIyjIcGxWlqIRBE3rZCnpWGgAKNhu+gwDWnAUaIK3MOjW5NYk2mj45knJrIP9RrSQmLJkEH1cEN6Q9t5/YmrHwu+uiPYsgkMrEEboSK1jmuXOKDohHNDwCsmGK+LoObJA6sCjXo+b0cBbm8ZV9iO2iW+UzKm1nTr1tKaac6OHi5jAYGW7Fz+xp2q2pHay1pcWD0K5LEDwK0PC40wQWtV9MuVFOQ5PARV+wCQ9lJe4eYx6aJZdmQSRtpKhXMALP+bFX5nPZt7phzaYrz0ewpaBQqTLfO4rTYWNYokDLDnr1lLC48oWC+K0MDsT1z1WOFXtdHRUKOgiIPIoz7SR5hRIOP1QmgIg6PtE4zZ+kq3ofmyt+McrdCDpEMZuNU2I1VeiI0szTkie9S9Kl1YzK1OJWqDlvWLhbNGtBRjq0jAZPT4TAHcCrT6XCN7QAaXhnkOQAlcBdry0eJ8XzwkZORbEtlCxooYawgIZ0O6DxveXFxQepO3DYfudkQaZOiMnWiU1m7cFkuPTMSgZpbRBxEWQfSwZscROHQ2Mi6XB/E06YZm7IGicYJNNGxRKoMrdmhw12daXR2FmMwA7cBELKJI1tKO1THTnQv9KKSjSO5bm0C0/MEZlb48yPKI+cNgLTeTiL3oKivEMnDDfeXMA6QbLS8aKQLnTJvDAjVu/O9+agfX0iaF0tPDvS8agvBU5QHcQp6YTh4XhTTtWN9wcXznKKs0dmZtc4NlC49AsJGJWBgg4SiWxlcgrHUvhpSs8tp4pjzbzp+46pKI2fIyYxm3AQoVzpBGJBetVYeL9SwEDpqE5ZOyNYvJAeHRh8qg/KHoGvSkM4O6gzwQLUZpRCBcoM2lT8jHkE+PMyZDY8FqU8K9ot5hlGll9snQtC1p0LBLQbOqW/BBKuy5yR+J/VsNtNqx2qmdzLRUv+dQAyoqRE7SOqwjhb2WdjM/oEKBZ0mDOWkhC2aUVmeZjbYu5WE6a1JoS0r3xWjCscKNqO2N+UUB7np1B2U+wirR1gCt6p98hlkhtu9PXPW4b7tpekRT0zKkNcIF8h7GtMjIIzNsJF0QYPXzYzgxjFqkifH3/pFIOfIV4Cq2Y4wn2iekCTNfb3m6PHcctKSxkSda8kA8H0bVAjwLtLy/MdLSVrD5jviDPMaUveM7/q+vvOSPvVs8BbKgYXTaibJo0GC8ONlDE6yG0Zk3GsU8LO6DZ/U+WWSyVXw5XhEjg0HkFQcFmg+g/sdnKUD1loDTuJgLEx0mGzpdxgSu7EefaSuMUKQyMJBsC4nATX/iT1x5ya9PbvFPOHA1C+Iw3xggAWRFxpss4w5M4rqrRg0mDm1dhuR9Z39ZjAR9aQAijZglF/t3J5irTGKN6KgGo69p4fg39ojRgvaIJp8OLGQCGy9RJ80OAR/Gxt3lT1z5fbdObnqzc24nGs8GYx98yKMQ23aYdorZ3FW2tzOSaR7rn9+NBrWeeaAjEGZaFZTW3tHRtn3tHxofdG/pXyX0FGH4OKI8eLxFRgK2JG9Fq1aUUwDSUWggihwsJ/cv/Hdf/vhnOr/8qHPu4hgf5ek0cjWsYaTc01KUk79LSJiLe2m6gwLeAm1nwNLIdpmWHLNJwVls2tuNG2yEKrySXTqSiebM6/uxw4PsCGcuTjRCI0rHRPZr11PX4VxNHkA93LJLrv6DbMGwMV/5zQO38yL/zZf+gwuPH/nrDzvnf0Ks1zIaV1oDNYTpkrZ2yTgrnzRkz1uvYGbsXIDarvzKIJUhYC0WHFlcwJqe+DYZprYmDu3s1SIb1VosxFsSofzekBalpfZWm6ipetucgGRKztfbfl9OsHHut/z+4qdDS7/78u99qXP+Pc65Yxz0sSNDoE254AACMRELv1tb044zLawuY6Gbgza2Nf8z9ogpLSCWcY1CccaWBBiQjdQ7BIBSWM6/tccDkYVle1lPq+/lZx5YoENLzOJawzGi5VEtLopA4Xf7y+Xy2ks+8bvvCz+duO5Jj5x2z/5X5/xl5WEEwbbXElAVFEiwDyx1lo6tybRVV/FwaUx0FPHMxhs6gC5OxBjghx3SIAEGWgC8BFrYZnBvNUBiP4tljfcqp8g4MBh/nJCAY8C5iARt/dk7/wd+37/w4k996i/Lb7/7su/7p5N3t3vnLmBbnLmO0uHNMF69cN08rel1LCjEMArYoLPSZ8sDFOLn5wNduwJo+8BDfYjRqzoKsom+rxBNC7Qj42bZlkYpJg9J9Oo45CDgaQXb6YMDd+3jPnnPh1iPv37dYy64cPfYrzjnXtY3MtZk6r6B1I5Re4DBSIuByASQIVmFbhQCE2u2CmaE5t460ypjaYdpzrAb4Xc8T8ulU462SkJpQJQQr1ROpwA/v6OpaUHfls5/cLFz/vWP+djH5s9gcjF64p8/8UnLxXJG9FOZZGANbzMhCzWtwWnJgx6TldoKCUo7zJSIlw6fy8u4ZmgMI1KlQR2gxrI29SCyvq4Y07Jnjm6TONpARj0hy1jfeCERkU60YCZlqFuTqdBhrJlRJVlvgSk0hETGYXKMfb/3YOFe8rjfuvvPBKdXi//VlY9/rp+m9zq3eEL4bRO03GOLPQeAZzItrgnlH97oz7Dh+n3oymD2II64XFxQg5mAgR1GsfTAwgkFhXKqBuCH5IHB0uVe5gHtmmgOPBSBgYQhwBVREnhqtqn/2r7zV37vb3/qM/Qe6FLffdkTnz/56e1uchG81OMZmEX6I4xU6TDxdjmwjVpaajz53sJIwp8kI4msBgPQQD1tbAKo9OpJnzSaYwdN48kKH1Bh+x7wFI3JzIEGUxxO2pb26TJqeMzic/7MzLgQ8AJT5B33T37nlZd8/JMfl3axYoH7q5c94TneTb/knH8qWk0bK020JhNrFIH3wowxqNUIMXOg9JsaCSYPkr2xpmfGFO9XA9Rhy1iW2JM+OQbWsynCYyGTCdACeaGYlhCDciBgf72ShhyDE5mKIsz+DOz3Huy4Wx73sbt/DzmzCdz54u++/Ik/sJzcG72bLnfOX0B2Log1/E7Kiw1ae7WmNrKChXYWAg+AgodplO4iRi73V2nQ1qVigIDTMFA0QFsYT7Fley5RSQp981fWHuhJWPwNjZhGuE+AVc0bmoQlO1kH62HQnnaT//WlX77pkt/+9FdwBMKFnOzasLK2OPmCaXKvnpz/Ye/cUcbspm6JhRWZIzbZiavDGQqhIPTmy1bMHnBjDUzGoESAQNDnma37OabmMmmZiCX/1cDlQ29p1M7ignbIzBfRhKqQSIwRd/hdN/nPueX0Tnfs+G/k7MHawM03PvDSv/uofeee57z/Se+mp03O/W3n/E63AJywmQIE8wAGxmKAsXwfN0h5ZW8ixt4PFhd65YUEsCoSaIrSS+jDs3YOvPCuXi0t6xvhD1R0bk2m4a6KyqIqOrIBbh8TmoB94Jz/lp/856Zp+V+Wx93vXPLRT3/bAiv9fVMqoAcEBvYP/NByWlzm3OJZzk1Pds5f7Nx0kXPuCF7qNHbiio6q9yWDKr0IBkXei2sPLI9HW25GmXbFLfmFiRIALBsA+VG6rYEGvrWAn6/8ySxNRCwtnmmtpqVFk8i4lZC8c3uTcw+45fQN5xdfnvzyD5bTkc8e3Xf3XfypT50aAWy+5v8BUrIHNHvQF7oAAAAASUVORK5CYII=\",\n },\n typography: {\n fontFamily: `\"Roboto\", \"Helvetica\", \"Arial\", sans-serif`,\n useNextVariants: true,\n h1: {\n fontSize: 40,\n },\n h4: {\n fontSize: 30,\n fontWeight: 500,\n },\n h6: {\n fontSize: 22,\n },\n body1: {\n fontSize: 18,\n },\n },\n overrides: {\n MuiMenu: {\n list: {\n backgroundColor: \"#383B40\",\n },\n },\n MuiCssBaseline: {\n '@global': {\n\t\t\t\t/*\n scrollbarColor: \"#6b6b6b #2b2b2b\",\n \"&::-webkit-scrollbar, & *::-webkit-scrollbar\": {\n backgroundColor: \"#2b2b2b\",\n },\n \"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\n borderRadius: 8,\n backgroundColor: \"#6b6b6b\",\n minHeight: 24,\n border: \"3px solid #2b2b2b\",\n },\n \"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus\": {\n backgroundColor: \"#959595\",\n },\n \"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active\": {\n backgroundColor: \"#959595\",\n },\n \"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover\": {\n backgroundColor: \"#959595\",\n },\n \"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\n backgroundColor: \"#2b2b2b\",\n },\n\t\t\t\t*/\t\n }\n\t\t},\n },\n});\n\nexport default theme;\n","import React, { useState, useEffect } from 'react';\n\nimport ReactGA from 'react-ga';\nimport { useTheme } from '@material-ui/core/styles';\nimport {Link} from 'react-router-dom';\n\nimport { Search as SearchIcon, CloudQueue as CloudQueueIcon, Code as CodeIcon } from '@material-ui/icons';\n\n//import algoliasearch from 'algoliasearch/lite';\nimport algoliasearch from 'algoliasearch';\nimport { InstantSearch, connectSearchBox, connectHits } from 'react-instantsearch-dom';\nimport { Grid, Paper, TextField, ButtonBase, InputAdornment, Typography, Button, Tooltip} from '@material-ui/core';\nimport aa from 'search-insights'\n\nconst searchClient = algoliasearch(\"JNSS5CFDZZ\", \"db08e40265e2941b9a7d8f644b6e5240\")\nconst Appsearch = props => {\n\tconst { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, newSelectedApp, setNewSelectedApp, defaultSearch, showSearch, ConfiguredHits, userdata, cy, } = props\n\n const isCloud = window.location.host === \"localhost:3002\" || window.location.host === \"shuffler.io\";\n\n\tconst rowHandler = maxRows === undefined || maxRows === null ? 50 : maxRows\n\tconst xs = parsedXs === undefined || parsedXs === null ? 12 : parsedXs\n\tconst theme = useTheme();\n\t//const [apps, setApps] = React.useState([]);\n\t//const [filteredApps, setFilteredApps] = React.useState([]);\n\tconst [formMail, setFormMail] = React.useState(\"\");\n\tconst [message, setMessage] = React.useState(\"\");\n\tconst [formMessage, setFormMessage] = React.useState(\"\");\n\tconst [selectedApp, setSelectedApp] = React.useState({});\n\n\tconst buttonStyle = {borderRadius: 30, height: 50, width: 220, margin: isMobile ? \"15px auto 15px auto\" : 20, fontSize: 18,}\n\n\tconst innerColor = \"rgba(255,255,255,0.65)\"\n\tconst borderRadius = 3\n\twindow.title = \"Shuffle | Apps | Find and integration any app\"\n\n\tconst submitContact = (email, message) => {\n\t\tconst data = {\n\t\t\t\"firstname\": \"\",\n\t\t\t\"lastname\": \"\",\n\t\t\t\"title\": \"\",\n\t\t\t\"companyname\": \"\",\n\t\t\t\"email\": email,\n\t\t\t\"phone\": \"\",\n\t\t\t\"message\": message,\n\t\t}\n\t\n\t\tconst errorMessage = \"Something went wrong. Please contact frikky@shuffler.io directly.\"\n\n\t\tfetch(globalUrl+\"/api/v1/contact\", {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tbody: JSON.stringify(data),\n\t\t})\n\t\t.then(response => response.json())\n\t\t.then(response => {\n\t\t\tif (response.success === true) {\n\t\t\t\tsetFormMessage(response.reason)\n\t\t\t\t//alert.info(\"Thanks for submitting!\")\n\t\t\t} else {\n\t\t\t\tsetFormMessage(errorMessage)\n\t\t\t}\n\n\t\t\tsetFormMail(\"\")\n\t\t\tsetMessage(\"\")\n })\n\t\t.catch(error => {\n\t\t\tsetFormMessage(errorMessage)\n \tconsole.log(error)\n\t\t});\n\t}\n\n\t// value={currentRefinement}\n\tconst SearchBox = ({currentRefinement, refine, isSearchStalled} ) => {\n\t\tuseEffect(() => {\n\t\t\t//console.log(\"FIRST LOAD ONLY? RUN REFINEMENT: !\", currentRefinement)\n\t\t\tif (defaultSearch !== undefined && defaultSearch !== null) {\n\t\t\t\trefine(defaultSearch)\n\t\t\t}\n\t\t}, [])\n\n\t\treturn (\n\t\t
\n\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t\tautoComplete='on'\n\t\t\t\t\ttype=\"search\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tdefaultValue={defaultSearch}\n\t\t\t\t\tplaceholder={`Find ${defaultSearch} Apps...`}\n\t\t\t\t\tid=\"shuffle_workflow_search_field\"\n\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\trefine(event.currentTarget.value)\n\t\t\t\t\t}}\n\t\t\t\t\tlimit={5}\n\t\t\t\t/>\n\t\t\t\t{/*isSearchStalled ? 'My search is stalled' : ''*/}\n\t\t\t\n\t\t)\n\t\t//value={currentRefinement}\n\t}\n\n\tconst Hits = ({ hits }) => {\n\t\tconst [mouseHoverIndex, setMouseHoverIndex] = useState(-1) \n\t\tvar counted = 0\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{hits.map((data, index) => {\n\t\t\t\t\tconst paperStyle = {\n\t\t\t\t\t\tbackgroundColor: index === mouseHoverIndex ? \"rgba(255,255,255,0.8)\" : theme.palette.inputColor,\n\t\t\t\t\t\tcolor: index === mouseHoverIndex ? theme.palette.inputColor : \"rgba(255,255,255,0.8)\", \n\t\t\t\t\t\tborder: newSelectedApp.objectID !== data.objectID ? `1px solid rgba(255,255,255,0.2)` : \"2px solid #f86a3e\", \n\t\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\t\tpadding: 10,\n\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\twidth: \"100%\", \n\t\t\t\t\t\tminHeight: 37, \n\t\t\t\t\t\tmaxHeight: 52, \n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (counted === 12/xs*rowHandler) {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\n\t\t\t\t\tcounted += 1\n\t\t\t\t\tvar parsedname = data.name.valueOf()\n\t\t\t\t\t//for (var key = 0; key < data.name.length; key++) {\n\t\t\t\t\t//\tvar character = data.name.charAt(key)\n\t\t\t\t\t//\tif (character === character.toUpperCase()) {\n\t\t\t\t\t//\t\t//console.log(data.name[key], data.name[key+1])\n\t\t\t\t\t//\t\tif (data.name.charAt(key+1) !== undefined && data.name.charAt(key+1) === data.name.charAt(key+1).toUpperCase()) {\n\t\t\t\t\t//\t\t} else {\n\t\t\t\t\t//\t\t\tparsedname += \" \"\n\t\t\t\t\t//\t\t}\n\t\t\t\t\t//\t}\n\n\t\t\t\t\t//\tparsedname += character\n\t\t\t\t\t//}\n\t\t\t\t\t\n\t\t\t\t\tparsedname = (parsedname.charAt(0).toUpperCase()+parsedname.substring(1)).replaceAll(\"_\", \" \")\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\tsetMouseHoverIndex(index)\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"app_grid_view\",\n\t\t\t\t\t\t\t\taction: `search_bar_click`,\n\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t}} onMouseOut={() => {\n\t\t\t\t\t\t\tsetMouseHoverIndex(-1)\n\t\t\t\t\t\t}} onClick={() => {\n\t\t\t\t\t\t\tif (setNewSelectedApp !== undefined) {\n\t\t\t\t\t\t\t\tsetNewSelectedApp(data)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (isCloud) {\n\t\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\t\tcategory: \"app_search\",\n\t\t\t\t\t\t\t\t\taction: `app_${parsedname}_${data.id}_personalize_click`,\n\t\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst queryID = \"\"\n\n\t\t\t\t\t\t\tif (queryID !== undefined && queryID !== null) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\taa('init', {\n\t\t\t\t\t\t\t\t\t\tappId: searchClient.appId,\n\t\t\t\t\t\t\t\t\t\tapiKey: searchClient.transporter.headers[\"x-algolia-api-key\"]\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tconst timestamp = new Date().getTime()\n\t\t\t\t\t\t\t\t\taa('sendEvents', [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\teventType: 'conversion',\n\t\t\t\t\t\t\t\t\t\t\teventName: 'App Framework Activation',\n\t\t\t\t\t\t\t\t\t\t\tindex: 'appsearch',\n\t\t\t\t\t\t\t\t\t\t\tobjectIDs: [data.objectID],\n\t\t\t\t\t\t\t\t\t\t\ttimestamp: timestamp,\n\t\t\t\t\t\t\t\t\t\t\tqueryID: queryID,\n\t\t\t\t\t\t\t\t\t\t\tuserToken: userdata === undefined || userdata === null || userdata.id === undefined ? \"unauthenticated\" : userdata.id,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tconsole.log(\"Failed algolia search update: \", e)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{data.name}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{parsedname}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t
\n\t\t)\n\t}\n\n\tconst InputHits = ConfiguredHits === undefined ? Hits : ConfiguredHits\n\tconst CustomSearchBox = connectSearchBox(SearchBox)\n\tconst CustomHits = connectHits(InputHits)\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{/* showSearch === false ? null : \n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t*/}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default Appsearch;\n","import React, {useState, useEffect, useLayoutEffect} from 'react';\n\nimport Draggable from \"react-draggable\";\nimport {\n\t\tPaper\n} from \"@material-ui/core\";\n\nconst PaperComponent = (props) => {\n return (\n \n \n \n )\n}\n\nexport default PaperComponent;\n","import React, { useRef, useState } from \"react\";\nimport { useEffect } from \"react\";\nimport BackupIcon from \"@material-ui/icons/Backup\";\n\nconst dragOverStyle = {\n backgroundColor: \"rgba(0,0,0,0.8)\",\n border: \"5px dashed white\",\n borderRadius: \"8px\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n overflow: \"hidden\",\n zIndex: 100,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n};\n\nconst Dropzone = ({ children, style, onDrop }) => {\n const dropzoneRef = useRef(null);\n const [dragging, setDragging] = useState(false);\n\n let dragCounter = 0;\n\n const handleDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const handleDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n dragCounter++;\n if (e.dataTransfer.items && e.dataTransfer.items.length > 0)\n setDragging(true);\n };\n\n const handleDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n dragCounter--;\n if (dragCounter === 0) setDragging(false);\n };\n\n const handleDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragging(false);\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n onDrop(e);\n e.dataTransfer.clearData();\n dragCounter = 0;\n }\n };\n\n useEffect(() => {\n if (!dropzoneRef.current) return;\n\n dropzoneRef.current.addEventListener(\"dragover\", handleDragOver);\n dropzoneRef.current.addEventListener(\"dragenter\", handleDragEnter);\n dropzoneRef.current.addEventListener(\"dragleave\", handleDragLeave);\n dropzoneRef.current.addEventListener(\"drop\", handleDrop);\n\n return () => {\n dropzoneRef.current.removeEventListener(\"dragover\", handleDragOver);\n dropzoneRef.current.removeEventListener(\"dragenter\", handleDragEnter);\n dropzoneRef.current.removeEventListener(\"dragleave\", handleDragLeave);\n dropzoneRef.current.removeEventListener(\"drop\", handleDrop);\n };\n }, [dropzoneRef]);\n\n return (\n
\n {dragging && (\n
\n \n
\n )}\n {children}\n
\n );\n};\n\nexport default Dropzone;\n","import React, { useEffect } from \"react\";\n\nimport { useInterval } from \"react-powerhooks\";\n\nimport {\n IconButton,\n Typography,\n Grid,\n Select,\n Paper,\n Divider,\n ButtonBase,\n Button,\n TextField,\n FormControl,\n MenuItem,\n Tooltip,\n FormControlLabel,\n Switch,\n Input,\n Breadcrumbs,\n Chip,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n CircularProgress,\n Zoom,\n} from \"@material-ui/core\";\n\nimport {\n LockOpen as LockOpenIcon,\n OpenInNew as OpenInNewIcon,\n Apps as AppsIcon,\n Cached as CachedIcon,\n Publish as PublishIcon,\n CloudDownload as CloudDownloadIcon,\n Edit as EditIcon,\n Delete as DeleteIcon,\n} from \"@material-ui/icons\";\n\nimport {\n\tForkRight as ForkRightIcon,\n} from '@mui/icons-material';\n\nimport { useTheme } from \"@material-ui/core/styles\";\n\nimport YAML from \"yaml\";\nimport { useNavigate, Link, useParams } from \"react-router-dom\";\nimport { useAlert } from \"react-alert\";\nimport Dropzone from \"../components/Dropzone\";\n\nconst surfaceColor = \"#27292D\";\nconst inputColor = \"#383B40\";\n\nconst chipStyle = {\n backgroundColor: \"#3d3f43\",\n height: 30,\n marginRight: 5,\n paddingLeft: 5,\n paddingRight: 5,\n height: 28,\n cursor: \"pointer\",\n borderColor: \"#3d3f43\",\n color: \"white\",\n};\n\n// Fixes names by making them uppercase and such\n// Used for labels. A lot of places don't use this yet\nexport const FixName = (name) => {\n const newAppname = (\n name.charAt(0).toUpperCase() + name.substring(1)\n ).replaceAll(\"_\", \" \");\n return newAppname;\n};\n\n// Takes input of e.g. $node.data.#.asd and a matching value from a json blob\n// Returns \nexport const FindJsonPath = (path, inputdata) => {\n\tconst splitkey = \".\";\n\tvar parsedValues = [];\n\n\tif (inputdata === undefined || inputdata === null) {\n\t\tconsole.log(\"Input is \", inputdata, \". Returning.\")\n\t\treturn inputdata\n\t}\n\n\tif (typeof inputdata !== \"object\") {\n\t\tconsole.log(\"Input is NOT an object. Returning.\")\n\t\treturn inputdata\n\t}\n\n\tvar keysplit = path.split(splitkey)\n\tif (path.startsWith(\"$\") && keysplit.length > 1) {\n\t\tkeysplit = keysplit.slice(1,)\n\t}\n\n\tif (keysplit.length === 0) {\n\t\tconsole.log(\"Couldn't find key: length is 0 for keysplit.\")\n\t\treturn inputdata\n\t}\n\n\t// FIXME: Check list - always getting FIRST item, not digging too deep.\n\t// If object, send further\n\tif (keysplit[0].includes(\"#\")) {\n\t\tif (Object.prototype.toString.call(inputdata) === '[object Array]') {\n\t\t\tif (inputdata.length === 0) {\n\t\t\t\treturn \"\"\n\t\t\t} else {\n\n\t\t\t\t// Fix the list\n\t\t\t\tif (keysplit.length === 1) {\n\t\t\t\t\treturn inputdata[0] \n\t\t\t\t} else {\n\t\t\t\t\tconst joinedsplit = keysplit.slice(1,).join(\".\")\n\t\t\t\t\treturn FindJsonPath(joinedsplit, inputdata[0]) \n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\" \n\t\t}\n\t}\n\n\tvar found = false\n\tfor (const [key, value] of Object.entries(inputdata)) {\n\t\tconst newkey = key.valueOf().toLowerCase().replaceAll(\" \", \"_\")\n\t\tif (key === keysplit[0] || newkey === keysplit[0]) {\n\t\t\tfound = true \n\n\t\t\t// Return if no more keys\n\t\t\t// Else, dig deeper\n\t\t\tif (keysplit.length === 1) {\n\t\t\t\treturn value\n\t\t\t} else {\n\t\t\t\tconst joinedsplit = keysplit.slice(1,).join(\".\")\n\t\t\t\treturn FindJsonPath(joinedsplit, value) \n\t\t\t}\n\t\t} else {\n\t\t\t//console.log(\"N: \", key)\n\t\t}\n\t}\n\n\treturn inputdata \n}\n\n// Parses JSON data into keys that can be used everywhere :)\n// Reverse of this is FindJsonPath \nexport const GetParsedPaths = (inputdata, basekey) => {\n const splitkey = \".\";\n var parsedValues = [];\n if (inputdata === undefined || inputdata === null) {\n return parsedValues;\n }\n\n if (typeof inputdata !== \"object\") {\n return parsedValues;\n }\n\n for (const [key, value] of Object.entries(inputdata)) {\n // Check if loop or JSON\n const extra = basekey.length > 0 ? splitkey : \"\";\n const basekeyname = `${basekey\n .slice(1, basekey.length)\n .split(\".\")\n .join(splitkey)}${extra}${key}`;\n\n // Handle direct loop!\n if (!isNaN(key) && basekey === \"\") {\n parsedValues.push({\n type: \"object\",\n name: \"Node\",\n autocomplete: `${basekey.replaceAll(\" \", \"_\")}`,\n });\n\n //parsedValues.push({\n // type: \"value\",\n // name: `${basekey} length`,\n // autocomplete: `{{ ${basekey.replaceAll(\" \", \"_\")} | size }}`,\n //});\n\n parsedValues.push({\n type: \"list\",\n name: `${splitkey}list`,\n autocomplete: `${basekey.replaceAll(\" \", \"_\")}.#`,\n });\n const returnValues = GetParsedPaths(value, `${basekey}.#`);\n for (var subkey in returnValues) {\n parsedValues.push(returnValues[subkey]);\n }\n\n return parsedValues;\n }\n\n //console.log(\"KEY: \", key, \"VALUE: \", value, \"BASEKEY: \", basekeyname)\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n // Check if each item is object\n parsedValues.push({\n type: \"object\",\n name: basekeyname,\n autocomplete: `${basekey}.${key.replaceAll(\" \", \"_\")}`,\n });\n\n //parsedValues.push({\n // type: \"value\",\n // name: `${basekeyname} length`,\n // autocomplete: \"{{ \"+`${basekey}.${key.replaceAll(\" \", \"_\")} | size }}`,\n //});\n\n parsedValues.push({\n type: \"list\",\n name: `${basekeyname}${splitkey}list`,\n autocomplete: `${basekey}.${key.replaceAll(\" \", \"_\")}.#`,\n });\n\n // Only check the first. This would be probably be dumb otherwise.\n for (var subkey in value) {\n if (typeof value === \"object\") {\n const returnValues = GetParsedPaths(\n value[subkey],\n `${basekey}.${key}.#`\n );\n for (var subkey in returnValues) {\n parsedValues.push(returnValues[subkey]);\n }\n }\n\n // Don't need else as # (all items) is already defined before the loop\n\n break;\n }\n //console.log(key+\" is array\")\n } else {\n parsedValues.push({\n type: \"object\",\n name: basekeyname,\n autocomplete: `${basekey}.${key.replaceAll(\" \", \"_\")}`,\n });\n const returnValues = GetParsedPaths(value, `${basekey}.${key}`);\n for (var subkey in returnValues) {\n parsedValues.push(returnValues[subkey]);\n }\n }\n } else {\n parsedValues.push({\n type: \"value\",\n name: basekeyname,\n autocomplete: `${basekey}.${key.replaceAll(\" \", \"_\")}`,\n value: value,\n });\n }\n }\n\n return parsedValues;\n};\n\nconst Apps = (props) => {\n const { globalUrl, isLoggedIn, isLoaded, userdata } = props;\n\n //const [workflows, setWorkflows] = React.useState([]);\n const theme = useTheme();\n const baseRepository = \"https://github.com/frikky/shuffle-apps\";\n const alert = useAlert();\n\tlet navigate = useNavigate();\n\n const [selectedApp, setSelectedApp] = React.useState({});\n const [firstrequest, setFirstrequest] = React.useState(true);\n const [apps, setApps] = React.useState([]);\n const [filteredApps, setFilteredApps] = React.useState([]);\n const [validation, setValidation] = React.useState(false);\n const [isLoading, setIsLoading] = React.useState(true);\n const [appSearchLoading, setAppSearchLoading] = React.useState(false);\n const [selectedAction, setSelectedAction] = React.useState({});\n const [searchBackend, setSearchBackend] = React.useState(false);\n const [searchableApps, setSearchableApps] = React.useState([]);\n\n const [openApi, setOpenApi] = React.useState(\"\");\n const [openApiData, setOpenApiData] = React.useState(\"\");\n const [appValidation, setAppValidation] = React.useState(\"\");\n const [loadAppsModalOpen, setLoadAppsModalOpen] = React.useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = React.useState(false);\n const [openApiModal, setOpenApiModal] = React.useState(false);\n const [openApiModalType, setOpenApiModalType] = React.useState(\"\");\n const [openApiError, setOpenApiError] = React.useState(\"\");\n const [field1, setField1] = React.useState(\"\");\n const [field2, setField2] = React.useState(\"\");\n const [cursearch, setCursearch] = React.useState(\"\");\n const [sharingConfiguration, setSharingConfiguration] = React.useState(\"you\");\n const [downloadBranch, setDownloadBranch] = React.useState(\"master\");\n\n const [isDropzone, setIsDropzone] = React.useState(false);\n const upload = React.useRef(null);\n const [firstLoad, setFirstLoad] = React.useState(true);\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\"\n ? true\n : false;\n const borderRadius = 3;\n const viewWidth = 590;\n\n const { start, stop } = useInterval({\n duration: 5000,\n startImmediate: false,\n callback: () => {\n getApps();\n },\n });\n\n useEffect(() => {\n if (apps.length <= 0 && firstrequest) {\n document.title = \"Shuffle - Apps\";\n\n if (!isLoggedIn && isLoaded) {\n\t\t\t\tif (isCloud) {\n \tnavigate(\"/search?tab=apps\")\n } else {\n \tnavigate(\"/login\")\n\t\t\t\t}\n }\n\n setFirstrequest(false);\n getApps();\n }\n });\n\n function sortByKey(array, key) {\n if (array === undefined || array === null) {\n return array;\n }\n\n return array.sort(function (a, b) {\n var x = a[key];\n var y = b[key];\n\n if (typeof x == \"string\") {\n x = (\"\" + x).toLowerCase();\n }\n if (typeof y == \"string\") {\n y = (\"\" + y).toLowerCase();\n }\n\n return x < y ? 1 : x > y ? -1 : 0;\n });\n }\n\n const appViewStyle = {\n color: \"#ffffff\",\n width: \"100%\",\n display: \"flex\",\n margin: \"auto\",\n };\n\n const paperAppStyle = {\n minHeight: 130,\n maxHeight: 130,\n minWidth: \"100%\",\n maxWidth: 612.5,\n marginBottom: 5,\n borderRadius: 5,\n color: \"white\",\n backgroundColor: surfaceColor,\n cursor: \"pointer\",\n display: \"flex\",\n };\n\n const getApps = () => {\n fetch(globalUrl + \"/api/v1/apps\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n setIsLoading(false);\n if (response.status !== 200) {\n console.log(\"Status not 200 for apps :O!\");\n\n //if (isCloud) {\n // window.location.pathname = \"/search\";\n //}\n }\n\n return response.json();\n })\n .then((responseJson) => {\n //console.log(\"Apps: \", responseJson)\n //responseJson = sortByKey(responseJson, \"large_image\")\n //responseJson = sortByKey(responseJson, \"is_valid\")\n //setFilteredApps(responseJson.filter(app => !internalIds.includes(app.name) && !(!app.activated && app.generated)))\n\n var privateapps = [];\n var valid = [];\n var invalid = [];\n for (var key in responseJson) {\n const app = responseJson[key];\n if (app.is_valid && !(!app.activated && app.generated)) {\n privateapps.push(app);\n } else if (\n app.private_id !== undefined &&\n app.private_id.length > 0\n ) {\n valid.push(app);\n } else {\n invalid.push(app);\n }\n }\n\n //console.log(privateapps)\n //console.log(valid)\n //console.log(invalid)\n //console.log(privateapps)\n //privateapps.reverse()\n privateapps.push(...valid);\n privateapps.push(...invalid);\n\n setApps(privateapps);\n setCursearch(\"\");\n\n //handleSearchChange(event.target.value)\n //setCursearch(event.target.value)\n setFilteredApps(privateapps);\n if (privateapps.length > 0) {\n if (selectedApp.id === undefined || selectedApp.id === null) {\n setSelectedApp(privateapps[0]);\n }\n\n if (\n privateapps[0].actions !== null &&\n privateapps[0].actions.length > 0\n ) {\n setSelectedAction(privateapps[0].actions[0]);\n } else {\n setSelectedAction({});\n }\n }\n\n\t\t\t\t//setTimeout(() => {\n\t\t\t\t//\tsetFirstLoad(false)\n\t\t\t\t//}, 5000)\n })\n .catch((error) => {\n alert.error(error.toString());\n setIsLoading(false);\n });\n };\n\n const downloadApp = (inputdata) => {\n const id = inputdata.id;\n\n alert.info(\"Downloading..\");\n fetch(globalUrl + \"/api/v1/apps/\" + id + \"/config\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n window.location.pathname = \"/apps\";\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n alert.error(\"Failed to download file\");\n } else {\n console.log(responseJson);\n const basedata = atob(responseJson.openapi);\n console.log(\"BASE: \", basedata);\n var inputdata = JSON.parse(basedata);\n console.log(\"POST INPUT: \", inputdata);\n inputdata = JSON.parse(inputdata.body);\n\n const newpaths = {};\n if (inputdata[\"paths\"] !== undefined) {\n Object.keys(inputdata[\"paths\"]).forEach(function (key) {\n newpaths[key.split(\"?\")[0]] = inputdata.paths[key];\n });\n }\n\n inputdata.paths = newpaths;\n console.log(\"INPUT: \", inputdata);\n var name = inputdata.info.title;\n name = name.replace(/ /g, \"_\", -1);\n name = name.toLowerCase();\n\n delete inputdata.id;\n delete inputdata.editing;\n\n const data = YAML.stringify(inputdata);\n var blob = new Blob([data], {\n type: \"application/octet-stream\",\n });\n\n var url = URL.createObjectURL(blob);\n var link = document.createElement(\"a\");\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", `${name}.yaml`);\n var event = document.createEvent(\"MouseEvents\");\n event.initMouseEvent(\n \"click\",\n true,\n true,\n window,\n 1,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 0,\n null\n );\n link.dispatchEvent(event);\n //link.parentNode.removeChild(link)\n }\n })\n .catch((error) => {\n console.log(error);\n alert.error(error.toString());\n });\n };\n\n // dropdown with copy etc I guess\n const AppPaper = (props) => {\n\t\tconst { app } = props\n\t\tconst data = app\n\n if (data.name === \"\" && data.id === \"\") {\n return null;\n }\n\n var boxWidth = \"2px\";\n if (selectedApp.id === data.id) {\n boxWidth = \"4px\";\n }\n\n var boxColor = \"orange\";\n if (data.is_valid) {\n boxColor = \"green\";\n }\n\n if (!data.activated && data.generated) {\n boxColor = \"orange\";\n }\n\n if (data.invalid) {\n boxColor = \"red\";\n }\n\n //
\n //
\n var imageline =\n data.large_image === undefined || data.large_image.length === 0 ? (\n \n ) : (\n {\n //console.log(\"IMG LOADED!: \", event.target)\n }}\n />\n );\n\n var newAppname = data.name;\n if (newAppname === undefined) {\n newAppname = \"Undefined\";\n } else {\n newAppname = newAppname.charAt(0).toUpperCase() + newAppname.substring(1);\n newAppname = newAppname.replaceAll(\"_\", \" \");\n }\n\n var sharing = \"public\";\n if (!data.sharing) {\n sharing = \"private\";\n }\n\n var valid = \"true\";\n if (!data.valid) {\n valid = \"false\";\n }\n\n\t\tif (data.actions === undefined || data.actions === null) {\n\t\t\tdata.actions = []\n\t\t}\n\n if (data === undefined || data.actions === undefined || data.actions === null || data.actions.length === 0) {\n valid = \"false\";\n }\n\n var description = data.description;\n const maxDescLen = 60;\n if (description.length > maxDescLen) {\n description = data.description.slice(0, maxDescLen) + \"...\";\n }\n\n const version = data.app_version;\n return (\n {\n if (selectedApp.id !== data.id) {\n data.name = newAppname;\n setSelectedApp(data);\n\n if (\n data.actions !== undefined &&\n data.actions !== null &&\n data.actions.length > 0\n ) {\n setSelectedAction(data.actions[0]);\n } else {\n setSelectedAction({});\n }\n\n if (data.sharing) {\n setSharingConfiguration(isCloud ? \"public\" : \"everyone\");\n }\n }\n }}\n >\n \n \n {imageline}\n \n \n \n \n \n \n {newAppname}\n \n \n
\n \n \n {description}\n \n \n
\n \n {data.tags === null || data.tags === undefined\n ? null\n : data.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n {\n //console.log(\"SEARCH: \", event.target.value)\n handleSearchChange(tag);\n setCursearch(tag);\n //id=\"app_search_field\"\n const searchfield =\n document.getElementById(\"app_search_field\");\n if (\n searchfield !== null &&\n searchfield !== undefined\n ) {\n console.log(\"SEARCHFIELD: \", searchfield);\n searchfield.value = tag;\n }\n }}\n />\n );\n })}\n
\n
\n \n \n\n {data.activated &&\n data.private_id !== undefined &&\n data.private_id.length > 0 &&\n data.generated ? (\n {\n downloadApp(data);\n }}\n >\n \n \n \n \n ) : null}\n \n );\n };\n\n const dividerColor = \"rgb(225, 228, 232)\";\n const uploadViewPaperStyle = {\n minWidth: viewWidth,\n maxWidth: viewWidth,\n color: \"white\",\n borderRadius: 5,\n backgroundColor: surfaceColor,\n //display: \"flex\",\n marginBottom: 10,\n overflow: \"hidden\",\n };\n\n const UploadView = () => {\n //var imageline = selectedApp.large_image === undefined || selectedApp.large_image.length === 0 ?\n //\t\"\"\n //\t:\n //\t\"PICTURE\"\n // FIXME - add label to apps, as this might be slow with A LOT of apps\n var newAppname = selectedApp.name;\n if (newAppname !== undefined && newAppname.length > 0) {\n newAppname = newAppname.replaceAll(\"_\", \" \");\n newAppname = newAppname.charAt(0).toUpperCase() + newAppname.substring(1);\n } else {\n newAppname = \"\";\n }\n\n var description = selectedApp.description;\n\n const editUrl = \"/apps/edit/\" + selectedApp.id;\n const activateUrl = \"/apps/new?id=\" + selectedApp.id;\n\n var downloadButton =\n selectedApp.activated &&\n selectedApp.private_id !== undefined &&\n selectedApp.private_id.length > 0 &&\n selectedApp.generated ? (\n \n {\n downloadApp(selectedApp);\n }}\n variant=\"outlined\"\n component=\"label\"\n color=\"primary\"\n style={{ marginTop: 10, marginRight: 8 }}\n >\n \n \n \n ) : null;\n\n\t\t// Should always reference the original ID.\n\t\t//if (selectedApp.name !== undefined && selectedApp.name !== null && selectedApp.name.includes(\"New\")) {\n\t\t//}\n \n\t\tvar editButton =\n selectedApp.activated &&\n selectedApp.private_id !== undefined &&\n selectedApp.private_id.length > 0 &&\n selectedApp.generated ? (\n \n \n \n \n \n \n \n ) : null;\n\n //var editNewButton = editButton === null ?\n var editNewButton = selectedApp.generated && selectedApp.activated && props.userdata.id !== selectedApp.owner && isCloud ? \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t: null\n\n const activateButton = \n selectedApp.generated && !selectedApp.activated ? (\n
\n \n \n Activate App\n \n \n \n {\n setDeleteModalOpen(true);\n }}\n >\n \n \n \n
\n ) : null;\n\n const deleteButton =\n ((selectedApp.private_id !== undefined &&\n selectedApp.private_id.length > 0 &&\n selectedApp.generated) ||\n (selectedApp.downloaded !== undefined && selectedApp.downloaded == true) ||\n !selectedApp.generated) &&\n activateButton === null ? (\n \n {\n setDeleteModalOpen(true);\n }}\n >\n \n \n \n ) : null;\n\n var imageline =\n selectedApp.large_image === undefined ||\n selectedApp.large_image.length === 0 ? (\n \n ) : (\n \n );\n\n const GetAppExample = () => {\n if (selectedAction.returns === undefined) {\n return null;\n }\n\n var showResult = selectedAction.returns.example;\n if (\n showResult === undefined ||\n showResult === null ||\n showResult.length === 0\n ) {\n return null;\n }\n\n var jsonvalid = true;\n try {\n const tmp = String(JSON.parse(showResult));\n if (!tmp.includes(\"{\") && !tmp.includes(\"[\")) {\n jsonvalid = false;\n }\n } catch (e) {\n jsonvalid = false;\n }\n\n // FIXME: In here -> parse the values into a list or something\n if (jsonvalid) {\n const paths = GetParsedPaths(JSON.parse(showResult), \"\");\n console.log(\"PATHS: \", paths);\n\n return (\n
\n {paths.map((data, index) => {\n const circleSize = 10;\n return (\n console.log(data.autocomplete)}\n >\n {data.name}\n \n );\n })}\n
\n );\n }\n\n return (\n
\n Example return\n
\n {selectedAction.returns.example}\n
\n );\n };\n\n const userRoles = [\"you\", isCloud ? \"public\" : \"everyone\"];\n\n\t\t// Admin in org or creator of app\n\t\t// FIXME: Missing check for if same creator account\n\t\tconst canEditApp = userdata !== undefined && (userdata.admin === \"true\" || userdata.id === selectedApp.owner || selectedApp.owner === \"\" || (userdata.admin === \"true\" && userdata.active_org.id === selectedApp.reference_org)) || !selectedApp.generated \n\n //fetch(globalUrl+\"/api/v1/get_openapi/\"+urlParams.get(\"id\"),\n var baseInfo =\n newAppname.length > 0 ? (\n
\n
\n \n {imageline}\n
\n
\n \n {newAppname}\n \n \n Version {selectedApp.app_version}\n \n \n {description}\n \n
\n
\n {selectedApp.versions !== null &&\n selectedApp.versions !== undefined &&\n selectedApp.versions.length > 1 ? (\n {\n console.log(\"Changing version to index \" + event.target.value);\n const newversion = selectedApp.versions.find(\n (tmpApp) => tmpApp.version == event.target.value\n );\n console.log(\"New version: \", newversion);\n selectedApp.app_version = selectedApp.app_version;\n setSelectedApp(selectedApp);\n\n if (newversion !== undefined && newversion !== null) {\n getApp(newversion.id, true);\n }\n }}\n style={{\n position: \"absolute\",\n top: -10,\n right: isCloud ? 50 : 0,\n backgroundColor: theme.palette.surfaceColor,\n backgroundColor: inputColor,\n color: \"white\",\n height: 35,\n marginleft: 10,\n }}\n SelectDisplayProps={{\n style: {\n marginLeft: 10,\n },\n }}\n >\n {selectedApp.versions.map((data, index) => {\n return (\n \n {data.version}\n \n );\n })}\n \n ) : null}\n {isCloud ? (\n \n \n \n \n \n ) : null}\n\n {activateButton}\n\n\t\t\t\t\t{ /* editNewButton === null && */ }\n\n {canEditApp ? (\n
\n {editButton}\n {downloadButton}\n {deleteButton}\n
\n ) : \n\t\t\t\t\t\t
\n \t\t\t{editNewButton}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n {selectedApp.tags !== undefined && selectedApp.tags !== null ? (\n \n {selectedApp.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n \n );\n })}\n
\n ) : null}\n\t\t\t\t\t{canEditApp \n\t\t\t\t\t\t? (\n
\n {/*

ID: {selectedApp.id}

*/}\n Sharing \n {\n alert.info(\"Changing sharing to \" + event.target.value);\n\n setSharingConfiguration(event.target.value);\n\n if (event.target.value === \"you\") {\n updateAppField(selectedApp.id, \"sharing\", false);\n } else if (\n event.target.value === \"everyone\" ||\n event.target.value === \"public\"\n ) {\n updateAppField(selectedApp.id, \"sharing\", true);\n } else {\n console.log(\n \"Can't handle value for sharing: \",\n event.target.value\n );\n }\n }}\n style={{\n width: 150,\n backgroundColor: theme.palette.surfaceColor,\n backgroundColor: inputColor,\n color: \"white\",\n height: 35,\n marginleft: 10,\n }}\n SelectDisplayProps={{\n style: {\n marginLeft: 10,\n },\n }}\n >\n {userRoles.map((data) => {\n return (\n \n {data}\n \n );\n })}\n \n
\n ) : null}\n {/*

Owner: {selectedApp.owner}

*/}\n {selectedApp.privateId !== undefined &&\n selectedApp.privateId.length > 0 ? (\n

\n PrivateID: {selectedApp.privateId}\n

\n ) : null}\n \n
\n {selectedApp.link.length > 0 ? (\n

\n URL: {selectedApp.link}\n

\n ) : null}\n
\n Actions\n {selectedApp.actions !== null &&\n selectedApp.actions.length > 0 ? (\n {\n setSelectedAction(event.target.value);\n }}\n style={{\n backgroundColor: inputColor,\n color: \"white\",\n height: \"50px\",\n }}\n SelectDisplayProps={{\n style: {\n marginLeft: 10,\n },\n }}\n >\n {selectedApp.actions.map((data) => {\n var newActionname =\n data.label !== undefined && data.label.length > 0\n ? data.label\n : data.name;\n newActionname = newActionname.replaceAll(\"_\", \" \");\n newActionname =\n newActionname.charAt(0).toUpperCase() +\n newActionname.substring(1);\n return (\n \n {newActionname}\n \n );\n })}\n \n ) : (\n
\n There are no actions defined for this app.\n
\n )}\n
\n\n {selectedAction.parameters !== undefined &&\n selectedAction.parameters !== null ? (\n
\n Parameters\n {selectedAction.parameters.map((data) => {\n var itemColor = \"#f85a3e\";\n if (!data.required) {\n itemColor = \"#ffeb3b\";\n }\n\n const circleSize = 10;\n return (\n \n {data.configuration === true ? (\n \n \n \n ) : (\n \n )}\n {data.name}\n \n );\n })}\n
\n ) : null}\n {selectedAction.description !== undefined &&\n selectedAction.description !== null &&\n selectedAction.description.length > 0 ? (\n
\n Action Description\n
\n {selectedAction.description}\n
\n ) : null}\n \n
\n
\n ) : null;\n\n return (\n
\n \n
\n

App Creator

\n \n How it works\n \n  -{\" \"}\n \n Security API's\n \n  -{\" \"}\n \n OpenAPI directory\n \n  -{\" \"}\n \n OpenAPI Validator\n \n
\n \n Apps interact with eachother in workflows. They are created with\n the app creator, using OpenAPI specification or manually in\n python. The links above are references to OpenAPI tools and other\n app repositories. There's thousands of them.\n \n
\n \n
\n {\n setOpenApiModal(true);\n }}\n >\n Create from OpenAPI\n \n  OR \n \n \n Create from scratch\n \n \n
\n
\n \n \n
{baseInfo}
\n
\n
\n );\n };\n\n const handleSearchChange = (search) => {\n if (apps === undefined || apps === null || apps.length === 0) {\n return;\n }\n\n const searchfield = search.toLowerCase();\n var newapps = apps.filter(\n (data) =>\n data.name.toLowerCase().includes(searchfield) ||\n data.description.toLowerCase().includes(searchfield) ||\n (data.tags !== null && data.tags.includes(search))\n );\n var tmpapps = searchableApps.filter(\n (data) =>\n data.name.toLowerCase().includes(searchfield) ||\n data.description.toLowerCase().includes(searchfield) ||\n (data.tags !== null && data.tags.includes(search))\n );\n newapps.push(...tmpapps);\n\n //console.log(newapps)\n setFilteredApps(newapps);\n //if ((newapps.length === 0 || searchBackend) && !appSearchLoading) {\n\n //\t//setAppSearchLoading(true)\n //\t//runAppSearch(searchfield)\n //} else {\n //}\n };\n\n const uploadFile = (e) => {\n const isDropzone =\n e.dataTransfer === undefined ? false : e.dataTransfer.files.length > 0;\n const files = isDropzone ? e.dataTransfer.files : e.target.files;\n\n const reader = new FileReader();\n\n try {\n reader.addEventListener(\"load\", (e) => {\n const content = e.target.result;\n setOpenApiData(content);\n setIsDropzone(isDropzone);\n setOpenApiModal(true);\n });\n } catch (e) {\n console.log(\"Error in dropzone: \", e);\n }\n\n try {\n reader.readAsText(files[0]);\n } catch (error) {\n alert.error(\"Failed to read file\");\n }\n };\n\n useEffect(() => {\n if (openApiData.length > 0) {\n setOpenApiError(\"\");\n validateOpenApi(openApiData);\n }\n }, [openApiData]);\n\n useEffect(() => {\n if (appValidation && isDropzone) {\n redirectOpenApi();\n setIsDropzone(false);\n }\n }, [appValidation, isDropzone]);\n\n\tvar appDelay = -75 \n \n const appView = isLoggedIn ? (\n \n
\n
\n \n \n \n \n App upload\n \n \n {selectedApp.activated &&\n selectedApp.private_id !== undefined &&\n selectedApp.private_id.length > 0 &&\n selectedApp.generated ? (\n \n {selectedApp.name}\n \n ) : null}\n \n
\n \n
\n
\n
\n
\n \n Activated apps ({apps.length + searchableApps.length})\n \n
\n {isCloud ? null : (\n \n {userdata === undefined || userdata === null || isLoading ? null : (\n \n {\n hotloadApps();\n }}\n >\n {isLoading ? (\n \n ) : (\n \n )}\n \n \n )}\n\n {userdata === undefined || userdata === null || userdata.admin === \"false\" ? null : \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tsetOpenApi(baseRepository);\n\t\t\t\t\t\t\t\t\t\t\t\tsetLoadAppsModalOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n \n )}\n
\n
\n {\n handleSearchChange(event.target.value);\n setCursearch(event.target.value);\n }}\n />\n
\n
\n {apps.length > 0 ? (\n filteredApps.length > 0 ? (\n
\n {filteredApps.map((app, index) => {\n\t\t\t\t\t\t\t\t\t\tif (firstLoad) {\n\t\t\t\t\t\t\t\t\t\t\tappDelay += 75\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t//return returnData \n \treturn \n\t\t\t\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n })}\n {cursearch.length > 0\n ? null\n : searchableApps.map((app, index) => {\n return (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)\n })}\n
\n ) : (\n \n \n \n \n Click here\n {\" \"}\n to search ALL apps, not just your activated ones.\n \n \n
\n\n {appSearchLoading ? (\n \n ) : null}\n \n )\n ) : isLoading ? (\n \n ) : (\n \n \n No apps have been created, uploaded or downloaded yet. Click\n \"Load existing apps\" above to get the baseline. This may take\n a while as its building docker images.\n \n \n If you're still not able to see any apps, please follow our{\" \"}\n \n troubleshooting guide for loading apps!\n \n \n \n )}\n
\n
\n
\n \n ) : null;\n\n // Load data e.g. from github\n const getSpecificApps = (url, forceUpdate) => {\n setValidation(true);\n\n setIsLoading(true);\n //start()\n\n const parsedData = {\n url: url,\n branch: downloadBranch || \"master\",\n };\n\n if (field1.length > 0) {\n parsedData[\"field_1\"] = field1;\n }\n\n if (field2.length > 0) {\n parsedData[\"field_2\"] = field2;\n }\n\n parsedData[\"force_update\"] = forceUpdate;\n\n alert.success(\"Getting specific apps from your URL.\");\n var cors = \"cors\";\n fetch(globalUrl + \"/api/v1/apps/get_existing\", {\n method: \"POST\",\n mode: \"cors\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(parsedData),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n alert.success(\"Loaded existing apps!\");\n }\n\n //stop()\n setIsLoading(false);\n setValidation(false);\n return response.json();\n })\n .then((responseJson) => {\n console.log(\"DATA: \", responseJson);\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed loading: \" + responseJson.reason);\n }\n })\n .catch((error) => {\n console.log(\"ERROR: \", error.toString());\n alert.error(error.toString());\n\n //stop()\n setIsLoading(false);\n setValidation(false);\n });\n };\n\n // Locally hotloads app from folder\n const hotloadApps = () => {\n alert.info(\"Hotloading apps from location in .env\");\n setIsLoading(true);\n fetch(globalUrl + \"/api/v1/apps/run_hotload\", {\n mode: \"cors\",\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n setIsLoading(false);\n if (response.status === 200) {\n //alert.success(\"Hotloaded apps!\")\n getApps();\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success === true) {\n alert.info(\"Successfully finished hotload\");\n } else {\n alert.error(\"Failed hotload: \", responseJson.reason);\n //(responseJson.reason !== undefined && responseJson.reason.length > 0) {\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n // Gets the URL itself (hopefully this works in most cases?\n // Will then forward the data to an internal endpoint to validate the api\n const validateUrl = () => {\n setValidation(true);\n\n var cors = \"cors\";\n if (openApi.includes(\"= localhost\")) {\n cors = \"no-cors\";\n }\n\n fetch(openApi, {\n method: \"GET\",\n mode: \"cors\",\n })\n .then((response) => {\n response.text().then(function (text) {\n validateOpenApi(text);\n });\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const getApp = (appId, setApp) => {\n fetch(globalUrl + \"/api/v1/apps/\" + appId + \"/config?openapi=false\", {\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n //alert.success(\"Successfully GOT app \"+appId)\n } else {\n alert.error(\"Failed getting app\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n console.log(responseJson);\n\n if (setApp) {\n if (\n selectedApp.versions !== undefined &&\n selectedApp.versions !== null\n ) {\n responseJson.versions = selectedApp.versions;\n }\n\n if (\n selectedApp.loop_versions !== undefined &&\n selectedApp.loop_versions !== null\n ) {\n responseJson.loop_versions = selectedApp.loop_versions;\n }\n\n //alert.info(\"Should set app to selected\")\n if (\n responseJson.actions !== undefined &&\n responseJson.actions !== null &&\n responseJson.actions.length > 0\n ) {\n setSelectedAction(responseJson.actions[0]);\n } else {\n setSelectedAction({});\n }\n setSelectedApp(responseJson);\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const deleteApp = (appId) => {\n alert.info(\"Attempting to delete app\");\n fetch(globalUrl + \"/api/v1/apps/\" + appId, {\n method: \"DELETE\",\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n alert.success(\"Successfully deleted app\");\n setTimeout(() => {\n getApps();\n }, 1000);\n } else {\n alert.error(\"Failed deleting app. Does it still exist?\");\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const updateAppField = (app_id, fieldname, fieldvalue) => {\n const data = {};\n data[fieldname] = fieldvalue;\n\n console.log(\"DATA: \", data);\n\n fetch(globalUrl + \"/api/v1/apps/\" + app_id, {\n method: \"PATCH\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n //setAppSearchLoading(false)\n return response.json();\n })\n .then((responseJson) => {\n //console.log(responseJson)\n //alert.info(responseJson)\n if (responseJson.success) {\n alert.success(\"Successfully updated app configuration\");\n } else {\n\t\t\t\t\tif (responseJson.reason !== undefined && responseJson.reason !== null) {\n \talert.error(\"Error: \"+responseJson.reason);\n\t\t\t\t\t} else {\n \talert.error(\"Error updating app configuration\");\n\t\t\t\t\t}\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const runAppSearch = (searchterm) => {\n const data = { search: searchterm };\n\n fetch(globalUrl + \"/api/v1/apps/search\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n setAppSearchLoading(false);\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success) {\n if (\n responseJson.reason !== undefined &&\n responseJson.reason.length > 0\n ) {\n setSearchableApps(responseJson.reason);\n //setFilteredApps(responseJson.reason)\n }\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const validateRemote = () => {\n setValidation(true);\n\n fetch(globalUrl + \"/api/v1/get_openapi_uri\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(openApi),\n credentials: \"include\",\n })\n .then((response) => {\n setValidation(false);\n if (response.status !== 200) {\n return response.json();\n }\n\n return response.text();\n })\n .then((responseJson) => {\n if (typeof responseJson !== \"string\" && !responseJson.success) {\n console.log(responseJson.reason);\n if (responseJson.reason !== undefined) {\n setOpenApiError(responseJson.reason);\n } else {\n setOpenApiError(\"Undefined issue with OpenAPI validation\");\n }\n return;\n }\n\n console.log(\"Validating response!\");\n validateOpenApi(responseJson);\n })\n .catch((error) => {\n alert.error(error.toString());\n setOpenApiError(error.toString());\n });\n };\n\n const escapeApiData = (apidata) => {\n //console.log(apidata)\n try {\n return JSON.stringify(JSON.parse(apidata));\n } catch (error) {\n console.log(\"JSON DECODE ERROR - TRY YAML\");\n }\n\n try {\n const parsed = YAML.parse(YAML.stringify(apidata));\n //const parsed = YAML.parse(apidata))\n return YAML.stringify(parsed);\n } catch (error) {\n console.log(\"YAML DECODE ERROR - TRY SOMETHING ELSE?: \" + error);\n setOpenApiError(\"Local error: \" + error.toString());\n }\n\n return \"\";\n };\n\n // Sends the data to backend, which should return a version 3 of the same API\n // If 200 - continue, otherwise, there's some issue somewhere\n const validateOpenApi = (openApidata) => {\n var newApidata = escapeApiData(openApidata);\n if (newApidata === \"\") {\n // Used to return here\n newApidata = openApidata;\n return;\n }\n\n //console.log(newApidata)\n\n setValidation(true);\n fetch(globalUrl + \"/api/v1/validate_openapi\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n body: openApidata,\n credentials: \"include\",\n })\n .then((response) => {\n setValidation(false);\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success) {\n setAppValidation(responseJson.id);\n } else {\n if (responseJson.reason !== undefined) {\n setOpenApiError(responseJson.reason);\n }\n alert.error(\"An error occurred in the response\");\n }\n })\n .catch((error) => {\n setValidation(false);\n alert.error(error.toString());\n setOpenApiError(error.toString());\n });\n };\n\n const redirectOpenApi = () => {\n navigate(`/apps/new?id=${appValidation}`)\n };\n\n const handleGithubValidation = (forceUpdate) => {\n getSpecificApps(openApi, forceUpdate);\n setLoadAppsModalOpen(false);\n };\n\n const deleteModal = deleteModalOpen ? (\n {\n setDeleteModalOpen(false);\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n },\n }}\n >\n \n
\n Are you sure?
\n Some workflows may stop working.\n
\n \n \n {\n deleteApp(selectedApp.id);\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const circularLoader = validation ? (\n \n ) : null;\n const appsModalLoad = loadAppsModalOpen ? (\n {\n setOpenApi(\"\");\n setLoadAppsModalOpen(false);\n setField1(\"\");\n setField2(\"\");\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: \"800px\",\n minHeight: \"320px\",\n },\n }}\n >\n \n
\n Load from github repo\n
\n
\n \n Repository (supported: github, gitlab, bitbucket)\n setOpenApi(e.target.value)}\n placeholder=\"https://github.com/frikky/shuffle-apps\"\n fullWidth\n />\n \n Branch (default value is \"master\"):\n \n
\n setDownloadBranch(e.target.value)}\n placeholder=\"master\"\n fullWidth\n />\n
\n \n Authentication (optional - private repos etc):\n \n
\n setField1(e.target.value)}\n type=\"username\"\n placeholder=\"Username / APIkey (optional)\"\n fullWidth\n />\n setField2(e.target.value)}\n type=\"password\"\n placeholder=\"Password (optional)\"\n fullWidth\n />\n
\n
\n \n {circularLoader}\n setLoadAppsModalOpen(false)}\n color=\"primary\"\n >\n Cancel\n \n {isCloud ? null : (\n {\n handleGithubValidation(true);\n }}\n color=\"primary\"\n >\n Force update\n \n )}\n {\n handleGithubValidation(false);\n }}\n color=\"primary\"\n >\n Submit\n \n \n \n ) : null;\n\n const errorText =\n openApiError.length > 0 ? (\n
Error: {openApiError}
\n ) : null;\n const modalView = openApiModal ? (\n {\n setOpenApiModal(false);\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: \"800px\",\n minHeight: \"320px\",\n },\n }}\n >\n \n \n
\n Create a new app \n
\n
\n \n Paste in the URI for the OpenAPI\n 0}\n color=\"primary\"\n onClick={() => {\n setOpenApiError(\"\");\n validateRemote();\n }}\n >\n Validate\n \n ),\n }}\n onChange={(e) => {\n setOpenApi(e.target.value);\n }}\n helperText={\n \n Must point to a version 2 or 3 OpenAPI specification.\n \n }\n placeholder=\"OpenAPI URI\"\n fullWidth\n />\n {/*\n\t\t\t\t\t
\n\t\t\t\t\t Example: \n\t\t\t\t\t
\n\t\t\t\t\t https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v2.0/json/uber.json\n\t\t\t\t\t\t*/}\n

Or upload a YAML or JSON specification

\n \n upload.current.click()}\n >\n Upload\n \n {errorText}\n \n \n {circularLoader}\n {\n setOpenApiModal(false);\n setAppValidation(\"\");\n setOpenApiError(\"\");\n setOpenApi(\"\");\n setOpenApiData(\"\");\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n redirectOpenApi();\n }}\n color=\"primary\"\n >\n Continue\n \n \n \n \n ) : null;\n\n const loadedCheck =\n isLoaded && !firstrequest ? (\n
\n {appView}\n {modalView}\n {appsModalLoad}\n {deleteModal}\n
\n ) : (\n
\n );\n\n // Maybe use gridview or something, idk\n return loadedCheck;\n};\n\nexport default Apps;\n","import React, { useState, useEffect } from \"react\";\nimport { useInterval } from \"react-powerhooks\";\n\nimport {\n InputAdornment,\n Tooltip,\n TextField,\n CircularProgress,\n ButtonGroup,\n Button,\n Avatar,\n ListItemAvatar,\n Typography,\n List,\n ListItem,\n ListItemText,\n Fade,\n} from \"@material-ui/core\";\nimport { \n\tFavoriteBorder as FavoriteBorderIcon,\n\tError as ErrorIcon,\n\tCheckCircleRounded as CheckCircleRoundedIcon,\n} from \"@mui/icons-material\";\nimport { FixName } from \"../views/Apps.jsx\";\nimport aa from 'search-insights'\n\n// Handles workflow updates on first open to highlight the issues of the workflow\n// Variables\n// Action (exists, missing fields)\n// Action auth\n// Triggers\n//\n// Specifically used for UNSAVED workflows only?\nconst ConfigureWorkflow = (props) => {\n const {\n\t\tuserdata,\n globalUrl,\n theme,\n workflow,\n appAuthentication,\n setSelectedAction,\n setAuthenticationModalOpen,\n setSelectedApp,\n apps,\n selectedAction,\n setConfigureWorkflowModalOpen,\n saveWorkflow,\n newWebhook,\n submitSchedule,\n referenceUrl,\n isCloud,\n setAuthenticationType,\n alert,\n\t\tshowTriggers,\n\t\tworkflowExecutions,\n\t\tgetWorkflowExecution,\n } = props;\n const [requiredActions, setRequiredActions] = React.useState([]);\n const [requiredVariables, setRequiredVariables] = React.useState([]);\n const [requiredTriggers, setRequiredTriggers] = React.useState([]);\n const [previousAuth, setPreviousAuth] = React.useState(appAuthentication);\n const [itemChanged, setItemChanged] = React.useState(false);\n const [firstLoad, setFirstLoad] = React.useState(\"\");\n const [showFinalizeAnimation, setShowFinalizeAnimation] = React.useState(false);\n\n\tconst [checkStarted, setCheckStarted] = React.useState(false);\n\n\tconst { start, stop } = useInterval({\n\t\tduration: 3000,\n\t\tstartImmediate: false,\n\t\tcallback: () => {\n\t\t\tif (getWorkflowExecution !== undefined && workflowExecutions !== undefined) {\n\t\t\t\tconst paramkey = workflow.id\n\t\t\t\tgetWorkflowExecution(paramkey)\n\t\t\t} else {\n\t\t\t\tconsole.log(\"Executions or getWorkflowExecutions not defined\")\n\t\t\t}\n\t\t},\n\t});\n\n\t// Where is this from?\n if (workflow === undefined || workflow === null) {\n return null;\n }\n\n if (apps === undefined || apps === null) {\n return null;\n }\n\n if (appAuthentication === undefined || appAuthentication === null) {\n return null;\n }\n\n const getApp = (actionId, appId) => {\n fetch(globalUrl + \"/api/v1/apps/\" + appId + \"/config?openapi=false\", {\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n //alert.success(\"Successfully GOT app \"+appId)\n } else {\n alert.error(\"Failed getting app\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n console.log(\"ACTION: \", responseJson);\n if (\n responseJson.actions !== undefined &&\n responseJson.actions !== null\n ) {\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n if (firstLoad.length === 0 || firstLoad !== workflow.id) {\n if (apps === undefined || apps === null || apps.length === 0) {\n console.log(\"No apps loaded: \", apps);\n setConfigureWorkflowModalOpen(false);\n return null;\n }\n\n setFirstLoad(workflow.id)\n const newactions = [];\n for (var key in workflow.actions) {\n const action = workflow.actions[key];\n var newaction = {\n large_image: action.large_image,\n app_name: action.app_name,\n app_version: action.app_version,\n activation_done: false,\n must_activate: false,\n must_authenticate: false,\n auth_done: false,\n action_ids: [],\n action: action,\n\t\t\t\tupdate_version: action.app_version,\n app: {},\n\t\t\t\tsteps: [],\n\t\t\t\tshow_steps: false,\n };\n\n const app = apps.find(\n (app) =>\n app.name === action.app_name &&\n (app.app_version === action.app_version ||\n (app.loop_versions !== null &&\n app.loop_versions.includes(action.app_version)))\n )\n\n\t\t\t//newaction.steps = wazuhSteps\n if (app === undefined || app === null) {\n \tconst subapp = apps.find(app => app.name === action.app_name)\n\t\t\t\tif (subapp !== undefined && subapp !== null) {\n\t\t\t\t\tnewaction.update_version = \"1.1.0\"\n\t\t\t\t}\n\n newaction.must_activate = true;\n\t\t\t\tnewaction.steps.push({\n\t\t\t\t\t\"title\": \"Activate app\",\n\t\t\t\t\t\"type\": \"activate\",\n\t\t\t\t\t\"required\": true,\n\t\t\t\t})\n } else {\n if (\n action.authentication_id === \"\" &&\n app.authentication.required === true\n ) {\n // Check if configuration is filled or not\n var filled = true;\n for (var key in action.parameters) {\n if (action.parameters[key].configuration) {\n //console.log(\"Found config: \", action.parameters[key])\n if (\n action.parameters[key].value === null ||\n action.parameters[key].value.length === 0\n ) {\n filled = false;\n break;\n }\n }\n }\n\n\t\t\t\t\tnewaction.steps.push({\n\t\t\t\t\t\t\"title\": \"Authenticate app\",\n\t\t\t\t\t\t\"type\": \"authenticate\",\n\t\t\t\t\t\t\"required\": true,\n\t\t\t\t\t})\n\n if (!filled) {\n newaction.must_authenticate = true;\n newaction.action_ids.push(action.id);\n }\n } else if (action.authentication_id !== \"\" && app.authentication.required === true) {\n\t\t\t\t\tconsole.log(\"Should verify authentication ID \", action.authentication_id)\n\n\t\t\t\t}\n\n newaction.app = app;\n }\n\n if (\n action.errors !== undefined &&\n action.errors !== null &&\n action.errors.length > 0\n ) {\n //console.log(\"Node has errors!: \", action.errors)\n }\n\n if (newaction.must_authenticate) {\n var authenticationOptions = [];\n for (var key in appAuthentication) {\n const auth = appAuthentication[key];\n if (auth.app.name === app.name && auth.active) {\n //console.log(\"Found auth: \", auth)\n authenticationOptions.push(auth);\n newaction.authenticationId = auth.id;\n break;\n }\n }\n\n if (\n newaction.authenticationId === null ||\n newaction.authenticationId === undefined ||\n newaction.authenticationId.length === \"\"\n ) {\n //console.log(\"FAILED to authenticate node!\")\n\n if (\n newactions.find(\n (tmpaction) =>\n tmpaction.app_id === newaction.app_id &&\n tmpaction.app_name === newaction.app_name\n ) !== undefined\n ) {\n //console.log(\"Action already found.\");\n } else {\n newactions.push(newaction);\n }\n } else {\n //console.log(\"Skipping node as it's already authenticated.\")\n newaction.authentication = authenticationOptions;\n workflow.actions[key] = newaction;\n }\n } else if (newaction.must_activate) {\n if (\n newactions.find(\n (tmpaction) =>\n tmpaction.app_id === newaction.app_id &&\n tmpaction.app_name === newaction.app_name\n ) !== undefined\n ) {\n console.log(\"Action already found.\");\n } else {\n newactions.push(newaction);\n }\n }\n }\n\n for (var key in workflow.workflow_variables) {\n const variable = workflow.workflow_variables[key];\n if (\n variable.value === undefined ||\n variable.value === undefined ||\n variable.value.length < 2\n ) {\n variable.value = \"\";\n variable.index = key;\n requiredVariables.push(variable);\n }\n }\n\n for (var key in workflow.triggers) {\n var trigger = workflow.triggers[key];\n trigger.index = key;\n\n\t\t\tif (trigger.trigger_type === \"WEBHOOK\") {\n\t\t\t\tconsole.log(\"Found webhook: \", trigger)\n\t\t\t\tif (trigger.app_association !== undefined && trigger.app_association.name !== null && trigger.app_association.name !== \"\") {\n\t\t\t\t\tconsole.log(\"Actions: \", newactions)\n\t\t\t\t\tconst findapp = trigger.app_association.name.toLowerCase()\n\t\t\t\t\tconst foundindex = newactions.findIndex(action => action.app_name.toLowerCase() === findapp)\n\n\t\t\t\t\t// Adding webhook to start of it\n\t\t\t\t\tif (foundindex >= 0) {\n\t\t\t\t\t\tconst tmpsteps = newactions[foundindex].steps\n\t\t\t\t\t\tnewactions[foundindex].steps = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"title\": \"Configure Webhook\",\n\t\t\t\t\t\t\t\t\"type\": \"webhook\",\n\t\t\t\t\t\t\t\t\"required\": true,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\tfor (var subkey in tmpsteps) {\n\t\t\t\t\t\t\tnewactions[foundindex].steps.push(tmpsteps[subkey])\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tnewactions[foundindex].show_steps = true\n\n\t\t\t\t\t\tconsole.log(\"CHANGED ACTION: \", newactions[foundindex])\n\t\t\t\t\t\t//console.log(\"Index: \", newactions[foundindex])\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n if (trigger.status === \"running\") {\n continue;\n }\n\n if (\n trigger.trigger_type === \"SUBFLOW\" ||\n trigger.trigger_type === \"USERINPUT\"\n ) {\n continue;\n }\n\n requiredTriggers.push(trigger);\n }\n\n if (\n requiredTriggers.length === 0 &&\n requiredVariables.length === 0 &&\n newactions.length === 0\n ) {\n setConfigureWorkflowModalOpen(false);\n }\n\n setRequiredTriggers(requiredTriggers);\n setRequiredVariables(requiredVariables);\n setRequiredActions(newactions);\n\t}\n\n if (appAuthentication.length !== previousAuth.length) {\n var newactions = []\n for (var actionkey in requiredActions) {\n var newaction = requiredActions[actionkey];\n const app = newaction.app;\n\n for (var key in appAuthentication) {\n const auth = appAuthentication[key];\n\n\t\t\t\t// Does this account for all the different ones of the same? \n if (auth.app.name === app.name && auth.active === true) {\n newaction.auth_done = true;\n break;\n }\n }\n\n newactions.push(newaction);\n }\n\n setRequiredActions(newactions);\n setPreviousAuth(appAuthentication);\n // Set auth done to true\n //\"auth_done\": false\n }\n\n const TriggerSection = (props) => {\n const { trigger } = props\n\n return (\n \n \n \n \n \n \n \n {trigger.trigger_type === \"WEBHOOK\" && trigger.status !== \"running\" ? (\n {\n workflow.triggers[trigger.index].status = \"running\";\n if (workflow.triggers[trigger.index].parameters === null) {\n workflow.triggers[trigger.index].parameters = [\n {\n name: \"url\",\n value: referenceUrl + \"webhook_\" + trigger.id,\n },\n { name: \"tmp\", value: \"webhook_\" + trigger.id },\n ];\n }\n\n newWebhook(workflow.triggers[trigger.index]);\n saveWorkflow(workflow);\n setItemChanged(true);\n }}\n >\n {trigger.status !== \"running\" ? \"Start\" : \"Running\"}\n \n ) : trigger.trigger_type === \"SCHEDULE\" &&\n trigger.status !== \"running\" ? (\n {\n workflow.triggers[trigger.index].status = \"running\";\n if (workflow.triggers[trigger.index].parameters === null) {\n workflow.triggers[trigger.index].parameters = [\n { name: \"cron\", value: isCloud ? \"*/15 * * * *\" : \"120\" },\n {\n name: \"execution_argument\",\n value: '{\"example\": {\"json\": \"is cool\"}}',\n },\n ];\n }\n\n submitSchedule(workflow.triggers[trigger.index], trigger.index);\n saveWorkflow(workflow);\n setItemChanged(true);\n }}\n >\n {trigger.status !== \"running\" ? \"Start\" : \"Running\"}\n \n ) : null}\n {/*\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\ttype={\"text\"}\n\t\t\t\t\t\t\t\tplaceholder={`New value for ${trigger.name}`}\n\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\tconsole.log(\"NEW VALUE ON INDEX\", trigger.value)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonBlur={(event) => {\n\t\t\t\t\t\t\t\t\t//workflow.variables[variable.index] = event.target.value\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstyle={{}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t*/}\n \n );\n };\n\n const VariableSection = (props) => {\n const { variable } = props;\n\n //Name: {variable.name} - {variable.value}. \n return (\n \n \n \n \n \n \n \n ,\n }}\n fullWidth\n color=\"primary\"\n type={\"text\"}\n placeholder={`New value for ${variable.name}`}\n onChange={(event) => {\n console.log(\n \"NEW VALUE ON INDEX\",\n variable.index,\n variable.value\n );\n }}\n onBlur={(event) => {\n workflow.workflow_variables[variable.index].value =\n event.target.value;\n }}\n />\n }\n style={{}}\n />\n \n );\n };\n\n const activateApp = (app_id, app_name, app_version) => {\n\n\t\tif (aa !== undefined) {\n\t\t\taa('init', {\n\t\t\t\t\tappId: \"JNSS5CFDZZ\",\n\t\t\t\t\tapiKey: \"db08e40265e2941b9a7d8f644b6e5240\",\n\t\t\t})\n\n\t\t\tconst timestamp = new Date().getTime()\n\t\t\taa('sendEvents', [\n\t\t\t\t{\n\t\t\t\t\teventType: 'conversion',\n\t\t\t\t\teventName: 'Public App Activated',\n\t\t\t\t\tindex: 'appsearch',\n\t\t\t\t\tobjectIDs: [app_id],\n\t\t\t\t\ttimestamp: timestamp,\n\t\t\t\t\tuserToken: userdata === undefined || userdata === null || userdata.id === undefined ? \"unauthenticated\" : userdata.id,\n\t\t\t\t}\n\t\t\t])\n\t\t}\n\n fetch(\n `${globalUrl}/api/v1/apps/${app_id}/activate?app_name=${app_name}&app_version=${app_version}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n //window.location.pathname = \"/search\"\n //alert.error(\"Failed to find this app. Is it public?\")\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success === false) {\n \tif (responseJson.reason !== undefined) {\n \talert.error(\"Failed to activate the app: \"+responseJson.reason);\n\t\t\t\t\t} else {\n \talert.error(\"Failed to activate the app\");\n\t\t\t\t\t}\n } else {\n alert.success(\"App activated for your organization!\");\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n\n\n const AppSection = (props) => {\n const { action } = props;\n\n return (\n \n\t\t\t\t{/*\n \n \n \n \n \n \n\t\t\t\t*/}\n {action.must_authenticate ? \n\t\t\t\t\t\t {\n \t\t setAuthenticationType(\n action.app.authentication.type === \"oauth2\" &&\n action.app.authentication.redirect_uri !== undefined &&\n action.app.authentication.redirect_uri !== null\n ? {\n type: \"oauth2\",\n redirect_uri: action.app.authentication.redirect_uri,\n token_uri: action.app.authentication.token_uri,\n scope: action.app.authentication.scope,\n }\n : {\n type: \"\",\n }\n )\n\n setItemChanged(true);\n\n\t\t\t\t\t\t\t\tif (setSelectedAction !== undefined) {\n \tsetSelectedAction(action.action);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (setSelectedApp !== undefined) {\n \tsetSelectedApp(action.app);\n\t\t\t\t\t\t\t\t}\n\n setAuthenticationModalOpen(true);\n \t\t }}\n >\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{action.auth_done ? \"Authenticated\" : `Authenticate ${action.app_name.replaceAll(\"_\", \" \")}`}\n\t\t\t\t\t\t\n \t\n : null}\n\t\t\t\t{action.update_version !== action.app_version ? \n {\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tconsole.log(\"Set version to: \", action.update_version)\n\n\t\t\t\t\t\t\tif (workflow.actions !== null) {\n\t\t\t\t\t\t\t\t//console.log(workflow.actions)\n\t\t\t\t\t\t\t\talert.info(\"Setting action to version \"+action.update_version)\n\t\t\t\t\t\t\t\tfor (var key in workflow.actions) {\n\t\t\t\t\t\t\t\t\tif (workflow.actions[key].app_name === action.app_name && workflow.actions[key].app_version === action.app_version) {\n\t\t\t\t\t\t\t\t\t\tworkflow.actions[key].app_version = action.update_version\n\n\t\t\t\t\t\t\t\t\t\tif (!itemChanged) {\n\t\t\t\t\t\t\t\t\t\t\tsetItemChanged(true)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\taction.must_activate = false\n\t\t\t\t\t\t\t\taction.update_version = action.app_version\n\t\t\t\t\t\t\t}\n }}\n >\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tUpdate to version {action.update_version}\n\t\t\t\t\t\t\n \n\t\t\t\t\t: \n\t\t\t\t\taction.must_activate ? \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconsole.log(\"ACTION: \", action)\n\t\t\t\t\t\t\t\t\tactivateApp(action.action.app_id, action.app_name, action.app_version);\n\t\t\t\t\t\t\t\t\tsetItemChanged(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tActivate\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t: \n\t\t\t\tnull\n }\n \n );\n }\n\t\t\t\t\t\t\t\t\t\n\t// Based on the color here. Default: #f86a3e\n\t//backgroundColor: selectedUsecaseCategory === usecase.name ? usecase.color : theme.palette.surfaceColor,\n\n\tconst BoxHighlight = (props) => {\n\t\tconst {data, appname, appinfo, index, activeStep, setActiveStep, finished, } = props\n\n\t\tconst [hovered, setHovered] = useState(false)\n\t\tconst [isOpen, setIsOpen] = useState(false)\n\t\tconst [isLoading, setIsLoading] = useState(false)\n\n\t\t// This kind of just works for new workflows..\n\t\t// What if we try many times?\t\n\n\t\tvar webhook = {\n\t\t\t\"name\": \"Testhook\",\n\t\t\t\"description\": `A Webhook Trigger has been started and is ready to receive events from ${appname}. Click to copy the URL to send events to.`,\n\t\t\t\"url\": \"\",\n\t\t}\n\n\t\tuseEffect(() => {\n\t\t\tif (data.type === \"webhook\" && !finished) {\n\t\t\t\tif (!checkStarted) {\n\t\t\t\t\tsetCheckStarted(true)\n \t\t\t\tstart()\n\t\t\t\t}\n\t\t\t}\n\t\t}, [])\n\n\t\t// Load webhook docs from the app itself (Wazuh)\n\t\t// Add a \"sample\" for what the event is supposed to look like\n\t\t// Have a listener for when ACTUALLY is received \n\t\t// INJECT the URL into the documentation when loading it in\n\t\t// How can we load it in? Should we just use the app name & get docs -> parse?\n\t\tif (data.type === \"webhook\" && workflow.triggers !== undefined && workflow.triggers !== null) {\n\t\t\t//console.log(\"Find webhook in the workflow!\")\n\t\t\tfor (var key in workflow.triggers) {\n\t\t\t\tif (workflow.triggers[key].trigger_type !== \"WEBHOOK\") {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tfor (var subkey in workflow.triggers[key].parameters) {\n\t\t\t\t\tconst param = workflow.triggers[key].parameters[subkey]\n\t\t\t\t\tif (param.name === \"url\") {\n\t\t\t\t\t\twebhook.url = param.value\n\n\t\t\t\t\t\tif (isLoading === false) {\n\t\t\t\t\t\t\tsetIsLoading(true)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (data.type == \"authenticate\") {\n\t\t\t//console.log(\"Handle app authentication in the workflow!\")\n\t\t}\n\t\n\t\treturn (\n\t\t\t
{\n\t\t\t\t\tsetIsOpen(!isOpen)\n\t\t\t\t\tsetActiveStep(index)\n\t\t\t\t}}\n\t\t\t\tonMouseOver={() => {\n\t\t\t\t\tsetHovered(true);\n\t\t\t\t}}\n\t\t\t\tonMouseOut={() => {\n\t\t\t\t\tsetHovered(false);\n\t\t\t\t}}\n\t\t\t>\n\n\t\t\t\t
\n \t\t{data.title}\n\t\t\t\t\t{finished ?\n\t\t\t\t\t\t\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\n\t\t\t\t{activeStep === index ? \n\t\t\t\t\t
\n\t\t\t\t\t\t{data.type === \"webhook\" ?\n\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\tconsole.log(\"Clicked Webhook\")\n\n\t\t\t\t\t\t\t\tvar copyText = document.getElementById(\"copy_element_shuffle\")\n\t\t\t\t\t\t\t\tif (copyText !== undefined && copyText !== null) {\n\t\t\t\t\t\t\t\t\tconsole.log(\"NAVIGATOR: \", navigator);\n\t\t\t\t\t\t\t\t\tconst clipboard = navigator.clipboard;\n\t\t\t\t\t\t\t\t\tif (clipboard === undefined) {\n\t\t\t\t\t\t\t\t\t\talert.error(\"Can only copy over HTTPS (port 3443)\");\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tnavigator.clipboard.writeText(webhook.url);\n\t\t\t\t\t\t\t\t\tcopyText.select();\n\t\t\t\t\t\t\t\t\tcopyText.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t99999\n\t\t\t\t\t\t\t\t\t); /* For mobile devices */\n\n\t\t\t\t\t\t\t\t\t/* Copy the text inside the text field */\n\t\t\t\t\t\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\t\t\t\t\t\talert.success(\"Copied Webhook URL\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{webhook.description}\n\t\t\t\t\t\t\t\t{/*{webhook.url}*/}\n\t\t\t\t\t\t\t\t{isLoading && finished === false ? \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t: null}\n\n\t\t\t
\n\t\t)\n\t}\n\n\tconst AppWrapper = (props) => {\n\t\tconst {data, parentindex} = props\n\t\tconst [clicked, setClicked] = useState(true)\n\t\tconst [hovered, setHovered] = useState(false)\n\t\tconst [activeStep, setActiveStep] = useState(0)\n\t\tconst [firstRun, setFirstRun] = useState(true)\n\t\tconst [finishCount, setFinishCount] = useState(0)\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
{\n\t\t\t\t\t\t//setClicked(!clicked)\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseOver={() => {\n\t\t\t\t\t\tsetHovered(true);\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseOut={() => {\n\t\t\t\t\t\tsetHovered(false);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tConfigure {data.app_name.replaceAll(\"_\", \" \")}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{clicked === true ? \n\t\t\t\t\tdata.steps.map((step, index) => {\n\t\t\t\t\t\tvar finished = false\n\t\t\t\t\t\tif (step.type === \"activate\") {\n\t\t\t\t\t\t\tif (data.activation_done === true) {\n\t\t\t\t\t\t\t\tfinished = true\n\n\t\t\t\t\t\t\t\tif (index === activeStep && firstRun === true) {\n\t\t\t\t\t\t\t\t\tsetActiveStep(activeStep+1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (firstRun) {\n\t\t\t\t\t\t\t\t\tsetFinishCount(finishCount+1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (step.type === \"authenticate\") {\n\t\t\t\t\t\t\tconsole.log(\"AUTH STEP: \", step)\n\t\t\t\t\t\t\tif (data.must_authenticate === true ) {\n\t\t\t\t\t\t\t\tfinished = false\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (data.activation_done === true && data.auth_done === true) {\n\t\t\t\t\t\t\t\t\tfinished = true \n\n\t\t\t\t\t\t\t\t\tif (firstRun) {\n\t\t\t\t\t\t\t\t\t\tsetFinishCount(finishCount+1)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (index === activeStep && firstRun === true) {\n\t\t\t\t\t\t\t\t\t\tsetActiveStep(activeStep+1)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (step.type === \"webhook\") {\n\t\t\t\t\t\t\tfor (var key in workflowExecutions) {\n\t\t\t\t\t\t\t\tconst exec = workflowExecutions[key]\n\t\t\t\t\t\t\t\tif (exec.execution_argument !== undefined && exec.execution_argument !== null && exec.execution_argument.length > 0 && exec.execution_source === \"webhook\") {\n\t\t\t\t\t\t\t\t\t//console.log(\"Done: \", exec)\n\n\t\t\t\t\t\t\t\t\tfinished = true\n\t\t\t\t\t\t\t\t\tif (index === activeStep && firstRun === true) {\n\t\t\t\t\t\t\t\t\t\tsetActiveStep(activeStep+1)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (firstRun) {\n\t\t\t\t\t\t\t\t\t\tsetFinishCount(finishCount+1)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Finished + source = webhook\n\n\t\t\t\t\t\t\t\t\tstop()\n\t\t\t\t\t\t\t\t\t//if (isLoading === true) {\n\t\t\t\t\t\t\t\t\t//\tsetIsLoading(false)\n\t\t\t\t\t\t\t\t\t//}\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (firstRun === true && index === data.steps.length-1) {\n\t\t\t\t\t\t\tsetFirstRun(false)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t: null}\n\t\t\t
\n\t\t)\n\t}\n\n\tconst topColor = \"#f86a3e, #fc3922\"\n return (\n
\n\t\t\t
\n\t\t\t
\n\t\t\t
\n \t{workflow.name}\n \t\n \t The following configuration makes the workflow ready immediately.\n \t\n \t{requiredActions.length > 0 ? (\n \t \n \t \n \t Required Actions\n \t \n\n \t \n \t {requiredActions.map((data, index) => {\n \t return (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{data.steps !== undefined && data.steps !== null && data.show_steps === true ?\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n \t })}\n \t
\n \t
\n \t) : null}\n\n \t{requiredVariables.length > 0 ? (\n \t \n \t \n \t Variables\n \t \n \t \n \t {requiredVariables.map((data, index) => {\n \t return ;\n \t })}\n \t \n \t \n \t) : null}\n\n \t{requiredTriggers.length > 0 && showTriggers !== false ? (\n \t \n \t \n \t Triggers\n \t \n \t \n \t {requiredTriggers.map((data, index) => {\n \t return ;\n \t })}\n \t \n \t \n \t) : null}\n\n\t\t\t\t
\n\t\t\t\t\t{showFinalizeAnimation ? \n\t\t\t\t\t\t\"finalize {\n\t\t\t\t\t\t\tconsole.log(\"Img loaded.\")\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tconsole.log(\"Img closing.\")\n\t\t\t\t\t\t\t\tsetConfigureWorkflowModalOpen(false);\n\t\t\t\t\t\t\t}, 1250)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t}}/>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/*\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tstop()\n\t\t\t\t\t\t\t\t\tsetShowFinalizeAnimation(true)\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tif (itemChanged) {\n\t\t\t\t\t\t\t\t\t\t\tif (saveWorkflow !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\t\tsaveWorkflow(workflow);\n\t\t\t\t\t\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, 1000)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tFinalize\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n
\n );\n};\n\nexport default ConfigureWorkflow;\n","import React, { useRef, useState, useEffect, useLayoutEffect } from \"react\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport theme from '../theme';\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n ListItemText,\n TextField,\n Drawer,\n Button,\n Paper,\n Grid,\n Tabs,\n InputAdornment,\n Tab,\n ButtonBase,\n Tooltip,\n Select,\n MenuItem,\n Divider,\n Dialog,\n Modal,\n DialogActions,\n DialogTitle,\n InputLabel,\n DialogContent,\n FormControl,\n IconButton,\n Menu,\n Input,\n FormGroup,\n FormControlLabel,\n Typography,\n Checkbox,\n Breadcrumbs,\n CircularProgress,\n Switch,\n Fade,\n} from \"@material-ui/core\";\nimport { \n\tLockOpen as LockOpenIcon,\n\tSupervisorAccount as SupervisorAccountIcon,\n} from \"@mui/icons-material\";\n\nconst ITEM_HEIGHT = 55;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n minWidth: 500,\n maxWidth: 500,\n scrollX: \"auto\",\n },\n },\n variant: \"menu\",\n getContentAnchorEl: null,\n};\n\nconst registeredApps = [\n\t\"gmail\",\n\t\"slack\",\n\t\"webex\",\n\t\"zoho_desk\",\n\t\"outlook_graph\",\n\t\"outlook_office365\",\n\t\"microsoft_teams\",\n\t\"microsoft_teams_user_access\",\n\t\"todoist\",\n\t\"microsoft_sentinel\",\n\t\"microsoft_365_defender\",\n]\n\nconst AuthenticationOauth2 = (props) => {\n const {\n saveWorkflow,\n selectedApp,\n workflow,\n selectedAction,\n authenticationType,\n getAppAuthentication,\n appAuthentication,\n setSelectedAction,\n setNewAppAuth,\n setAuthenticationModalOpen,\n\t\tisCloud,\n\t\tautoAuth, \n } = props;\n\n //const [update, setUpdate] = React.useState(\"|\")\n const [defaultConfigSet, setDefaultConfigSet] = React.useState(\n authenticationType.client_id !== undefined &&\n authenticationType.client_id !== null &&\n authenticationType.client_id.length > 0 &&\n authenticationType.client_secret !== undefined &&\n authenticationType.client_secret !== null &&\n authenticationType.client_secret.length > 0\n );\t\n\n const [clientId, setClientId] = React.useState(\n defaultConfigSet ? authenticationType.client_id : \"\"\n );\n const [clientSecret, setClientSecret] = React.useState(\n defaultConfigSet ? authenticationType.client_secret : \"\"\n );\n const [oauthUrl, setOauthUrl] = React.useState(\"\");\n const [buttonClicked, setButtonClicked] = React.useState(false);\n\n const [offlineAccess, setOfflineAccess] = React.useState(true);\n const allscopes =\n authenticationType.scope !== undefined ? authenticationType.scope : [];\n\n\tconsole.log(\"ALLSCOPES: \", allscopes)\n const [selectedScopes, setSelectedScopes] = React.useState(allscopes.length === 1 ? [allscopes[0]] : [])\n const [manuallyConfigure, setManuallyConfigure] = React.useState(\n defaultConfigSet ? false : true\n );\n const [authenticationOption, setAuthenticationOptions] = React.useState({\n app: JSON.parse(JSON.stringify(selectedApp)),\n fields: {},\n label: \"\",\n usage: [\n {\n workflow_id: workflow.id,\n },\n ],\n id: uuidv4(),\n active: true,\n });\n\n\tuseEffect(() => {\n\t\tconsole.log(\"Should automatically click the auto-auth button?\")\n\t\tif (autoAuth === true && selectedApp !== undefined) {\n\t\t\tstartOauth2Request() \n\t\t}\n\t}, [])\n\n if (selectedApp.authentication === undefined) {\n return null;\n }\n\n\tconst startOauth2Request = (admin_consent) => {\n\t\tconsole.log(\"APP: \", selectedApp)\n\t\tif (selectedApp.name.toLowerCase() == \"outlook_graph\" || selectedApp.name.toLowerCase() == \"outlook_office365\") {\n\t\t\thandleOauth2Request(\n\t\t\t\t\n\t\t\t\t\"efe4c3fe-84a1-4821-a84f-23a6cfe8e72d\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://graph.microsoft.com\",\n\t\t\t\t[\"Mail.ReadWrite\"],\n\t\t\t\tadmin_consent,\n\t\t\t);\n\t\t} else if (selectedApp.name.toLowerCase() == \"gmail\") {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"253565968129-c0a35knic7q1pdk6i6qk9gdkvr07ci49.apps.googleusercontent.com\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://gmail.googleapis.com\",\n\t\t\t\t[\"https://www.googleapis.com/auth/gmail.modify\",\n\t\t\t\t\t\"https://www.googleapis.com/auth/gmail.send\",\n\t\t\t\t\t\"https://www.googleapis.com/auth/gmail.insert\",\n\t\t\t\t\t\"https://www.googleapis.com/auth/gmail.compose\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase() == \"zoho_desk\") {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"1000.ZR5MHUW6B0L6W1VUENFGIATFS0TOJT\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://desk.zoho.com\",\n\t\t\t\t[\"Desk.tickets.READ\",\n\t\t\t\t\"Desk.tickets.UPDATE\",\n\t\t\t\t\"Desk.tickets.DELETE\",\n\t\t\t\t\"Desk.tickets.CREATE\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase() == \"slack\") {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"151779186901.2448678750935\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://slack.com\",\n\t\t\t\t[\"admin\", \"chat:write\", \"im:read\", \"im:write\", \"search:read\", \"usergroups:read\", \"usergroups:write\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase() == \"webex\") {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"Cab184f3d7271f540443c79b5b79845e3387abbbdb3db4233a87ea3a5432fb3d5\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://webexapis.com\",\n\t\t\t\t[\"spark:all\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase().includes(\"microsoft_teams\")) {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"31cb4c84-658e-43d5-ae84-22c9142e967a\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://graph.microsoft.com\",\n\t\t\t\t[\"ChannelMessage.Edit\", \"ChannelMessage.Read.All\", \"ChannelMessage.Send\", \"Chat.Create\", \"Chat.ReadWrite\", \"Chat.Read\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase().includes(\"todoist\")) {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"35fa3a384040470db0c8527e90a3c2eb\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://api.todoist.com\",\n\t\t\t\t[\"task:add\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase().includes(\"microsoft_sentinel\")) {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"4c16e8c4-3d34-4aa1-ac94-262ea170b7f7\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://management.azure.com\",\n\t\t\t\t[\"https://management.azure.com/user_impersonation\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t} else if (selectedApp.name.toLowerCase().includes(\"microsoft_365_defender\")) {\n\t\t\thandleOauth2Request(\n\t\t\t\t\"4c16e8c4-3d34-4aa1-ac94-262ea170b7f7\",\n\t\t\t\t\"\",\n\t\t\t\t\"https://graph.microsoft.com\",\n\t\t\t\t[\"SecurityEvents.ReadWrite.All\"],\n\t\t\t\tadmin_consent,\n\t\t\t)\n\t\t}\n\t}\n\n\n const handleOauth2Request = (client_id, client_secret, oauth_url, scopes, admin_consent) => {\n setButtonClicked(true);\n console.log(\"SCOPES: \", scopes);\n\n\t\tclient_id = client_id.trim()\n\t\tclient_secret = client_secret.trim()\n\t\toauth_url = oauth_url.trim()\n\n var resources = \"\";\n if (scopes !== undefined && (scopes !== null) & (scopes.length > 0)) {\n\t\t\tif (offlineAccess === true && !scopes.includes(\"offline_access\")) {\n\t\t\t\tif (authenticationType.redirect_uri.includes(\"microsoft\")) {\n\t\t\t\t\tconsole.log(\"Appending offline access\")\n\t\t\t\t\tscopes.push(\"offline_access\")\n\t\t\t\t}\n\t\t\t}\n\n resources = scopes.join(\" \");\n //resources = scopes.join(\",\");\n }\n\n const authentication_url = authenticationType.token_uri;\n //console.log(\"AUTH: \", authenticationType)\n //console.log(\"SCOPES2: \", resources)\n const redirectUri = `${window.location.protocol}//${window.location.host}/set_authentication`;\n var state = `workflow_id%3D${workflow.id}%26reference_action_id%3d${selectedAction.app_id}%26app_name%3d${selectedAction.app_name}%26app_id%3d${selectedAction.app_id}%26app_version%3d${selectedAction.app_version}%26authentication_url%3d${authentication_url}%26scope%3d${resources}%26client_id%3d${client_id}%26client_secret%3d${client_secret}`;\n if (oauth_url !== undefined && oauth_url !== null && oauth_url.length > 0) {\n state += `%26oauth_url%3d${oauth_url}`;\n console.log(\"ADDING OAUTH2 URL: \", state);\n }\n\n if (\n authenticationType.refresh_uri !== undefined &&\n authenticationType.refresh_uri !== null &&\n authenticationType.refresh_uri.length > 0\n ) {\n state += `%26refresh_uri%3d${authenticationType.refresh_uri}`;\n } else {\n state += `%26refresh_uri%3d${authentication_url}`;\n }\n\n\t\t// No prompt forcing\n var url = `${authenticationType.redirect_uri}?client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&prompt=login&scope=${resources}&state=${state}&access_type=offline`;\n\t\tif (admin_consent === true) {\n\t\t\tconsole.log(\"Running Oauth2 WITH admin consent\")\n \t//url = `${authenticationType.redirect_uri}?client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&prompt=consent&scope=${resources}&state=${state}&access_type=offline`;\n \turl = `${authenticationType.redirect_uri}?client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&prompt=admin_consent&scope=${resources}&state=${state}&access_type=offline`;\n\t\t}\n\n\t\t// Force new consent\n //const url = `${authenticationType.redirect_uri}?client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&scope=${resources}&prompt=consent&state=${state}&access_type=offline`;\n\n\t\t// Admin consent\n //const url = `https://accounts.zoho.com/oauth/v2/auth?response_type=code&client_id=${client_id}&scope=AaaServer.profile.Read&redirect_uri=${redirectUri}&prompt=consent`\n \n\t\t// &resource=https%3A%2F%2Fgraph.microsoft.com&\n\n // FIXME: Awful, but works for prototyping\n // How can we get a callback properly realtime?\n // How can we properly try-catch without breaks on error?\n try {\n var newwin = window.open(url, \"\", \"width=800,height=600\");\n //console.log(newwin)\n\n var open = true;\n const timer = setInterval(() => {\n if (newwin.closed) {\n\t\t\t\t\tconsole.log(\"Closing?\")\n\n\t\t\t\t\tif (setAuthenticationModalOpen !== undefined) {\n\t\t\t\t\t\tsetAuthenticationModalOpen(false)\n\t\t\t\t\t}\n\n setButtonClicked(false);\n clearInterval(timer);\n //alert('\"Secure Payment\" window closed!');\n\n getAppAuthentication(true, true);\n } else {\n\t\t\t\t\tconsole.log(\"Not closed\")\n\t\t\t\t}\n }, 1000);\n //do {\n //\tsetTimeout(() => {\n //\t\tconsole.log(newwin)\n //\t\tconsole.log(\"CLOSED\", newwin.closed)\n //\t\tif (newwin.closed) {\n\n //\t\t\topen = false\n //\t\t}\n //\t}, 1000)\n //}\n //while(open === true)\n } catch (e) {\n alert.error(\n \"Failed authentication - probably bad credentials. Try again\"\n );\n setButtonClicked(false);\n }\n\n return;\n //do {\n //} while (\n };\n\n authenticationOption.app.actions = [];\n\n for (var key in selectedApp.authentication.parameters) {\n if (\n authenticationOption.fields[\n selectedApp.authentication.parameters[key].name\n ] === undefined\n ) {\n authenticationOption.fields[\n selectedApp.authentication.parameters[key].name\n ] = \"\";\n }\n }\n\n const handleSubmitCheck = () => {\n console.log(\"NEW AUTH: \", authenticationOption);\n if (authenticationOption.label.length === 0) {\n authenticationOption.label = `Auth for ${selectedApp.name}`;\n //alert.info(\"Label can't be empty\")\n //return\n }\n\n // Automatically mapping fields that already exist (predefined).\n // Warning if fields are NOT filled\n for (var key in selectedApp.authentication.parameters) {\n if (\n authenticationOption.fields[\n selectedApp.authentication.parameters[key].name\n ].length === 0\n ) {\n if (\n selectedApp.authentication.parameters[key].value !== undefined &&\n selectedApp.authentication.parameters[key].value !== null &&\n selectedApp.authentication.parameters[key].value.length > 0\n ) {\n authenticationOption.fields[\n selectedApp.authentication.parameters[key].name\n ] = selectedApp.authentication.parameters[key].value;\n } else {\n if (\n selectedApp.authentication.parameters[key].schema.type === \"bool\"\n ) {\n authenticationOption.fields[\n selectedApp.authentication.parameters[key].name\n ] = \"false\";\n } else {\n alert.info(\n \"Field \" +\n selectedApp.authentication.parameters[key].name +\n \" can't be empty\"\n );\n return;\n }\n }\n }\n }\n\n console.log(\"Action: \", selectedAction);\n selectedAction.authentication_id = authenticationOption.id;\n selectedAction.selectedAuthentication = authenticationOption;\n if (\n selectedAction.authentication === undefined ||\n selectedAction.authentication === null\n ) {\n selectedAction.authentication = [authenticationOption];\n } else {\n selectedAction.authentication.push(authenticationOption);\n }\n\n setSelectedAction(selectedAction);\n\n var newAuthOption = JSON.parse(JSON.stringify(authenticationOption));\n var newFields = [];\n for (const key in newAuthOption.fields) {\n const value = newAuthOption.fields[key];\n newFields.push({\n key: key,\n value: value,\n });\n }\n\n console.log(\"FIELDS: \", newFields);\n newAuthOption.fields = newFields;\n setNewAppAuth(newAuthOption);\n //appAuthentication.push(newAuthOption)\n //setAppAuthentication(appAuthentication)\n //\n\n //if (configureWorkflowModalOpen) {\n //\tsetSelectedAction({})\n //}\n //setUpdate(authenticationOption.id)\n\n /*\n\t\t\t{selectedAction.authentication.map(data => (\n\t\t\t\n\t\t*/\n };\n\n const handleScopeChange = (event) => {\n const {\n target: { value },\n } = event;\n\n console.log(\"VALUE: \", value);\n\n // On autofill we get a the stringified value.\n setSelectedScopes(typeof value === \"string\" ? value.split(\",\") : value);\n };\n\n if (\n authenticationOption.label === null ||\n authenticationOption.label === undefined\n ) {\n authenticationOption.label = selectedApp.name + \" authentication\";\n }\n\n //console.log(\n return (\n
\n \n
\n Authentication for {selectedApp.name}\n
\n
\n \n \n Oauth2 requires a client ID and secret to authenticate, defined in the remote system. Your redirect URL is https://shuffler.io/set_authentication.\n \n {\" \"}\n Learn more about Oauth2 with Shuffle\n \n
\n \n\n\t\t\t\t{isCloud && registeredApps.includes(selectedApp.name.toLowerCase()) ? \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t 0 || clientId.length > 0\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// Hardcode some stuff?\n\t\t\t\t\t\t\t\t\t// This could prolly be added to the app itself with a \"default\" client ID \n\t\t\t\t\t\t\t\t\tstartOauth2Request()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{buttonClicked ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tAuto-Authenticate \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{buttonClicked ? \n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t 0 || clientId.length > 0\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t// Hardcode some stuff?\n\t\t\t\t\t\t\t\t\t\t\t// This could prolly be added to the app itself with a \"default\" client ID \n\t\t\t\t\t\t\t\t\t\t\tstartOauth2Request(true)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t: null}\n {/* {\n\t\t\t\t\t\t\tauthenticationOption.label = event.target.value\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t*/}\n\n {!manuallyConfigure ? null : (\n \n {selectedApp.authentication.parameters.map((data, index) => {\n //console.log(data, index)\n if (data.name === \"client_id\" || data.name === \"client_secret\") {\n return null;\n }\n\n if (data.name !== \"url\") {\n return null;\n }\n\n if (oauthUrl.length === 0) {\n setOauthUrl(data.value);\n }\n\n return (\n
\n \n {data.name}\n\n {data.schema !== undefined &&\n data.schema !== null &&\n data.schema.type === \"bool\" ? (\n {\n console.log(\"Value: \", e.target.value);\n authenticationOption.fields[data.name] = e.target.value;\n }}\n style={{\n backgroundColor: theme.palette.surfaceColor,\n color: \"white\",\n height: 50,\n }}\n >\n \n false\n \n \n true\n \n \n ) : (\n {\n authenticationOption.fields[data.name] =\n event.target.value;\n console.log(\"Setting oauth url\");\n setOauthUrl(event.target.value);\n //const [oauthUrl, setOauthUrl] = React.useState(\"\")\n }}\n />\n )}\n
\n );\n })}\n {\n setClientId(event.target.value);\n //authenticationOption.label = event.target.value\n }}\n />\n {\n setClientSecret(event.target.value);\n //authenticationOption.label = event.target.value\n }}\n />\n {allscopes.length === 0 ? null : (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tScopes\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\thandleScopeChange(e)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t\t\tinput={}\n\t\t\t\t\t\t\t\t\t\trenderValue={(selected) => selected.join(\", \")}\n\t\t\t\t\t\t\t\t\t\tMenuProps={MenuProps}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{allscopes.map((data, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t -1} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetOfflineAccess(!offlineAccess)\n\t\t\t\t\t\t\t\t\t\t}}/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n )}\n
\n )}\n {\n handleOauth2Request(\n clientId,\n clientSecret,\n oauthUrl,\n selectedScopes\n );\n }}\n color=\"primary\"\n >\n {buttonClicked ? (\n \n ) : (\n \"Manually Authenticate\"\n )}\n \n\n\n\n {defaultConfigSet ? (\n \n ... or\n {\n setManuallyConfigure(!manuallyConfigure);\n\n if (manuallyConfigure) {\n setClientId(authenticationType.client_id);\n setClientSecret(authenticationType.client_secret);\n } else {\n setClientId(\"\");\n setClientSecret(\"\");\n }\n }}\n color=\"primary\"\n >\n {manuallyConfigure\n ? \"Use auto-config\"\n : \"Manually configure Oauth2\"}\n \n \n ) : null}\n \n
\n );\n};\n\nexport default AuthenticationOauth2;\n","import React, { useState, useEffect } from \"react\";\nimport theme from '../theme';\nimport { v4 as uuidv4 } from \"uuid\";\n\n\nimport {\n Button,\n\tDivider,\n\tSelect,\n\tMenuItem,\n\tTextField,\n\tDialogActions,\n\tDialogTitle,\n\tDialogContent,\n\tTypography,\n} from \"@material-ui/core\";\n\nimport {\n LockOpen as LockOpenIcon,\n} from \"@material-ui/icons\";\n\nconst AuthenticationData = (props) => {\n const {\n\t\tglobalUrl,\n saveWorkflow,\n selectedApp,\n workflow,\n selectedAction,\n authenticationType,\n getAppAuthentication,\n appAuthentication,\n setSelectedAction,\n setAuthenticationModalOpen,\n\t\tisCloud,\n } = props;\n\n\tconst setNewAppAuth = (appAuthData) => {\n console.log(\"DAta: \", appAuthData);\n fetch(globalUrl + \"/api/v1/apps/authentication\", {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(appAuthData),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for setting app auth :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n alert.error(\"Failed to set app auth: \" + responseJson.reason);\n } else {\n\t\t\t\t\tif (getAppAuthentication !== undefined) {\n \tgetAppAuthentication()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (setAuthenticationModalOpen !== undefined) {\n\t\t\t\t\t\tsetAuthenticationModalOpen(false)\n\t\t\t\t\t}\n\n // Needs a refresh with the new authentication..\n //alert.success(\"Successfully saved new app auth\")\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"New auth error: \", error.toString());\n });\n }\n\n\tconst [authenticationOption, setAuthenticationOptions] = React.useState({\n\t\tapp: JSON.parse(JSON.stringify(selectedApp)),\n\t\tfields: {},\n\t\tlabel: \"\",\n\t\tusage: [\n\t\t\t{\n\t\t\t\tworkflow_id: workflow.id,\n\t\t\t},\n\t\t],\n\t\tid: uuidv4(),\n\t\tactive: true,\n\t});\n\n\tif (\n\t\tselectedApp.authentication === undefined ||\n\t\tselectedApp.authentication.parameters === null ||\n\t\tselectedApp.authentication.parameters === undefined ||\n\t\tselectedApp.authentication.parameters.length === 0\n\t) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{selectedApp.name} does not require authentication\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tauthenticationOption.app.actions = [];\n\n\tfor (var key in selectedApp.authentication.parameters) {\n\t\tif (\n\t\t\tauthenticationOption.fields[\n\t\t\t\tselectedApp.authentication.parameters[key].name\n\t\t\t] === undefined\n\t\t) {\n\t\t\tauthenticationOption.fields[\n\t\t\t\tselectedApp.authentication.parameters[key].name\n\t\t\t] = \"\";\n\t\t}\n\t}\n\n\tconst handleSubmitCheck = () => {\n\t\tconsole.log(\"NEW AUTH: \", authenticationOption);\n\t\tif (authenticationOption.label.length === 0) {\n\t\t\tauthenticationOption.label = `Auth for ${selectedApp.name}`;\n\t\t}\n\n\t\t// Automatically mapping fields that already exist (predefined).\n\t\t// Warning if fields are NOT filled\n\t\tfor (var key in selectedApp.authentication.parameters) {\n\t\t\tif (\n\t\t\t\tauthenticationOption.fields[\n\t\t\t\t\tselectedApp.authentication.parameters[key].name\n\t\t\t\t].length === 0\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tselectedApp.authentication.parameters[key].value !== undefined &&\n\t\t\t\t\tselectedApp.authentication.parameters[key].value !== null &&\n\t\t\t\t\tselectedApp.authentication.parameters[key].value.length > 0\n\t\t\t\t) {\n\t\t\t\t\tauthenticationOption.fields[\n\t\t\t\t\t\tselectedApp.authentication.parameters[key].name\n\t\t\t\t\t] = selectedApp.authentication.parameters[key].value;\n\t\t\t\t} else {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectedApp.authentication.parameters[key].schema.type === \"bool\"\n\t\t\t\t\t) {\n\t\t\t\t\t\tauthenticationOption.fields[\n\t\t\t\t\t\t\tselectedApp.authentication.parameters[key].name\n\t\t\t\t\t\t] = \"false\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.info(\n\t\t\t\t\t\t\t\"Field \" +\n\t\t\t\t\t\t\t\tselectedApp.authentication.parameters[key].name +\n\t\t\t\t\t\t\t\t\" can't be empty\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconsole.log(\"Action: \", selectedAction);\n\t\tselectedAction.authentication_id = authenticationOption.id;\n\t\tselectedAction.selectedAuthentication = authenticationOption;\n\t\tif (\n\t\t\tselectedAction.authentication === undefined ||\n\t\t\tselectedAction.authentication === null\n\t\t) {\n\t\t\tselectedAction.authentication = [authenticationOption];\n\t\t} else {\n\t\t\tselectedAction.authentication.push(authenticationOption);\n\t\t}\n\n\t\tsetSelectedAction(selectedAction);\n\n\t\tvar newAuthOption = JSON.parse(JSON.stringify(authenticationOption));\n\t\tvar newFields = [];\n\t\tfor (const key in newAuthOption.fields) {\n\t\t\tconst value = newAuthOption.fields[key];\n\t\t\tnewFields.push({\n\t\t\t\tkey: key,\n\t\t\t\tvalue: value,\n\t\t\t});\n\t\t}\n\n\t\tconsole.log(\"FIELDS: \", newFields);\n\t\tnewAuthOption.fields = newFields;\n\t\tsetNewAppAuth(newAuthOption);\n\n\t\t//if (configureWorkflowModalOpen) {\n\t\t//\tsetSelectedAction({});\n\t\t//}\n\n\t\t//setUpdate(authenticationOption.id);\n\t};\n\n\tif (\n\t\tauthenticationOption.label === null ||\n\t\tauthenticationOption.label === undefined\n\t) {\n\t\tauthenticationOption.label = selectedApp.name + \" authentication\";\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\tAuthentication for {selectedApp.name}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tWhat is app authentication?\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\tThese are required fields for authenticating with {selectedApp.name}\n\t\t\t\t
\n\t\t\t\tName - what is this used for?\n\t\t\t\t {\n\t\t\t\t\t\tauthenticationOption.label = event.target.value;\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{selectedApp.authentication.parameters.map((data, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{data.name}\n\n\t\t\t\t\t\t\t{data.schema !== undefined &&\n\t\t\t\t\t\t\tdata.schema !== null &&\n\t\t\t\t\t\t\tdata.schema.type === \"bool\" ? (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Value: \", e.target.value);\n\t\t\t\t\t\t\t\t\t\tauthenticationOption.fields[data.name] = e.target.value;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.surfaceColor,\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\theight: 50,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tauthenticationOption.fields[data.name] =\n\t\t\t\t\t\t\t\t\t\t\tevent.target.value;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetAuthenticationModalOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t>\n\t\t\t\t\tCancel\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetAuthenticationOptions(authenticationOption);\n\t\t\t\t\t\thandleSubmitCheck();\n\t\t\t\t\t}}\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t>\n\t\t\t\t\tSubmit\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default AuthenticationData \n","import React, { useState, useEffect } from 'react';\n\nimport theme from '../theme';\nimport AppSearch from './Appsearch.jsx';\n\nimport {\n Paper,\n\tTypography,\n\tDivider,\n\tIconButton, \n\tBadge,\n CircularProgress,\n\tTooltip,\n\tButton,\n} from \"@material-ui/core\";\n\nimport {\n\tClose as CloseIcon,\n Delete as DeleteIcon,\n} from \"@material-ui/icons\";\n\nconst AppSearchPopout = (props) => {\n const { \n\t\tcy,\n\t\tpaperTitle,\n\t\tsetPaperTitle,\n\t\tnewSelectedApp,\n\t\tsetNewSelectedApp,\n\t\tselectionOpen,\n\t\tsetSelectionOpen,\n\t\tdiscoveryData,\n\t\tsetDiscoveryData,\n\t\tuserdata,\n\t} = props;\n\n\tconst [defaultSearch, setDefaultSearch] = React.useState(paperTitle !== undefined ? paperTitle : \"\")\n\n\tif (selectionOpen !== true) {\n\t\treturn null\n\t}\n\t\n\treturn (\n\t\t\n\t\t\t\t{paperTitle !== undefined && paperTitle.length > 0 ? \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{paperTitle}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t: null}\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\t//cy.elements().unselectify();\n\t\t\t\t\t\t\tif (cy !== undefined) {\n\t\t\t\t\t\t\t\tcy.elements().unselect()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetSelectionOpen(false)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{/* {/*Causes errors in Cytoscape. Removing for now.}\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetDiscoveryData({\n\t\t\t\t\t\t\t\t\"id\": discoveryData.id,\n\t\t\t\t\t\t\t\t\"label\": discoveryData.label,\n\t\t\t\t\t\t\t\t\"name\": \"\"\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tsetNewSelectedApp({\n\t\t\t\t\t\t\t\t\"image_url\": \"\",\n\t\t\t\t\t\t\t\t\"name\": \"\",\n\t\t\t\t\t\t\t\t\"id\": \"\",\n\t\t\t\t\t\t\t\t\"objectID\": \"remove\",\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tsetSelectionOpen(true)\n\t\t\t\t\t\t\tsetDefaultSearch(\"\")\n\n\t\t\t\t\t\t\tconst foundelement = cy.getElementById(discoveryData.id)\n\t\t\t\t\t\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\t\t\t\t\t\tconsole.log(\"element: \", foundelement)\n\t\t\t\t\t\t\t\tfoundelement.data(\"large_image\", discoveryData.large_image)\n\t\t\t\t\t\t\t\tfoundelement.data(\"text_margin_y\", \"14px\")\n\t\t\t\t\t\t\t\tfoundelement.data(\"margin_x\", \"32px\")\n\t\t\t\t\t\t\t\tfoundelement.data(\"margin_y\", \"19x\")\n\t\t\t\t\t\t\t\tfoundelement.data(\"width\", \"45px\")\n\t\t\t\t\t\t\t\tfoundelement.data(\"height\", \"45px\")\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tsetDiscoveryData({})\n\t\t\t\t\t\t\t\tsetNewSelectedApp({})\n\t\t\t\t\t\t\t}, 1000)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t*/}\n\t\t\t\t
\n\t\t\t\t\t{discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{discoveryData.id} 0 ? newSelectedApp.image_url : discoveryData.large_image} style={{height: 40, width: 40, margin: \"auto\",}}/>\n\t\t\t\t\t\t
\n\t\t\t\t\t: \n\t\t\t\t\t\t{discoveryData.id}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t{discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t\tdiscoveryData.name\n\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\tnewSelectedApp.name !== undefined && newSelectedApp.name !== null && newSelectedApp.name.length > 0 ?\n\t\t\t\t\t\t\t\tnewSelectedApp.name\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t`No ${discoveryData.label} app chosen`\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{discoveryData !== undefined && discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{discoveryData.description}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/*isCloud && defaultSearch !== undefined && defaultSearch.length > 0 ? \n\t\t\t\t\t\t\t\t{<\n\t\t\t\t\t\t\t\t\tnewSelectedApp={newSelectedApp}\n\t\t\t\t\t\t\t\t\tsetNewSelectedApp={setNewSelectedApp}\n\t\t\t\t\t\t\t\t\tdefaultSearch={defaultSearch}\n\t\t\t\t\t\t\t\t/>}\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\n\t\t\t\t\t: \n\t\t\t\t\t\tselectionOpen \n\t\t\t\t\t\t\t? \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tClick an app below to select it\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetSelectionOpen(true)\n\t\t\t\t\t\t\t\t\tsetDefaultSearch(discoveryData.label)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChoose {discoveryData.label} app\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{selectionOpen ? \n\t\t\t\t\t\t\n\t\t\t\t\t: null}\n\t\t\t\t
\n\t\t\t
\n\t\t)\n}\n\nexport default AppSearchPopout;\n","import React, { useState, useEffect } from \"react\";\nimport theme from '../theme';\nimport { useNavigate, Link } from \"react-router-dom\";\nimport { useAlert } from \"react-alert\";\nimport ConfigureWorkflow from \"../components/ConfigureWorkflow.jsx\";\nimport PaperComponent from \"../components/PaperComponent.jsx\"\nimport AuthenticationOauth2 from \"../components/Oauth2Auth.jsx\";\nimport AuthenticationNormal from \"../components/AuthenticationNormal.jsx\";\nimport AppsearchPopout from \"../components/AppsearchPopout.jsx\";\n\nimport {\n\tExpandLess as ExpandLessIcon,\n\tExpandMore as ExpandMoreIcon,\n\tAddCircleOutline as AddCircleOutlineIcon,\n Delete as DeleteIcon,\n Description as DescriptionIcon,\n\tClose as CloseIcon,\n} from '@mui/icons-material';\n\nimport {\n\t\tDialog,\n\t\tIconButton,\n\t\tTypography, \n\t\tButton,\n\t\tCircularProgress, \n\t\tTooltip,\n\t\tDivider,\n} from \"@material-ui/core\";\n\nconst defaultValue = {\"id\": \"\", \"name\": \"\", \n\t\t\"source\": {\"text\": \"No trigger selected\", \"error\": \"\"}, \n\t\t\"destination\": {\"text\": \"No subflow selected\", \"error\": \"\"}, \n\t\t\"middle\": []\n}\n\nexport const usecaseTypes = [{\n\t\"name\": \"enrichment\",\n\t\"value\": [{\n\t\t\"name\": \"EDR Ticket Enrichment\",\n\t\t\"usecase_references\": [\"EDR to ticket\"],\n\t\t\"active\": true,\n\t\t\"items\": [{\n\t\t\t\"name\": \"When an EDR alert is found\",\n\t\t\t\"app_type\": \"edr\",\n\t\t\t\"type\": \"trigger\",\n\t\t}, {\t\n\t\t\t\"name\": \"Create a ticket\",\n\t\t\t\"app_type\": \"cases\",\n\t\t\t\"type\": \"subflow\",\n\t\t}],\n\t},\n\t{\n\t\t\"name\": \"SIEM alert Enrichment\",\n\t\t\"usecase_references\": [\"SIEM to ticket\"],\n\t\t\"active\": true,\n\t\t\"items\": [{\n\t\t\t\"name\": \"When a SIEM alert is found\",\n\t\t\t\"app_type\": \"siem\",\n\t\t\t\"type\": \"trigger\",\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Create a ticket\",\n\t\t\t\"app_type\": \"cases\",\n\t\t\t\"type\": \"subflow\",\n\t\t}],\n\t},\n\t{\n\t\t\"name\": \"Email Enrichment\",\n\t\t\"usecase_references\": [\"Email management\"],\n\t\t\"active\": true,\n\t\t\"items\": [{\n\t\t\t\"name\": \"When I get an email\",\n\t\t\t\"app_type\": \"email\",\n\t\t\t\"type\": \"trigger\",\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Create a ticket\",\n\t\t\t\"app_type\": \"cases\",\n\t\t\t\"type\": \"subflow\",\n\t\t}],\n\t}]\n},\n{\n\t\"name\": \"phishing\",\n\t\"value\": [\n\t\t{\n\t\t\t\"name\": \"Email analysis\",\n\t\t\t\"usecase_references\": [\"Email management\"],\n\t\t\t\"active\": true,\n\t\t\t\"items\": [{\n\t\t\t\t\"name\": \"When I get an email\",\n\t\t\t\t\"app_type\": \"email\",\n\t\t\t\t\"type\": \"trigger\",\n\t\t\t},{\n\t\t\t\t\"name\": \"Create a ticket\",\n\t\t\t\t\"app_type\": \"cases\",\n\t\t\t\t\"type\": \"subflow\",\n\t\t\t}],\n\t\t}]\n\t},\n\t{\n\t\"name\": \"detection\",\n\t\"value\": [\n\t\t{\n\t\t\t\"name\": \"Sigma rule detection\",\n\t\t\t\"active\": false,\n\t\t\t\"items\": [{\n\t\t\t\t\"name\": \"When a sigma rule triggers\",\n\t\t\t\t\"app_type\": \"siem\",\n\t\t\t\t\"type\": \"trigger\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"Create a ticket\",\n\t\t\t\t\"app_type\": \"cases\",\n\t\t\t\t\"type\": \"subflow\",\n\t\t\t}],\n\t\t}]\n\t},\n\t{\n\t\"name\": \"response\",\n\t\"value\": [\n\t\t{\n\t\t\t\"name\": \"EDR host isolation\",\n\t\t\t\"active\": false,\n\t\t\t\"items\": [{\n\t\t\t\t\"name\": \"When malicious endpoint activity is detected\",\n\t\t\t\t\"app_type\": \"edr\",\n\t\t\t\t\"type\": \"trigger\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"Isolate the host\",\n\t\t\t\t\"app_type\": \"edr\",\n\t\t\t\t\"type\": \"subflow\",\n\t\t\t}],\n\t\t}]\n\t}\n]\n\nexport const triggerlist = [\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"No trigger selected\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"\",\n\t\t\"action_type\": \"\",\n\t\t\"error\": \"\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When I get an email\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"email\",\n\t\t\"action_type\": \"receive\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When a ticket is created\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"cases\",\n\t\t\"action_type\": \"case_opened\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When an EDR alert is found\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"edr\",\n\t\t\"action_type\": \"case_opened\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When a SIEM alert is found\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"siem\",\n\t\t\"action_type\": \"case_opened\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When a sigma rule triggers\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"siem\",\n\t\t\"action_type\": \"case_opened\",\n\t\t\"disabled\": true,\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"When malicious endpoint activity is detected\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"edr\",\n\t\t\"action_type\": \"case_opened\",\n\t\t\"disabled\": true,\n\t}\n]\n\nexport const midflows = [\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Enrich\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"intel\",\n\t\t\"action_type\": \"enrich\",\n\t},\n\t{\n\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Analyze\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"intel\",\n\t\t\"action_type\": \"analyze\",\n\t\t\"disabled\": true,\n\t}\n]\n\nexport const subflows = [\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"No subflow selected\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"\",\n\t\t\"action_type\": \"\",\n\t\t\"error\": \"\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Create a ticket\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"cases\",\n\t\t\"action_type\": \"case_create\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Update a ticket\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"cases\",\n\t\t\"action_type\": \"case_update\",\n\t\t\"disabled\": true,\n\t\t//\"source_type\": \"case_opened\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Answer the sender\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"email\",\n\t\t\"action_type\": \"send\",\n\t\t\"disabled\": true,\n\t\t//\"source_type\": \"case_opened\",\n\t},\n\t{\n\t\t\"app_id\": \"\",\n\t\t\"app_name\": \"\",\n\t\t\"app_version\": \"\",\n\t\t\"text\": \"Isolate the host\",\n\t\t\"image\": \"\",\n\t\t\"type\": \"edr\",\n\t\t\"action_type\": \"respond\",\n\t\t\"disabled\": true,\n\t\t//\"source_type\": \"case_opened\",\n\t},\n]\n\nconst UsecaseSearch = (props) => {\n\tconst { defaultSearch, appFramework, globalUrl, showTitle, canExpand, apps, setFoundWorkflowId, getFramework, userdata, usecaseSearch, setUsecaseSearch, autotry, setCloseWindow, } = props\n\n\t\t\n const [allusecases, setAllUsecases] = React.useState([\n\t\tJSON.parse(JSON.stringify(defaultValue))\n\t])\n\tconst [searchType, setSearchType] = React.useState(\"\")\n\tconst [usecaseIndex, setUsecaseIndex] = React.useState(0)\n const [_, setUpdate] = useState(\"\"); // Used for rendring, don't remove\n\tconst [isUploading, setIsUploading] = React.useState(false)\n\tconst [configureWorkflowModalOpen, setConfigureWorkflowModalOpen] = React.useState(false);\n\tconst [configureWorkflowAuth, setConfigureWorkflowAuth] = React.useState([]);\n const [workflow, setWorkflow] = React.useState({});\n const [appAuthentication, setAppAuthentication] = React.useState([]);\n const [authenticationType, setAuthenticationType] = React.useState(\"\");\n const [authenticationModalOpen, setAuthenticationModalOpen] = React.useState(false);\n const [selectedApp, setSelectedApp] = React.useState({});\n const [selectedAction, setSelectedAction] = React.useState({});\n const [firstRequest, setFirstRequest] = React.useState(true);\n\n const isCloud = window.location.host === \"localhost:3002\" || window.location.host === \"shuffler.io\";\n const alert = useAlert()\n\n\tuseEffect(() => {\n\t\t// if (firstRequest !== true && workflow.id !== undefined && autotry === true && setUsecaseSearch !== undefined && authenticationModalOpen === false && configureWorkflowModalOpen === false) {\n\t\t//\n\t\tif (autotry === true && configureWorkflowModalOpen === false && workflow.id !== undefined && setUsecaseSearch !== undefined) {\n\t\t\tconsole.log(\"Close it?\")\n\t\t\talert.info(\"Workflow successfully added! Add more apps, and we will suggest more workflows\")\n\n\t\t\tif (setCloseWindow !== undefined) {\n\t\t\t\tsetCloseWindow(true)\n\t\t\t}\n\t\t\tsetUsecaseSearch(\"\")\n\t\t}\n\t}, [configureWorkflowModalOpen])\n\n\tconst rerunWorkflowCheck = (defaultSearch, usecaseSearch) => {\n\t\tconst foundusecase = usecaseTypes.find(data => data.name.toLowerCase() === defaultSearch.toLowerCase())\n\n\t\t//console.log(\"FOUND: \", usecaseTypes, defaultSearch.toLowerCase(), foundusecase)\n\t\n\t\tif (foundusecase !== undefined && foundusecase !== null) {\n\t\t\t// Just choose the first one.\n\t\t\tif (foundusecase.value !== undefined && foundusecase.value !== null && foundusecase.value.length > 0) {\n\t\t\t\tvar selectedusecase = foundusecase.value[0]\n\t\t\t\tif (usecaseSearch !== undefined && usecaseSearch !== null) {\n\t\t\t\t\tconst foundSubcase = foundusecase.value.find(usecase => usecase.name.toLowerCase() === usecaseSearch.toLowerCase())\n\t\t\t\t\tif (foundSubcase !== undefined && foundSubcase !== null) {\n\t\t\t\t\t\tselectedusecase = foundSubcase\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar newitem = JSON.parse(JSON.stringify(defaultValue))\n\n\t\t\t\tfor (var key in selectedusecase.items) {\n\t\t\t\t\t// Check in different types\n\t\t\t\t\tconst itemname = selectedusecase.items[key].name.toLowerCase()\n\t\t\t\t\tconst trigger = triggerlist.find(data => data.text.toLowerCase() === itemname)\n\t\t\t\t\tif (trigger !== undefined && trigger !== null) {\n\t\t\t\t\t\tnewitem.name = selectedusecase.name\n\t\t\t\t\t\tnewitem.source = trigger\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tconst midflow = midflows.find(data => data.text.toLowerCase() === itemname)\n\t\t\t\t\tif (midflow !== undefined && midflow !== null) {\n\t\t\t\t\t\tnewitem.name = selectedusecase.name\n\t\t\t\t\t\tnewitem.middle.push(midflow)\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tconst subflow = subflows.find(data => data.text.toLowerCase() === itemname)\n\t\t\t\t\tif (subflow !== undefined && subflow !== null) {\n\t\t\t\t\t\tnewitem.name = selectedusecase.name \n\t\t\t\t\t\tnewitem.destination = subflow \n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsetAllUsecases([newitem])\n\t\t\t\tsetUpdate(Math.random())\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(\"NOT FOUND FOR: \", defaultSearch)\n\t\t\tsetAllUsecases([JSON.parse(JSON.stringify(defaultValue))])\n\t\t\tsetUpdate(Math.random())\n\t\t}\n\t}\n\n \tif (defaultSearch !== undefined && defaultSearch !== null && defaultSearch !== searchType) {\n\t\tconsole.log(\"Setting searchtype to\", defaultSearch)\n\n\n\t\tsetSearchType(defaultSearch)\n\t\tsetUsecaseIndex(0)\n\t\trerunWorkflowCheck(defaultSearch, usecaseSearch)\n\t} \n\n\t//if (defaultSearch !== undefined && defaultSearch.length > 0 && allusecases[usecaseIndex].name === \"\") {\n\t//\trerunWorkflowCheck()\n\t//}\n\n\t/*\n\t\tdefaultSearch === \"Enrichment\" ?\n\t\t\t[{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"source\": {\n\t\t\t\t\t\"app_id\": \"\",\n\t\t\t\t\t\"app_name\": \"\",\n\t\t\t\t\t\"app_version\": \"\",\n\t\t\t\t\t\"text\": \"When I get an email\",\n\t\t\t\t\t\"image\": \"\",\n\t\t\t\t\t\"type\": \"email\",\n\t\t\t\t\t\"action_type\": \"receive\",\n\t\t\t\t},\n\t\t\t\t\"middle\": [{\n\t\t\t\t\t\"app_id\": \"\",\n\t\t\t\t\t\"app_name\": \"\",\n\t\t\t\t\t\"app_version\": \"\",\n\t\t\t\t\t\"text\": \"Enrich the data\",\n\t\t\t\t\t\"image\": \"\",\n\t\t\t\t\t\"type\": \"intel\",\n\t\t\t\t\t\"action_type\": \"case_create\",\n\t\t\t\t}],\n\t\t\t\t\"destination\": {\n\t\t\t\t\t\"app_id\": \"\",\n\t\t\t\t\t\"app_name\": \"\",\n\t\t\t\t\t\"app_version\": \"\",\n\t\t\t\t\t\"text\": \"Create a ticket\",\n\t\t\t\t\t\"image\": \"\",\n\t\t\t\t\t\"type\": \"cases\",\n\t\t\t\t\t\"action_type\": \"case_create\",\n\t\t\t\t},\n\t\t\t}]\n\t\t: []\n\t)\n\t*/\n\n\t/*\n\tif (defaultSearch === undefined || defaultSearch === null || defaultSearch.length === 0) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tChoose a Usecase \n\t\t\t\t\n\t\t\t
\n\t\t)\n\t}\n\t*/\n\n\t// Image = the source EMAIL system used\n\tvar usecases = JSON.parse(JSON.stringify(allusecases))\n\n\tconst imagestyle = {\n\t\theight: 50,\n\t\twidth: 50,\n\t\tborderRadius: 25, \n\t\tborder: \"1px solid rgba(255,255,255,0.3)\",\n\t\tcursor: \"pointer\",\n\t}\n\n\tconst getType = (inputtype) => {\n\t\tif (inputtype === undefined) {\n\t\t\treturn inputtype\n\n\t\t}\n\n\t\tif (inputtype.toLowerCase() === \"email\" || inputtype.toLowerCase() === \"comms\") {\n\t\t\tinputtype = \"communication\"\n\t\t}\n\n\t\treturn inputtype\n\t}\n\n\t// FIXME: Add a way for it to automatically discover\n\t// relevant workflows from the app at this point\n\t// or maybe it should be added directly to the app frameworks'\n\t// data\n\n const getAppAuthentication = (updateAction) => {\n fetch(globalUrl + \"/api/v1/apps/authentication\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for app auth :O!\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.success) {\n\t\t\t\tsetAppAuthentication(responseJson.data);\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.log(\"App auth loading error: \"+error.toString());\n\t\t})\n\t}\n\n //saveWorkflow={undefined} {/*saveWorkflow*/}\n //setNewAppAuth={undefined} {/*setNewAppAuth*/}\n\tconst authenticationModal = authenticationModalOpen ? (\n {\n //if (configureWorkflowModalOpen) {\n // setSelectedAction({});\n //}\n }}\n PaperProps={{\n style: {\n\t\t\t\t\tpointerEvents: \"auto\",\n backgroundColor: theme.palette.surfaceColor,\n color: \"white\",\n minWidth: 1100,\n minHeight: 700,\n maxHeight: 700,\n padding: 15,\n overflow: \"hidden\",\n zIndex: 10012,\n\t\t\t\t\tborder: theme.palette.defaultBorder,\n },\n }}\n >\n \n {selectedApp.reference_info === undefined ||\n selectedApp.reference_info === null ||\n selectedApp.reference_info.github_url === undefined ||\n selectedApp.reference_info.github_url === null ||\n selectedApp.reference_info.github_url.length === 0 ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n {\n setAuthenticationModalOpen(false);\n if (configureWorkflowModalOpen) {\n setSelectedAction({});\n }\n }}\n >\n \n \n
\n \n {authenticationType.type === \"oauth2\" ? (\n \n ) : (\n \n )}\n
\n \n {selectedApp.documentation === undefined ||\n selectedApp.documentation === null ||\n selectedApp.documentation.length === 0 ? (\n \n \n {selectedApp.description}\n \n \n \n There is currently no extended documentation available for this\n app.\n \n \n Want help help making or using this app?{\" \"}\n \n Join the community on Discord!\n \n \n\n \n Want to help change this app directly?\n \n {selectedApp.reference_info === undefined ||\n selectedApp.reference_info === null ||\n selectedApp.reference_info.github_url === undefined ||\n selectedApp.reference_info.github_url === null ||\n selectedApp.reference_info.github_url.length === 0 ? (\n \n \n \n Check it out on Github!\n \n \n \n ) : (\n \n \n \n Check it out on Github!\n \n \n \n )}\n \n ) : \n\t\t\t\t\t\tnull\n }\n
\n
\n \n ) : null\n\n\tconst deleteWorkflow = (workflow_id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + workflow_id, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for workflows :O!\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tconsole.log(\"Deleted workflow\")\n\t\t})\n\t\t.catch((error) => {\n\t\t\t//alert.error(error.toString());\n\t\t\tconsole.log(\"Delete workflow error: \", error.toString());\n\t\t})\n\t}\n\n\tconst getWorkflow = (workflow_id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + workflow_id, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for workflows :O!\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tsetWorkflow(responseJson)\n\n\t\t\tif (window !== undefined && !window.location.href.includes(\"/workflows\")) {\n\t\t\t\tsetConfigureWorkflowModalOpen(true)\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\t//alert.error(error.toString());\n\t\t\tconsole.log(\"Get workflows error: \", error.toString());\n\t\t})\n\t}\n\n\t// Stolen from /views/Workflows\n\t// Due to states, not easy to just import as component~\n\tconst setNewWorkflow = (\n name,\n description,\n tags,\n defaultReturnValue,\n editingWorkflow,\n redirect,\n\t\tcurrentUsecases,\n\t\tinputblogpost,\n\t\tinputstatus,\n ) => {\n var method = \"POST\";\n var extraData = \"\";\n var workflowdata = {};\n\n if (editingWorkflow.id !== undefined) {\n console.log(\"Building original workflow\");\n method = \"PUT\";\n extraData = \"/\" + editingWorkflow.id + \"?skip_save=true\";\n workflowdata = editingWorkflow;\n\n console.log(\"REMOVING OWNER\");\n workflowdata[\"owner\"] = \"\";\n // FIXME: Loop triggers and turn them off?\n }\n\n workflowdata[\"name\"] = name;\n workflowdata[\"description\"] = description;\n if (tags !== undefined) {\n workflowdata[\"tags\"] = tags;\n }\n\t\tworkflowdata[\"blogpost\"] = inputblogpost \n\t\tworkflowdata[\"status\"] = inputstatus \n\n if (defaultReturnValue !== undefined) {\n workflowdata[\"default_return_value\"] = defaultReturnValue;\n }\n\n\t\tif (currentUsecases !== undefined && currentUsecases !== null) {\n\t\t\tworkflowdata[\"usecase_ids\"] = currentUsecases \n\t\t\t//workflows[0].category = [\"detect\"]\n\t\t\t//workflows[0].usecase_ids = [\"Correlate tickets\"]\n\t\t}\n\n\t\tconst new_url = `${globalUrl}/api/v1/workflows${extraData}`\n return fetch(new_url, {\n method: method,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(workflowdata),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\talert.error(\"Error setting workflow: \", responseJson.reason)\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Error setting workflow.\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn\n\t\t\t\t}\n\n return responseJson;\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n }\n\n\tconst mergeWorkflowUsecases = (usecasedata) => {\n\t\t//const url = `${globalUrl}/api/v1/workflows/merge`;\n\t\tconst url = `https://shuffler.io/api/v1/workflows/merge`;\n\t\tfetch(url, {\n\t\t\tmode: \"cors\",\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify(usecasedata),\n\t\t\tcredentials: \"include\",\n\t\t\tcrossDomain: true,\n\t\t\twithCredentials: true,\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\n\t\t\t},\n\t\t})\n\t\t.then((response) =>\n\t\t\tresponse.json().then((responseJson) => {\n\t\t\t\tsetIsUploading(false)\n\t\t\t\tvar changed = false\n\n\t\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\t\tif (responseJson.reason !== null && responseJson.reason !== undefined) {\n\t\t\t\t\t\t\t//alert.error(responseJson.reason)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (responseJson.source === \"\") {\n\t\t\t\t\t\t\tconst appname = \n\t\t\t\t\t\t\tusecasedata.source.error = usecasedata.source.app_name === undefined ? \"Select a Trigger workflow first\" : `${usecasedata.source.app_name} has no public trigger workflow yet. Click this to try another app`\n\t\t\t\t\t\t\tchanged = true \n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tusecasedata.source.error = \"\"\n\t\t\t\t\t\t\t\tchanged = true \n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (responseJson.destination === \"\") {\n\t\t\t\t\t\t\tusecasedata.destination.error = usecasedata.destination.app_name === undefined ? \"Select a Subflow first\" : `${usecasedata.destination.app_name} has no public subflow yet. Click this to try another app`\n\t\t\t\t\t\t\tchanged = true \n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tusecasedata.destination.error = \"\"\n\t\t\t\t\t\t\tchanged = true \n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (responseJson.middle !== undefined) {\n\t\t\t\t\t\t\tfor (var key in responseJson.middle) {\n\t\t\t\t\t\t\t\tfor (var subkey in usecasedata.middle) {\n\t\t\t\t\t\t\t\t\tif (responseJson.middle[key] === usecasedata.middle[key].text) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Found: \")\n\t\t\t\t\t\t\t\t\t\tif (usecasedata.middle[subkey].app_name === undefined || usecasedata.middle[subkey].app_name === \"\") {\n\t\t\t\t\t\t\t\t\t\t\tusecasedata.middle[subkey].error = `${usecasedata.middle[subkey].type} app must be selected first. Click this to change`\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tusecasedata.middle[subkey].error = `${usecasedata.middle[subkey].app_name} has no public subflow yet. Click this to change`\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tchanged = true\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Gets a full workflow that has to be handled from cloud directly\n\t\t\t\t\t\t//\n\t\t\t\t\t\tif (!isCloud) {\n\t\t\t\t\t\t\tconsole.log(\"Not cloud!\")\n\t\t\t\t\t\t\tif (setFoundWorkflowId !== undefined) {\n\t\t\t\t\t\t\t\tsetFoundWorkflowId(responseJson.id)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetWorkflow(responseJson)\n\n \t\tsetNewWorkflow(\n \t\t responseJson.name,\n \t\t responseJson.description,\n \t\t responseJson.tags,\n \t\t responseJson.default_return_value,\n \t\t {},\n \t\t false,\n\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\tresponseJson.status,\n \t\t)\n\t\t\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t\t\t\t// SET THE FULL THING\n\t\t\t\t\t\t\t\t\tresponseJson.id = response.id;\n\t\t\t\t\t\t\t\t\tresponseJson.first_save = false;\n\t\t\t\t\t\t\t\t\tresponseJson.previously_saved = false;\n\t\t\t\t\t\t\t\t\tresponseJson.is_valid = false;\n\n\t\t\t\t\t\t\t\t\t// Actually create it\n\t\t\t\t\t\t\t\t\tsetNewWorkflow(\n\t\t\t\t\t\t\t\t\t\tresponseJson.name,\n\t\t\t\t\t\t\t\t\t\tresponseJson.description,\n\t\t\t\t\t\t\t\t\t\tresponseJson.tags,\n\t\t\t\t\t\t\t\t\t\tresponseJson.default_return_value,\n\t\t\t\t\t\t\t\t\t\tresponseJson,\n\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\t\t\tresponseJson.status,\n\t\t\t\t\t\t\t\t\t).then((response) => {\n\t\t\t\t\t\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\talert.success(\"Successfully generated \" + responseJson.name);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\t\t\talert.error(\"Generate error: \" + error.toString());\n\t\t\t\t\t\t\t})\n\n\n\t\t\t\t\t\t} else if (isCloud) {\n\t\t\t\t\t\t\tif (responseJson.workflow_id !== null && responseJson.workflow_id !== undefined) {\n\t\t\t\t\t\t\t\tif (responseJson.added_auth !== undefined && responseJson.added_auth !== null && responseJson.added_auth.length > 0) {\n\t\t\t\t\t\t\t\t\tconsole.log(\"SHOULD HANDLE AUTH: \", responseJson.added_auth)\n\t\t\t\t\t\t\t\t\tsetConfigureWorkflowAuth(responseJson.added_auth)\n\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (setFoundWorkflowId !== undefined) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Set found workflow id: \", responseJson.workflow_id)\n\t\t\t\t\t\t\t\t\t\tsetFoundWorkflowId(responseJson.workflow_id)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tgetWorkflow(responseJson.workflow_id) \n\t\t\t\t\t\t\t\t\tgetAppAuthentication()\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (setFoundWorkflowId !== undefined) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Set found workflow id: \", responseJson.workflow_id)\n\t\t\t\t\t\t\t\t\t\tsetFoundWorkflowId(responseJson.workflow_id)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetWorkflow({\"id\": responseJson.workflow_id})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (responseJson.auth_required === true) {\n\t\t\t\t\t\t\t\tconsole.log(\"SET AUTH AS NEXT STEP!\")\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (changed === true) {\n\t\t\t\t\t\tsetAllUsecases([usecasedata])\n\t\t\t\t\t}\n\t\t\t})\n\t\t)\n\t\t.catch((error) => {\n\t\t\tsetIsUploading(false)\n\t\t\tconsole.log(\"Merge err: \", error.toString())\n\t\t\t//alert.error(\"Err: \" + error.toString());\n\t\t});\n\t}\n\n\t//console.log(\"Filled in: \", appFramework, usecases)\n\tif (appFramework !== undefined && usecases !== undefined) {\n\n\t\tfor (var key in usecases) {\n\t\t\t// source\n\t\t\tconst usecase = usecases[key]\n\t\t\tif (usecase.source.type === undefined || usecase.source.image === \"\" || usecase.source.image === undefined) {\n\t\t\t\tusecases[key].source.image = theme.palette.defaultImage\n\t\t\t} \n\n\t\t\tif (usecase.destination.type === undefined || usecase.destination.image === \"\" || usecase.destination.image === undefined) {\n\t\t\t\tusecases[key].destination.image = theme.palette.defaultImage\n\t\t\t}\n\n\t\t\tconst srctype = getType(usecase.source.type)\n\t\t\tconst dsttype = getType(usecase.destination.type)\n\n\t\t\tconst srcinfo = appFramework[srctype]\n\t\t\tif (srcinfo !== undefined && srcinfo.large_image !== undefined && srcinfo.large_image !== \"\" && (usecases[key].source.app_name === undefined || usecases[key].source.app_name === \"\")) {\n\t\t\t\tusecases[key].source.image = srcinfo.large_image\n\t\t\t\tusecases[key].source.app_id = srcinfo.id\n\t\t\t\tusecases[key].source.app_name = srcinfo.name\n\t\t\t}\n\n\t\t\tconst destinfo = appFramework[dsttype]\n\t\t\tif (destinfo !== undefined && destinfo.large_image !== undefined && destinfo.large_image !== \"\" && (usecases[key].destination.app_name === undefined || usecases[key].destination.app_name === \"\")) {\n\t\t\t\tusecases[key].destination.image = destinfo.large_image\n\t\t\t\tusecases[key].destination.app_id = destinfo.id\n\t\t\t\tusecases[key].destination.app_name = destinfo.name\n\t\t\t}\n\n\t\t\tif (usecase.middle !== undefined && usecase.middle !== null && usecase.middle.length > 0) {\n\t\t\t\tfor (var subkey in usecase.middle) {\n\t\t\t\t\tconst midcase = usecase.middle[subkey]\n\n\t\t\t\t\tconst midtype = getType(midcase.type)\n\t\t\t\t\tconst midinfo = appFramework[midtype]\n\t\t\t\t\tif (midinfo !== undefined && midinfo.large_image !== undefined && midinfo.large_image !== \"\" && (usecases[key].middle[subkey].app_name === undefined || usecases[key].middle[subkey].app_name === \"\")) {\n\t\t\t\t\t\tusecases[key].middle[subkey].image = \t\tmidinfo.large_image\n\t\t\t\t\t\tusecases[key].middle[subkey].app_id = \tmidinfo.id\n\t\t\t\t\t\tusecases[key].middle[subkey].app_name = midinfo.name\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (usecases[key].middle[subkey].image === undefined || usecases[key].middle[subkey].image === \"\") {\n\t\t\t\t\t\t\tusecases[key].middle[subkey].image = \t\ttheme.palette.defaultImage\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//if (firstRequest) {\n\t\t//\tsetAllUsecases(usecases)\n\t\t//\tsetFirstRequest(false)\n\t\t//}\n\t}\n\n const configureWorkflowModal =\n configureWorkflowModalOpen ? (\n \n {\n setConfigureWorkflowModalOpen(false);\n }}\n >\n \n \n \n\t\t\t\t{/*\n referenceUrl={referenceUrl}\n submitSchedule={submitSchedule}\n appAuthentication={appAuthentication}\n selectedAction={selectedAction}\n saveWorkflow={saveWorkflow}\n newWebhook={newWebhook}\n\t\t\t\t*/}\n \n ) : null\n\n\n\t\tconst createWorkflowFromTemplate = (data) => {\n\t\t\tif (workflow.id !== undefined && workflow.id !== null && workflow.id.length !== 0) {\n\t\t\t\tconsole.log(\"Should delete old one: \", workflow.id)\n\t\t\t\tdeleteWorkflow(workflow.id) \n\t\t\t}\n\n\t\t\t// Should be searched?\n\t\t\tsetIsUploading(true)\n\n\t\t\tvar changed = false\n\t\t\tif (data.source.app_name === \"\") {\n\t\t\t\tdata.source.error = `'${data.source.type}' app must be selected first`\n\t\t\t\tchanged = true \n\t\t\t}\n\n\t\t\tif (data.destination.app_name === \"\") {\n\t\t\t\tdata.destination.error = `'${data.destination.type}' app must be selected first`\n\t\t\t\tchanged = true \n\t\t\t}\n\n\t\t\tif (data.middle !== undefined && data.middle !== null && data.middle.length > 0) {\n\t\t\t\tfor (var key in data.middle) {\n\t\t\t\t\tconst middleItem = data.middle[key]\n\t\t\t\t\tif (middleItem.app_name === \"\") {\n\t\t\t\t\t\tdata.middle[key].error = `'${middleItem.type}' app must be selected first`\n\t\t\t\t\t\t//changed = true \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (changed) {\n\t\t\t\talert.error(\"Errors were found. Click them to sort sort them out or go to the next usecase.\")\n\n\t\t\t\tsetUpdate(Math.random())\n\t\t\t\tsetIsUploading(false)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Auto finding these during deploy\n\t\t\t//data.source.workflow_id = \"e506060f-0c58-4f95-a0b8-f671103d78e5\"\n\t\t\t//data.destination.workflow_id = \"ffe8122d-0787-425a-aa20-c2587ee75a83\"\n\t\t\t//if (data.middle !== undefined && data.middle !== null && data.middle.length > 0) {\n\t\t\t//\tdata.middle[0].workflow_id = \"1077d9ee-b571-4410-a7e6-261f32f346c5\"\n\t\t\t//}\n\n\t\t\tmergeWorkflowUsecases(data) \n\t\t}\n\n\tif (autotry === true && firstRequest === true) {\n\t\t\tconsole.log(\"Should autotry the usecase! Make sure data is in order first. Usecase: \", usecases)\n\n\t\tif (usecases !== undefined && usecases !== null && usecases.length > 0 && usecases[0].name !== \"\") {\n \t\tsetFirstRequest(false)\n\t\t\tcreateWorkflowFromTemplate(usecases[0]) \n\t\t}\n\t\t//{usecases.map((data, index) => {\n\t}\n\n\n\tconst ShowBox = (props) => {\n\t\tconst { data, type, index, miditem, subindex } = props\n\n\t\tconst [expanded, setexpanded] = React.useState(false)\n\t\tconst [newSelectedApp, setNewSelectedApp] = React.useState({})\n\t\tconst [paperTitle, setPaperTitle] = React.useState(data.type)\n\t\tconst [selectionOpen, setSelectionOpen] = React.useState(false)\n\t\tconst [discoveryData, setDiscoveryData] = React.useState({\n\t\t\t\"id\": \"\",\n\t\t\t\"label\": \"\",\n\t\t\t\"name\": \"\",\n\t\t\t\"large_image\": \"\",\n\t\t})\n\n\t\t//console.log(\"Data: \", data)\n\t\tconst activateApp = (appid) => {\n\t\t\tfetch(globalUrl+\"/api/v1/apps/\"+appid+\"/activate\", {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t\tcredentials: \"include\",\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\tconsole.log(\"Failed to activate\")\n\t\t\t\t}\n\n\t\t\t\treturn response.json()\n\t\t\t})\n\t\t\t.then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\talert.error(\"Failed to activate the app\")\n\t\t\t\t} else {\n\t\t\t\t\t//alert.success(\"App activated for your organization! Refresh the page to use the app.\")\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\t//alert.error(error.toString())\n\t\t\t\tconsole.log(\"Activate app error: \", error.toString())\n\t\t\t});\n\t\t}\n\n\t\tconst setFrameworkItem = (data) => {\n\t\t\t// Making sure the app is being auto-built and added\n\t\t\tif (!isCloud) {\n\t\t\t\tactivateApp(data.id)\n\t\t\t}\n\n\t\t\tfetch(globalUrl + \"/api/v1/apps/frameworkConfiguration\", {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t\tAccept: \"application/json\",\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify(data),\n\t\t\t\tcredentials: \"include\",\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\tconsole.log(\"Status not 200 for framework!\");\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response.json();\n\t\t\t\t})\n\t\t\t\t.then((responseJson) => {\n\t\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\t\talert.error(\"Failed updating default app: \" + responseJson.reason)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\talert.error(\"Failed to update framework for your org.\")\n\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (getFramework !== undefined) {\n\t\t\t\t\t\t\tgetFramework()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t//setFrameworkLoaded(true)\n\t\t\t\t\t//setFrameworkData(responseJson)\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\talert.error(error.toString());\n\t\t\t\t\t//setFrameworkLoaded(true)\n\t\t\t\t})\n\t\t}\n\n\t\tuseEffect(() => {\n\t\t\tif (newSelectedApp.objectID === undefined) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tvar discoveredtype = \"\"\n\t\t\tif (type === \"middle\") {\n\t\t\t\tconsole.log(\"Updating middle index\", subindex)\n\n\t\t\t\tallusecases[index][type][subindex][\"app_id\"] = newSelectedApp.objectID\n\t\t\t\tallusecases[index][type][subindex][\"app_name\"] = newSelectedApp.name\n\t\t\t\tallusecases[index][type][subindex][\"app_version\"] = newSelectedApp.app_version\n\t\t\t\tallusecases[index][type][subindex][\"image\"] = newSelectedApp.image_url\n\t\t\t\tallusecases[index][type][subindex][\"error\"] = \"\"\n\n\t\t\t\tdiscoveredtype = allusecases[index][type][subindex][\"type\"]\n\t\t\t} else {\n\t\t\t\tallusecases[index][type][\"app_id\"] = newSelectedApp.objectID\n\t\t\t\tallusecases[index][type][\"app_name\"] = newSelectedApp.name\n\t\t\t\tallusecases[index][type][\"app_version\"] = newSelectedApp.app_version\n\t\t\t\tallusecases[index][type][\"image\"] = newSelectedApp.image_url\n\t\t\t\tallusecases[index][type][\"error\"] = \"\"\n\n\t\t\t\tdiscoveredtype = allusecases[index][type][\"type\"]\n\t\t\t}\n\t\t\t\t\t\n\t\t\tsetSelectionOpen(false)\n\t\t\tsetUpdate(Math.random())\n\t\t\tsetAllUsecases(allusecases)\n\n\t\t\tconst submitValue = {\n\t\t\t\t\"type\": discoveredtype,\n\t\t\t\t\"name\": newSelectedApp.name,\n\t\t\t\t\"id\": newSelectedApp.objectID,\n\t\t\t\t\"large_image\": newSelectedApp.image_url,\n\t\t\t\t\"description\": newSelectedApp.description,\n\t\t\t}\n\n\t\t\tsetFrameworkItem(submitValue) \n\t\t}, [newSelectedApp])\n\n\t\tif (data.text === undefined || data.text === null || data.text.length === 0) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst changeAppType = () => {\n\t\t\tsetSelectionOpen(true)\n\t\t}\n\n\t\tconst looplist = type === \"source\" ? triggerlist : type === \"destination\" ? subflows : midflows\n\t\tconst hasError = data.error !== undefined && data.error !== null && data.error.length > 0\n\t\tconst borderColor = hasError ? theme.palette.primary.main : \"rgba(255,255,255,0.3)\"\n\n\t\treturn (\n\t\t\t
\n\n\t\t\t\t{selectionOpen === true ?\n\t\t\t\t\t\n\t\t\t\t: null}\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{data.app_name} {\n\n\t\t\t\t\t\t\t\tif (data.type === undefined || data.type === null || data.type === \"\") {\n\t\t\t\t\t\t\t\t\tsetexpanded(true)\n\t\t\t\t\t\t\t\t\tconsole.log(\"No type. Skipping window open.\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t} \n\n\t\t\t\t\t\t\t\tchangeAppType()\n\t\t\t\t\t\t\t}}/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{data.text}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{hasError ?\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (data.type === undefined || data.type === null || data.type === \"\") {\n\t\t\t\t\t\t\t\t\t\tsetexpanded(true)\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"No type. Skipping window open.\")\n\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t} \n\n\t\t\t\t\t\t\t\t\tchangeAppType()\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{data.error}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\tnull}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{type === \"middle\" ? \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tallusecases[index][type] = []\n\n\t\t\t\t\t\t\t\t\tsetAllUsecases(allusecases)\n\t\t\t\t\t\t\t\t\tsetUpdate(Math.random())\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetexpanded(!expanded)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{expanded ? : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{expanded ? \n\t\t\t\t\tlooplist.map((subdata, curindex) => {\n\t\t\t\t\t\tif (appFramework === undefined) {\n\t\t\t\t\t\t\tsubdata.image = theme.palette.defaultImage\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst srctype = getType(subdata.type)\n\t\t\t\t\t\t\tconst srcinfo = appFramework[srctype]\n\n\t\t\t\t\t\t\tif (srcinfo !== undefined && srcinfo.large_image !== undefined && srcinfo.large_image !== \"\" && (subdata.app_name === undefined || subdata.app_name === \"\")) {\n\t\t\t\t\t\t\t\tsubdata.image = srcinfo.large_image\n\t\t\t\t\t\t\t\tsubdata.app_id = srcinfo.id\n\t\t\t\t\t\t\t\tsubdata.app_name = srcinfo.name\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubdata.image = theme.palette.defaultImage\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\tif (subdata.disabled === true) {\n\t\t\t\t\t\t\t\t\t//alert.info(\"Usecase not available yet.\")\n\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (type === \"middle\") {\n\t\t\t\t\t\t\t\t\tallusecases[index][type][subindex] = subdata\n\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\tallusecases[index][type] = subdata\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsetAllUsecases(allusecases)\n\t\t\t\t\t\t\t\tsetUpdate(Math.random())\n\t\t\t\t\t\t\t\tsetexpanded(false)\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{subdata.app_name} {\n\t\t\t\t\t\t\t\t}}/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{subdata.text}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t\t:\n\t\t\t\t null\n\t\t\t\t}\n\t\t\t
\n\t\t)\n\t}\n\n\t//console.log(\"ALLUSECASES: \", allusecases)\n\n\treturn (\n\t\t
\n {configureWorkflowModal}\n\t\t\t{authenticationModal}\n\t\t\t{showTitle !== false && defaultSearch !== undefined ?\n\t\t\t\t\n\t\t\t\t\t{defaultSearch}: {allusecases[usecaseIndex].name}\n\t\t\t\t\n\t\t\t: null}\n\t\t\t{usecases.map((data, index) => {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{data.middle !== undefined && data.middle !== null && data.middle.length > 0 ?\n\t\t\t\t\t\t\tdata.middle.map((innerdata, innerindex) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: null}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{defaultSearch !== undefined && data.middle.length === 0 ? \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Click add middle!\")\n\n\t\t\t\t\t\t\t\t\t\tallusecases[index].middle.push(midflows[0])\n\t\t\t\t\t\t\t\t\t\tsetAllUsecases(allusecases)\n\t\t\t\t\t\t\t\t\t\tsetUpdate(Math.random())\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t: null}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t{showTitle !== false && workflow.id === undefined ?\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t: null}\n\t\t\t\t\t\t{workflow.id === undefined || defaultSearch === undefined ? \n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t)\n\t\t\t})}\n\t\t
\n\t)\n}\n\nexport default UsecaseSearch \n","import React, { useState, useEffect } from 'react';\nimport ReactGA from 'react-ga';\nimport theme from '../theme';\nimport PaperComponent from \"../components/PaperComponent.jsx\"\nimport UsecaseSearch, { usecaseTypes } from \"../components/UsecaseSearch.jsx\"\n\nimport {\n Paper,\n\tTypography,\n\tDivider,\n\tIconButton, \n\tBadge,\n CircularProgress,\n\tTooltip,\n\tDialog,\n} from \"@material-ui/core\";\n\nimport {\n\tClose as CloseIcon,\n Delete as DeleteIcon,\n\tAutoFixHigh as AutoFixHighIcon,\n\tDone as DoneIcon,\n} from \"@mui/icons-material\";\n\nconst SuggestedWorkflows = (props) => {\n const { globalUrl, userdata, usecaseSuggestions, frameworkData, setUsecaseSuggestions, inputSearch, apps, } = props\n\n\tconst [usecaseSearch, setUsecaseSearch] = React.useState(\"\")\n\tconst [usecaseSearchType, setUsecaseSearchType] = React.useState(\"\")\n\tconst [finishedUsecases, setFinishedUsecases] = React.useState([])\n\tconst [previousUsecase, setPreviousUsecase] = React.useState(\"\")\n\tconst [closeWindow, setCloseWindow] = React.useState(false)\n\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\";\n\n\n\tuseEffect(() => {\n\t\tif (closeWindow === true) {\n\t\t\tconsole.log(\"WINDOW CLOSED\")\n\t\t\tfinishedUsecases.push(usecaseSearch)\n\t\t\tsetFinishedUsecases(finishedUsecases)\n\n\t\t\tsetCloseWindow(false)\n\t\t}\n\t}, [closeWindow])\n\n\tif (usecaseSuggestions === undefined || usecaseSuggestions.length === 0) {\n\t\treturn null\n\t}\n\n\tif (inputSearch !== previousUsecase) {\n\t\tsetPreviousUsecase(inputSearch)\n\t\tsetFinishedUsecases([])\n\t}\n\n\tif (finishedUsecases.length === usecaseSuggestions.length) {\n\t\tconsole.log(\"Closing finished usecases 2\")\n\t\treturn null\n\t}\n\n\n\t//useEffect(() => {\n\t//\t//if (defaultSearch === \n\t//\t//setFinishedUsecases(finishedUsecases)\n\t//\tconsole.log(\"Finished default usecase?\", usecaseSearch)\n\t//}, [usecaseSearch])\n\n\tconst foundZindex = usecaseSearch.length > 0 && usecaseSearchType.length > 0 ? -1 : 12500\n\n\tconst IndividualUsecase = (props) => {\n\t\tconst { usecase, index } = props\n\t\tconst [hovering, setHovering] = React.useState(false)\n\n\t\tconst usecasename = usecase.name\n\t\tconst bordercolor = usecase.color !== undefined ? usecase.color : \"rgba(255,255,255,0.3)\"\n\n\n\t\tconst srcimage = usecase.items[0].app\n\t\tvar dstimage = usecase.items[1].app\n\t\tif (usecase.items.length > 2) {\n\t\t\tdstimage = usecase.items[2].app\n\t\t}\n\n\t\tconst finished = finishedUsecases.includes(usecasename)\n\t\tconst selectedIcon = finished ? : \n\n\t\tif (finished) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Simple visual of the usecase\n\t\treturn (\n\t\t\t\n\t\t\t\t
{\n\t\t\t\t\tsetHovering(true)\n\t\t\t\t}} onMouseOut={() => {\n\t\t\t\t\tsetHovering(false)\n\t\t\t\t}} onClick={() => {\n\t\t\t\t\tif (isCloud) {\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"welcome\",\n\t\t\t\t\t\t\t\taction: \"click_suggested_workflow\",\n\t\t\t\t\t\t\t\tlabel: usecasename,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(\"Try usecase \", usecasename)\n\t\t\t\t\tsetUsecaseSearchType(usecase.type)\n\t\t\t\t\tsetUsecaseSearch(usecasename)\n\n\t\t\t\t}}>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{usecasename}\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{srcimage.large_image}\n\t\t\t\t\t\t\t{dstimage.large_image}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{selectedIcon}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t)\n\t}\n\n\t//\n\treturn (\n\t\t\n\t\t\t 0 && usecaseSearchType.length > 0}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tfinishedUsecases.push(usecaseSearch)\n\t\t\t\t\t\tsetFinishedUsecases(finishedUsecases)\n\n\n\n\t\t\t\t\t\tsetUsecaseSearch(\"\")\n\t\t\t\t\t\tsetUsecaseSearchType(\"\")\n\t\t\t\t\t}}\n\t\t\t\t\tPaperProps={{\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tpointerEvents: \"auto\",\n\t\t\t\t\t\t\tbackgroundColor: theme.palette.surfaceColor,\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tminWidth: 450,\n\t\t\t\t\t\t\tpadding: 50,\n\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\tzIndex: 10012,\n\t\t\t\t\t\t\tborder: theme.palette.defaultBorder,\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t>\n \t {\n\t\t\t\t\t\tfinishedUsecases.push(usecaseSearch)\n\t\t\t\t\t\tsetFinishedUsecases(finishedUsecases)\n\n\t\t\t\t\t\tsetUsecaseSearch(\"\")\n\t\t\t\t\t\tsetUsecaseSearchType(\"\")\n \t }}\n \t >\n \t \n \t \n\t\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tSuggested Workflows ({finishedUsecases.length}/{usecaseSuggestions.length})\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (setUsecaseSuggestions !== undefined) {\n\t\t\t\t\t\t\tsetUsecaseSuggestions([])\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{usecaseSuggestions.map((usecase, index) => {\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t\t\n\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default SuggestedWorkflows;\n","import React, { useState, useEffect } from 'react';\nimport {isMobile} from \"react-device-detect\";\nimport AppFramework, { usecases } from \"../components/AppFramework.jsx\";\nimport {Link} from 'react-router-dom';\nimport ReactGA from 'react-ga';\n\nimport { Button, LinearProgress, Typography } from '@material-ui/core';\n\nexport const securityFramework = [\n\t\t{\n\t\t\timage: ,\n\t\t\ttext: \"Cases\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: \n\t\t\t,\n\t\t\ttext: \"SIEM\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: \n\t\t\t,\n\t\t\ttext: \"Assets\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: \n\t\t\t,\n\t\t\ttext: \"IAM\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: ,\n\t\t\ttext: \"Intel\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: \n\t\t\t,\n\t\t\ttext: \"Comms\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage: \n\t\t\t,\n\t\t\ttext: \"Network\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n\t\t{\n\t\t\timage:\n\t\t\t,\n\t\t\ttext: \"EDR & AV\",\n\t\t\tdescription: \"Case management\"\n\t\t}, \n]\n\nconst LandingpageUsecases = (props) => {\n\tconst [selectedUsecase, setSelectedUsecase] = useState(\"Phishing\")\n\tconst usecasekeys = usecases === undefined || usecases === null ? [] : Object.keys(usecases)\n\tconst buttonBackground = \"linear-gradient(to right, #f86a3e, #f34079)\"\n\tconst buttonStyle = {borderRadius: 25, height: 50, width: 260, margin: isMobile ? \"15px auto 15px auto\" : 20, fontSize: 18, backgroundImage: buttonBackground}\n\n\tconst HandleTitle = (props) => {\n\t\tconst { usecases, selectedUsecase, setSelecedUsecase } = props\n\t\tconst [progress, setProgress] = useState(0)\n\n \tuseEffect(() => {\n\t\t\tconst timer = setInterval(() => {\n\t\t\t\tsetProgress((oldProgress) => {\n\t\t\t\t\tif (oldProgress >= 105) {\n\t\t\t\t\t\tconst foundIndex = usecasekeys.findIndex(key => key === selectedUsecase)\n\t\t\t\t\t\tvar newitem = usecasekeys[foundIndex+1]\n\t\t\t\t\t\tif (newitem === undefined || newitem === 0) {\n\t\t\t\t\t\t\tnewitem = usecasekeys[1]\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetSelectedUsecase(newitem)\n\t\t\t\t\t\treturn -18\n\t\t\t\t\t}\n\n\t\t\t\t\tif (oldProgress >= 65) {\n\t\t\t\t\t\treturn oldProgress + 3\n\t\t\t\t\t}\n\n\t\t\t\t\tif (oldProgress >= 80) {\n\t\t\t\t\t\treturn oldProgress + 1\n\t\t\t\t\t}\n\n\t\t\t\t\treturn oldProgress + 6\n\t\t\t\t})\n\t\t\t}, 165)\n\n\t\t\treturn () => {\n\t\t\t\tclearInterval(timer)\n\t\t\t}\n\t\t}, [])\n\n\t\tif (usecases === null || usecases === undefined || usecases.length === 0) {\n\t\t\treturn null\n\t\t}\n\n\t\tconst modifier = isMobile ? 17 : 22\n\t\treturn (\n\t\t\t\n\t\t\t\tHandle
\n\t\t\t\t\n\t\t\t\t\t{selectedUsecase}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\twith confidence
\n\t\t\t
\n\t\t)\n\t}\n\n\tconst parsedWidth = isMobile ? \"100%\" : 1100 \n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/*Security Automation is Hard*/}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tConnecting your everchanging environment is hard. We get it! That's why we built Shuffle, where you can use and share your security workflows to everyones benefit.\n\t\t\t\t\t\t{/*Shuffle is an automation platform where you don't need to be an expert to automate. Get access to our large pool of security playbooks, apps and people.*/}\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{isMobile ? null :\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\t\t\t\tcategory: \"landingpage\",\n\t\t\t\t\t\t\t\t\t\t\taction: \"click_main_pricing\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tborderRadius: 25, height: 40, width: 175, margin: \"15px 0px 15px 0px\", fontSize: 14, color: \"white\", backgroundImage: buttonBackground, marginRight: 10, \n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\tSee Pricing\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{isMobile ? null :\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\t\t\t\tcategory: \"landingpage\",\n\t\t\t\t\t\t\t\t\t\t\taction: \"click_main_try_it_out\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tborderRadius: 25, height: 40, width: 175, margin: \"15px 0px 15px 0px\", fontSize: 14, color: \"white\", backgroundImage: buttonBackground,\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\tStart for free\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{isMobile ? null : \n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\t{isMobile ? null : \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{isMobile ?\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"landingpage\",\n\t\t\t\t\t\t\t\taction: \"click_main_pricing\",\n\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\tSee pricing \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\t{/*isMobile ? \n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"landingpage\",\n\t\t\t\t\t\t\t\taction: \"click_main_features\",\n\t\t\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tstyle={buttonStyle}>\n\t\t\t\t\t\tFeatures \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t: null*/}\n\t\t\t\t\t
\n\t\t\t{isMobile ? null : \n\t\t\t\t
\n\t\t\t\t\t{securityFramework.map((data, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{data.image}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{data.text}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t}\n\t\t\t
\n\t\t)\n}\n\nexport default LandingpageUsecases;\n","import React, { useState, useEffect } from 'react';\n\nimport CytoscapeComponent from 'react-cytoscapejs';\nimport frameworkStyle from '../frameworkStyle.jsx';\nimport { v4 as uuidv4 } from \"uuid\";\nimport theme from '../theme';\nimport { useAlert } from \"react-alert\";\n\nimport AppSearch from '../components/Appsearch.jsx';\nimport PaperComponent from \"../components/PaperComponent.jsx\"\nimport { usecaseTypes } from \"../components/UsecaseSearch.jsx\"\nimport SuggestedWorkflows from \"../components/SuggestedWorkflows.jsx\"\nimport { securityFramework} from \"../components/LandingpageUsecases.jsx\";\n\nimport {\n Paper,\n\tTypography,\n\tDivider,\n\tIconButton, \n\tBadge,\n CircularProgress,\n\tTooltip,\n\tDialog,\n} from \"@material-ui/core\";\n\nimport { \n\tButton \n} from '@material-ui/core';\n\nimport {\n\tClose as CloseIcon,\n Delete as DeleteIcon,\n} from \"@material-ui/icons\";\n\nimport * as edgehandles from \"cytoscape-edgehandles\";\nimport * as cytoscape from \"cytoscape\";\n\ncytoscape.use(edgehandles);\n\n\nconst svgSize = 23\nconst parsedDatatypeImages = {\n\t\"Cases\": encodeURI(`data:image/svg+xml;utf-8,`),\n\t\"EDR & AV\": encodeURI(`data:image/svg+xml;utf-8,`),\n}\n\nexport const usecases = {\n\t\"None\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [],\n\t},\n\t\"Phishing\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"BOTTOM_LEFT\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"description\": \"Email received\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"COMMS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"ASSETS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"INTEL\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"CASES\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t]},\n\t\"Ransomware\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"BOTTOM_LEFT\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"description\": \"EDR & AV alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"EDR & AV\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"human\": false,\n\t\t\t\t\"description\": \"isolate\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"IAM\",\n\t\t\t\t\"human\": false,\n\t\t\t\t\"description\": \"Block access\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"description\": \"Notify oncall and affected user\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Create enriched alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"CASES\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"description\": \"Validate alert\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t]\n\t},\n\t\"Exploits\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"NETWORK\",\n\t\t\t\t\"description\": \"Exploit\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"NETWORK\",\n\t\t\t\t\"target\":\t\"SIEM\",\n\t\t\t\t\"description\": \"WAF alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"ASSETS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"IAM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"CASES\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t]\n\t},\t\n\t\"AWS S3 honeypots\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"SIEM\",\n\t\t\t\t\"description\": \"S3 logs\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"INTEL\",\n\t\t\t\t\"description\": \"Add sighting\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Create case\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"NETWORK\",\n\t\t\t\t\"description\": \"Block IP\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t\"SIEM alerts\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"SIEM\",\n\t\t\t\t\"description\": \"Syslog\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Alerts\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"INTEL\",\n\t\t\t\t\"description\": \"Enrich\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"IAM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": false,\n\t\t\t\t\"description\": \"enrich\",\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"IAM\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t]\n\t},\n\t\"New Detections\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"SIEM\",\n\t\t\t\t\"description\": \"Hypothesis\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SIEM\",\n\t\t\t\t\"description\": \"Create rule\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"NETWORK\",\n\t\t\t\t\"description\": \"Create rule\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"NETWORK\",\n\t\t\t\t\"target\":\t\"EDR & AV\",\n\t\t\t\t\"description\": \"Create rule\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Send alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"NETWORK\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Send alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"EDR & AV\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Send alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Enrich IOCs\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"ASSETS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Enrich hostnames etc.\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Create enriched alert\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t\"Vulnerabilities\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_RIGHT\",\n\t\t\t\t\"target\":\t\"ASSETS\",\n\t\t\t\t\"description\": \"New vuln\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"ASSETS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get vuln\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Raise ticket\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"description\": \"Notify owner\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"COMMS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"ASSETS\",\n\t\t\t\t\"description\": \"Auto-patch\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t\"Approvals\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"New inquiry\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"CASES\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get tickets\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"description\": \"Ask for approval\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"COMMS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"human\": true,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"ASSETS\",\n\t\t\t\t\"description\": \"Add to user\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"IAM\",\n\t\t\t\t\"description\": \"Approve access\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t\"Enrichment\": {\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"TOP_LEFT\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Case updated\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Get and enrich ticket\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"IAM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get access rights\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"ASSETS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get relevant assets\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"INTEL\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get relevant IPs\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"COMMS\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Find relevant mails & chats\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"EDR & AV\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Find incidents for host\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SIEM\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Find info about hostname and user\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Format info\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t\"Draw\": {\n\t}\n}\n\nconst AppFramework = (props) => {\n const { globalUrl, isLoaded, showOptions, selectedOption, rolling, frameworkData, setFrameworkData, size, inputUsecase, isLoggedIn, color, discoveryWrapper, setDiscoveryWrapper, userdata, apps, inputUsecases, setInputUsecases } = props;\n\tconst [cy, setCy] = React.useState()\n\tconst [edgesStarted, setEdgesStarted] = React.useState(false)\n\tconst [graphDone, setGraphDone] = React.useState(false)\n\tconst [cyDone, setCyDone] = React.useState(false)\n\tconst [discoveryData, setDiscoveryData] = React.useState({})\n\tconst [selectionOpen, setSelectionOpen] = React.useState(true)\n\tconst [frameworkSuggestions, setFrameworkSuggestions] = React.useState([])\n\tconst [newSelectedApp, setNewSelectedApp] = React.useState({})\n\tconst [defaultSearch, setDefaultSearch] = React.useState(\"\")\n\tconst [animationStarted, setAnimationStarted] = React.useState(false)\n\tconst [paperTitle, setPaperTitle] = React.useState(\"\")\n\tconst [changedApp, setChangedApp] = React.useState(\"\")\n\n\n\tconst [usecaseType, setUsecaseType] = React.useState(0)\n\tconst [selectedUsecase, setSelectedUsecase] = React.useState(selectedOption !== undefined ? selectedOption : \"Phishing\")\n\n\tconst scale = size === undefined ? 1 : size > 5 ? 3 : size\n\n const alert = useAlert()\n\n\tconst showRecommendations = (changed, frameworkData) => {\n\t\tconsole.log(\"Inside recommendation loader\")\n\t\tsetChangedApp(changed)\n\n\t\t// Alternative changed\n\t\t// This is for secondary values like email = comms\n\t\tvar alternativeChanged = changed\n\t\tif (changed == \"COMMS\") {\n\t\t\talternativeChanged = \"email\"\n\t\t}\n\t\t\n\t\t// FIX: \n\t\t// 0. Get workflows loaded in from usecasesearch\n\t\t// 1. Search through workflow templates for matching app types\n\t\t// 2. Validate if template is already in use~ (workflows with same tools)\n\t\t// 3. Generate the workflow(s) - PS: Fix new workflow templates\n\t\t// 4. Moving on!\n\t\n\t\t// How can we load templates? UsecaseSearch?\n\t\tvar showusecases = []\n\t\t//const foundusecase = usecaseTypes.find(data => data.name.toLowerCase() === defaultSearch.toLowerCase())\n\t\tfor (var key in usecaseTypes) {\n\t\t\tfor (var subkey in usecaseTypes[key].value) {\n\t\t\t\tconst usecase = usecaseTypes[key].value[subkey]\n\n\t\t\t\tif (usecase.active === false) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tvar potential = false\n\t\t\t\tvar matches = []\n\t\t\t\tfor (var itemtype in usecase.items) {\n\t\t\t\t\tvar apptype = usecase.items[itemtype].app_type.toLowerCase()\n\t\t\t\t\tif (apptype.toLowerCase() === \"email\" || apptype.toLowerCase() === \"comms\" || apptype === \"communication\") {\n\t\t\t\t\t\tapptype = \"Comms\"\n\t\t\t\t\t}\n\t\t\t\t\t//console.log(\"OLD: \", changed, \"USECASE: \", apptype)\n\n\t\t\t\t\t//console.log(\"APptype, changed, framework: \", apptype.toLowerCase(), alternativeChanged.toLowerCase(), changed.toLowerCase(), frameworkData)\n\t\t\t\t\tif (changed.toLowerCase() === apptype.toLowerCase() || changed.toLowerCase().includes(apptype.toLowerCase()) || alternativeChanged.toLowerCase() === apptype.toLowerCase() || alternativeChanged.toLowerCase().includes(apptype.toLowerCase())) {\n\t\t\t\t\t\tpotential = true \n\t\t\t\t\t\tconsole.log(\"Potential: !\", apptype)\n\n\t\t\t\t\t\tif (frameworkData[apptype] !== undefined && frameworkData[apptype].name !== undefined && frameworkData[apptype].name !== null && frameworkData[apptype].name.length > 0) {\n\t\t\t\t\t\t\tusecase.items[itemtype].app = frameworkData[apptype]\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmatches.push(usecase.items[itemtype])\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Check if the type is done in frameworkData\n\t\t\t\t\t\tif (frameworkData[apptype] !== undefined) {\n\t\t\t\t\t\t\t//console.log(\"NOT UNDEFINED: \", frameworkData[apptype])\n\t\t\t\t\t\t\tif (frameworkData[apptype].name !== undefined && frameworkData[apptype].name !== null && frameworkData[apptype].name.length > 0) {\n\t\t\t\t\t\t\t\t//console.log(\"FOUND: \", frameworkData[apptype])\n\t\t\t\t\t\t\t\tusecase.items[itemtype].app = frameworkData[apptype]\n\n\t\t\t\t\t\t\t\t//console.log(\"Real app!\")\n\t\t\t\t\t\t\t\tmatches.push(usecase.items[itemtype])\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//if (frameworkData[apptype] !== undefined) {\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log(\"UNDEFINED APP (bad name?): \", apptype)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Adds to list if it's all matching and unhandled\n\t\t\t\tif (potential) {\n\t\t\t\t\t// Check finished usecases.\n\t\t\t\t\tif (inputUsecases !== undefined && setInputUsecases !== undefined && usecase.usecase_references !== undefined && usecase.usecase_references.length > 0) {\n\t\t\t\t\t\tvar foundUsecase = false\n\t\t\t\t\t\tfor (var usecaseKey in inputUsecases) {\n\t\t\t\t\t\t\tconst usecaseCategory = inputUsecases[usecaseKey]\n\t\t\t\t\t\t\tfor (var subUsecaseKey in usecaseCategory.list) {\n\t\t\t\t\t\t\t\tconst loopUsecase = usecaseCategory.list[subUsecaseKey]\n\t\t\t\t\t\t\t\tif (loopUsecase.matches === undefined || loopUsecase.matches === null || loopUsecase.matches.length === 0) {\n\t\t\t\t\t\t\t\t\t//console.log(\"No matches - continuing\")\n\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (usecase.usecase_references.includes(loopUsecase.name)) {\n\t\t\t\t\t\t\t\t\tfoundUsecase = true\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (foundUsecase) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!foundUsecase) {\n\t\t\t\t\t\t\tconsole.log(\"Usecase NOT found!\")\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log(\"FOUND usecase existing in \", usecase.usecase_references)\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(\"No usecase to try to match it to (usecase.usecase_references in UsecaseSearch)\")\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(\"Usecase: \", usecase)\n\t\t\t\t\tif (matches.length === usecase.items.length) {\n\t\t\t\t\t\tusecase.color = \"#c51152\"\n\t\t\t\t\t\tusecase.type = usecaseTypes[key].name\n\t\t\t\t\t\tshowusecases.push(usecase)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// FIXME: Check if a usecase has already been handled\n\t\tconsole.log(\"\")\n\t\tconsole.log(\"GOT USECASES: \", showusecases)\n\n\t\t// FIXME: Just showing one usecase at a time for now\n\t\tif (showusecases.length > 0) {\n\t\t\tsetFrameworkSuggestions(showusecases.slice(0,1))\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconsole.log(\"DISCWRAP CHANG: \", discoveryWrapper)\n\t\tif (discoveryWrapper === undefined || discoveryWrapper.id === \"SHUFFLE\" || discoveryWrapper.id === undefined || cy === undefined) {\n\t\t\tsetDiscoveryData({})\n\n\t\t\tif (cy !== undefined) {\n\t\t\t\tcy.nodes().unselect()\n\t\t\t}\n\n\t\t\treturn\n\t\t}\n\t\t\t\n\n\t\t// Find the node and click it?\n\t\t//setTimeout(() => {\n\t\tconst nodes = cy.nodes().jsons()\n\t\tfor (var key in nodes) {\n\t\t\tconst node = nodes[key]\n\t\t\tvar newSearchName = discoveryWrapper.id.valueOf()\n\t\t\tif (newSearchName === \"EMAIL\") {\n\t\t\t\tnewSearchName = \"COMMS\"\n\t\t\t}\n\n\t\t\tif (newSearchName === \"ERADICATION\" || newSearchName === \"ENDPOINT\") {\n\t\t\t\tnewSearchName = \"EDR & AV\"\n\t\t\t}\n\n\t\t\tif (node.data.id === newSearchName) {\n\t\t\t\tconst tmpnode = cy.getElementById(node.data.id)\n\t\t\t\tif (tmpnode !== undefined) {\n\t\t\t\t\ttmpnode.select()\n\t\t\t\t}\n\n\t\t\t\tsetDefaultSearch(discoveryWrapper.id)\n\t\t\t\tsetPaperTitle(discoveryWrapper.id)\n\t\t\t}\n\t\t}\n\t\t//}, 50,)\n\t\t//setDiscoveryData(discoveryWrapper)\n\t}, [discoveryWrapper])\n\n\tconst setUsecaseItem = (inputUsecase) => {\n\t\tvar parsedUsecase = inputUsecase\n\t\tconst edges = cy.edges().jsons()\n\n\t\tparsedUsecase.process = []\n\t\tfor (var key in edges) {\n\t\t\tconst edge = edges[key]\n\t\t\tconsole.log(\"Edge: \", edge)\n\t\t\tparsedUsecase.process.push(edge.data)\n\t\t}\n\n fetch(globalUrl + \"/api/v1/workflows/usecases\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(parsedUsecase),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for framework!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\talert.error(\"Failed updating: \" + responseJson.reason)\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Failed to update framework for your org.\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\talert.info(\"Updated usecase.\")\n\t\t\t\t}\n\t\t\t})\n .catch((error) => {\n alert.error(error.toString());\n\t\t\t\t//setFrameworkLoaded(true)\n })\n\t\t}\n\n\t\tconst activateApp = (appid) => {\n\t\t\tfetch(globalUrl+\"/api/v1/apps/\"+appid+\"/activate\", {\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t\tcredentials: \"include\",\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\tconsole.log(\"Failed to activate\")\n\t\t\t\t}\n\n\t\t\t\treturn response.json()\n\t\t\t})\n\t\t\t.then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\talert.error(\"Failed to activate the app\")\n\t\t\t\t} else {\n\t\t\t\t\t//alert.success(\"App activated for your organization! Refresh the page to use the app.\")\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\t//alert.error(error.toString())\n\t\t\t\tconsole.log(\"Activate app error: \", error.toString())\n\t\t\t});\n\t\t}\n\n\tconst setFrameworkItem = (data) => {\n\t\tconsole.log(\"Setting framework item: \", data, isCloud)\n\t\tif (!isCloud) {\n\t\t\tactivateApp(data.id)\n\t\t}\n\n fetch(globalUrl + \"/api/v1/apps/frameworkConfiguration\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for framework!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\talert.error(\"Failed updating: \" + responseJson.reason)\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Failed to update framework for your org.\")\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t//setFrameworkLoaded(true)\n\t\t\t\t//setFrameworkData(responseJson)\n\t\t\t})\n .catch((error) => {\n alert.error(error.toString());\n\t\t\t\t//setFrameworkLoaded(true)\n })\n\t\t}\n\n\tuseEffect(() => {\n\t\tconsole.log(\"New selected app: \", newSelectedApp, discoveryData)\n\t\tif (newSelectedApp.objectID === undefined || newSelectedApp.objectID === undefined || newSelectedApp.objectID.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\t//if (paperTitle.length > 0) {\n\t\t//\tconsole.log(\"No papertitle (parent button)\")\n\n\t\t//\tcy.elements().unselect()\n\t\t//\treturn\n\t\t//}\n\n\t\tif (discoveryData.id === undefined) {\n\t\t\tconsole.log(\"No discoverydata (parent button)\")\n\n\t\t\tcy.elements().unselect()\n\t\t\treturn\n\t\t}\n\n\t\tconst submitValue = {\n\t\t\t\"type\": discoveryData.id,\n\t\t\t\"name\": newSelectedApp.name,\n\t\t\t\"id\": newSelectedApp.objectID,\n\t\t\t\"large_image\": newSelectedApp.image_url,\n\t\t\t\"description\": newSelectedApp.description === undefined ? \"\" : newSelectedApp.description,\n\t\t}\n\n\n\t\tconst foundelement = cy.getElementById(discoveryData.id)\n\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\tfoundelement.data(\"large_image\", newSelectedApp.image_url)\n\t\t\tfoundelement.data(\"margin_x\", \"0px\")\n\t\t\tfoundelement.data(\"margin_y\", \"0px\")\n\t\t\tfoundelement.data(\"text_margin_y\", `${60*scale}px`)\n\t\t\tfoundelement.data(\"width\", `${85*scale}px`)\n\t\t\tfoundelement.data(\"height\", `${85*scale}px`)\n\t\t}\n\n\t\tif (setFrameworkData !== undefined) {\n\t\t\t// Find discoveryData.id\n\t\t\tvar keys = []\n\t\t\tfor (const [key, value] of Object.entries(frameworkData)) {\n\t\t\t\tif (key.toLowerCase() === discoveryData.id.toLowerCase()) {\n\t\t\t\t\tkeys.push(key)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (keys.length === 0) {\n\t\t\t\tconsole.log(\"Failed to find: \", discoveryData.id, \" IN \", frameworkData)\n\t\t\t} else {\n\t\t\t\tfor (var key in keys) {\n\t\t\t\t\tframeworkData[keys[key]] = submitValue\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\"Frameworkdata: \", frameworkData)\n\t\t\t\tsetFrameworkData(frameworkData)\n\n\t\t\t\tif (discoveryData.large_image !== undefined && discoveryData.large_image !== null && discoveryData.large_image.includes(\"storage.googleapis.com\")) {\n\t\t\t\t\tshowRecommendations(discoveryData.id, frameworkData)\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"Skipping recommendations during unselect\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsetFrameworkItem(submitValue) \n\t\tcy.elements().unselect()\n\n\t}, [newSelectedApp])\n\n\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\";\n\n const imgSize = 50;\n\tvar parsedFrameworkData = frameworkData === undefined ? {} : frameworkData \n\n\t// Awful mapping to make sure all access is always there\n\tif (frameworkData !== undefined) {\n\t\tif (frameworkData.cases !== undefined) {\n\t\t\tif (frameworkData.cases.large_image === undefined && frameworkData.cases.large_image === null || frameworkData.cases.large_image === \"\") {\n\t\t\t\tframeworkData.cases = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.Cases = frameworkData.cases\n\t\t} else {\n\t\t\tparsedFrameworkData.Cases = {}\n\t\t}\n\n\t\tif (frameworkData.siem !== undefined) {\n\t\t\tif (frameworkData.siem.large_image === undefined && frameworkData.siem.large_image === null || frameworkData.siem.large_image === \"\") {\n\t\t\t\tframeworkData.siem = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.SIEM = frameworkData.siem\n\t\t} else {\n\t\t\tparsedFrameworkData.SIEM = {}\n\t\t}\n\n\t\tif (frameworkData.assets !== undefined) {\n\t\t\tif (frameworkData.assets.large_image === undefined && frameworkData.assets.large_image === null || frameworkData.assets.large_image === \"\") {\n\t\t\t\tframeworkData.assets = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.Assets = frameworkData.assets\n\t\t} else {\n\t\t\tparsedFrameworkData.Assets = {}\n\t\t}\n\n\t\tif (frameworkData.intel !== undefined) {\n\t\t\tif (frameworkData.intel.large_image === undefined && frameworkData.intel.large_image === null || frameworkData.intel.large_image === \"\") {\n\t\t\t\tframeworkData.intel = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.Intel = frameworkData.intel\n\t\t} else {\n\t\t\tparsedFrameworkData.Intel= {}\n\t\t}\n\n\t\tif (frameworkData.communication !== undefined) {\n\t\t\tif (frameworkData.communication.large_image === undefined && frameworkData.communication.large_image === null || frameworkData.communication.large_image === \"\") {\n\t\t\t\tframeworkData.communication = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.Comms = frameworkData.communication\n\t\t} else {\n\t\t\tparsedFrameworkData.Comms = {}\n\t\t}\n\n\t\tif (frameworkData.network !== undefined) {\n\t\t\tif (frameworkData.network.large_image === undefined && frameworkData.network.large_image === null || frameworkData.network.large_image === \"\") {\n\t\t\t\tframeworkData.network = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.Network = frameworkData.network\n\t\t} else {\n\t\t\tparsedFrameworkData.Network = {}\n\t\t}\n\n\t\tif (frameworkData.iam !== undefined) {\n\t\t\tif (frameworkData.iam.large_image === undefined && frameworkData.iam.large_image === null || frameworkData.iam.large_image === \"\") {\n\t\t\t\tframeworkData.iam = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData.IAM = frameworkData.iam\n\t\t} else {\n\t\t\tparsedFrameworkData.IAM = {}\n\t\t}\n\n\t\tif (frameworkData.edr !== undefined) {\n\t\t\tif (frameworkData.edr.large_image === undefined && frameworkData.edr.large_image === null || frameworkData.edr.large_image === \"\") {\n\t\t\t\tframeworkData.edr = {}\n\t\t\t}\n\n\t\t\tparsedFrameworkData[\"EDR & AV\"] = frameworkData.edr\n\t\t} else {\n\t\t\tparsedFrameworkData[\"EDR & AV\"] = {}\n\t\t}\n\n\t} else { \n\t\t//console.log(\"No frameworkdata for org! Setting default\")\n\t\tparsedFrameworkData[\"Cases\"] = {}\n\t\tparsedFrameworkData[\"SIEM\"] = {}\n\t\tparsedFrameworkData[\"Assets\"] = {}\n\t\tparsedFrameworkData[\"IAM\"] = {}\n\t\tparsedFrameworkData[\"Intel\"] = {}\n\t\tparsedFrameworkData[\"Comms\"] = {}\n\t\tparsedFrameworkData[\"Network\"] = {}\n\t\tparsedFrameworkData[\"EDR & AV\"] = {}\n\t}\n\n\t//console.log(\"Framework - update? \", parsedFrameworkData)\n\n\t// 0 = automated, 1 = manual\n\n\tconst elements = []\n\tconst surfaceColor = \"#27292D\"\n\n\n\tconst changeUsecase = (value, type) => {\n\t\t//console.log(\"Value: \", value)\t\n\t\tif (value === \"Draw\" && !edgesStarted) {\n\t\t\tsetEdgesStarted(true)\n\t\t\tcy.edgehandles({\n\t\t\t\thandleNodes: (el) => {\n\t\t\t\t\tif (el.isNode() &&\n\t\t\t\t\t!el.data(\"isButton\") &&\n\t\t\t\t\t!el.data(\"isDescriptor\") &&\n\t\t\t\t\tel.data(\"type\") !== \"COMMENT\") {\n\t\t\t\t\t\t\treturn true \n\t\t\t\t\t}\n\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t\tpreview: true,\n\t\t\t\ttoggleOffOnLeave: true,\n\t\t\t\tloopAllowed: function (node) {\n\t\t\t\t\treturn false;\n\t\t\t\t},\n\t\t\t})\n\n\t\t}\n\n\t\tsetSelectedUsecase(value)\n\n\t\tconst edges = cy.edges()\n\t\tif (edges !== undefined) {\n\t\t\tconst allEdges = edges.jsons()\n\t\t\tfor (var key in allEdges) {\n\t\t\t\tconst newedge = allEdges[key]\n\t\t\t\tconst foundelement = cy.getElementById(newedge.data.id)\n\t\t\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\t\t\tfoundelement.remove()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar found = false\n\n\t\tvar parsedType = type === 1 ? \"manual\" : \"automated\"\n\t\tif (usecases === undefined || usecases === null) {\n\t\t\treturn\n\t\t}\n\n\t\tconst newedges = usecases[value][parsedType]\n\t\tfor (var key in newedges) {\n\t\t\tnewedges[key].label = parseInt(key)+1\n\n\t\t\tif (newedges[key].description !== undefined && newedges[key].description !== null && newedges[key].description.length > 0) {\n\t\t\t\tnewedges[key].label = (parseInt(key)+1)+\" \"+newedges[key].description\n\t\t\t}\n\n\t\t\tcy.add({\n\t\t\t\tgroup: \"edges\", \n\t\t\t\tdata: newedges[key],\n\t\t\t})\n\t\t}\n\n\t\tsetGraphDone(true)\n\t}\n\n\tconst animationDuration = 150;\n\tconst nodeAddDuration = 2500;\n\n\tif (cy !== undefined && cyDone && !animationStarted) {\n\t\tconst foundelement = cy.getElementById(\"CASES\")\n\n\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\tsetAnimationStarted(true)\n\n\t\t\tvar parsedStyle = {\n\t\t\t\t\"ghost\": \"yes\",\n\t\t\t\t\"border-color\": \"#f86a3e\",\n\t\t\t\t\"border-width\": \"10px\",\n\t\t\t\t\"border-opacity\": \".7\",\n\t\t\t}\n\n\t\t\tvar parsedStyle2 = {\n\t\t\t\t\"ghost\": \"yes\",\n \t\"border-width\": \"7px\",\n\t\t\t}\n\n\t\t\t/*\n\t\t\t// Animation\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\tfoundelement.animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle: parsedStyle,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: nodeAddDuration,\n\t\t\t\t\t}\n\t\t\t\t).delay(1000)\n\n\t\t\t\tfoundelement.animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle: parsedStyle2,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: nodeAddDuration,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\t*/\n\t\t}\n\t}\n\n\tconst onNodeAdded = (event) => {\n\t\t//if (event.target.data(\"animate\") === true) {\n\t\t//}\n\t}\n\n\tconst onNodeHover = (event) => {\n const nodedata = event.target.data();\n \t\n\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"pointer\"\n\t\t}\n\n\t\tvar parsedStyle = {\n \"border-width\": \"7px\",\n \"border-opacity\": \".7\",\n }\n\n //if (nodedata.type !== \"COMMENT\") {\n // parsedStyle.color = \"white\";\n //}\n\n\t\tif (event.target !== undefined && event.target !== null) {\n\t\t\tevent.target.animate(\n\t\t\t\t{\n\t\t\t\t\tstyle: parsedStyle,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tconst onNodeHoverOut = (event) => {\n const nodedata = event.target.data();\n\t\t//console.log(\"Node OUT: \", nodedata)\n\t\t\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"default\"\n\t\t}\n\n\t\tvar parsedStyle = {\n \"border-width\": \"3px\",\n\t\t\t//\"cursor\": \"default\",\n }\n\n event.target.animate(\n {\n style: parsedStyle,\n },\n {\n duration: animationDuration,\n }\n )\n\t}\n\n\tconst onNodeUnselect = (event) => {\n var data = event.target.data();\n\t\tconsole.log(\"UNSELECT: \", data)\n\t\t\t\n\t\tvar parsedStyle = {\n \"border-width\": \"10px\",\n \"border-opacity\": \".7\",\n\t\t\t\"border-color\": \"#7fe57f\",\n }\n\n\t\t// Some error here?\n\t\tif (event.target !== undefined && event.target !== null) {\n\t\t\tevent.target.animate(\n\t\t\t\t{\n\t\t\t\t\tstyle: parsedStyle,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tevent.target.animate(\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\"border-width\": \"3px\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: animationDuration,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}, 2500)\n\t\t}\n\n\t\t//setDiscoveryData({})\n\t\tsetDiscoveryWrapper({})\n\t\tsetSelectionOpen(false)\n\t\tsetDefaultSearch(\"\")\n\t\tsetPaperTitle(\"\")\n\n\t\t//setDiscoveryData({})\n\t}\n\n\tconst onNodeSelect = (event) => {\n var data = event.target.data();\n\t\tconsole.log(\"Node: \", data)\n\t\tif (data.id === \"SHUFFLE\") {\n\t\t\tevent.target.unselect()\n\t\t\treturn\n\t\t}\n\n\t\tif (data.label === \"EDR & AV\") {\n\t\t\tdata.label = \"ERADICATION\"\n\t\t}\n\t\n\t\tsetDiscoveryData(data)\n\t\tsetSelectionOpen(true)\n\t\tsetNewSelectedApp({})\n\n\t\tsetDefaultSearch(data.label.charAt(0).toUpperCase()+(data.label.substring(1)).toLowerCase())\n\t}\n\n const onEdgeAdded = (event) => {\n\t\t//event.target.data(\"human\", false)\n\t}\n\n const onEdgeSelect = (event) => {\n\t\tconsole.log(event)\n\n\t\tif (event.target.data(\"human\") === undefined || event.target.data(\"human\") === false) {\n\t\t\tevent.target.data(\"human\", true)\n\t\t} else if (event.target.data(\"human\") === true) {\n event.target.remove()\n\t\t\treturn\n\t\t\t//event.target.data(\"human\", false)\n\t\t}\n\n\t\tconsole.log(\"Edge selected!\", event.target.data())\n\t\tevent.target.unselect()\n\t}\n\n\tif (graphDone && cyDone === false) {\n cy.fit(null, 200);\n cy.on(\"select\", \"edge\", (e) => onEdgeSelect(e));\n cy.on(\"add\", \"edge\", (e) => onEdgeAdded(e));\n\n\t\tcy.on(\"select\", \"node\", (e) => {\n\t\t\tonNodeSelect(e)\n\t\t})\n cy.on(\"unselect\", \"node\", (e) => {\n\t\t\tonNodeUnselect(e)\n\t\t})\n\n\t\tcy.on(\"mouseover\", \"node\", (e) => {onNodeHover(e)})\n cy.on(\"mouseout\", \"node\", (e) => onNodeHoverOut(e));\n cy.on(\"add\", \"node\", (e) => onNodeAdded(e));\n\n\t\tsetCyDone(true)\n\t}\n\n\tif (cy !== undefined && cy.elements().length === 0 && parsedFrameworkData !== undefined) {\n\t\t//'background-image': 'data(small_image)',\n\t\tconst shiftradius = 115*scale\n\t\tconst baselocationX = 285*scale\n\t\tconst baselocationY = 50*scale\n\t\tconst shiftmodifier = 3*scale\n\t\t//const svgSize = `${40*scale}px`\n\t\tconst svgSize = `${40}px`\n\n\t\tconst fontSize = `${12*scale}px`\n\t\tconst defaultSize = `${85*scale}px`\n\t\tconst iconSize = `${45*scale}px`\n\t\tconst textMarginDefault = `${14*scale}px`\n\t\tconst textMarginImage = `${60*scale}px`\n\t\tconst nodes = [\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.Cases.name === undefined ? \"\" : parsedFrameworkData.Cases.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.Cases.description === undefined ? \"\" : parsedFrameworkData.Cases.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.Cases.id === undefined ? \"\" : parsedFrameworkData.Cases.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.Cases.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.Cases.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.Cases.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.Cases.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.Cases.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.Cases.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t`) : parsedFrameworkData.Cases.large_image,\n\t\t\t\t\t\tlabel: securityFramework[0].text.toUpperCase(),\n\t\t\t\t\t\tid: securityFramework[0].text.toUpperCase(),\n\t\t\t\t\t\tanimate: true,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX,\n\t\t\t\t\t\ty: baselocationY,\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.IAM.name === undefined ? \"\" : parsedFrameworkData.IAM.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.IAM.description === undefined ? \"\" : parsedFrameworkData.IAM.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.IAM.id === undefined ? \"\" : parsedFrameworkData.IAM.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.IAM.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.IAM.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.IAM.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.IAM.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.IAM.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.IAM.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t`) : parsedFrameworkData.IAM.large_image,\n\t\t\t\t\t\tlabel: securityFramework[3].text.toUpperCase(),\n\t\t\t\t\t\tid: securityFramework[3].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX+shiftradius+(shiftradius/shiftmodifier),\n\t\t\t\t\t\ty: baselocationY+shiftradius-(shiftradius/shiftmodifier),\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.Assets.name === undefined ? \"\" : parsedFrameworkData.Assets.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.Assets.description === undefined ? \"\" : parsedFrameworkData.Assets.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.Assets.id === undefined ? \"\" : parsedFrameworkData.Assets.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.Assets.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.Assets.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.Assets.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.Assets.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.Assets.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.Assets.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t`) : parsedFrameworkData.Assets.large_image,\n\t\t\t\t\t\tlabel: securityFramework[2].text.toUpperCase(), \n\t\t\t\t\t\tid: securityFramework[2].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX+shiftradius*2,\n\t\t\t\t\t\ty: baselocationY+shiftradius*2,\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.Intel.name === undefined ? \"\" : parsedFrameworkData.Intel.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.Intel.description === undefined ? \"\" : parsedFrameworkData.Intel.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.Intel.id === undefined ? \"\" : parsedFrameworkData.Intel.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.Intel.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.Intel.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.Intel.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.Intel.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.Intel.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.Intel.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t`): parsedFrameworkData.Intel.large_image,\n\t\t\t\t\t\tlabel: securityFramework[4].text.toUpperCase(),\n\t\t\t\t\t\tid: securityFramework[4].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX+shiftradius+(shiftradius/shiftmodifier),\n\t\t\t\t\t\ty: baselocationY+shiftradius*3+(shiftradius/shiftmodifier),\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.Comms.name === undefined ? \"\" : parsedFrameworkData.Comms.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.Comms.description === undefined ? \"\" : parsedFrameworkData.Comms.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.Comms.id === undefined ? \"\" : parsedFrameworkData.Comms.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.Comms.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.Comms.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.Comms.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.Comms.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.Comms.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.Comms.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t`) : parsedFrameworkData.Comms.large_image,\n\t\t\t\t\t\tlabel: securityFramework[5].text.toUpperCase(), \n\t\t\t\t\t\tid: securityFramework[5].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX,\n\t\t\t\t\t\ty: baselocationY+shiftradius*4,\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData[\"EDR & AV\"].name === undefined ? \"\" : parsedFrameworkData[\"EDR & AV\"].name,\n\t\t\t\t\t\tdescription: parsedFrameworkData[\"EDR & AV\"].description === undefined ? \"\" : parsedFrameworkData[\"EDR & AV\"].description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData[\"EDR & AV\"].id === undefined ? \"\" : parsedFrameworkData[\"EDR & AV\"].id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData[\"EDR & AV\"].large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t`) : parsedFrameworkData[\"EDR & AV\"].large_image,\n\t\t\t\t\t\tlabel: securityFramework[7].text.toUpperCase(), \n\t\t\t\t\t\tid: securityFramework[7].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX-shiftradius-(shiftradius/shiftmodifier),\n\t\t\t\t\t\ty: baselocationY+shiftradius*3+(shiftradius/shiftmodifier),\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.Network.name === undefined ? \"\" : parsedFrameworkData.Network.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.Network.description === undefined ? \"\" : parsedFrameworkData.Network.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.Network.id === undefined ? \"\" : parsedFrameworkData.Network.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.Network.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: \t\tparsedFrameworkData.Network.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: \t\tparsedFrameworkData.Network.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: \t\t\t\tparsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: \t\t\tparsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.Network.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t`) : parsedFrameworkData.Network.large_image,\n\t\t\t\t\t\tlabel: securityFramework[6].text.toUpperCase(),\n\t\t\t\t\t\tid: securityFramework[6].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX-shiftradius*2,\n\t\t\t\t\t\ty: baselocationY+shiftradius*2,\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\tgroup: \"nodes\",\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\t\tboxwidth: defaultSize,\n\t\t\t\t\t\tboxheight: defaultSize,\n\t\t\t\t\t\tis_valid: true,\n\t\t\t\t\t\tisValid: true,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\tname: parsedFrameworkData.SIEM.name === undefined ? \"\" : parsedFrameworkData.SIEM.name,\n\t\t\t\t\t\tdescription: parsedFrameworkData.SIEM.description === undefined ? \"\" : parsedFrameworkData.SIEM.description,\n\t\t\t\t\t\tapp_id: parsedFrameworkData.SIEM.id === undefined ? \"\" : parsedFrameworkData.SIEM.id,\n\t\t\t\t\t\ttext_margin_y: parsedFrameworkData.SIEM.large_image === undefined ? textMarginDefault : textMarginImage,\n\t\t\t\t\t\tmargin_x: parsedFrameworkData.SIEM.large_image === undefined ? `${32*scale}px` : \"0px\",\n\t\t\t\t\t\tmargin_y: parsedFrameworkData.SIEM.large_image === undefined ? `${19*scale}px` : `0px`,\n\t\t\t\t\t\twidth: parsedFrameworkData.SIEM.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\theight: parsedFrameworkData.SIEM.large_image === undefined ? iconSize : defaultSize,\n\t\t\t\t\t\tlarge_image: parsedFrameworkData.SIEM.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t`) : parsedFrameworkData.SIEM.large_image,\n\t\t\t\t\t\tlabel: securityFramework[1].text.toUpperCase(),\n\t\t\t\t\t\tid: securityFramework[1].text.toUpperCase(),\n\t\t\t\t\t\tanimate: false,\n\t\t\t\t\t},\n\t\t\t\t\trenderedPosition: {\n\t\t\t\t\t\tx: baselocationX-shiftradius-(shiftradius/shiftmodifier),\n\t\t\t\t\t\ty: baselocationY+shiftradius-(shiftradius/shiftmodifier),\n\t\t\t\t\t}\n\t\t\t},\n\t\t]\n\n\t\t// Middlenode\n\t\tnodes.push({\n\t\t\t\tgroup: \"nodes\",\n\t\t\t\tdata: {\n\t\t\t\t\tfont_size: fontSize,\n\t\t\t\t\twidth: defaultSize,\n\t\t\t\t\theight: defaultSize,\n\t\t\t\t\tid: \"SHUFFLE\",\n\t\t\t\t\tis_valid: true,\n\t\t\t\t\tisValid: true,\n\t\t\t\t\terrors: [],\n\t\t\t\t\tmiddle_node: true,\n\t\t\t\t},\n\t\t\t\trenderedPosition: {\n\t\t\t\t\tx: baselocationX,\n\t\t\t\t\ty: baselocationY+shiftradius*2,\n\t\t\t\t}\n\t\t})\n\n\t\t// Extra nodes\n\t\tnodes.push({\n\t\t\t\tgroup: \"nodes\",\n\t\t\t\tdata: {\n\t\t\t\t\tis_valid: true,\n\t\t\t\t\tisValid: true,\n\t\t\t\t\terrors: [],\n\t\t\t\t\tlarge_image: encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t,\n\t\t\t\t\t`),\n\t\t\t\t\tid: \"TOP_LEFT\",\n\t\t\t\t\tinvisible: true,\n\t\t\t\t},\n\t\t\t\trenderedPosition: {\n\t\t\t\t\tx: baselocationX-shiftradius*2.5,\n\t\t\t\t\ty: baselocationY-50,\n\t\t\t\t}\n\t\t})\n\t\tnodes.push({\n\t\t\t\tgroup: \"nodes\",\n\t\t\t\tdata: {\n\t\t\t\t\tis_valid: true,\n\t\t\t\t\tisValid: true,\n\t\t\t\t\terrors: [],\n\t\t\t\t\tlarge_image: encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t,\n\t\t\t\t\t`),\n\t\t\t\t\tid: \"BOTTOM_LEFT\",\n\t\t\t\t\tinvisible: true,\n\t\t\t\t},\n\t\t\t\trenderedPosition: {\n\t\t\t\t\tx: baselocationX-shiftradius*2.5-10,\n\t\t\t\t\ty: baselocationY+shiftradius*4-10,\n\t\t\t\t}\n\t\t})\n\t\tnodes.push({\n\t\t\t\tgroup: \"nodes\",\n\t\t\t\tdata: {\n\t\t\t\t\tis_valid: true,\n\t\t\t\t\tisValid: true,\n\t\t\t\t\terrors: [],\n\t\t\t\t\tlarge_image: encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t,\n\t\t\t\t\t`),\n\t\t\t\t\tid: \"BOTTOM_RIGHT\",\n\t\t\t\t\tinvisible: true,\n\t\t\t\t},\n\t\t\t\trenderedPosition: {\n\t\t\t\t\tx: baselocationX+shiftradius*2+50,\n\t\t\t\t\ty: baselocationY+shiftradius*4+50,\n\t\t\t\t}\n\t\t})\n\t\tnodes.push({\n\t\t\t\tgroup: \"nodes\",\n\t\t\t\tdata: {\n\t\t\t\t\tis_valid: true,\n\t\t\t\t\tisValid: true,\n\t\t\t\t\terrors: [],\n\t\t\t\t\tlarge_image: encodeURI(`data:image/svg+xml;utf-8,\n\t\t\t\t\t\t,\n\t\t\t\t\t`),\n\t\t\t\t\tid: \"TOP_RIGHT\",\n\t\t\t\t\tinvisible: true,\n\t\t\t\t},\n\t\t\t\trenderedPosition: {\n\t\t\t\t\tx: baselocationX+shiftradius*2,\n\t\t\t\t\ty: baselocationY-150,\n\t\t\t\t}\n\t\t})\n\n\t\t//console.log(\"NODES: \" , nodes)\n\t\tfor (var key in nodes) {\n\t\t\tcy.add(nodes[key]).lock()\n\t\t}\n\n\t\tchangeUsecase(selectedUsecase, usecaseType)\n\n\t\tif (inputUsecase !== undefined && inputUsecase !== null) {\n\t\t\tfor (var key in inputUsecase.process) {\n\t\t\t\tif (inputUsecase.process[key].source === \"\" || inputUsecase.process[key].target === \"\") {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tinputUsecase.process[key].label = parseInt(key)+1\n\t\t\t\tinputUsecase.process[key].id = uuidv4();\n\n\t\t\t\tcy.add({\n\t\t\t\t\tgroup: \"edges\", \n\t\t\t\t\tdata: inputUsecase.process[key],\n\t\t\t\t})\n\t\t\t}\n\t\t\t//changeUsecase(inputUsecase, 0)\n\t\t\t//setSelectedUsecase(value)\n\t\t}\n\t}\n\n\tif (selectedOption !== undefined && selectedUsecase !== selectedOption) {\n\t\tsetSelectedUsecase(selectedOption)\n\t\tchangeUsecase(selectedOption, usecaseType) \n\t}\n\n\tconst UsecaseHandler = (props) => {\n\t\tconst { data, index, diff } = props\n\n\t\tconst leftImage = data.left_image !== undefined ? parsedDatatypeImages[data.left_image] : undefined\n\t\tconst rightImage = data.right_image !== undefined ? parsedDatatypeImages[data.right_image] : undefined\n\n\t\tif (leftImage === undefined) {\n\t\t\tconsole.log(\"LEFT MISSING: \", leftImage)\n\t\t}\n\n\t\tif (rightImage === undefined) {\n\t\t\tconsole.log(\"Right MISSING: \", rightImage)\n\t\t}\n\n\t\tconst parsedRightImage = \"\"\n\t\tconst parsedRightText =
{data.right_text}
\n\n\t\tconst parsedLeftImage = \"\"\n\t\tconst parsedLeftText =
{data.left_text}
\n\n\t\tconst svgSize = 20\n\t\tvar svgIcon = \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\tif (data.direction === \"right\") {\n\t\t\tsvgIcon = \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t} else if (data.direction === \"left\") {\n\t\t\tsvgIcon = \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t}\n\n\t\t//{\"usecase_directional_arrow_\"+index}\n\t\t//\n\t\tconst handleHover = () => {\n\t\t\t//console.log(\"Hover IN: \", data.automated)\n\n\t\t\tconst allEdges = cy.edges().jsons()\n\t\t\tfor (var key in allEdges) {\n\t\t\t\tconst newedge = allEdges[key]\n\t\t\t\tconst foundelement = cy.getElementById(newedge.data.id)\n\t\t\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\t\t\tfoundelement.remove()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//const newedges = usecases[value][parsedType]\n\t\t\tfor (var key in data.automated) {\n\t\t\t\tdata.automated[key].label = parseInt(key)+1\n\n\t\t\t\tif (data.automated[key].description !== undefined && data.automated[key].description !== null && data.automated[key].description.length > 0) {\n\t\t\t\t\tdata.automated[key].label = (parseInt(key)+1)+\" \"+data.automated[key].description\n\t\t\t\t}\n\n\t\t\t\tcy.add({\n\t\t\t\t\tgroup: \"edges\", \n\t\t\t\t\tdata: data.automated[key],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst handleHoverOut = () => {\n\t\t\t//console.log(\"Hover out: \", data.automated)\n\t\t\t//const allEdges = cy.edges().jsons()\n\t\t\t//for (var key in allEdges) {\n\t\t\t//\tconst newedge = allEdges[key]\n\t\t\t//\tconst foundelement = cy.getElementById(newedge.data.id)\n\t\t\t//\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\t//\t\tfoundelement.remove()\n\t\t\t//\t}\n\t\t\t//}\n\t\t}\n\n\t\tconst bgColor = color === undefined || color === null || color.length === 0 ? theme.palette.surfaceColor : color\n\t\tconsole.log(\"BGCOLOR: \", bgColor)\n\n\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{data.name}\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{parsedLeftImage}\n\t\t\t\t\t\t\t{parsedLeftText}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{svgIcon}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{parsedRightImage}\n\t\t\t\t\t\t\t{parsedRightText}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t)\n\t}\n\n\tconst selectedUsecases = [\n\t{\n\t\t\"name\": \"Sync tickets\",\n\t\t\"description\": \"Do cool shit weeeee - this just ensure they are syncing\",\n\t\t\"left_text\": \"Cases\",\n\t\t\"right_text\": \"Cases\",\n\t\t\"left_image\": \"Cases\",\n\t\t\"right_image\": \"Cases\",\n\t\t\"direction\": \"both\",\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"CASES\",\n\t\t\t\t\"target\":\t\"SHUFFLE\",\n\t\t\t\t\"description\": \"Get cases\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"source\":\t\"SHUFFLE\",\n\t\t\t\t\"target\":\t\"CASES\",\n\t\t\t\t\"description\": \"Update cases\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t},\n\t{\n\t\t\"name\": \"Forward alerts with enrichment\",\n\t\t\"description\": \"Do cool shit weeeee - this just ensure they are syncing\",\n\t\t\"left_text\": \"EDR & AV\",\n\t\t\"right_text\": \"Cases\",\n\t\t\"left_image\": \"EDR & AV\",\n\t\t\"right_image\": \"Cases\",\n\t\t\"direction\": \"right\",\n\t\t\"manual\": [],\n\t\t\"automated\": [\n\t\t\t{\n\t\t\t\t\"source\":\t\"BOTTOM_LEFT\",\n\t\t\t\t\"target\":\t\"COMMS\",\n\t\t\t\t\"description\": \"Email received\",\n\t\t\t\t\"human\": false,\n\t\t\t},\n\t\t]\n\t}\n\t]\n\n\t//autounselectify={true}\n\tvar usecasediff = -100\n\tconst bgColor = color === undefined || color === null || color.length === 0 ? theme.palette.surfaceColor : color\n\n\treturn (\t\n\t\t
\n\t\t\t
\n\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{showOptions === false ? null : \n\t\t\t\t
\n\t\t\t\t\t{Object.keys(usecases).map((data, index) => {\n\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t}\n \t\t{/*\n\t\t\t\tObject.getOwnPropertyNames(discoveryData).length > 0 ? \n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tUse-cases\n\t\t\t\t\t\t\n\t\t\t\t\t\t{selectedUsecases.map((data, index) => {\n\t\t\t\t\t\t\tusecasediff += 175\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t: null*/}\n\n \t\t{\n\t\t\t\tObject.getOwnPropertyNames(discoveryData).length > 0 ? \n\t\t\t\t\t\n\t\t\t\t\t\t{paperTitle.length > 0 ? \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{paperTitle}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t//cy.elements().unselectify();\n\t\t\t\t\t\t\t\t\tcy.elements().unselect()\n\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tsetDiscoveryData({})\n\t\t\t\t\t\t\t\t\tsetDefaultSearch(\"\")\n\t\t\t\t\t\t\t\t\tsetPaperTitle(\"\")\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tsetDiscoveryData({\n\t\t\t\t\t\t\t\t\t\t\"id\": discoveryData.id,\n\t\t\t\t\t\t\t\t\t\t\"label\": discoveryData.label,\n\t\t\t\t\t\t\t\t\t\t\"name\": \"\"\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tsetNewSelectedApp({\n\t\t\t\t\t\t\t\t\t\t\"animate\": false,\n\t\t\t\t\t\t\t\t\t\t\"app_id\": \"\",\n\t\t\t\t\t\t\t\t\t\t\"boxheight\": \"66.3px\",\n\t\t\t\t\t\t\t\t\t\t\"boxwidth\": \"66.3px\",\n\t\t\t\t\t\t\t\t\t\t\"description\": \"\",\n\t\t\t\t\t\t\t\t\t\t\"errors\": [],\n\t\t\t\t\t\t\t\t\t\t\"font_size\": \"9.36px\",\n\t\t\t\t\t\t\t\t\t\t\"height\": \"66.3px\",\n\t\t\t\t\t\t\t\t\t\t\"id\": \"\",\n\t\t\t\t\t\t\t\t\t\t\"isValid\": true,\n\t\t\t\t\t\t\t\t\t\t\"is_valid\": true,\n\t\t\t\t\t\t\t\t\t\t\"label\": \"SIEM\",\n\t\t\t\t\t\t\t\t\t\t\"large_image\": \"asd\",\n\t\t\t\t\t\t\t\t\t\t\"margin_x\": \"0px\",\n\t\t\t\t\t\t\t\t\t\t\"margin_y\": \"0px\",\n\t\t\t\t\t\t\t\t\t\t\"name\": \"\",\n\t\t\t\t\t\t\t\t\t\t\"text_margin_y\": \"46.800000000000004px\",\n\t\t\t\t\t\t\t\t\t\t\"width\": \"66.3px\",\n\t\t\t\t\t\t\t\t\t\t\"objectID\": \"remove\",\n\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\tsetSelectionOpen(true)\n\t\t\t\t\t\t\t\t\tsetDefaultSearch(\"\")\n\n\t\t\t\t\t\t\t\t\tconst foundelement = cy.getElementById(discoveryData.id)\n\t\t\t\t\t\t\t\t\tif (foundelement !== undefined && foundelement !== null) {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"element: \", foundelement)\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"large_image\", discoveryData.large_image)\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"text_margin_y\", \"14px\")\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"margin_x\", \"32px\")\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"margin_y\", \"19x\")\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"width\", \"45px\")\n\t\t\t\t\t\t\t\t\t\tfoundelement.data(\"height\", \"45px\")\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tsetDiscoveryData({})\n\t\t\t\t\t\t\t\t\t\tsetNewSelectedApp({})\n\t\t\t\t\t\t\t\t\t}, 1000)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t{discoveryData.id} 0 ? newSelectedApp.image_url : discoveryData.large_image} style={{height: 40, width: 40, margin: \"auto\",}}/>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t{discoveryData.id}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t\t\t\tdiscoveryData.name\n\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\tnewSelectedApp.name !== undefined && newSelectedApp.name !== null && newSelectedApp.name.length > 0 ?\n\t\t\t\t\t\t\t\t\t\tnewSelectedApp.name\n\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t\t`Find your ${discoveryData.label} app!`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{discoveryData !== undefined && discoveryData.name !== undefined && discoveryData.name !== null && discoveryData.name.length > 0 ? \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{discoveryData.description}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*isCloud && defaultSearch !== undefined && defaultSearch.length > 0 ? \n\t\t\t\t\t\t\t\t\t\t{<\n\t\t\t\t\t\t\t\t\t\t\tnewSelectedApp={newSelectedApp}\n\t\t\t\t\t\t\t\t\t\t\tsetNewSelectedApp={setNewSelectedApp}\n\t\t\t\t\t\t\t\t\t\t\tdefaultSearch={defaultSearch}\n\t\t\t\t\t\t\t\t\t\t/>}\n\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\tselectionOpen \n\t\t\t\t\t\t\t\t\t? \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tClick an app below to select it\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectionOpen(true)\n\t\t\t\t\t\t\t\t\t\t\tsetDefaultSearch(discoveryData.label)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tChoose {discoveryData.label} app\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{selectionOpen ? \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t: null\n\t\t\t}\n\t\t\t {\n\t\t\t\t\t// FIXME: There's something specific loading when\n\t\t\t\t\t// you do the first hover of a node. Why is this different?\n\t\t\t\t\t//console.log(\"CY: \", incy)\n\t\t\t\t\tsetCy(incy)\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{isCloud && inputUsecase !== undefined && inputUsecase !== null && isLoggedIn === true && Object.keys(inputUsecase).length > 0 ? \n\t\t\t\t\n\t\t\t: null}\n\t\t
\n\t)\n}\n\nexport default AppFramework;\n","import React, { useEffect, useContext } from \"react\";\nimport theme from '../theme';\nimport { isMobile } from \"react-device-detect\" \nimport ChipInput from \"material-ui-chip-input\";\nimport UsecaseSearch from \"../components/UsecaseSearch.jsx\"\n\nimport {\n Badge,\n Avatar,\n Grid,\n\tInputLabel,\n\tSelect,\n\tListSubheader,\n Paper,\n Tooltip,\n Divider,\n Button,\n TextField,\n IconButton,\n Menu,\n MenuItem,\n FormControlLabel,\n Chip,\n Switch,\n Typography,\n Zoom,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n\tOutlinedInput,\n\tCheckbox,\n\tListItemText,\n\tRadio,\n\tRadioGroup,\n\tFormControl,\n\tFormLabel,\n\n} from \"@material-ui/core\";\n\nimport {\n ExpandLess as ExpandLessIcon,\n ExpandMore as ExpandMoreIcon,\n Publish as PublishIcon,\n} from \"@material-ui/icons\";\n\nconst EditWorkflow = (props) => {\n\tconst { globalUrl, workflow, setWorkflow, modalOpen, setModalOpen, showUpload, usecases, setNewWorkflow, appFramework, isEditing, userdata, } = props\n\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [showMoreClicked, setShowMoreClicked] = React.useState(false);\n\tconst [innerWorkflow, setInnerWorkflow] = React.useState(workflow)\n const [_, setUpdate] = React.useState(\"\"); // Used for rendering, don't remove\n const [newWorkflowTags, setNewWorkflowTags] = React.useState(workflow.tags !== undefined && workflow.tags !== null ? JSON.parse(JSON.stringify(workflow.tags)) : [])\n const [selectedUsecases, setSelectedUsecases] = React.useState(workflow.usecase_ids !== undefined && workflow.usecase_ids !== null ? JSON.parse(JSON.stringify(workflow.usecase_ids)) : []);\n\tconst [foundWorkflowId, setFoundWorkflowId] = React.useState(\"\")\n\tconst [name, setName] = React.useState(workflow.name !== undefined ? workflow.name : \"\")\n\tconst [description, setDescription] = React.useState(workflow.description !== undefined ? workflow.description : \"\")\n\n\n\t// Gets the generated workflow \n\tconst getGeneratedWorkflow = (workflow_id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + workflow_id, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 when getting workflow\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.id === workflow_id) {\n\t\t\t\tconsole.log(\"GOT WORKFLOW: \", responseJson)\n\t\t\t\tif (name === \"\") {\n\t\t\t\t\tinnerWorkflow.name = responseJson.name\n\t\t\t\t\tsetName(responseJson.name)\n\t\t\t\t}\n\n\t\t\t\tif (description === \"\") {\n\t\t\t\t\tinnerWorkflow.description = responseJson.description\n\t\t\t\t\tsetDescription(description)\n\t\t\t\t}\n\n\t\t\t\tif (newWorkflowTags === []) {\n\t\t\t\t\tinnerWorkflow.tags = responseJson.tags\n\t\t\t\t\tsetNewWorkflowTags(responseJson.tags)\n\t\t\t\t}\n\n\t\t\t\tif (selectedUsecases === []) {\n\t\t\t\t\tselectedUsecases = responseJson.usecase_ids\n\t\t\t\t}\n\n\t\t\t\tinnerWorkflow.id = responseJson.id\n\t\t\t\tinnerWorkflow.blogpost = responseJson.blogpost\n\t\t\t\tinnerWorkflow.actions = responseJson.actions\n\t\t\t\tinnerWorkflow.triggers = responseJson.triggers\n\t\t\t\tinnerWorkflow.branches = responseJson.branches\n\t\t\t\tinnerWorkflow.comments = responseJson.comments\n\t\t\t\tinnerWorkflow.workflow_variables = responseJson.workflow_variables\n\t\t\t\tinnerWorkflow.execution_variables = responseJson.execution_variables\n\n\n\t\t\t\tsetInnerWorkflow(innerWorkflow)\n \t setUpdate(Math.random())\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\t//alert.error(error.toString());\n\t\t\tconsole.log(\"Get workflow error: \", error.toString());\n\t\t})\n\t}\n\n\tif (foundWorkflowId.length > 0) {\n\t\tgetGeneratedWorkflow(foundWorkflowId)\n\n\t\tsetFoundWorkflowId(\"\")\n\t} else {\n\t}\n\n\tif (modalOpen !== true) {\n\t\treturn null\n\t}\n\n\tconst newWorkflow = isEditing === true ? false : true\n\n var upload = \"\";\n\tvar total_count = 0\n\n\treturn (\n {\n setModalOpen(false);\n }}\n PaperProps={{\n style: {\n backgroundColor: theme.palette.surfaceColor,\n color: \"white\",\n minWidth: isMobile ? \"90%\" : newWorkflow === true ? 1000 : 550,\n maxWidth: isMobile ? \"90%\" : newWorkflow === true ? 1000 : 550,\n\t\t\t\t\tminHeight: 400,\n },\n }}\n >\n \n\t\t\t\t
\n \t
\n\t\t\t\t\t\t\n \t \t{newWorkflow ? \"New\" : \"Editing\"} workflow\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tWorkflows can be built from scratch, or from templates. Usecases can help you discover next steps, and you can search for them directly. Learn more\n\t\t\t\t\t\t\n\t\t\t\t\t\t{showUpload === true ? \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t upload.click()}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n \t \t
\n\t\t\t\t\t\t: null}\n \t
\n\t\t\t\t\t{newWorkflow === true ? \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tUse a Template\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tStart your workflow from our templating system. This uses publied workflows from our Creators to generate full Usecases or parts of your Workflow.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t: null}\n\t\t\t\t
\n
\n \n \n\t\t\t\t\t
\n \t {\n\t\t\t\t\t\t\t\tsetName(event.target.value)\n\t\t\t\t\t\t\t}}\n \t InputProps={{\n \t style: {\n \t color: \"white\",\n \t },\n \t }}\n \t color=\"primary\"\n \t placeholder=\"Name\"\n\t\t\t\t\t\t\trequired\n \t margin=\"dense\"\n \t defaultValue={innerWorkflow.name}\n\t\t\t\t\t\t\tlabel=\"Name\"\n \t autoFocus\n \t fullWidth\n \t/>\n \t {\n\t\t\t\t\t\t\t\tsetDescription(event.target.value)\n\t\t\t\t\t\t\t}}\n \t InputProps={{\n \t style: {\n \t color: \"white\",\n \t },\n \t }}\n\t\t\t\t\t\t\tmaxRows={4}\n \t color=\"primary\"\n \t defaultValue={innerWorkflow.description}\n \t placeholder=\"Description\"\n \t multiline\n\t\t\t\t\t\t\tlabel=\"Description\"\n \t margin=\"dense\"\n \t fullWidth\n \t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tnewWorkflowTags.push(chip);\n\t\t\t\t\t\t\t\t\tsetNewWorkflowTags(newWorkflowTags);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonDelete={(chip, index) => {\n\t\t\t\t\t\t\t\t\tnewWorkflowTags.splice(index, 1);\n\t\t\t\t\t\t\t\t\tsetNewWorkflowTags(newWorkflowTags);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{usecases !== null && usecases !== undefined && usecases.length > 0 ? \n \t\t\t\t\t\n \t\t\t\t\t Usecases\n \t\t\t\t\t \n \t\t\t\t\t\n\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t
\n\n \t\t\t\t\t{showMoreClicked === true ? \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Data: \", e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tinnerWorkflow.workflow_type = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\tsetInnerWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t} label=\"Test\" />\n\t\t\t\t\t\t\t\t\t\t\t} label=\"Production\" />\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tType\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Data: \", e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tinnerWorkflow.workflow_type = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\tsetInnerWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t} label=\"Trigger\" />\n\t\t\t\t\t\t\t\t\t\t\t} label=\"Subflow\" />\n\t\t\t\t\t\t\t\t\t\t\t} label=\"Standalone\" />\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tinnerWorkflow.blogpost = event.target.value\n\t\t\t\t\t\t\t\t\t\tsetInnerWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tdefaultValue={innerWorkflow.blogpost}\n\t\t\t\t\t\t\t\t\tplaceholder=\"A blogpost or other reference for how this work workflow was built, and what it's for.\"\n\t\t\t\t\t\t\t\t\trows=\"1\"\n\t\t\t\t\t\t\t\t\tlabel=\"blogpost\"\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tinnerWorkflow.video = event.target.value\n\t\t\t\t\t\t\t\t\t\tsetInnerWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tdefaultValue={innerWorkflow.video}\n\t\t\t\t\t\t\t\t\tplaceholder=\"A youtube or loom link to the video\"\n\t\t\t\t\t\t\t\t\trows=\"1\"\n\t\t\t\t\t\t\t\t\tlabel=\"Video\"\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tinnerWorkflow.default_return_value = event.target.value\n\t\t\t\t\t\t\t\t\t\tsetInnerWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tdefaultValue={innerWorkflow.default_return_value}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Default return value (used for Subflows if the subflow fails)\"\n\t\t\t\t\t\t\t\t\trows=\"3\"\n\t\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\t\tlabel=\"Default return value\"\n\t\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t: null}\n \t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowMoreClicked(!showMoreClicked);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{showMoreClicked ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{newWorkflow === true ? \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t: null}\n \n \n {\n\t\t\t\t\t\t\tif (setNewWorkflow !== undefined) {\n\t\t\t\t\t\t\t\tsetWorkflow({})\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetModalOpen(false)\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n\t\t\t\t\t\t\tinnerWorkflow.name = name \n\t\t\t\t\t\t\tinnerWorkflow.description = description \n\t\t\t\t\t\t\tif (newWorkflowTags.length > 0) {\n\t\t\t\t\t\t\t\tinnerWorkflow.tags = newWorkflowTags\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (selectedUsecases.length > 0) {\n\t\t\t\t\t\t\t\tinnerWorkflow.usecase_ids = selectedUsecases\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\tif (setNewWorkflow !== undefined) {\n\t\t\t\t\t\t\t\tsetNewWorkflow(\n\t\t\t\t\t\t\t\t\tinnerWorkflow.name,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.description,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.tags,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.default_return_value,\n\t\t\t\t\t\t\t\t\tinnerWorkflow,\n\t\t\t\t\t\t\t\t\tnewWorkflow,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.usecase_ids,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.blogpost,\n\t\t\t\t\t\t\t\t\tinnerWorkflow.status,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tsetWorkflow({})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetWorkflow(innerWorkflow)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetModalOpen(false)\n }}\n color=\"primary\"\n >\n {submitLoading ? : \"Submit\"}\n \n \n \n \n\t)\n}\n\nexport default EditWorkflow;\n","import React, { useEffect, useContext } from \"react\";\nimport ReactDOM from \"react-dom\"\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport { Navigate } from \"react-router-dom\";\n//import { Redirect } from \"react-router-dom\";\n\n\nimport SecurityFramework from '../components/SecurityFramework.jsx';\nimport EditWorkflow from \"../components/EditWorkflow.jsx\" \nimport { ShepherdTour, ShepherdTourContext } from 'react-shepherd'\n\nimport { isMobile } from \"react-device-detect\" \n\nimport {\n Badge,\n\tDivider,\n Avatar,\n Drawer,\n Grid,\n\tInputLabel,\n\tSelect,\n\tListSubheader,\n Paper,\n Tooltip,\n Button,\n TextField,\n FormControl,\n IconButton,\n Menu,\n MenuItem,\n Chip,\n Typography,\n Zoom,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n\tCheckbox,\n\tLinearProgress,\n\tListItemText,\n} from \"@material-ui/core\";\n\nimport {\n AvatarGroup,\n} from \"@mui/material\"\n\nimport {\n GridOn as GridOnIcon,\n List as ListIcon,\n Close as CloseIcon,\n Compare as CompareIcon,\n Maximize as MaximizeIcon,\n Minimize as MinimizeIcon,\n AddCircle as AddCircleIcon,\n Toc as TocIcon,\n Send as SendIcon,\n Search as SearchIcon,\n FileCopy as FileCopyIcon,\n Delete as DeleteIcon,\n BubbleChart as BubbleChartIcon,\n Restore as RestoreIcon,\n Cached as CachedIcon,\n GetApp as GetAppIcon,\n Apps as AppsIcon,\n Edit as EditIcon,\n MoreVert as MoreVertIcon,\n PlayArrow as PlayArrowIcon,\n Add as AddIcon,\n Publish as PublishIcon,\n CloudUpload as CloudUploadIcon,\n CloudDownload as CloudDownloadIcon,\n ExpandLess as ExpandLessIcon,\n ExpandMore as ExpandMoreIcon,\n\tDone as DoneIcon,\n\tCheckCircle as CheckCircleIcon, \n\tRadioButtonUnchecked as RadioButtonUncheckedIcon,\n ArrowLeft as ArrowLeftIcon,\n ArrowRight as ArrowRightIcon,\n} from \"@material-ui/icons\";\n\n//import NestedMenuItem from \"material-ui-nested-menu-item\";\n//import {Search as SearchIcon, ArrowUpward as ArrowUpwardIcon, Visibility as VisibilityIcon, Close as CloseIcon, Error as ErrorIcon, FindReplace as FindreplaceIcon, ArrowLeft as ArrowLeftIcon, Cached as CachedIcon, DirectionsRun as DirectionsRunIcon, Add as AddIcon, Polymer as PolymerIcon, FormatListNumbered as FormatListNumberedIcon, Create as CreateIcon, PlayArrow as PlayArrowIcon, AspectRatio as AspectRatioIcon, MoreVert as MoreVertIcon, Apps as AppsIcon, Schedule as ScheduleIcon, FavoriteBorder as FavoriteBorderIcon, Pause as PauseIcon, Delete as DeleteIcon, AddCircleOutline as AddCircleOutlineIcon, Save as SaveIcon, KeyboardArrowLeft as KeyboardArrowLeftIcon, KeyboardArrowRight as KeyboardArrowRightIcon, ArrowBack as ArrowBackIcon, Settings as SettingsIcon, LockOpen as LockOpenIcon, ExpandMore as ExpandMoreIcon, VpnKey as VpnKeyIcon} from '@material-ui/icons';\n\n//https://next.material-ui.com/components/material-icons/\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\n//import JSONPretty from 'react-json-pretty';\n//import JSONPrettyMon from 'react-json-pretty/dist/monikai'\nimport Dropzone from \"../components/Dropzone\";\n\nimport { useNavigate, Link } from \"react-router-dom\";\nimport { useAlert } from \"react-alert\";\nimport ChipInput from \"material-ui-chip-input\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n\nconst inputColor = \"#383B40\";\nconst surfaceColor = \"#27292D\";\nconst svgSize = 24;\nconst imagesize = 22;\n\nconst useStyles = makeStyles((theme) => ({\n datagrid: {\n border: 0,\n \"& .MuiDataGrid-columnsContainer\": {\n backgroundColor:\n theme.palette.type === \"light\" ? \"#fafafa\" : theme.palette.inputColor,\n },\n \"& .MuiDataGrid-iconSeparator\": {\n display: \"none\",\n },\n \"& .MuiDataGrid-colCell, .MuiDataGrid-cell\": {\n borderRight: `1px solid ${\n theme.palette.type === \"light\" ? \"white\" : \"#303030\"\n }`,\n },\n \"& .MuiDataGrid-columnsContainer, .MuiDataGrid-cell\": {\n borderBottom: `1px solid ${\n theme.palette.type === \"light\" ? \"#f0f0f0\" : \"#303030\"\n }`,\n },\n \"& .MuiDataGrid-cell\": {\n color:\n theme.palette.type === \"light\" ? \"white\" : \"rgba(255,255,255,0.65)\",\n },\n \"& .MuiPaginationItem-root, .MuiTablePagination-actions, .MuiTablePagination-caption\":\n {\n borderRadius: 0,\n color: \"white\",\n },\n },\n}));\n\n// Takes an action in Shuffle and\n// Returns information about the icon, the color etc to be used\n// This can be used for actions of all types\nexport const GetIconInfo = (action) => {\n // Finds the icon based on the action. Should be verbs.\n const iconList = [\n { key: \"cache_add\", values: [\"set_cache\"] },\n { key: \"cache_get\", values: [\"get_cache\"] },\n { key: \"filter\", values: [\"filter\"] },\n { key: \"merge\", values: [\"join\", \"merge\", \"route\", \"router\"] },\n {\n key: \"search\",\n values: [\"search\", \"find\", \"locate\", \"index\", \"analyze\", \"anal\", \"match\", \"check cache\", \"check\", \"verify\", \"validate\"],\n },\n { key: \"list\", values: [\"list\", \"head\", \"options\"] },\n {\n key: \"download\",\n values: [\n \"capture\",\n \"get\",\n \"download\",\n \"return\",\n \"hello_world\",\n \"curl\",\n \"request\",\n \"export\",\n \"preview\",\n ],\n },\n { key: \"add\", values: [\"add\", \"accept\", ] },\n { key: \"delete\", values: [\"delete\", \"remove\", \"clear\", \"clean\", \"dismiss\",] },\n {\n key: \"send\",\n values: [\n \"send\",\n \"dispatch\",\n \"mail\",\n \"forward\",\n \"post\",\n \"submit\",\n \"mark\",\n \"set\",\n \"release\",\n ],\n },\n {\n key: \"repeat\",\n values: [\"repeat\", \"retry\", \"pause\", \"skip\", \"copy\", \"replicat\", \"demo\", ],\n },\n { key: \"execute\", values: [\"execute\", \"run\", \"play\", \"raise\"] },\n { key: \"extract\", values: [\"extract\", \"unpack\", \"decompress\", \"open\"] },\n { key: \"inflate\", values: [\"inflate\", \"pack\", \"compress\"] },\n {\n key: \"edit\",\n values: [\n \"modify\",\n \"update\",\n \"create\",\n \"edit\",\n \"put\",\n \"patch\",\n \"change\",\n \"replace\",\n \"conver\",\n \"map\",\n \"format\",\n \"escape\",\n \"describe\",\n ],\n },\n {\n key: \"compare\",\n values: [\"compare\", \"convert\", \"to\", \"filter\", \"translate\", \"parse\"],\n },\n { key: \"close\", values: [\"close\", \"stop\", \"cancel\", \"block\"] },\n ];\n\n var selectedKey = \"\";\n if (action.name === undefined || action.name === null) {\n } else {\n const actionname = action.name.toLowerCase();\n for (var key in iconList) {\n //console.log(iconList[key], actionname)\n const found = iconList[key].values.find((value) =>\n actionname.includes(value)\n );\n if (found !== null && found !== undefined) {\n selectedKey = iconList[key].key;\n break;\n }\n }\n }\n\n // Some of these are manually parsed or created instead of material ui\n //M8 0C3.58 0 0 1.79 0 4C0 6.21 3.58 8 8 8C12.42 8 16 6.21 16 4C16 1.79 12.42 0 8 0ZM0 6V9C0 11.21 3.58 13 8 13C12.42 13 16 11.21 16 9V6C16 8.21 12.42 10 8 10C3.58 10 0 8.21 0 6ZM0 11V14C0 16.21 3.58 18 8 18C9.41 18 10.79 17.81 12 17.46V14.46C10.79 14.81 9.41 15 8 15C3.58 15 0 13.21 0 11ZM17 11V14H14V16H17V19H19V16H22V14H19V11\n //https://www.figma.com/file/uCfnMs5w6wnLx6ehPHEV74/Figma-Material-Design-System-v3_0?node-id=834%3A21\n //COLORS: https://www.pinterest.co.uk/pin/326299935499972946/\n const defaultColor = \"#f76b1c\";\n const defaultGradient = [\"#fad961\", \"#f76b1c\"];\n const parsedIcons = {\n cache_add: {\n icon: \"M11 3C6.58 3 3 4.79 3 7C3 9.21 6.58 11 11 11C15.42 11 19 9.21 19 7C19 4.79 15.42 3 11 3ZM3 9V12C3 14.21 6.58 16 11 16C15.42 16 19 14.21 19 12V9C19 11.21 15.42 13 11 13C6.58 13 3 11.21 3 9ZM3 14V17C3 19.21 6.58 21 11 21C12.41 21 13.79 20.81 15 20.46V17.46C13.79 17.81 12.41 18 11 18C6.58 18 3 16.21 3 14ZM20 14V17H17V19H20V22H22V19H25V17H22V14\",\n iconColor: \"white\",\n iconBackgroundColor: \"#8acc3f\",\n originalIcon: \"\",\n fillGradient: [\"#8acc3f\", \"#459622\"],\n },\n cache_get: {\n icon: \"M12 2C7.58 2 4 3.79 4 6C4 8.06 7.13 9.74 11.15 9.96C12.45 8.7 14.19 8 16 8C16.8 8 17.59 8.14 18.34 8.41C19.37 7.74 20 6.91 20 6C20 3.79 16.42 2 12 2ZM4 8V11C4 12.68 6.08 14.11 9 14.71C9.06 13.7 9.32 12.72 9.77 11.82C6.44 11.34 4 9.82 4 8ZM15.93 9.94C14.75 9.95 13.53 10.4 12.46 11.46C8.21 15.71 13.71 22.5 18.75 19.17L23.29 23.71L24.71 22.29L20.17 17.75C22.66 13.97 19.47 9.93 15.93 9.94ZM15.9 12C17.47 11.95 19 13.16 19 15C19 15.7956 18.6839 16.5587 18.1213 17.1213C17.5587 17.6839 16.7956 18 16 18C13.33 18 12 14.77 13.88 12.88C14.47 12.29 15.19 12 15.9 12ZM4 13V16C4 18.05 7.09 19.72 11.06 19.95C10.17 19.07 9.54 17.95 9.22 16.74C6.18 16.17 4 14.72 4 13Z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#8acc3f\",\n originalIcon: \"\",\n fillGradient: [\"#8acc3f\", \"#459622\"],\n },\n repeat: {\n icon: \"M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n add: {\n icon: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n edit: {\n icon: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n filter: {\n icon: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#f5515f\",\n originalIcon: \"\",\n fillGradient: [\"#f5515f\", \"#a1051d\"],\n },\n merge: {\n icon: \"M17 20.41 18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#f5515f\",\n originalIcon: \"\",\n fillGradient: [\"#f5515f\", \"#a1051d\"],\n },\n compare: {\n icon: \"M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n extract: {\n icon: \"M3 3h18v2H3z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n inflate: {\n icon: \"M6 19h12v2H6z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n list: {\n icon: \"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n execute: {\n icon: \"M8 5v14l11-7z\",\n iconColor: \"white\",\n iconBackgroundColor: defaultColor,\n originalIcon: ,\n },\n delete: {\n icon: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#03030e\",\n originalIcon: ,\n fillGradient: [\"#03030e\", \"#205d66\"],\n },\n close: {\n icon: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#03030e\",\n originalIcon: ,\n fillGradient: [\"#03030e\", \"#205d66\"],\n },\n send: {\n icon: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#0373da\",\n originalIcon: ,\n fillGradient: [\"#0bc8bf\", \"#0373da\"],\n },\n download: {\n icon: \"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\",\n iconColor: \"white\",\n iconBackgroundColor: \"#0373da\",\n originalIcon: ,\n fillGradient: [\"#0bc8bf\", \"#0373da\"],\n },\n search: {\n icon: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\",\n iconColor: \"white\",\n iconBackgroundColor: \"green\",\n originalIcon: ,\n },\n };\n\n var selectedItem = parsedIcons[selectedKey];\n if (selectedItem === undefined || selectedItem === null) {\n return {\n icon: \"\",\n iconColor: \"\",\n iconBackground: \"black\",\n originalIcon: \"\",\n };\n }\n\n if (selectedItem.fillGradient === undefined) {\n selectedItem.fillGradient = defaultGradient;\n selectedItem.iconBackgroundColor = defaultColor;\n }\n\n if (selectedItem.icon === \"\" || selectedItem.icon === undefined) {\n console.log(\n `MISSING PATH FOR ${selectedKey} (find in scope): `,\n selectedItem.originalIcon.type.type\n );\n }\n\n if (\n (selectedItem.originalIcon === undefined ||\n selectedItem.originalIcon === \"\") &&\n selectedItem.icon !== \"\" &&\n selectedItem.icon !== undefined\n ) {\n const svg_pin = (\n \n \n \n );\n selectedItem.originalIcon = svg_pin;\n }\n\n return selectedItem;\n};\n\nconst chipStyle = {\n backgroundColor: \"#3d3f43\",\n marginRight: 5,\n paddingLeft: 5,\n paddingRight: 5,\n height: 28,\n cursor: \"pointer\",\n borderColor: \"#3d3f43\",\n color: \"white\",\n};\n\nexport const validateJson = (showResult) => {\n\tif (typeof showResult === 'string') {\n\t\tshowResult = showResult.split(\" False\").join(\" false\")\n\t\tshowResult = showResult.split(\" True\").join(\" true\")\n\t}\n\n\tif (typeof showResult === \"object\" || typeof showResult === \"array\") {\n \treturn {\n \t valid: true,\n \t result: showResult,\n \t}\n\t}\n\n\tif (showResult[0] === \"\\\"\") {\n \treturn {\n \t valid: false,\n \t result: showResult,\n\t\t}\n\t}\n\n var jsonvalid = true\n try {\n if (!showResult.includes(\"{\") && !showResult.includes(\"[\")) {\n jsonvalid = false\n\n\t\t\treturn {\n\t\t\t\tvalid: jsonvalid,\n\t\t\t\tresult: showResult,\n\t\t\t};\n }\n } catch (e) {\n showResult = showResult.split(\"'\").join('\"');\n\n try {\n if (!showResult.includes(\"{\") && !showResult.includes(\"[\")) {\n jsonvalid = false;\n }\n } catch (e) {\n\n jsonvalid = false;\n }\n }\n\n var result = showResult;\n try {\n result = jsonvalid ? JSON.parse(showResult, {\"storeAsString\": true}) : showResult;\n } catch (e) {\n ////console.log(\"Failed parsing JSON even though its valid: \", e)\n jsonvalid = false;\n }\n\n\tif (jsonvalid === false) {\n\n\t\tif (typeof showResult === 'string') {\n\t\t\tshowResult = showResult.trim()\n\t\t}\n\n\t\ttry {\n\t\t\tvar newstr = showResult.replaceAll(\"'\", '\"')\n\n\t\t\t//console.log(\"Try replacements and trimming with new value: \", newstr)\n\t\t\tresult = JSON.parse(newstr)\n\t\t\tjsonvalid = true\n\t\t} catch (e) {\n\n\t\t\t//console.log(\"Failed parsing JSON even though its valid (2): \", e)\n\t\t\tjsonvalid = false\n\t\t}\n\t}\n\n\tif (jsonvalid && typeof result === \"number\") {\n\t\tjsonvalid = false\n\t}\n\n\t// This is where we start recursing\n\tif (jsonvalid) {\n\t\t// Check fields if they can be parsed too \n try {\n\t\t\tfor (const [key, value] of Object.entries(result)) {\n\t\t\t\tif (typeof value === \"string\" && (value.startsWith(\"{\") || value.startsWith(\"[\"))) {\n\t\t\t\t\tconst inside_result = validateJson(value)\n\t\t\t\t\tif (inside_result.valid) {\n\t\t\t\t\t\tif (typeof inside_result.result === \"string\") {\n \t\tconst newres = JSON.parse(inside_result.result)\n\t\t\t\t\t\t\tresult[key] = newres \n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[key] = inside_result.result\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(\"Failed parsing inside json subvalues: \", e)\n\t\t}\n\t}\n\n return {\n valid: jsonvalid,\n result: result,\n };\n};\n\nconst Workflows = (props) => {\n const { globalUrl, isLoggedIn, isLoaded, userdata } = props;\n document.title = \"Shuffle - Workflows\";\n\tlet navigate = useNavigate();\n\n const theme = useTheme();\n const alert = useAlert();\n const classes = useStyles(theme);\n const imgSize = 60;\n\n const referenceUrl = globalUrl + \"/api/v1/hooks/\";\n\n var upload = \"\";\n\n const [workflows, setWorkflows] = React.useState([]);\n const [_, setUpdate] = React.useState(\"\"); // Used for rendering, don't remove\n const [selectedUsecases, setSelectedUsecases] = React.useState([]);\n const [filteredWorkflows, setFilteredWorkflows] = React.useState([]);\n const [selectedWorkflow, setSelectedWorkflow] = React.useState({});\n const [workflowDone, setWorkflowDone] = React.useState(false);\n const [selectedWorkflowId, setSelectedWorkflowId] = React.useState(\"\");\n\n const [field1, setField1] = React.useState(\"\");\n const [field2, setField2] = React.useState(\"\");\n const [downloadUrl, setDownloadUrl] = React.useState(\n \"https://github.com/frikky/shuffle-workflows\"\n );\n const [downloadBranch, setDownloadBranch] = React.useState(\"master\");\n const [loadWorkflowsModalOpen, setLoadWorkflowsModalOpen] =\n React.useState(false);\n const [exportModalOpen, setExportModalOpen] = React.useState(false);\n const [exportData, setExportData] = React.useState(\"\");\n\n const [modalOpen, setModalOpen] = React.useState(false);\n const [isEditing, setIsEditing] = React.useState(true);\n const [newWorkflowName, setNewWorkflowName] = React.useState(\"\");\n const [newWorkflowDescription, setNewWorkflowDescription] =\n React.useState(\"\");\n const [newWorkflowTags, setNewWorkflowTags] = React.useState([]);\n\n const [defaultReturnValue, setDefaultReturnValue] = React.useState(\"\");\n const [blogpost, setBlogpost] = React.useState(\"\");\n const [status, setStatus] = React.useState(\"test\");\n\n const [deleteModalOpen, setDeleteModalOpen] = React.useState(false);\n const [publishModalOpen, setPublishModalOpen] = React.useState(false);\n const [editingWorkflow, setEditingWorkflow] = React.useState({});\n const [importLoading, setImportLoading] = React.useState(false);\n const [isDropzone, setIsDropzone] = React.useState(false);\n const [view, setView] = React.useState(\"grid\");\n const [filters, setFilters] = React.useState([]);\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [actionImageList, setActionImageList] = React.useState([]);\n\n const [firstLoad, setFirstLoad] = React.useState(true);\n const [showMoreClicked, setShowMoreClicked] = React.useState(false);\n const [usecases, setUsecases] = React.useState([]);\n const [appFramework, setAppFramework] = React.useState({});\n const [drawerOpen, setDrawerOpen] = React.useState(false)\n const [videoViewOpen, setVideoViewOpen] = React.useState(false)\n const [gettingStartedItems, setGettingStartedItems] = React.useState([])\n\tconst drawerWidth = drawerOpen ? 325 : 0\n\n\tconst sidebarKey = \"getting_started_sidebar\"\n\tif (isLoggedIn === true && gettingStartedItems.length === 0 && (userdata.tutorials !== undefined && userdata.tutorials !== null && userdata.tutorials.length > 0) && workflowDone === true) {\n\t\tconst activeFiltered = userdata.tutorials.filter((item) => item.active === true)\n\t\tif (activeFiltered.length > 0) {\n\t\t\tvar newfiltered = []\n\t\t\tfor (var key in activeFiltered) {\n\t\t\t\tif (activeFiltered[key].name === \"Discover Usecases\") {\n\t\t\t\t\tif (workflows.length > 1) { \n\t\t\t\t\t\tactiveFiltered[key].done = true\n\t\t\t\t\t\tactiveFiltered[key].description = `${workflows.length} workflows created`\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnewfiltered.push(activeFiltered[key])\n\t\t\t}\n\n\t\t\tsetGettingStartedItems(activeFiltered)\n\n\t\t\tconst doneFiltered = activeFiltered.filter((item) => item.done === true)\n\t\t\tif (doneFiltered.length > 0) { \n\t\t\t\tconsole.log(\"DONE: \", doneFiltered)\n\t\t\t}\n\n const sidebar = localStorage.getItem(sidebarKey);\n\t\t\tif (sidebar === null || sidebar === undefined) {\n\t\t\t\tconsole.log(\"No sidebar defined\")\n \n\t\t\t\tlocalStorage.setItem(sidebarKey, \"open\");\n \t\t\tsetDrawerOpen(true)\n } else {\n\t\t\t\tconsole.log(\"Got sidebar: \", sidebar)\n\n\t\t\t\tif (sidebar === \"open\") {\n\t\t\t\t\tconsole.log(\"OPEN the thingy!\")\n \t\t\t\tsetDrawerOpen(true)\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"Close the thingy!\")\n \t\t\t\tsetDrawerOpen(false)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\";\n\n const findWorkflow = (filters) => {\n\t\tconsole.log(\"Using filters: \", filters)\n if (filters.length === 0) {\n setFilteredWorkflows(workflows);\n return;\n }\n\n var newWorkflows = [];\n for (var workflowKey in workflows) {\n const curWorkflow = workflows[workflowKey];\n\n var found = [false];\n if (curWorkflow.tags === undefined || curWorkflow.tags === null) {\n found = filters.map((filter) =>\n curWorkflow.name.toLowerCase().includes(filter)\n );\n }\n\n if (found.every((v) => v !== true)) {\n found = filters.map((filter) => {\n if (filter === undefined || filter === null) {\n return false;\n }\n\n const newfilter = filter.toLowerCase();\n\n if (curWorkflow.name.toLowerCase().includes(filter.toLowerCase())) {\n return true;\n } else if (curWorkflow.tags !== undefined && curWorkflow.tags !== null && curWorkflow.tags.includes(filter)) {\n return true;\n } else if (curWorkflow.owner === filter) {\n return true;\n } else if (curWorkflow.org_id === filter) {\n return true;\n } else if (curWorkflow.usecase_ids !== undefined && curWorkflow.usecase_ids !== null && curWorkflow.usecase_ids.length > 0) {\n\t\t\t\t\t\t// Check if the usecase is the right category\n\t\t\t\t\t\tfor (var key in usecases) {\n\t\t\t\t\t\t\tif (usecases[key].name.toLowerCase() !== newfilter) {\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (var subkey in usecases[key].list) {\n\t\t\t\t\t\t\t\tif (curWorkflow.usecase_ids.includes(usecases[key].list[subkey].name)) {\n\t\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n } else if (\n curWorkflow.actions !== null &&\n curWorkflow.actions !== undefined\n ) {\n for (var key in curWorkflow.actions) {\n const action = curWorkflow.actions[key];\n\n if (\n action.app_name.toLowerCase() === newfilter ||\n action.app_name.toLowerCase().includes(newfilter)\n ) {\n return true;\n }\n }\n\t\t\t\t\t}\n\n return false;\n });\n }\n\n if (found.every((v) => v === true)) {\n newWorkflows.push(curWorkflow);\n continue;\n }\n }\n\n if (newWorkflows.length !== workflows.length) {\n setFilteredWorkflows(newWorkflows);\n }\n };\n\n const addFilter = (data) => {\n if (data === null || data === undefined) {\n\t\t\tconsole.log(\"No filter data\")\n return;\n }\n\n if (data.includes(\"<\") && data.includes(\">\")) {\n\t\t\tconsole.log(\"Filter includes < or >\")\n return;\n }\n\n if (filters.includes(data) || filters.includes(data.toLowerCase())) {\n\t\t\tconsole.log(\"Filter already has the data\")\n return;\n }\n\n filters.push(data.toLowerCase());\n setFilters(filters);\n\n findWorkflow(filters);\n };\n\n const removeFilter = (index) => {\n var newfilters = filters;\n\n if (index < 0) {\n console.log(\"Can't handle index: \", index);\n return;\n }\n\n newfilters.splice(index, 1);\n\n if (newfilters.length === 0) {\n newfilters = [];\n setFilters(newfilters);\n } else {\n setFilters(newfilters);\n }\n\n findWorkflow(newfilters);\n };\n\n const exportVerifyModal = exportModalOpen ? (\n {\n setExportModalOpen(false);\n setSelectedWorkflow({});\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n padding: 30,\n },\n }}\n >\n \n
\n Want to auto-sanitize this workflow before exporting?\n
\n
\n \n \n This will make potentially sensitive fields such as username,\n password, url etc. empty\n \n {\n setExportModalOpen(false);\n exportWorkflow(exportData, true);\n setExportData(\"\");\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setExportModalOpen(false);\n exportWorkflow(exportData, false);\n setExportData(\"\");\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const publishModal = publishModalOpen ? (\n {\n setPublishModalOpen(false);\n setSelectedWorkflow({});\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n padding: 50,\n },\n }}\n >\n \n
\n Are you sure you want to PUBLISH this workflow?\n
\n
\n \n
\n \n Before publishing, we will sanitize all inputs, remove references to\n you, randomize ID's and remove your authentication.\n \n \n\t\t\t\t\t\tThe published workflow is yours, and you can always change your public workflows after they are released.\n \n
\n {\n publishWorkflow(selectedWorkflow);\n setPublishModalOpen(false);\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setPublishModalOpen(false);\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const deleteModal = deleteModalOpen ? (\n {\n setDeleteModalOpen(false);\n setSelectedWorkflowId(\"\");\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n },\n }}\n >\n \n
\n Are you sure you want to delete this workflow?
\n Other workflows relying on this one may stop working\n
\n \n \n {\n console.log(\"Editing: \", editingWorkflow);\n if (selectedWorkflowId) {\n deleteWorkflow(selectedWorkflowId);\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n }\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const uploadFile = (e) => {\n const isDropzone =\n e.dataTransfer === undefined ? false : e.dataTransfer.files.length > 0;\n const files = isDropzone ? e.dataTransfer.files : e.target.files;\n\n const reader = new FileReader();\n alert.info(\"Starting upload. Please wait while we validate the workflows\");\n\n try {\n reader.addEventListener(\"load\", (e) => {\n var data = e.target.result;\n setIsDropzone(false);\n try {\n data = JSON.parse(reader.result);\n } catch (e) {\n alert.error(\"Invalid JSON: \" + e);\n return;\n }\n\n // Initialize the workflow itself\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n {},\n false,\n\t\t\t\t\t[],\n\t\t\t\t\t\"\",\n\t\t\t\t\tdata.status,\n )\n .then((response) => {\n if (response !== undefined) {\n // SET THE FULL THING\n data.id = response.id;\n\n // Actually create it\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n data,\n false,\n\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\tdata.status\n ).then((response) => {\n if (response !== undefined) {\n alert.success(`Successfully imported ${data.name}`);\n }\n });\n }\n })\n .catch((error) => {\n alert.error(\"Import error: \" + error.toString());\n });\n });\n } catch (e) {\n console.log(\"Error in dropzone: \", e);\n }\n\n reader.readAsText(files[0]);\n };\n\n useEffect(() => {\n if (isDropzone) {\n setIsDropzone(false);\n }\n\n }, [isDropzone]);\n\n\n\tconst getFramework = () => {\n\t\tfetch(globalUrl + \"/api/v1/apps/frameworkConfiguration\", {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAccept: \"application/json\",\n\t\t\t},\n\t\t\tcredentials: \"include\",\n\t\t})\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for framework!\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.success === false) {\n\t\t\t\tsetAppFramework({})\n\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t//alert.error(\"Failed loading: \" + responseJson.reason)\n\t\t\t\t} else {\n\t\t\t\t\t//alert.error(\"Failed to load framework for your org.\")\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetAppFramework(responseJson)\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.log(\"err in framework: \", error.toString());\n\t\t})\n\t}\n\n const getAvailableWorkflows = () => {\n fetch(globalUrl + \"/api/v1/workflows\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!: \", response.status);\n\n if (isCloud) {\n navigate(\"/search?tab=workflows\")\n }\n\n alert.info(\"Failed getting workflows.\");\n\n return;\n }\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson !== undefined) {\n\t\t\t\t\tvar newarray = []\n\t\t\t\t\tfor (var key in responseJson) {\n\t\t\t\t\t\tconst wf = responseJson[key]\n\t\t\t\t\t\tif (wf.public === true) {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnewarray.push(wf)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workflows are set in here\n\t\t\t\t\tfetchUsecases(newarray)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\tvar setProdFilter = false \n\n\t\t\t\t\tvar actionnamelist = [];\n\t\t\t\t\tvar parsedactionlist = [];\n\t\t\t\t\tfor (var key in newarray) {\n\t\t\t\t\t\tconst workflow = newarray[key]\n\t\t\t\t\t\tif (workflow.status === \"production\") {\n\t\t\t\t\t\t\tsetProdFilter = true \n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (var actionkey in newarray[key].actions) {\n\t\t\t\t\t\t\tconst action = newarray[key].actions[actionkey];\n\t\t\t\t\t\t\t//console.log(\"Action: \", action)\n\t\t\t\t\t\t\tif (actionnamelist.includes(action.app_name)) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tactionnamelist.push(action.app_name);\n\t\t\t\t\t\t\tparsedactionlist.push(action);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t//console.log(parsedactionlist)\n\t\t\t\t\tsetActionImageList(parsedactionlist);\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\tif (setProdFilter === true) {\n setFilters([\"status:production\"]);\n\t\t\t\t\t\tconst newWorkflows = newarray.filter(workflow => workflow.status === \"production\")\n\t\t\t\t\t\tconsole.log(newWorkflows)\n\t\t\t\t\t\tif (newWorkflows !== undefined && newWorkflows !== null) {\n \t\tsetFilteredWorkflows(newWorkflows);\n\t\t\t\t\t\t} else {\n \t\tsetFilteredWorkflows(newarray);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { \n \tsetFilteredWorkflows(newarray);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensures the zooming happens only once per load\n \tsetTimeout(() => {\n\t\t\t\t\t\tsetFirstLoad(false)\n\n\t\t\t\t\t}, 100)\n\n } else {\n if (isLoggedIn) {\n alert.error(\"An error occurred while loading workflows\");\n }\n\n return;\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n\tconst handleKeysetting = (categorydata, workflows) => {\n\t\t//workflows[0].category = [\"detect\"]\n\t\t//workflows[0].usecase_ids = [\"Correlate tickets\"]\n\n\t\tif (workflows !== undefined && workflows !== null) {\n\t\t\tvar newcategories = []\n\t\t\tfor (var key in categorydata) {\n\t\t\t\tvar category = categorydata[key]\n\t\t\t\tcategory.matches = []\n\n\t\t\t\tfor (var subcategorykey in category.list) {\n\t\t\t\t\tvar subcategory = category.list[subcategorykey]\n\t\t\t\t\tsubcategory.matches = []\n\n\t\t\t\t\tfor (var workflowkey in workflows) {\n\t\t\t\t\t\tconst workflow = workflows[workflowkey]\n\n\t\t\t\t\t\tif (workflow.usecase_ids !== undefined && workflow.usecase_ids !== null) {\n\t\t\t\t\t\t\tfor (var usecasekey in workflow.usecase_ids) {\n\n\t\t\t\t\t\t\t\tif (workflow.usecase_ids[usecasekey].toLowerCase() === subcategory.name.toLowerCase()) {\n\t\t\t\t\t\t\t\t\t//console.log(\"Got match: \", workflow.usecase_ids[usecasekey])\n\n\t\t\t\t\t\t\t\t\tcategory.matches.push({\n\t\t\t\t\t\t\t\t\t\t\"workflow\": workflow.id,\n\t\t\t\t\t\t\t\t\t\t\"category\": subcategory.name,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\tsubcategory.matches.push(workflow.id)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (subcategory.matches.length > 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnewcategories.push(category)\n\t\t\t} \n\n\t\t\tsetUsecases(newcategories)\n\t\t} else {\n \t\tsetUsecases(categorydata)\n\t\t}\n setWorkflows(workflows);\n setWorkflowDone(true);\n\t}\n\n const fetchUsecases = (workflows) => {\n fetch(globalUrl + \"/api/v1/workflows/usecases\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for usecases\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success !== false) {\n\t\t\t\t\thandleKeysetting(responseJson, workflows)\n\t\t\t\t} else {\n \tsetWorkflows(workflows);\n \t\tsetWorkflowDone(true);\n\t\t\t\t}\n })\n .catch((error) => {\n //alert.error(\"ERROR: \" + error.toString());\n console.log(\"ERROR: \" + error.toString());\n setWorkflows(workflows);\n \tsetWorkflowDone(true);\n });\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (workflows.length <= 0) {\n const tmpView = localStorage.getItem(\"view\");\n if (tmpView !== undefined && tmpView !== null) {\n setView(tmpView);\n }\n\n getAvailableWorkflows();\n\t\t\tgetFramework()\n }\n }, [])\n\n const viewStyle = {\n color: \"#ffffff\",\n width: \"100%\",\n display: \"flex\",\n minWidth: isMobile ? \"100%\" : drawerWidth > 0 ? 824 : 1024,\n maxWidth: isMobile ? \"100%\" : drawerWidth > 0 ? 824 : 1024,\n margin: drawerWidth === 0 ? \"auto\" : `auto ${drawerWidth+100} auto auto`,\n\t\tpaddingBottom: 200,\n };\n\n const emptyWorkflowStyle = {\n paddingTop: \"200px\",\n width: 1024,\n margin: \"auto\",\n };\n\n const boxStyle = {\n padding: \"20px 20px 20px 20px\",\n width: \"100%\",\n height: \"250px\",\n color: \"white\",\n backgroundColor: surfaceColor,\n display: \"flex\",\n flexDirection: \"column\",\n };\n\n\t//flexDirection: !isMobile ? \"column\" : \"row\",\n const paperAppContainer = {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignContent: \"space-between\",\n marginTop: 5,\n };\n\n const paperAppStyle = {\n minHeight: 130,\n maxHeight: 130,\n overflow: \"hidden\",\n width: \"100%\",\n color: \"white\",\n backgroundColor: surfaceColor,\n padding: \"12px 12px 0px 15px\",\n borderRadius: 5,\n display: \"flex\",\n boxSizing: \"border-box\",\n position: \"relative\",\n };\n\n const gridContainer = {\n height: \"auto\",\n color: \"white\",\n margin: \"10px\",\n backgroundColor: surfaceColor,\n };\n\n const workflowActionStyle = {\n display: \"flex\",\n width: 160,\n height: 44,\n justifyContent: \"space-between\",\n };\n\n const exportAllWorkflows = (allWorkflows) => {\n\t\tfor (var i = 0; i < allWorkflows.length; i++) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconsole.log(allWorkflows[i].name)\n \texportWorkflow(allWorkflows[i], false)\n\t\t\t}, i * 200);\n }\n\n alert.info(`exporting and keeping original for all ${allWorkflows.length} workflows`);\n };\n\n const deduplicateIds = (data) => {\n if (data.triggers !== null && data.triggers !== undefined) {\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name === \"Shuffle Workflow\") {\n\t\t\t\t\tif (trigger.parameters !== null && trigger.parameters !== undefined) {\n\t\t\t\t\t\tif (trigger.parameters.length > 2) {\n\t\t\t\t\t\t\ttrigger.parameters[2].value = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n }\n\n if (trigger.status === \"running\") {\n trigger.status = \"stopped\";\n }\n\n const newId = uuidv4();\n if (trigger.trigger_type === \"WEBHOOK\") {\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length === 2\n ) {\n trigger.parameters[0].value =\n referenceUrl + \"webhook_\" + trigger.id;\n trigger.parameters[1].value = \"webhook_\" + trigger.id;\n } else if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length === 3\n ) {\n trigger.parameters[0].value =\n referenceUrl + \"webhook_\" + trigger.id;\n trigger.parameters[1].value = \"webhook_\" + trigger.id;\n // FIXME: Add auth here?\n } else {\n alert.info(\"Something is wrong with the webhook in the copy\");\n }\n }\n\n for (var branchkey in data.branches) {\n const branch = data.branches[branchkey];\n if (branch.source_id === trigger.id) {\n branch.source_id = newId;\n }\n\n if (branch.destination_id === trigger.id) {\n branch.destination_id = newId;\n }\n }\n\n trigger.environment = isCloud ? \"cloud\" : \"Shuffle\";\n trigger.id = newId;\n }\n }\n\n if (data.actions !== null && data.actions !== undefined) {\n for (key in data.actions) {\n data.actions[key].authentication_id = \"\";\n\n for (var subkey in data.actions[key].parameters) {\n const param = data.actions[key].parameters[subkey];\n\n\t\t\t\t\t// Removed October 10th, 2022 as key usually isn't \n\t\t\t\t\t// containing anything secret, but rather necessary configurations.\n // param.name.includes(\"key\") ||\n\t\t\t\t\t//\n if (\n param.name.includes(\"user\") ||\n param.name.includes(\"pass\") ||\n param.name.includes(\"api\") ||\n param.name.includes(\"auth\") ||\n param.name.includes(\"secret\") ||\n param.name.includes(\"domain\") ||\n param.name.includes(\"url\") ||\n param.name.includes(\"mail\")\n ) {\n // FIXME: This may be a vuln if api-keys are generated that start with $\n if (param.value.startsWith(\"$\")) {\n console.log(\"Skipping field, as it's referencing a variable\");\n } else {\n param.value = \"\";\n param.is_valid = false;\n }\n }\n }\n\n const newId = uuidv4();\n for (branchkey in data.branches) {\n const branch = data.branches[branchkey];\n if (branch.source_id === data.actions[key].id) {\n branch.source_id = newId;\n }\n\n if (branch.destination_id === data.actions[key].id) {\n branch.destination_id = newId;\n }\n }\n\n if (data.actions[key].id === data.start) {\n data.start = newId;\n }\n\n data.actions[key].environment = \"\";\n data.actions[key].id = newId;\n }\n }\n\n if (\n data.workflow_variables !== null &&\n data.workflow_variables !== undefined\n ) {\n for (key in data.workflow_variables) {\n const param = data.workflow_variables[key];\n //param.name.includes(\"key\") ||\n\n if (\n param.name.includes(\"user\") ||\n param.name.includes(\"pass\") ||\n param.name.includes(\"api\") ||\n param.name.includes(\"auth\") ||\n param.name.includes(\"secret\") ||\n param.name.includes(\"email\")\n ) {\n param.value = \"\";\n param.is_valid = false;\n }\n }\n }\n\n return data;\n };\n\n const sanitizeWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data[\"owner\"] = \"\";\n console.log(\"Sanitize start: \", data);\n data = deduplicateIds(data);\n\n data[\"org\"] = [];\n data[\"org_id\"] = \"\";\n data[\"execution_org\"] = {};\n\n // These are backwards.. True = saved before. Very confuse.\n data[\"previously_saved\"] = false;\n data[\"first_save\"] = false;\n console.log(\"Sanitize end: \", data);\n\n return data;\n };\n\n const exportWorkflow = (data, sanitize) => {\n data = JSON.parse(JSON.stringify(data));\n let exportFileDefaultName = data.name + \".json\";\n\n if (sanitize === true) {\n data = sanitizeWorkflow(data);\n\n if (data.subflows !== null && data.subflows !== undefined) {\n alert.info(\n \"Not exporting with subflows when sanitizing. Please manually export them.\"\n );\n data.subflows = [];\n }\n\n //\tfor (var key in data.subflows) {\n //\t\tif (data.sublof\n //\t}\n //}\n }\n\n // Add correct ID's for triggers\n // Add mag\n\t\t\n\t\tdata.status = \"test\"\n let dataStr = JSON.stringify(data);\n let dataUri =\n \"data:application/json;charset=utf-8,\" + encodeURIComponent(dataStr);\n let linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n };\n\n const publishWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data = sanitizeWorkflow(data);\n alert.info(\"Sanitizing and publishing \" + data.name);\n\n // This ALWAYS talks to Shuffle cloud\n fetch(globalUrl + \"/api/v1/workflows/\" + data.id + \"/publish\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for workflow publish :O!\");\n\t\t\t} else {\n\t\t\t\tif (isCloud) {\n\t\t\t\t\talert.success(\"Successfully published workflow\");\n\t\t\t\t} else {\n\t\t\t\t\talert.success(\n\t\t\t\t\t\t\"Successfully published workflow to https://shuffler.io\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\talert.error(\"Failed publishing: \", responseJson.reason);\n\t\t\t}\n\n\t\t\tgetAvailableWorkflows();\n\t\t})\n\t\t.catch((error) => {\n\t\t\talert.error(\"Failed publishing: is the workflow valid? Remember to save the workflow first.\")\n\t\t\tconsole.log(error.toString());\n\t\t});\n };\n\n const copyWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n alert.success(\"Copying workflow \" + data.name);\n data.id = \"\";\n data.name = data.name + \"_copy\";\n data = deduplicateIds(data);\n\n fetch(globalUrl + \"/api/v1/workflows\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n return response.json();\n })\n .then(() => {\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const deleteWorkflow = (id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + id, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for setting workflows :O!\");\n alert.error(\"Failed deleting workflow. Do you have access?\");\n } else {\n alert.success(\"Deleted workflow \" + id);\n }\n\n return response.json();\n })\n .then(() => {\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const handleChipClick = (e) => {\n addFilter(e.target.innerHTML);\n };\n\n const NewWorkflowPaper = () => {\n const [hover, setHover] = React.useState(false);\n\n const innerColor = \"rgba(255,255,255,0.3)\";\n const setupPaperStyle = {\n minHeight: paperAppStyle.minHeight,\n width: paperAppStyle.width,\n color: innerColor,\n padding: paperAppStyle.padding,\n borderRadius: paperAppStyle.borderRadius,\n display: \"flex\",\n boxSizing: \"border-box\",\n position: \"relative\",\n border: `2px solid ${innerColor}`,\n cursor: \"pointer\",\n backgroundColor: hover ? \"rgba(39,41,45,0.5)\" : \"rgba(39,41,45,1)\",\n };\n\n return (\n \n {\n\t\t\t\t\t\tsetModalOpen(true)\n \t\t\t\t\tsetIsEditing(false)\n\t\t\t\t\t}}\n onMouseOver={() => {\n setHover(true);\n }}\n onMouseOut={() => {\n setHover(false);\n }}\n >\n \n \n \n \n \n \n \n );\n };\n\n\tconst getWorkflowAppgroup = (data) => {\n\t\tif (data.actions === undefined || data.actions === null) {\n\t\t\treturn [] \n\t\t}\n\n\t\tvar appsFound = []\n\t\tfor (var key in data.actions) {\n\t\t\tconst parsedAction = data.actions[key]\n\t\t\tif (parsedAction.large_image === undefined || parsedAction.large_image === null || parsedAction.large_image === \"\") {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (parsedAction.app_name === \"Shuffle Tools\" || parsedAction.app_id === \"bc78f35c6c6351b07a09b7aed5d29652\") {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (appsFound.findIndex(data => data.app_name === parsedAction.app_name) < 0){\n\t\t\t\tappsFound.push(parsedAction)\n\t\t\t}\n\t\t}\n\n\t\treturn appsFound\n\t}\n\n const WorkflowPaper = (props) => {\n const { data } = props;\n const [open, setOpen] = React.useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n var boxColor = \"#FECC00\";\n if (data.is_valid) {\n boxColor = \"#86c142\";\n }\n\n if (!data.previously_saved) {\n boxColor = \"#f86a3e\";\n }\n\n const menuClick = (event) => {\n setOpen(!open);\n setAnchorEl(event.currentTarget);\n };\n\n var parsedName = data.name;\n if (\n parsedName !== undefined &&\n parsedName !== null &&\n parsedName.length > 20\n ) {\n parsedName = parsedName.slice(0, 21) + \"..\";\n }\n\n const actions = data.actions !== null ? data.actions.length : 0;\n\t\tconst appGroup = getWorkflowAppgroup(data)\n const [triggers, subflows] = getWorkflowMeta(data);\n\n const workflowMenuButtons = (\n {\n setOpen(false);\n setAnchorEl(null);\n }}\n >\n {\n\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\tReactDOM.unstable_batchedUpdates(() => {\n \tsetModalOpen(true);\n \tsetEditingWorkflow(JSON.parse(JSON.stringify(data)));\n \tsetNewWorkflowName(data.name);\n \tsetNewWorkflowDescription(data.description);\n \tsetDefaultReturnValue(data.default_return_value);\n \tif (data.tags !== undefined && data.tags !== null) {\n \t setNewWorkflowTags(JSON.parse(JSON.stringify(data.tags)));\n \t}\n\n\t\t\t\t\t\t\tif (data.usecase_ids !== undefined && data.usecase_ids !== null && data.usecase_ids.length > 0) {\n\t\t\t\t\t\t\t\tsetSelectedUsecases(data.usecase_ids)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n }}\n key={\"change\"}\n >\n \n {\"Edit details\"}\n \n {\n setSelectedWorkflow(data);\n setPublishModalOpen(true);\n }}\n key={\"publish\"}\n >\n \n {\"Publish Workflow\"}\n \n {\n copyWorkflow(data);\n setOpen(false);\n }}\n key={\"duplicate\"}\n >\n \n {\"Duplicate Workflow\"}\n \n {/*= 0} style={{backgroundColor: inputColor, color: \"white\"}} onClick={() => {\n\t\t\t\t\t//copyWorkflow(data)\t\t\n\t\t\t\t\t//setOpen(false)\n\t\t\t\t}} key={\"duplicate\"}>\n\t\t\t\t\t\n\t\t\t\t\t{\"Copy to Child Org\"}\n\t\t\t\t*/}\n {\n setExportModalOpen(true);\n\n if (data.triggers !== null && data.triggers !== undefined) {\n var newSubflows = [];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n\n if (\n trigger.parameters !== null &&\n trigger.parameters !== undefined\n ) {\n for (var subkey in trigger.parameters) {\n const param = trigger.parameters[subkey];\n if (\n param.name === \"workflow\" &&\n param.value !== data.id &&\n !newSubflows.includes(param.value)\n ) {\n newSubflows.push(param.value);\n }\n }\n }\n }\n\n var parsedworkflows = [];\n for (var key in newSubflows) {\n const foundWorkflow = workflows.find(\n (workflow) => workflow.id === newSubflows[key]\n );\n if (foundWorkflow !== undefined && foundWorkflow !== null) {\n parsedworkflows.push(foundWorkflow);\n }\n }\n\n if (parsedworkflows.length > 0) {\n console.log(\n \"Appending subflows during export: \",\n parsedworkflows.length\n );\n data.subflows = parsedworkflows;\n }\n }\n\n setExportData(data);\n setOpen(false);\n }}\n key={\"export\"}\n >\n \n {\"Export Workflow\"}\n \n {\n setDeleteModalOpen(true);\n setSelectedWorkflowId(data.id);\n setOpen(false);\n }}\n key={\"delete\"}\n >\n \n {\"Delete Workflow\"}\n \n \n );\n\n var image = \"\";\n var orgName = \"\";\n var orgId = \"\";\n if (userdata.orgs !== undefined) {\n const foundOrg = userdata.orgs.find((org) => org.id === data[\"org_id\"]);\n if (foundOrg !== undefined && foundOrg !== null) {\n //position: \"absolute\", bottom: 5, right: -5,\n const imageStyle = {\n width: imagesize,\n height: imagesize,\n pointerEvents: \"none\",\n marginLeft:\n data.creator_org !== undefined && data.creator_org.length > 0\n ? 20\n : 0,\n borderRadius: 10,\n border:\n foundOrg.id === userdata.active_org.id\n ? `3px solid ${boxColor}`\n : null,\n cursor: \"pointer\",\n marginRight: 10,\n };\n\n image =\n foundOrg.image === \"\" ? (\n \n ) : (\n {}}\n />\n );\n\n orgName = foundOrg.name;\n orgId = foundOrg.id;\n }\n }\n\n\t\tvar selectedCategory = \"\"\n\t\tif (data.usecase_ids !== undefined && data.usecase_ids !== null && data.usecase_ids.length > 0 && usecases !== null && usecases !== undefined && usecases.length > 0) {\n\t\t\tconst oldcolor = boxColor.valueOf()\n\n\t\t\t// Find the first usecase and use that ones' ID\n\t\t\tfor (var key in usecases) {\n\t\t\t\tvar category = usecases[key]\n\t\t\t\tcategory.matches = []\n\n\t\t\t\tfor (var subcategorykey in category.list) {\n\t\t\t\t\tvar subcategory = category.list[subcategorykey]\n\t\t\t\t\tsubcategory.matches = []\n\n\t\t\t\t\tfor (var usecasekey in data.usecase_ids) {\n\t\t\t\t\t\tif (data.usecase_ids[usecasekey].toLowerCase() === subcategory.name.toLowerCase()) {\n\t\t\t\t\t\t\tboxColor = category.color\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (boxColor !== oldcolor) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (boxColor !== oldcolor) {\n\t\t\t\t\tselectedCategory = category.name\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n return (\n\t\t\t
\n \n\t\t\t\t\t{selectedCategory !== \"\" ?\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n addFilter(selectedCategory)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t: null}\n \n \n \n {\n addFilter(orgId);\n }}\n >\n {image}\n
\n \n \n\t\t\t\t\t\t\t\t\t{data.image !== undefined && data.image !== null && data.image.length > 0 ? \n\t\t\t\t\t\t\t\t\t\t{data.name}\n\t\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tEdit {data.name}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} placement=\"bottom\">\n \n \n {parsedName}\n \n \n \n \n \n\t\t\t\t\t\t\t{appGroup.length > 0 ? \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{appGroup.map((data, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n \t\t\t\t\taddFilter(data.app_name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n \n \n \n \n {triggers}\n \n
\n \n \n {\n if (subflows === 0) {\n alert.info(\"No subflows for \" + data.name);\n return;\n }\n\n var newWorkflows = [data];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name !== \"Shuffle Workflow\") {\n continue;\n }\n\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length > 0 &&\n trigger.parameters[0].name === \"workflow\"\n ) {\n const newWorkflow = workflows.find(\n (item) => item.id === trigger.parameters[0].value\n );\n if (newWorkflow !== null && newWorkflow !== undefined) {\n newWorkflows.push(newWorkflow);\n continue;\n }\n }\n }\n\n setFilters([\"Subflows of \" + data.name]);\n setFilteredWorkflows(newWorkflows);\n }}\n >\n \n \n \n \n {subflows}\n \n \n \n \n \n {data.tags !== undefined && data.tags !== null\n ? data.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n \n );\n })\n : null}\n \n {data.actions !== undefined && data.actions !== null ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{workflowMenuButtons}\n\t\t\t\t\t\t
\n ) : null}\n\t\t\t\t\n\t\t\t\n\t\t
\n )\n }\n\n // Can create and set workflows\n const setNewWorkflow = (\n name,\n description,\n tags,\n defaultReturnValue,\n editingWorkflow,\n redirect,\n\t\tcurrentUsecases,\n\t\tinputblogpost,\n\t\tinputstatus,\n ) => {\n var method = \"POST\";\n var extraData = \"\";\n var workflowdata = {};\n\n if (editingWorkflow.id !== undefined) {\n console.log(\"Building original workflow\");\n method = \"PUT\";\n extraData = \"/\" + editingWorkflow.id + \"?skip_save=true\";\n workflowdata = editingWorkflow;\n\n console.log(\"REMOVING OWNER\");\n workflowdata[\"owner\"] = \"\";\n // FIXME: Loop triggers and turn them off?\n }\n\n workflowdata[\"name\"] = name;\n workflowdata[\"description\"] = description;\n if (tags !== undefined) {\n workflowdata[\"tags\"] = tags;\n }\n\t\tworkflowdata[\"blogpost\"] = inputblogpost \n\t\tworkflowdata[\"status\"] = inputstatus \n\n if (defaultReturnValue !== undefined) {\n workflowdata[\"default_return_value\"] = defaultReturnValue;\n }\n\n\t\tif (currentUsecases !== undefined && currentUsecases !== null) {\n\t\t\tworkflowdata[\"usecase_ids\"] = currentUsecases \n\t\t\t//workflows[0].category = [\"detect\"]\n\t\t\t//workflows[0].usecase_ids = [\"Correlate tickets\"]\n\t\t}\n\n\t\tconst new_url = `${globalUrl}/api/v1/workflows${extraData}`\n return fetch(new_url, {\n method: method,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(workflowdata),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n setSubmitLoading(false);\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\talert.error(\"Error setting workflow: \", responseJson.reason)\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Error setting workflow.\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn\n\t\t\t\t}\n\n if (redirect) {\n //window.location.pathname = \"/workflows/\" + responseJson[\"id\"];\n\t\t\t\t\tnavigate(\"/workflows/\" + responseJson[\"id\"])\n //setModalOpen(false);\n } else if (!redirect) {\n // Update :)\n setTimeout(() => {\n getAvailableWorkflows();\n }, 2500);\n setImportLoading(false);\n setModalOpen(false);\n } else {\n //alert.info(\"Successfully changed basic info for workflow\");\n setModalOpen(false);\n }\n\n return responseJson;\n })\n .catch((error) => {\n alert.error(error.toString());\n setImportLoading(false);\n setModalOpen(false);\n setSubmitLoading(false);\n });\n };\n\n const importFiles = (event) => {\n console.log(\"Importing!\");\n\n setImportLoading(true);\n if (event.target.files.length > 0) {\n \tconsole.log(\"Files: !\", event.target.files.length);\n for (var key in event.target.files) {\n const file = event.target.files[key];\n if (file.type !== \"application/json\") {\n if (file.type !== undefined) {\n alert.error(\"File has to contain valid json\");\n \t\t\t\tsetImportLoading(false);\n }\n\n continue;\n }\n\n const reader = new FileReader();\n // Waits for the read\n reader.addEventListener(\"load\", (event) => {\n var data = reader.result;\n try {\n data = JSON.parse(reader.result);\n } catch (e) {\n alert.error(\"Invalid JSON: \" + e);\n setImportLoading(false);\n return;\n }\n \n\t\t\t\t\tconsole.log(\"File being loaded: \", data.name);\n\n // Initialize the workflow itself\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n {},\n false,\n\t\t\t\t\t\t[],\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\tdata.status,\n )\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t\t// SET THE FULL THING\n\t\t\t\t\t\t\tdata.id = response.id;\n\t\t\t\t\t\t\tdata.first_save = false;\n\t\t\t\t\t\t\tdata.previously_saved = false;\n\t\t\t\t\t\t\tdata.is_valid = false;\n\n\t\t\t\t\t\t\t// Actually create it\n\t\t\t\t\t\t\tsetNewWorkflow(\n\t\t\t\t\t\t\t\tdata.name,\n\t\t\t\t\t\t\t\tdata.description,\n\t\t\t\t\t\t\t\tdata.tags,\n\t\t\t\t\t\t\t\tdata.default_return_value,\n\t\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\tdata.status,\n\t\t\t\t\t\t\t).then((response) => {\n\t\t\t\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t\t\t\talert.success(\"Successfully imported \" + data.name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\talert.error(\"Import error: \" + error.toString());\n\t\t\t\t\t});\n });\n\n // Actually reads\n reader.readAsText(file);\n }\n }\n\n setLoadWorkflowsModalOpen(false);\n };\n\n const getWorkflowMeta = (data) => {\n let triggers = 0;\n let subflows = 0;\n if (\n data.triggers !== undefined &&\n data.triggers !== null &&\n data.triggers.length > 0\n ) {\n triggers = data.triggers.length;\n for (let key in data.triggers) {\n if (data.triggers[key].app_name === \"Shuffle Workflow\") {\n subflows += 1;\n }\n }\n }\n\n return [triggers, subflows];\n };\n\n const WorkflowListView = () => {\n let workflowData = \"\";\n if (workflows.length > 0) {\n const columns = [\n {\n field: \"image\",\n headerName: \"Logo\",\n width: 50,\n sortable: false,\n renderCell: (params) => {\n const data = params.row.record;\n\n var boxColor = \"#FECC00\";\n if (data.is_valid) {\n boxColor = \"#86c142\";\n }\n\n if (!data.previously_saved) {\n boxColor = \"#f85a3e\";\n }\n\n var image = \"\";\n if (userdata.orgs !== undefined) {\n const foundOrg = userdata.orgs.find(\n (org) => org.id === data[\"org_id\"]\n );\n if (foundOrg !== undefined && foundOrg !== null) {\n //position: \"absolute\", bottom: 5, right: -5,\n const imageStyle = {\n width: imagesize + 7,\n height: imagesize + 7,\n pointerEvents: \"none\",\n marginLeft:\n data.creator_org !== undefined &&\n data.creator_org.length > 0\n ? 20\n : 0,\n borderRadius: 10,\n border:\n foundOrg.id === userdata.active_org.id\n ? `3px solid ${boxColor}`\n : null,\n cursor: \"pointer\",\n marginTop: 5,\n };\n\n //\n image =\n foundOrg.image === \"\" ? (\n \n ) : (\n {\n //setFilteredWorkflows(newWorkflows)\n }}\n />\n );\n }\n }\n\n return
{image}
;\n },\n },\n {\n field: \"title\",\n headerName: \"Title\",\n width: 330,\n renderCell: (params) => {\n const data = params.row.record;\n\t\t\t\t\t\n\n return (\n \n \n {data.name}\n \n \n );\n },\n },\n\n {\n field: \"options\",\n headerName: \"Options\",\n width: 200,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {\n const data = params.row.record;\n const actions = data.actions !== null ? data.actions.length : 0;\n let [triggers, subflows] = getWorkflowMeta(data);\n\t\t\t\t\t\tconst appGroup = getWorkflowAppgroup(data)\n\n return (\n \n
\n\t\t\t\t\t\t\t\t\t{appGroup.length > 0 ? \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{appGroup.map((data, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n \t\t \t\t\t\t\taddFilter(data.app_name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n \n \n \n \n {triggers}\n \n \n
\n \n {\n if (subflows === 0) {\n alert.info(\"No subflows for \" + data.name);\n return;\n }\n\n var newWorkflows = [data];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name !== \"Shuffle Workflow\") {\n continue;\n }\n\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length > 0 &&\n trigger.parameters[0].name === \"workflow\"\n ) {\n const newWorkflow = workflows.find(\n (item) => item.id === trigger.parameters[0].value\n );\n if (\n newWorkflow !== null &&\n newWorkflow !== undefined\n ) {\n newWorkflows.push(newWorkflow);\n continue;\n }\n }\n }\n\n setFilters([\"Subflows of \" + data.name]);\n setFilteredWorkflows(newWorkflows);\n }}\n >\n \n \n \n \n {subflows}\n \n \n \n
\n \n );\n },\n },\n {\n field: \"tags\",\n headerName: \"Tags\",\n maxHeight: 15,\n width: 300,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {\n const data = params.row.record;\n return (\n \n {data.tags !== undefined\n ? data.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n \n );\n })\n : null}\n \n );\n },\n },\n {\n field: \"\",\n headerName: \"\",\n maxHeight: 15,\n width: 100,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {},\n },\n ];\n let rows = [];\n rows = filteredWorkflows.map((data, index) => {\n let obj = {\n id: index + 1,\n title: data.name,\n record: data,\n };\n\n return obj;\n })\n\n workflowData = (\n \n );\n }\n return
{workflowData}
;\n };\n\n\tvar total_count = 0\n const modalView = modalOpen ? (\n {\n setModalOpen(false);\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: isMobile ? \"90%\" : \"800px\",\n maxWidth: isMobile ? \"90%\" : \"800px\",\n },\n }}\n >\n \n
\n {editingWorkflow.id !== undefined ? \"Editing\" : \"New\"} workflow\n
\n \n upload.click()}\n >\n \n \n \n
\n
\n
\n \n \n setNewWorkflowName(event.target.value)}\n InputProps={{\n style: {\n color: \"white\",\n },\n }}\n color=\"primary\"\n placeholder=\"Name\"\n\t\t\t\t\t\trequired\n margin=\"dense\"\n defaultValue={newWorkflowName}\n autoFocus\n fullWidth\n />\n setNewWorkflowDescription(event.target.value)}\n InputProps={{\n style: {\n color: \"white\",\n },\n }}\n color=\"primary\"\n defaultValue={newWorkflowDescription}\n placeholder=\"Description\"\n multiline\n margin=\"dense\"\n fullWidth\n />\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tnewWorkflowTags.push(chip);\n\t\t\t\t\t\t\t\tsetNewWorkflowTags(newWorkflowTags);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonDelete={(chip, index) => {\n\t\t\t\t\t\t\t\tnewWorkflowTags.splice(index, 1);\n\t\t\t\t\t\t\t\tsetNewWorkflowTags(newWorkflowTags);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{usecases !== null && usecases !== undefined && usecases.length > 0 ? \n \t\t\t\t\n \t\t\t\t Usecases\n \t\t\t\t \n \t\t\t\t\n\t\t\t\t\t\t: null}\n\t\t\t\t\t
\n\n \t\t\t\t{showMoreClicked ? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (event.target.value.toLowerCase() === \"test\") {\n\t\t\t\t\t\t\t\t\t\tsetStatus(\"test\")\n\t\t\t\t\t\t\t\t\t} else if (event.target.value.toLowerCase() === \"production\") {\n\t\t\t\t\t\t\t\t\t\tsetStatus(\"production\")\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tdefaultValue={status}\n\t\t\t\t\t\t\t\tplaceholder=\"The status of the workflow. Can be test or production.\"\n\t\t\t\t\t\t\t\trows=\"1\"\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t setBlogpost(event.target.value)}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tdefaultValue={blogpost}\n\t\t\t\t\t\t\t\tplaceholder=\"A blogpost or other reference for how this work workflow was built, and what it's for.\"\n\t\t\t\t\t\t\t\trows=\"1\"\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t setDefaultReturnValue(event.target.value)}\n\t\t\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\tdefaultValue={defaultReturnValue}\n\t\t\t\t\t\t\t\tplaceholder=\"Default return value (used for Subflows if the subflow fails)\"\n\t\t\t\t\t\t\t\trows=\"3\"\n\t\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\t\tmargin=\"dense\"\n\t\t\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t: null}\n \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowMoreClicked(!showMoreClicked);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{showMoreClicked ? : }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n
\n \n {\n setNewWorkflowName(\"\");\n setNewWorkflowDescription(\"\");\n setDefaultReturnValue(\"\");\n setEditingWorkflow({});\n setNewWorkflowTags([]);\n setModalOpen(false);\n\t\t\t\t\t\t\tsetSelectedUsecases([])\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n console.log(\"Tags: \", newWorkflowTags);\n if (editingWorkflow.id !== undefined) {\n setNewWorkflow(\n newWorkflowName,\n newWorkflowDescription,\n newWorkflowTags,\n defaultReturnValue,\n editingWorkflow,\n false,\n\t\t\t\t\t\t\t\t\tselectedUsecases,\n\t\t\t\t\t\t\t\t\tblogpost,\n\t\t\t\t\t\t\t\t\tstatus,\n );\n\n setNewWorkflowName(\"\");\n setDefaultReturnValue(\"\");\n setNewWorkflowDescription(\"\");\n setEditingWorkflow({});\n setNewWorkflowTags([]);\n } else {\n setNewWorkflow(\n newWorkflowName,\n newWorkflowDescription,\n newWorkflowTags,\n defaultReturnValue,\n {},\n true,\n\t\t\t\t\t\t\t\t\tselectedUsecases,\n\t\t\t\t\t\t\t\t\tblogpost,\n\t\t\t\t\t\t\t\t\tstatus,\n );\n }\n\n setSubmitLoading(true);\n\t\t\t\t\t\t\tsetSelectedUsecases([])\n }}\n color=\"primary\"\n >\n {submitLoading ? : \"Submit\"}\n \n \n
\n \n ) : null;\n\n const viewSize = {\n workflowView: 4,\n executionsView: 3,\n executionResults: 4,\n };\n\n const workflowViewStyle = {\n flex: viewSize.workflowView,\n marginLeft: 10, \n marginRight: 10, \n };\n\n if (viewSize.workflowView === 0) {\n workflowViewStyle.display = \"none\";\n }\n\n const workflowButtons = (\n \n {view === \"list\" && (\n \n {\n localStorage.setItem(\"view\", \"grid\");\n setView(\"grid\");\n }}\n >\n \n \n \n )}\n {view === \"grid\" && (\n \n {\n localStorage.setItem(\"view\", \"list\");\n setView(\"list\");\n }}\n >\n \n \n \n )}\n \n {importLoading ? (\n \n ) : (\n upload.click()}\n >\n \n \n )}\n \n (upload = ref)}\n onChange={importFiles}\n />\n {workflows.length > 0 ? (\n \n {\n exportAllWorkflows(workflows);\n }}\n >\n \n \n \n ) : null}\n {isCloud ? null : (\n \n setLoadWorkflowsModalOpen(true)}\n >\n \n \n \n )}\n \n );\n\n\t// const tourOptions = {\n\t// \tdefaultStepOptions: {\n\t// \t\tclasses: \"shadow-md bg-purple-dark\",\n // \tscrollTo: true\n\t// \t},\n\t// \tuseModalOverlay: true,\n\t// \ttourName: workflows,\n\t// \texitOnEsc: true,\n\t// }\n\n // //classes: \"custom-class-name-1 custom-class-name-2\",\n\t// const newSteps = [\n\t// \t{\n // \tid: \"intro\",\n // \tscrollTo: true,\n // \tbeforeShowPromise: function() {\n // \t return new Promise(function(resolve) {\n // \t setTimeout(function() {\n // \t window.scrollTo(0, 0);\n // \t resolve();\n // \t }, 500);\n // \t });\n // \t},\n // \tbuttons: [\n // \t {\n // \t classes: \"shepherd-button-primary\",\n\t// \t\t\t\tstyle: {\n\t// \t\t\t\t\tbackgroundColor: \"red\",\t\n\t// \t\t\t\t\tcolor: \"white\", \n\t// \t\t\t\t},\n // \t text: \"Next\",\n // \t type: \"next\"\n // \t }\n // \t],\n // \thighlightClass: \"highlight\",\n // \tshowCancelLink: true,\n // \ttext: [\n // \t \"React-Shepherd is a JavaScript library for guiding users through your React app.\"\n // \t],\n // \twhen: {\n // \t show: () => {\n // \t console.log(\"show step 1\");\n // \t },\n // \t hide: () => {\n // \t console.log(\"hide step 1\");\n // \t }\n // \t}\n // },\t\n // {\n // \tid: \"second\",\n // \tattachTo: {\n // \t element: \"second-step\",\n // \t on: \"top\"\n // \t},\n // \ttext: [\n // \t \"Yuk eksplorasi hasil Tes Minat Bakat-mu dan rekomendasi Jurusan dan Karier.\"\n // \t],\n // \tbuttons: [\n // \t {\n // \t classes: \"btn btn-info\",\n // \t text: \"Kembali\",\n // \t type: \"back\"\n // \t },\n // \t {\n // \t classes: \"btn btn-success\",\n // \t text: \"Saya Mengerti\",\n // \t type: \"cancel\"\n // \t }\n // \t],\n // \twhen: {\n // \t show: () => {\n // \t console.log(\"show stepp\");\n // \t },\n // \t hide: () => {\n // \t console.log(\"complete step\");\n // \t }\n // \t},\n // \tshowCancelLink: false,\n // \tscrollTo: true,\n // \tmodalOverlayOpeningPadding: 4,\n // \tuseModalOverlay: false,\n // \tcanClickTarget: false\n // \t}\n\t// ]\n\t\t\n\t// \tfunction TourButton() {\n\t// \t const tour = useContext(ShepherdTourContext);\n\t\t\n\t// \t return (\n\t// \t \n\t// \t );\n\t// \t}\n\n const WorkflowView = () => {\n if (workflows.length === 0) {\n\t\t\t// Not going there yet\n\t\t\t//if ((userdata.tutorials !== undefined && userdata.tutorials !== null && !userdata.tutorials.includes(\"getting-started\")) || userdata.tutorials === null) {\n\t\t\t//\treturn ;\n\t\t\t//}\n //return (\n //
\n // \n //
\n //

Welcome to Shuffle

\n //
\n //
\n //

\n // Shuffle is a flexible, easy to use, automation platform\n // allowing users to integrate their services and devices freely.\n // It's made to significantly reduce the amount of manual labor,\n // and is focused on security applications.{\" \"}\n // \n // Click here to learn more.\n // \n //

\n //
\n //
\n // If you want to jump straight into it, click here to create your\n // first workflow:\n //
\n //
\n // setModalOpen(true)}\n // >\n // New workflow\n // \n // \n // \n // ..OR\n // \n // {workflowButtons}\n // \n //
\n //
\n //
\n //)\n }\n\n\t\tvar workflowDelay = -150\n\t\tvar appDelay = -75\t\n\n\n return (\n
\n
\n
\n
\n\t\t\t\t\t\t\t\n \tWorkflows\n\t\t\t\t\t\t\t\n
\n\t\t\t\t\t\t{/*\n
\n \n \n Learn more about Workflows\n \n \n
\n\t\t\t\t\t\t*/}\n\t\t\t\t\t\t{isMobile ? null : \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\taddFilter(chip);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonDelete={(_, index) => {\n\t\t\t\t\t\t\t\t\t\t\tremoveFilter(index);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n
\n {workflowButtons}\n
\n
\n {/*\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
ACTIVE WORKFLOWS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
AVAILABE WORKFLOWS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
NOTIFICATIONS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t*/}\n\n {/*\n\t\t\t\t\tchipRenderer={({ value, isFocused, isDisabled, handleClick, handleRequestDelete }, key) => {\n\t\t\t\t\t\tconsole.log(\"VALUE: \", value)\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t\t*/}\n \t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{!isMobile && usecases !== null && usecases !== undefined && usecases.length > 0 ? \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{usecases.map((usecase, index) => {\n\t\t\t\t\t\t\t\t\t//console.log(usecase)\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Clicked!\")\n\t\t\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t\t\t\tif (filters.includes(usecase.name.toLowerCase())) {\n\t\t\t\t\t\t\t\t\t\t\t\t\taddFilter(usecase.name)\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst foundIndex = filters.indexOf(usecase.name.toLowerCase())\n \t\t\t\t\t\t\t\t\t\t\t\tremoveFilter(foundIndex) \n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{usecase.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tIn use: {usecase.matches.length}/{usecase.list.length}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t: null}\n\t\t\t\t\t
\n
\n {!isMobile &&\n\t\t\t\t\tactionImageList !== undefined &&\n actionImageList !== null &&\n actionImageList.length > 0 ? (\n \n {actionImageList.map((data, index) => {\n if (\n data.large_image === undefined ||\n data.large_image === null ||\n data.large_image.length === 0\n ) {\n return null;\n }\n\n if (data.app_name.toLowerCase() === \"shuffle tools\") {\n data.large_image = theme.palette.defaultImage;\n }\n\n\t\t\t\t\t\t\t\tconst returnData = \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"FILTER: \", data);\n\t\t\t\t\t\t\t\t\t\t\t\taddFilter(data.app_name);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\tif (firstLoad) {\n\t\t\t\t\t\t\t\t\tappDelay += 75\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t//appDelay = 0\n\t\t\t\t\t\t\t\t\treturn returnData \n\t\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{returnData}\n\t\t\t\t\t\t\t\t\t\n );\n })}\n
\n ) : null}\n {view === \"grid\" ? (\n \n\t\t\t\t\t\t\t\n \t\n\t\t\t\t\t\t\t\n\n {filteredWorkflows.map((data, index) => {\n\t\t\t\t\t\t\t\t// Shouldn't be a part of this list\n\t\t\t\t\t\t\t\tif (data.public === true) {\n\t\t\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t\t\t}\n\n \t\t\t\t\t\t\tif (firstLoad) {\n\t\t\t\t\t\t\t\t\tworkflowDelay += 75\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn (\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n })}\n \n ) : (\n \n )}\n\n
\n
\n
\n );\n };\n\n const importWorkflowsFromUrl = (url) => {\n console.log(\"IMPORT WORKFLOWS FROM \", downloadUrl);\n\n const parsedData = {\n url: url,\n field_3: downloadBranch || \"master\",\n };\n\n if (field1.length > 0) {\n parsedData[\"field_1\"] = field1;\n }\n\n if (field2.length > 0) {\n parsedData[\"field_2\"] = field2;\n }\n\n alert.success(\"Getting specific workflows from your URL.\");\n fetch(globalUrl + \"/api/v1/workflows/download_remote\", {\n method: \"POST\",\n mode: \"cors\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(parsedData),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n alert.success(\"Successfully loaded workflows from \" + downloadUrl);\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed loading: \" + responseJson.reason);\n } else {\n alert.error(\"Failed loading\");\n }\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const handleGithubValidation = () => {\n importWorkflowsFromUrl(downloadUrl);\n setLoadWorkflowsModalOpen(false);\n };\n\n const workflowDownloadModalOpen = loadWorkflowsModalOpen ? (\n {}}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: \"800px\",\n minHeight: \"320px\",\n },\n }}\n >\n \n
\n Load workflows from github repo\n
\n \n upload.click()}\n >\n \n \n \n
\n
\n
\n \n Repository (supported: github, gitlab, bitbucket)\n setDownloadUrl(e.target.value)}\n placeholder=\"https://github.com/frikky/shuffle-apps\"\n fullWidth\n />\n \n Branch (default value is \"master\"):\n \n
\n setDownloadBranch(e.target.value)}\n placeholder=\"master\"\n fullWidth\n />\n
\n \n Authentication (optional - private repos etc):\n \n
\n setField1(e.target.value)}\n type=\"username\"\n placeholder=\"Username / APIkey (optional)\"\n fullWidth\n />\n setField2(e.target.value)}\n type=\"password\"\n placeholder=\"Password (optional)\"\n fullWidth\n />\n
\n
\n \n setLoadWorkflowsModalOpen(false)}\n color=\"primary\"\n >\n Cancel\n \n {\n handleGithubValidation();\n }}\n color=\"primary\"\n >\n Submit\n \n \n \n ) : null;\n\n\n\t//const \n //const [percentDone, setPercentDone] = React.useState(0)\n\tconst percentDone = gettingStartedItems.filter((item) => item.done).length / gettingStartedItems.length * 100\n\n\tconst GettingStartedItem = ({item, index}) => {\n\t\tconst [clicked, setClicked] = React.useState(false)\n\t\tconst doneIcon = item.done ? : \n\n\t\treturn (\n\t\t\t
setClicked(true)}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t{doneIcon} {index + 1}. {item.name}\n\t\t\t\t\n\t\t\t\t{clicked ? \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t: \n\t\t\t\t\tnull\n\t\t\t\t}\n\t\t\t
\n\t\t)\n\t}\n\n\tconst gettingStartedDrawer = \n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tGetting Started\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetDrawerOpen(false)\n\n\t\t\t\t\t\t\tlocalStorage.setItem(sidebarKey, \"closed\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n \t\t\t\t\t \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tSetup progress: {isNaN(percentDone) ? 0 : percentDone}%\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\tFollow these steps to get you up and running!\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\tsetVideoViewOpen(true)\n\t\t\t\t}}>\n\t\t\t\t\tWatch 2-min introduction video\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t{gettingStartedItems.map((item, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t
\n\t\t\n\t\t\t\t\n\t\tconst videoView =\n\t\t\t {\n\t\t\t\t\tsetVideoViewOpen(false)\n\t\t\t\t}}\n\t\t\t\tPaperProps={{\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tbackgroundColor: surfaceColor,\n\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\tminWidth: 560,\n\t\t\t\t\t\tminHeight: 415,\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\tWelcome to Shuffle!\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetVideoViewOpen(false)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\n const loadedCheck =\n isLoaded && isLoggedIn && workflowDone ? (\n
\n\t\t\t\t{/*\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t*/}\n 1366 ? 1366 : isMobile ? \"100%\" : 1200,\n margin: \"auto\",\n padding: 20,\n }}\n onDrop={uploadFile}\n >\n \n \n {/*modalView*/}\n {deleteModal}\n {exportVerifyModal}\n {publishModal}\n {workflowDownloadModalOpen}\n\n\t\t\t\t{!drawerOpen ?
\n \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\tsetDrawerOpen(true)\n\t\t\t\t\t\t\tlocalStorage.setItem(sidebarKey, \"open\");\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
: null}\n\t\t\t\t{isMobile ? null : gettingStartedDrawer} \n\t\t\t\t{videoView} \n\n\t\t\t\t{modalOpen === true ? \n\t\t\t\t\t\n\t\t\t\t: null}\n\t\t\t\t{/*
\n\t\t\t\t\t\n\t\t\t\t\t\tNeed assistance? Ask our support team (it's free!).\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
*/}\n\t\t\t
\n ) : (\n \n \n Loading Workflows\n
\n );\n\n // Maybe use gridview or something, idk\n return
{loadedCheck}
;\n};\n\nexport default Workflows;\n","import React, { useEffect, useContext } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useTheme } from \"@material-ui/core/styles\";\n\nimport ReactGA from 'react-ga';\nimport SecurityFramework from '../components/SecurityFramework.jsx';\n\nimport {\n Badge,\n Avatar,\n Grid,\n Paper,\n Tooltip,\n Divider,\n Button,\n TextField,\n FormControl,\n IconButton,\n Menu,\n MenuItem,\n FormControlLabel,\n Chip,\n Switch,\n Typography,\n Zoom,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n} from \"@material-ui/core\";\n\nimport {\n\tCheck as CheckIcon,\n GridOn as GridOnIcon,\n List as ListIcon,\n Close as CloseIcon,\n Compare as CompareIcon,\n Maximize as MaximizeIcon,\n Minimize as MinimizeIcon,\n AddCircle as AddCircleIcon,\n Toc as TocIcon,\n Send as SendIcon,\n Search as SearchIcon,\n FileCopy as FileCopyIcon,\n Delete as DeleteIcon,\n BubbleChart as BubbleChartIcon,\n Restore as RestoreIcon,\n Cached as CachedIcon,\n GetApp as GetAppIcon,\n Apps as AppsIcon,\n Edit as EditIcon,\n MoreVert as MoreVertIcon,\n PlayArrow as PlayArrowIcon,\n Add as AddIcon,\n Publish as PublishIcon,\n CloudUpload as CloudUploadIcon,\n CloudDownload as CloudDownloadIcon,\n} from \"@mui/icons-material\";\n\nimport NestedMenuItem from \"material-ui-nested-menu-item\";\n//import {Search as SearchIcon, ArrowUpward as ArrowUpwardIcon, Visibility as VisibilityIcon, Done as DoneIcon, Close as CloseIcon, Error as ErrorIcon, FindReplace as FindreplaceIcon, ArrowLeft as ArrowLeftIcon, Cached as CachedIcon, DirectionsRun as DirectionsRunIcon, Add as AddIcon, Polymer as PolymerIcon, FormatListNumbered as FormatListNumberedIcon, Create as CreateIcon, PlayArrow as PlayArrowIcon, AspectRatio as AspectRatioIcon, MoreVert as MoreVertIcon, Apps as AppsIcon, Schedule as ScheduleIcon, FavoriteBorder as FavoriteBorderIcon, Pause as PauseIcon, Delete as DeleteIcon, AddCircleOutline as AddCircleOutlineIcon, Save as SaveIcon, KeyboardArrowLeft as KeyboardArrowLeftIcon, KeyboardArrowRight as KeyboardArrowRightIcon, ArrowBack as ArrowBackIcon, Settings as SettingsIcon, LockOpen as LockOpenIcon, ExpandMore as ExpandMoreIcon, VpnKey as VpnKeyIcon} from '@material-ui/icons';\n\n//https://next.material-ui.com/components/material-icons/\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\n//import JSONPretty from 'react-json-pretty';\n//import JSONPrettyMon from 'react-json-pretty/dist/monikai'\nimport Dropzone from \"../components/Dropzone\";\n\nimport { useNavigate, Link, useParams } from \"react-router-dom\";\nimport { useAlert } from \"react-alert\";\nimport ChipInput from \"material-ui-chip-input\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst inputColor = \"#383B40\";\nconst surfaceColor = \"#27292D\";\nconst svgSize = 24;\nconst imagesize = 22;\n\nconst useStyles = makeStyles((theme) => ({\n datagrid: {\n border: 0,\n \"& .MuiDataGrid-columnsContainer\": {\n backgroundColor:\n theme.palette.type === \"light\" ? \"#fafafa\" : theme.palette.inputColor,\n },\n \"& .MuiDataGrid-iconSeparator\": {\n display: \"none\",\n },\n \"& .MuiDataGrid-colCell, .MuiDataGrid-cell\": {\n borderRight: `1px solid ${\n theme.palette.type === \"light\" ? \"white\" : \"#303030\"\n }`,\n },\n \"& .MuiDataGrid-columnsContainer, .MuiDataGrid-cell\": {\n borderBottom: `1px solid ${\n theme.palette.type === \"light\" ? \"#f0f0f0\" : \"#303030\"\n }`,\n },\n \"& .MuiDataGrid-cell\": {\n color:\n theme.palette.type === \"light\" ? \"white\" : \"rgba(255,255,255,0.65)\",\n },\n \"& .MuiPaginationItem-root, .MuiTablePagination-actions, .MuiTablePagination-caption\":\n {\n borderRadius: 0,\n color: \"white\",\n },\n },\n}));\n\n \nconst chipStyle = {\n backgroundColor: \"#3d3f43\",\n marginRight: 5,\n paddingLeft: 5,\n paddingRight: 5,\n height: 28,\n cursor: \"pointer\",\n borderColor: \"#3d3f43\",\n color: \"white\",\n};\n\nconst GettingStarted = (props) => {\n const { globalUrl, isLoggedIn, isLoaded, userdata } = props;\n\n document.title = \"Getting Started with Shuffle\";\n const theme = useTheme();\n const alert = useAlert();\n const classes = useStyles(theme);\n\tlet navigate = useNavigate();\n const imgSize = 60;\n\n const referenceUrl = globalUrl + \"/api/v1/hooks/\";\n\n\n var upload = \"\";\n\n const [workflows, setWorkflows] = React.useState([]);\n const [filteredWorkflows, setFilteredWorkflows] = React.useState([]);\n const [selectedWorkflow, setSelectedWorkflow] = React.useState({});\n const [workflowDone, setWorkflowDone] = React.useState(false);\n const [selectedWorkflowId, setSelectedWorkflowId] = React.useState(\"\");\n\n const [field1, setField1] = React.useState(\"\");\n const [field2, setField2] = React.useState(\"\");\n const [downloadUrl, setDownloadUrl] = React.useState(\n \"https://github.com/frikky/shuffle-workflows\"\n );\n const [videoViewOpen, setVideoViewOpen] = React.useState(false)\n const [downloadBranch, setDownloadBranch] = React.useState(\"master\");\n const [loadWorkflowsModalOpen, setLoadWorkflowsModalOpen] = React.useState(false);\n const [exportModalOpen, setExportModalOpen] = React.useState(false);\n const [exportData, setExportData] = React.useState(\"\");\n\n const [modalOpen, setModalOpen] = React.useState(false);\n const [newWorkflowName, setNewWorkflowName] = React.useState(\"\");\n const [newWorkflowDescription, setNewWorkflowDescription] =\n React.useState(\"\");\n const [newWorkflowTags, setNewWorkflowTags] = React.useState([]);\n\n const [defaultReturnValue, setDefaultReturnValue] = React.useState(\"\");\n\n const [deleteModalOpen, setDeleteModalOpen] = React.useState(false);\n const [publishModalOpen, setPublishModalOpen] = React.useState(false);\n const [editingWorkflow, setEditingWorkflow] = React.useState({});\n const [importLoading, setImportLoading] = React.useState(false);\n const [isDropzone, setIsDropzone] = React.useState(false);\n const [view, setView] = React.useState(\"grid\");\n const [filters, setFilters] = React.useState([]);\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [actionImageList, setActionImageList] = React.useState([]);\n\n const [firstLoad, setFirstLoad] = React.useState(true);\n\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\";\n\n const findWorkflow = (filters) => {\n if (filters.length === 0) {\n setFilteredWorkflows(workflows);\n return;\n }\n\n var newWorkflows = [];\n for (var workflowKey in workflows) {\n const curWorkflow = workflows[workflowKey];\n\n var found = [false];\n if (curWorkflow.tags === undefined || curWorkflow.tags === null) {\n found = filters.map((filter) =>\n curWorkflow.name.toLowerCase().includes(filter)\n );\n } else {\n found = filters.map((filter) => {\n const newfilter = filter.toLowerCase();\n if (filter === undefined) {\n return false;\n }\n\n if (curWorkflow.name.toLowerCase().includes(filter.toLowerCase())) {\n return true;\n } else if (curWorkflow.tags.includes(filter)) {\n return true;\n } else if (curWorkflow.owner === filter) {\n return true;\n } else if (curWorkflow.org_id === filter) {\n return true;\n } else if (\n curWorkflow.actions !== null &&\n curWorkflow.actions !== undefined\n ) {\n for (var key in curWorkflow.actions) {\n const action = curWorkflow.actions[key];\n if (\n action.app_name.toLowerCase() === newfilter ||\n action.app_name.toLowerCase().includes(newfilter)\n ) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n\n if (found.every((v) => v === true)) {\n newWorkflows.push(curWorkflow);\n continue;\n }\n }\n\n if (newWorkflows.length !== workflows.length) {\n setFilteredWorkflows(newWorkflows);\n }\n };\n\n const addFilter = (data) => {\n if (data === null || data === undefined) {\n return;\n }\n\n if (data.includes(\"<\") && data.includes(\">\")) {\n return;\n }\n\n if (filters.includes(data) || filters.includes(data.toLowerCase())) {\n return;\n }\n\n filters.push(data.toLowerCase());\n setFilters(filters);\n\n findWorkflow(filters);\n };\n\n const removeFilter = (index) => {\n var newfilters = filters;\n\n if (index < 0) {\n console.log(\"Can't handle index: \", index);\n return;\n }\n\n newfilters.splice(index, 1);\n\n if (newfilters.length === 0) {\n newfilters = [];\n setFilters(newfilters);\n } else {\n setFilters(newfilters);\n }\n\n findWorkflow(newfilters);\n };\n\n const exportVerifyModal = exportModalOpen ? (\n {\n setExportModalOpen(false);\n setSelectedWorkflow({});\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n padding: 30,\n },\n }}\n >\n \n
\n Want to auto-sanitize this workflow before exporting?\n
\n
\n \n \n This will make potentially sensitive fields such as username,\n password, url etc. empty\n \n {\n setExportModalOpen(false);\n exportWorkflow(exportData, true);\n setExportData(\"\");\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setExportModalOpen(false);\n exportWorkflow(exportData, false);\n setExportData(\"\");\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const publishModal = publishModalOpen ? (\n {\n setPublishModalOpen(false);\n setSelectedWorkflow({});\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n padding: 50,\n },\n }}\n >\n \n
\n Are you sure you want to PUBLISH this workflow?\n
\n
\n \n
\n \n Before publishing, we will sanitize all inputs, remove references to\n you, randomize ID's and remove your authentication.\n \n
\n {\n publishWorkflow(selectedWorkflow);\n setPublishModalOpen(false);\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setPublishModalOpen(false);\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const deleteModal = deleteModalOpen ? (\n {\n setDeleteModalOpen(false);\n setSelectedWorkflowId(\"\");\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: 500,\n },\n }}\n >\n \n
\n Are you sure you want to delete this workflow?
\n Other workflows relying on this one may stop working\n
\n \n \n {\n console.log(\"Editing: \", editingWorkflow);\n if (selectedWorkflowId) {\n deleteWorkflow(selectedWorkflowId);\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n }\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n Yes\n \n {\n setDeleteModalOpen(false);\n }}\n color=\"primary\"\n >\n No\n \n \n \n ) : null;\n\n const uploadFile = (e) => {\n const isDropzone =\n e.dataTransfer === undefined ? false : e.dataTransfer.files.length > 0;\n const files = isDropzone ? e.dataTransfer.files : e.target.files;\n\n const reader = new FileReader();\n alert.info(\"Starting upload. Please wait while we validate the workflows\");\n\n try {\n reader.addEventListener(\"load\", (e) => {\n var data = e.target.result;\n setIsDropzone(false);\n try {\n data = JSON.parse(reader.result);\n } catch (e) {\n alert.error(\"Invalid JSON: \" + e);\n return;\n }\n\n // Initialize the workflow itself\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n {},\n false\n )\n .then((response) => {\n if (response !== undefined) {\n // SET THE FULL THING\n data.id = response.id;\n\n // Actually create it\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n data,\n false\n ).then((response) => {\n if (response !== undefined) {\n alert.success(`Successfully imported ${data.name}`);\n }\n });\n }\n })\n .catch((error) => {\n alert.error(\"Import error: \" + error.toString());\n });\n });\n } catch (e) {\n console.log(\"Error in dropzone: \", e);\n }\n\n reader.readAsText(files[0]);\n };\n\n useEffect(() => {\n if (isDropzone) {\n setIsDropzone(false);\n }\n }, [isDropzone]);\n\n const getAvailableWorkflows = () => {\n fetch(globalUrl + \"/api/v1/workflows\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!: \", response.status);\n\n if (isCloud) {\n window.location.pathname = \"/login\";\n }\n\n alert.info(\"Failed getting workflows.\");\n setWorkflowDone(true);\n\n return;\n }\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson !== undefined) {\n setWorkflows(responseJson);\n\n if (responseJson !== undefined) {\n var actionnamelist = [];\n var parsedactionlist = [];\n for (var key in responseJson) {\n for (var actionkey in responseJson[key].actions) {\n const action = responseJson[key].actions[actionkey];\n //console.log(\"Action: \", action)\n if (actionnamelist.includes(action.app_name)) {\n continue;\n }\n\n actionnamelist.push(action.app_name);\n parsedactionlist.push(action);\n }\n }\n\n //console.log(parsedactionlist)\n setActionImageList(parsedactionlist);\n }\n\n setFilteredWorkflows(responseJson);\n setWorkflowDone(true);\n \n\t\t\t\t\t// Ensures the zooming happens only once per load\n \tsetTimeout(() => {\n\t\t\t\t\t\tsetFirstLoad(false)\n\t\t\t\t\t\tsetVideoViewOpen(true)\n\t\t\t\t\t}, 100)\n } else {\n if (isLoggedIn) {\n alert.error(\"An error occurred while loading workflows\");\n }\n\n return;\n }\n })\n .catch((error) => {\n\t\t\t\tsetVideoViewOpen(true)\n\n alert.error(error.toString());\n });\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (workflows.length <= 0) {\n const tmpView = localStorage.getItem(\"view\");\n if (tmpView !== undefined && tmpView !== null) {\n setView(tmpView);\n }\n\n //setFirstrequest(false);\n getAvailableWorkflows();\n }\n }, [])\n\n const viewStyle = {\n color: \"#ffffff\",\n width: \"100%\",\n display: \"flex\",\n minWidth: 1024,\n maxWidth: 1024,\n margin: \"auto\",\n };\n\n const emptyWorkflowStyle = {\n paddingTop: \"200px\",\n width: 1024,\n margin: \"auto\",\n };\n\n const boxStyle = {\n padding: \"20px 20px 20px 20px\",\n width: \"100%\",\n height: \"250px\",\n color: \"white\",\n backgroundColor: surfaceColor,\n display: \"flex\",\n flexDirection: \"column\",\n };\n\n const paperAppContainer = {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignContent: \"space-between\",\n marginTop: 5,\n };\n\n const paperAppStyle = {\n minHeight: 130,\n maxHeight: 130,\n overflow: \"hidden\",\n width: \"100%\",\n color: \"white\",\n backgroundColor: surfaceColor,\n padding: \"12px 12px 0px 15px\",\n borderRadius: 5,\n display: \"flex\",\n boxSizing: \"border-box\",\n position: \"relative\",\n };\n\n const gridContainer = {\n height: \"auto\",\n color: \"white\",\n margin: \"10px\",\n backgroundColor: surfaceColor,\n };\n\n const workflowActionStyle = {\n display: \"flex\",\n width: 160,\n height: 44,\n justifyContent: \"space-between\",\n };\n\n const exportAllWorkflows = () => {\n for (var key in workflows) {\n exportWorkflow(workflows[key], false);\n }\n };\n\n const deduplicateIds = (data) => {\n if (data.triggers !== null && data.triggers !== undefined) {\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name === \"Shuffle Workflow\") {\n if (trigger.parameters.length > 2) {\n trigger.parameters[2].value = \"\";\n }\n }\n\n if (trigger.status === \"running\") {\n trigger.status = \"stopped\";\n }\n\n const newId = uuidv4();\n if (trigger.trigger_type === \"WEBHOOK\") {\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length === 2\n ) {\n trigger.parameters[0].value =\n referenceUrl + \"webhook_\" + trigger.id;\n trigger.parameters[1].value = \"webhook_\" + trigger.id;\n } else if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length === 3\n ) {\n trigger.parameters[0].value =\n referenceUrl + \"webhook_\" + trigger.id;\n trigger.parameters[1].value = \"webhook_\" + trigger.id;\n // FIXME: Add auth here?\n } else {\n alert.info(\"Something is wrong with the webhook in the copy\");\n }\n }\n\n for (var branchkey in data.branches) {\n const branch = data.branches[branchkey];\n if (branch.source_id === trigger.id) {\n branch.source_id = newId;\n }\n\n if (branch.destination_id === trigger.id) {\n branch.destination_id = newId;\n }\n }\n\n trigger.environment = isCloud ? \"cloud\" : \"Shuffle\";\n trigger.id = newId;\n }\n }\n\n if (data.actions !== null && data.actions !== undefined) {\n for (key in data.actions) {\n data.actions[key].authentication_id = \"\";\n\n for (var subkey in data.actions[key].parameters) {\n const param = data.actions[key].parameters[subkey];\n if (\n param.name.includes(\"key\") ||\n param.name.includes(\"user\") ||\n param.name.includes(\"pass\") ||\n param.name.includes(\"api\") ||\n param.name.includes(\"auth\") ||\n param.name.includes(\"secret\") ||\n param.name.includes(\"domain\") ||\n param.name.includes(\"url\") ||\n param.name.includes(\"mail\")\n ) {\n // FIXME: This may be a vuln if api-keys are generated that start with $\n if (param.value.startsWith(\"$\")) {\n console.log(\"Skipping field, as it's referencing a variable\");\n } else {\n param.value = \"\";\n param.is_valid = false;\n }\n }\n }\n\n const newId = uuidv4();\n for (branchkey in data.branches) {\n const branch = data.branches[branchkey];\n if (branch.source_id === data.actions[key].id) {\n branch.source_id = newId;\n }\n\n if (branch.destination_id === data.actions[key].id) {\n branch.destination_id = newId;\n }\n }\n\n if (data.actions[key].id === data.start) {\n data.start = newId;\n }\n\n data.actions[key].environment = \"\";\n data.actions[key].id = newId;\n }\n }\n\n if (\n data.workflow_variables !== null &&\n data.workflow_variables !== undefined\n ) {\n for (key in data.workflow_variables) {\n const param = data.workflow_variables[key];\n if (\n param.name.includes(\"key\") ||\n param.name.includes(\"user\") ||\n param.name.includes(\"pass\") ||\n param.name.includes(\"api\") ||\n param.name.includes(\"auth\") ||\n param.name.includes(\"secret\") ||\n param.name.includes(\"email\")\n ) {\n param.value = \"\";\n param.is_valid = false;\n }\n }\n }\n\n return data;\n };\n\n const sanitizeWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data[\"owner\"] = \"\";\n console.log(\"Sanitize start: \", data);\n data = deduplicateIds(data);\n\n data[\"org\"] = [];\n data[\"org_id\"] = \"\";\n data[\"execution_org\"] = {};\n\n // These are backwards.. True = saved before. Very confuse.\n data[\"previously_saved\"] = false;\n data[\"first_save\"] = false;\n console.log(\"Sanitize end: \", data);\n\n return data;\n };\n\n const exportWorkflow = (data, sanitize) => {\n data = JSON.parse(JSON.stringify(data));\n let exportFileDefaultName = data.name + \".json\";\n\n if (sanitize === true) {\n data = sanitizeWorkflow(data);\n\n if (data.subflows !== null && data.subflows !== undefined) {\n alert.info(\n \"Not exporting with subflows when sanitizing. Please manually export them.\"\n );\n data.subflows = [];\n }\n\n //\tfor (var key in data.subflows) {\n //\t\tif (data.sublof\n //\t}\n //}\n }\n\n // Add correct ID's for triggers\n // Add mag\n\n let dataStr = JSON.stringify(data);\n let dataUri =\n \"data:application/json;charset=utf-8,\" + encodeURIComponent(dataStr);\n let linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n };\n\n const publishWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data = sanitizeWorkflow(data);\n alert.info(\"Sanitizing and publishing \" + data.name);\n\n // This ALWAYS talks to Shuffle cloud\n fetch(globalUrl + \"/api/v1/workflows/\" + data.id + \"/publish\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflow publish :O!\");\n } else {\n if (isCloud) {\n alert.success(\"Successfully published workflow\");\n } else {\n alert.success(\n \"Successfully published workflow to https://shuffler.io\"\n );\n }\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed publishing: \", responseJson.reason);\n }\n\n getAvailableWorkflows();\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const copyWorkflow = (data) => {\n data = JSON.parse(JSON.stringify(data));\n alert.success(\"Copying workflow \" + data.name);\n data.id = \"\";\n data.name = data.name + \"_copy\";\n data = deduplicateIds(data);\n\n fetch(globalUrl + \"/api/v1/workflows\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n return response.json();\n })\n .then(() => {\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const deleteWorkflow = (id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + id, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for setting workflows :O!\");\n alert.error(\"Failed deleting workflow. Do you have access?\");\n } else {\n alert.success(\"Deleted workflow \" + id);\n }\n\n return response.json();\n })\n .then(() => {\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const handleChipClick = (e) => {\n addFilter(e.target.innerHTML);\n };\n\n const NewWorkflowPaper = () => {\n const [hover, setHover] = React.useState(false);\n\n const innerColor = \"rgba(255,255,255,0.3)\";\n const setupPaperStyle = {\n minHeight: paperAppStyle.minHeight,\n width: paperAppStyle.width,\n color: innerColor,\n padding: paperAppStyle.padding,\n borderRadius: paperAppStyle.borderRadius,\n display: \"flex\",\n boxSizing: \"border-box\",\n position: \"relative\",\n border: `2px solid ${innerColor}`,\n cursor: \"pointer\",\n backgroundColor: hover ? \"rgba(39,41,45,0.5)\" : \"rgba(39,41,45,1)\",\n };\n\n return (\n \n setModalOpen(true)}\n onMouseOver={() => {\n setHover(true);\n }}\n onMouseOut={() => {\n setHover(false);\n }}\n >\n \n \n \n \n \n \n \n );\n };\n\n const WorkflowPaper = (props) => {\n const { data } = props;\n const [open, setOpen] = React.useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n var boxColor = \"#FECC00\";\n if (data.is_valid) {\n boxColor = \"#86c142\";\n }\n\n if (!data.previously_saved) {\n boxColor = \"#f85a3e\";\n }\n\n const menuClick = (event) => {\n setOpen(!open);\n setAnchorEl(event.currentTarget);\n };\n\n var parsedName = data.name;\n if (\n parsedName !== undefined &&\n parsedName !== null &&\n parsedName.length > 20\n ) {\n parsedName = parsedName.slice(0, 21) + \"..\";\n }\n\n const actions = data.actions !== null ? data.actions.length : 0;\n const [triggers, subflows] = getWorkflowMeta(data);\n\n const workflowMenuButtons = (\n {\n setOpen(false);\n setAnchorEl(null);\n }}\n >\n {\n setModalOpen(true);\n setEditingWorkflow(JSON.parse(JSON.stringify(data)));\n setNewWorkflowName(data.name);\n setNewWorkflowDescription(data.description);\n setDefaultReturnValue(data.default_return_value);\n if (data.tags !== undefined && data.tags !== null) {\n setNewWorkflowTags(JSON.parse(JSON.stringify(data.tags)));\n }\n }}\n key={\"change\"}\n >\n \n {\"Change details\"}\n \n {\n setSelectedWorkflow(data);\n setPublishModalOpen(true);\n }}\n key={\"publish\"}\n >\n \n {\"Publish Workflow\"}\n \n {\n copyWorkflow(data);\n setOpen(false);\n }}\n key={\"duplicate\"}\n >\n \n {\"Duplicate Workflow\"}\n \n {/*= 0} style={{backgroundColor: inputColor, color: \"white\"}} onClick={() => {\n\t\t\t\t\t//copyWorkflow(data)\t\t\n\t\t\t\t\t//setOpen(false)\n\t\t\t\t}} key={\"duplicate\"}>\n\t\t\t\t\t\n\t\t\t\t\t{\"Copy to Child Org\"}\n\t\t\t\t*/}\n {\n setExportModalOpen(true);\n\n if (data.triggers !== null && data.triggers !== undefined) {\n var newSubflows = [];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n\n if (\n trigger.parameters !== null &&\n trigger.parameters !== undefined\n ) {\n for (var subkey in trigger.parameters) {\n const param = trigger.parameters[subkey];\n if (\n param.name === \"workflow\" &&\n param.value !== data.id &&\n !newSubflows.includes(param.value)\n ) {\n newSubflows.push(param.value);\n }\n }\n }\n }\n\n var parsedworkflows = [];\n for (var key in newSubflows) {\n const foundWorkflow = workflows.find(\n (workflow) => workflow.id === newSubflows[key]\n );\n if (foundWorkflow !== undefined && foundWorkflow !== null) {\n parsedworkflows.push(foundWorkflow);\n }\n }\n\n if (parsedworkflows.length > 0) {\n console.log(\n \"Appending subflows during export: \",\n parsedworkflows.length\n );\n data.subflows = parsedworkflows;\n }\n }\n\n setExportData(data);\n setOpen(false);\n }}\n key={\"export\"}\n >\n \n {\"Export Workflow\"}\n \n {\n setDeleteModalOpen(true);\n setSelectedWorkflowId(data.id);\n setOpen(false);\n }}\n key={\"delete\"}\n >\n \n {\"Delete Workflow\"}\n \n \n );\n\n var image = \"\";\n var orgName = \"\";\n var orgId = \"\";\n if (userdata.orgs !== undefined) {\n const foundOrg = userdata.orgs.find((org) => org.id === data[\"org_id\"]);\n if (foundOrg !== undefined && foundOrg !== null) {\n //position: \"absolute\", bottom: 5, right: -5,\n const imageStyle = {\n width: imagesize,\n height: imagesize,\n pointerEvents: \"none\",\n marginLeft:\n data.creator_org !== undefined && data.creator_org.length > 0\n ? 20\n : 0,\n borderRadius: 10,\n border:\n foundOrg.id === userdata.active_org.id\n ? `3px solid ${boxColor}`\n : null,\n cursor: \"pointer\",\n marginRight: 10,\n };\n\n image =\n foundOrg.image === \"\" ? (\n \n ) : (\n {}}\n />\n );\n\n orgName = foundOrg.name;\n orgId = foundOrg.id;\n }\n }\n\n return (\n\t\t\t
\n \n \n \n \n \n {\n addFilter(orgId);\n }}\n >\n {image}\n
\n \n \n \n \n {parsedName}\n \n \n \n \n \n \n \n \n \n {actions}\n \n \n \n \n \n \n \n {triggers}\n \n \n \n \n {\n if (subflows === 0) {\n alert.info(\"No subflows for \" + data.name);\n return;\n }\n\n var newWorkflows = [data];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name !== \"Shuffle Workflow\") {\n continue;\n }\n\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length > 0 &&\n trigger.parameters[0].name === \"workflow\"\n ) {\n const newWorkflow = workflows.find(\n (item) => item.id === trigger.parameters[0].value\n );\n if (newWorkflow !== null && newWorkflow !== undefined) {\n newWorkflows.push(newWorkflow);\n continue;\n }\n }\n }\n\n setFilters([\"Subflows of \" + data.name]);\n setFilteredWorkflows(newWorkflows);\n }}\n >\n \n \n \n \n {subflows}\n \n \n \n \n \n {data.tags !== undefined\n ? data.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n \n );\n })\n : null}\n \n {data.actions !== undefined && data.actions !== null ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{workflowMenuButtons}\n\t\t\t\t\t\t
\n ) : null}\n\t\t\t\t\n\t\t\t\n\t\t
\n )\n }\n\n // Can create and set workflows\n const setNewWorkflow = (\n name,\n description,\n tags,\n defaultReturnValue,\n editingWorkflow,\n redirect\n ) => {\n var method = \"POST\";\n var extraData = \"\";\n var workflowdata = {};\n\n if (editingWorkflow.id !== undefined) {\n console.log(\"Building original workflow\");\n method = \"PUT\";\n extraData = \"/\" + editingWorkflow.id + \"?skip_save=true\";\n workflowdata = editingWorkflow;\n\n console.log(\"REMOVING OWNER\");\n workflowdata[\"owner\"] = \"\";\n // FIXME: Loop triggers and turn them off?\n }\n\n workflowdata[\"name\"] = name;\n workflowdata[\"description\"] = description;\n if (tags !== undefined) {\n workflowdata[\"tags\"] = tags;\n }\n\n if (defaultReturnValue !== undefined) {\n workflowdata[\"default_return_value\"] = defaultReturnValue;\n }\n\n return fetch(globalUrl + \"/api/v1/workflows\" + extraData, {\n method: method,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(workflowdata),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n setSubmitLoading(false);\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\tif (responseJson.reason !== undefined) {\n\t\t\t\t\t\talert.error(\"Error setting workflow: \", responseJson.reason)\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Error setting workflow.\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn\n\t\t\t\t}\n\n if (method === \"POST\" && redirect) {\n window.location.pathname = \"/workflows/\" + responseJson[\"id\"];\n setModalOpen(false);\n } else if (!redirect) {\n // Update :)\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n setImportLoading(false);\n setModalOpen(false);\n } else {\n alert.info(\"Successfully changed basic info for workflow\");\n setModalOpen(false);\n }\n\n return responseJson;\n })\n .catch((error) => {\n alert.error(error.toString());\n setImportLoading(false);\n setModalOpen(false);\n setSubmitLoading(false);\n });\n };\n\n const importFiles = (event) => {\n console.log(\"Importing!\");\n\n setImportLoading(true);\n if (event.target.files.length > 0) {\n for (var key in event.target.files) {\n const file = event.target.files[key];\n if (file.type !== \"application/json\") {\n if (file.type !== undefined) {\n alert.error(\"File has to contain valid json\");\n \t\t\t\tsetImportLoading(false);\n }\n\n continue;\n }\n\n const reader = new FileReader();\n // Waits for the read\n reader.addEventListener(\"load\", (event) => {\n var data = reader.result;\n try {\n data = JSON.parse(reader.result);\n } catch (e) {\n alert.error(\"Invalid JSON: \" + e);\n setImportLoading(false);\n return;\n }\n\n // Initialize the workflow itself\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n {},\n false\n )\n .then((response) => {\n if (response !== undefined) {\n // SET THE FULL THING\n data.id = response.id;\n data.first_save = false;\n data.previously_saved = false;\n data.is_valid = false;\n\n // Actually create it\n setNewWorkflow(\n data.name,\n data.description,\n data.tags,\n data.default_return_value,\n data,\n false\n ).then((response) => {\n if (response !== undefined) {\n alert.success(\"Successfully imported \" + data.name);\n }\n });\n }\n })\n .catch((error) => {\n alert.error(\"Import error: \" + error.toString());\n });\n });\n\n // Actually reads\n reader.readAsText(file);\n }\n }\n\n setLoadWorkflowsModalOpen(false);\n };\n\n const getWorkflowMeta = (data) => {\n let triggers = 0;\n let subflows = 0;\n if (\n data.triggers !== undefined &&\n data.triggers !== null &&\n data.triggers.length > 0\n ) {\n triggers = data.triggers.length;\n for (let key in data.triggers) {\n if (data.triggers[key].app_name === \"Shuffle Workflow\") {\n subflows += 1;\n }\n }\n }\n\n return [triggers, subflows];\n };\n\n const WorkflowListView = () => {\n let workflowData = \"\";\n if (workflows.length > 0) {\n const columns = [\n {\n field: \"image\",\n headerName: \"Logo\",\n width: 50,\n sortable: false,\n renderCell: (params) => {\n const data = params.row.record;\n\n var boxColor = \"#FECC00\";\n if (data.is_valid) {\n boxColor = \"#86c142\";\n }\n\n if (!data.previously_saved) {\n boxColor = \"#f85a3e\";\n }\n\n var image = \"\";\n if (userdata.orgs !== undefined) {\n const foundOrg = userdata.orgs.find(\n (org) => org.id === data[\"org_id\"]\n );\n if (foundOrg !== undefined && foundOrg !== null) {\n //position: \"absolute\", bottom: 5, right: -5,\n const imageStyle = {\n width: imagesize + 7,\n height: imagesize + 7,\n pointerEvents: \"none\",\n marginLeft:\n data.creator_org !== undefined &&\n data.creator_org.length > 0\n ? 20\n : 0,\n borderRadius: 10,\n border:\n foundOrg.id === userdata.active_org.id\n ? `3px solid ${boxColor}`\n : null,\n cursor: \"pointer\",\n marginTop: 5,\n };\n\n //\n image =\n foundOrg.image === \"\" ? (\n \n ) : (\n {\n //setFilteredWorkflows(newWorkflows)\n }}\n />\n );\n }\n }\n\n return
{image}
;\n },\n },\n {\n field: \"title\",\n headerName: \"Title\",\n width: 330,\n renderCell: (params) => {\n const data = params.row.record;\n\n return (\n \n \n {data.name}\n \n \n );\n },\n },\n\n {\n field: \"options\",\n headerName: \"Options\",\n width: 200,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {\n const data = params.row.record;\n const actions = data.actions !== null ? data.actions.length : 0;\n let [triggers, subflows] = getWorkflowMeta(data);\n\n return (\n \n
\n \n \n \n \n {actions}\n \n \n \n \n \n \n \n {triggers}\n \n \n \n \n {\n if (subflows === 0) {\n alert.info(\"No subflows for \" + data.name);\n return;\n }\n\n var newWorkflows = [data];\n for (var key in data.triggers) {\n const trigger = data.triggers[key];\n if (trigger.app_name !== \"Shuffle Workflow\") {\n continue;\n }\n\n if (\n trigger.parameters !== undefined &&\n trigger.parameters !== null &&\n trigger.parameters.length > 0 &&\n trigger.parameters[0].name === \"workflow\"\n ) {\n const newWorkflow = workflows.find(\n (item) => item.id === trigger.parameters[0].value\n );\n if (\n newWorkflow !== null &&\n newWorkflow !== undefined\n ) {\n newWorkflows.push(newWorkflow);\n continue;\n }\n }\n }\n\n setFilters([\"Subflows of \" + data.name]);\n setFilteredWorkflows(newWorkflows);\n }}\n >\n \n \n \n \n {subflows}\n \n \n \n
\n
\n );\n },\n },\n {\n field: \"tags\",\n headerName: \"Tags\",\n maxHeight: 15,\n width: 300,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {\n const data = params.row.record;\n return (\n \n {data.tags !== undefined\n ? data.tags.map((tag, index) => {\n if (index >= 3) {\n return null;\n }\n\n return (\n \n );\n })\n : null}\n \n );\n },\n },\n {\n field: \"\",\n headerName: \"\",\n maxHeight: 15,\n width: 100,\n sortable: false,\n disableClickEventBubbling: true,\n renderCell: (params) => {},\n },\n ];\n let rows = [];\n rows = filteredWorkflows.map((data, index) => {\n let obj = {\n id: index + 1,\n title: data.name,\n record: data,\n };\n\n return obj;\n })\n\n workflowData = (\n \n );\n }\n return
{workflowData}
;\n };\n\n const modalView = modalOpen ? (\n {\n setModalOpen(false);\n }}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: \"800px\",\n },\n }}\n >\n \n
\n {editingWorkflow.id !== undefined ? \"Editing\" : \"New\"} workflow\n
\n \n upload.click()}\n >\n \n \n \n
\n
\n
\n \n \n setNewWorkflowName(event.target.value)}\n InputProps={{\n style: {\n color: \"white\",\n },\n }}\n color=\"primary\"\n placeholder=\"Name\"\n margin=\"dense\"\n defaultValue={newWorkflowName}\n autoFocus\n fullWidth\n />\n setNewWorkflowDescription(event.target.value)}\n InputProps={{\n style: {\n color: \"white\",\n },\n }}\n color=\"primary\"\n defaultValue={newWorkflowDescription}\n placeholder=\"Description\"\n rows=\"3\"\n multiline\n margin=\"dense\"\n fullWidth\n />\n {\n newWorkflowTags.push(chip);\n setNewWorkflowTags(newWorkflowTags);\n }}\n onDelete={(chip, index) => {\n newWorkflowTags.splice(index, 1);\n setNewWorkflowTags(newWorkflowTags);\n }}\n />\n\n setDefaultReturnValue(event.target.value)}\n InputProps={{\n style: {\n color: \"white\",\n },\n }}\n color=\"primary\"\n defaultValue={defaultReturnValue}\n placeholder=\"Default return value (used for Subflows if the subflow fails)\"\n rows=\"3\"\n multiline\n margin=\"dense\"\n fullWidth\n />\n \n \n {\n setNewWorkflowName(\"\");\n setNewWorkflowDescription(\"\");\n setDefaultReturnValue(\"\");\n setEditingWorkflow({});\n setNewWorkflowTags([]);\n setModalOpen(false);\n }}\n color=\"primary\"\n >\n Cancel\n \n {\n console.log(\"Tags: \", newWorkflowTags);\n if (editingWorkflow.id !== undefined) {\n setNewWorkflow(\n newWorkflowName,\n newWorkflowDescription,\n newWorkflowTags,\n defaultReturnValue,\n editingWorkflow,\n false\n );\n setNewWorkflowName(\"\");\n setDefaultReturnValue(\"\");\n setNewWorkflowDescription(\"\");\n setEditingWorkflow({});\n setNewWorkflowTags([]);\n } else {\n setNewWorkflow(\n newWorkflowName,\n newWorkflowDescription,\n newWorkflowTags,\n defaultReturnValue,\n {},\n true\n );\n }\n\n setSubmitLoading(true);\n }}\n color=\"primary\"\n >\n {submitLoading ? : \"Submit\"}\n \n \n \n \n ) : null;\n\n const viewSize = {\n workflowView: 4,\n executionsView: 3,\n executionResults: 4,\n };\n\n\n if (viewSize.workflowView === 0) {\n workflowViewStyle.display = \"none\";\n }\n\n const workflowButtons = (\n \n {view === \"list\" && (\n \n {\n localStorage.setItem(\"view\", \"grid\");\n setView(\"grid\");\n }}\n >\n \n \n \n )}\n {view === \"grid\" && (\n \n {\n localStorage.setItem(\"view\", \"list\");\n setView(\"list\");\n }}\n >\n \n \n \n )}\n \n {importLoading ? (\n \n ) : (\n upload.click()}\n >\n \n \n )}\n \n (upload = ref)}\n onChange={importFiles}\n />\n {workflows.length > 0 ? (\n \n {\n exportAllWorkflows();\n }}\n >\n \n \n
\n ) : null}\n {isCloud ? null : (\n \n setLoadWorkflowsModalOpen(true)}\n >\n \n \n \n )}\n \n );\n\n\n\tconst workflowViewStyle = {\n\t\tflex: viewSize.workflowView,\n\t\tmargin: \"auto\",\n\t\tmarginTop: 25,\n\t\ttextAlign: \"center\",\n\t\tmaxWidth: 600,\n\t};\n\n\n const WorkflowView = () => {\n\t\tvar workflowDelay = -150\n\t\tvar appDelay = -75\t\n\n\t\tconst textSpacingDiff = 8\n\t\tconst textType = \"body2\"\n\t\t\t\t\t\t\n\t\t// Discover use-cases made by us and other creators!\n\t\tconst steps = [\n\t\t\t{\n\t\t\t\thtml: (\n\t\t\t\t\t {\n\t\t\t\t\t\tif (isCloud) {\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"getting-started\",\n\t\t\t\t\t\t\t\taction: `integerations_find_click`,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t\tFind relevant apps and start your automation journey\n\t\t\t\t\t\n\t\t\t\t), \n\t\t\t\ttutorial: \"find_integrations\",\n\t\t\t},\n\t\t\t{\n\t\t\t\thtml: \n\t\t\t\t\t\n\t\t\t\t\t\t\tDiscover Use-Case ideas and \n\t\t\t\t\t\t\t {\n \n \t\t\t\t\t\tif (isCloud) {\n\t\t\t\t\t\t\t\tnavigate(`/search?tab=workflows`)\n\n\t\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\t\tcategory: \"getting-started\",\n\t\t\t\t\t\t\t\t\taction: `workflow_find_click`,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talert.success(\"TBD: Coming in version 1.0.0\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst ele = document.getElementById(\"shuffle_search_field\")\n\t\t\t\t\t\t\tif (ele !== undefined && ele !== null) {\n\t\t\t\t\t\t\t\tconsole.log(\"Found ele: \", ele)\n\t\t\t\t\t\t\t\tele.focus()\n\t\t\t\t\t\t\t\tele.style.borderColor = \"#f86a3e\"\n\t\t\t\t\t\t\t\tele.style.borderWidth = \"2px\"\n\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t//alert.success(\"TBD: Coming in version 1.0.0\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\tworkflows made by other creators!\n\t\t\t\t\t,\n\t\t\t\ttutorial: \"discover_workflows\",\n\t\t\t},\n\t\t\t{\n\t\t\t\thtml: (\n\t\t\t\t\t {\n\t\t\t\t\t\tif (isCloud) {\n\t\t\t\t\t\t\tReactGA.event({\n\t\t\t\t\t\t\t\tcategory: \"getting-started\",\n\t\t\t\t\t\t\t\taction: `create_workflow_click`,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t\tLearn to use Shuffle by  \n\t\t\t\t\t\t {setModalOpen(true)}}>\n\t\t\t\t\t\t\tcreating your first workflow \n\t\t\t\t\t\t and reading the docs.\n\t\t\t\t\t\n\t\t\t\t),\n\t\t\t\ttutorial: \"learn_shuffle\",\n\t\t\t},\n\t\t\t{\n\t\t\t\thtml: \n\t\t\t\t\t\n\t\t\t\t\t\tConfigure your organization name in the admin panel and invite your team\n\t\t\t\t\t,\n\t\t\t\ttutorial: \"configure_organization\",\n\t\t\t}\n\t\t]\n\t\n return (\n
\n\t\t\t\t {\n\t\t\t\t\t\tsetVideoViewOpen(false)\n\t\t\t\t\t}}\n\t\t\t\t\tPaperProps={{\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tbackgroundColor: surfaceColor,\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tminWidth: 560,\n\t\t\t\t\t\t\tminHeight: 415,\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\tWelcome to Shuffle!\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tsetVideoViewOpen(false)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\n
\n\t\t\t\t\t\n\t\t\t\t\t\tGetting Started with Shuffle\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tWe provide everything you need to automate your operations - apps, default workflows, security dashboards and analytics that work well together.\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{steps.map((data, index) => {\n\t\t\t\t\t\t\tvar tutorialFound = false\n\t\t\t\t\t\t\tif (userdata.tutorials !== undefined && userdata.tutorials !== null && userdata.tutorials.length > 0 && data.tutorial !== undefined) {\n\t\t\t\t\t\t\t\tconst foundTutorial = userdata.tutorials.find(tutorial => tutorial === data.tutorial)\n\t\t\t\t\t\t\t\tif (foundTutorial !== undefined && foundTutorial !== null) {\n\t\t\t\t\t\t\t\t\tconsole.log(\"Found tutorial for \", data.tutorial)\n\t\t\t\t\t\t\t\t\ttutorialFound = true \n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (tutorialFound === false) {\n\t\t\t\t\t\t\t\t\tif (data.tutorial === \"discover_workflows\") {\n\t\t\t\t\t\t\t\t\t\tif (workflows.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\tfor (var key in workflows) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst tmpworkflow = workflows[key]\n\t\t\t\t\t\t\t\t\t\t\t\tif (tmpworkflow.published_id !== undefined && tmpworkflow.published_id !== null && tmpworkflow.published_id.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttutorialFound = true\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (data.tutorial === \"learn_shuffle\") {\n\t\t\t\t\t\t\t\t\t\t//tutorial: \"discover_workflows\",\n\t\t\t\t\t\t\t\t\t\tif (workflows.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\ttutorialFound = true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (data.tutorial === \"configure_organization\") {\n\t\t\t\t\t\t\t\t\t\tif (userdata.active_org.name !== userdata.username) {\n\t\t\t\t\t\t\t\t\t\t\ttutorialFound = true\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{tutorialFound ? \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\t\t{index+1}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{data.html}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tInvite your team\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tGet teammates, managers and customers involved.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tInvite Users\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNeed help?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tWe help with automation, scaling, training and more. Get involved!\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tJoin Discord community\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/*\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNeed assistance? Ask our support team (it's free!).\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t*/}\n\t\t\t\t\t
\n {/*\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
ACTIVE WORKFLOWS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
AVAILABE WORKFLOWS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{workflows.length}
\n\t\t\t\t\t\t\t\t\t
NOTIFICATIONS
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t*/}\n\n {/*\n\t\t\t\t\tchipRenderer={({ value, isFocused, isDisabled, handleClick, handleRequestDelete }, key) => {\n\t\t\t\t\t\tconsole.log(\"VALUE: \", value)\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t\t*/}\n\t\t\t\t\t{/*\n
\n
\n \n \n Learn more about Workflows\n \n \n
\n
\n {\n addFilter(chip);\n }}\n onDelete={(_, index) => {\n removeFilter(index);\n }}\n />\n
\n
\n {workflowButtons}\n
\n
\n
\n {actionImageList !== undefined &&\n actionImageList !== null &&\n actionImageList.length > 0 ? (\n \n {actionImageList.map((data, index) => {\n if (\n data.large_image === undefined ||\n data.large_image === null ||\n data.large_image.length === 0\n ) {\n return null;\n }\n\n if (data.app_name.toLowerCase() === \"shuffle tools\") {\n data.large_image = theme.palette.defaultImage;\n }\n\n\t\t\t\t\t\t\t\tif (firstLoad) {\n\t\t\t\t\t\t\t\t\tappDelay += 75\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tappDelay = 0\n\t\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\t\n \n {\n console.log(\"FILTER: \", data);\n addFilter(data.app_name);\n }}\n >\n \n \n \n \n
\n \n \n \n \n\t\t\t\t\t\t\t\t\t\n );\n })}\n
\n ) : null}\n {view === \"grid\" ? (\n \n\t\t\t\t\t\t\t\n \t\n\t\t\t\t\t\t\t\n {filteredWorkflows.map((data, index) => {\n \t\t\t\t\t\t\tif (firstLoad) {\n\t\t\t\t\t\t\t\t\tworkflowDelay += 75\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tworkflowDelay = 0\n\t\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n })}\n \n ) : (\n \n )}\n\n
\n\t\t\t\t\t*/}\n
\n
\n );\n };\n\n const importWorkflowsFromUrl = (url) => {\n console.log(\"IMPORT WORKFLOWS FROM \", downloadUrl);\n\n const parsedData = {\n url: url,\n field_3: downloadBranch || \"master\",\n };\n\n if (field1.length > 0) {\n parsedData[\"field_1\"] = field1;\n }\n\n if (field2.length > 0) {\n parsedData[\"field_2\"] = field2;\n }\n\n alert.success(\"Getting specific workflows from your URL.\");\n fetch(globalUrl + \"/api/v1/workflows/download_remote\", {\n method: \"POST\",\n mode: \"cors\",\n headers: {\n Accept: \"application/json\",\n },\n body: JSON.stringify(parsedData),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n alert.success(\"Successfully loaded workflows from \" + downloadUrl);\n setTimeout(() => {\n getAvailableWorkflows();\n }, 1000);\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed loading: \" + responseJson.reason);\n } else {\n alert.error(\"Failed loading\");\n }\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const handleGithubValidation = () => {\n importWorkflowsFromUrl(downloadUrl);\n setLoadWorkflowsModalOpen(false);\n };\n\n const workflowDownloadModalOpen = loadWorkflowsModalOpen ? (\n {}}\n PaperProps={{\n style: {\n backgroundColor: surfaceColor,\n color: \"white\",\n minWidth: \"800px\",\n minHeight: \"320px\",\n },\n }}\n >\n \n
\n Load workflows from github repo\n
\n \n upload.click()}\n >\n \n \n \n
\n
\n
\n \n Repository (supported: github, gitlab, bitbucket)\n setDownloadUrl(e.target.value)}\n placeholder=\"https://github.com/frikky/shuffle-apps\"\n fullWidth\n />\n \n Branch (default value is \"master\"):\n \n
\n setDownloadBranch(e.target.value)}\n placeholder=\"master\"\n fullWidth\n />\n
\n \n Authentication (optional - private repos etc):\n \n
\n setField1(e.target.value)}\n type=\"username\"\n placeholder=\"Username / APIkey (optional)\"\n fullWidth\n />\n setField2(e.target.value)}\n type=\"password\"\n placeholder=\"Password (optional)\"\n fullWidth\n />\n
\n
\n \n setLoadWorkflowsModalOpen(false)}\n color=\"primary\"\n >\n Cancel\n \n {\n handleGithubValidation();\n }}\n color=\"primary\"\n >\n Submit Submit\n \n \n \n ) : null;\n\n const loadedCheck =\n isLoaded && isLoggedIn && workflowDone ? (\n
\n\t\t\t\t{/*\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t*/}\n 1366 ? 1366 : 1200,\n margin: \"auto\",\n padding: 20,\n }}\n onDrop={uploadFile}\n >\n \n \n {modalView}\n {deleteModal}\n {exportVerifyModal}\n {publishModal}\n {workflowDownloadModalOpen}\n
\n ) : (\n \n \n Loading Workflows\n
\n );\n\n // Maybe use gridview or something, idk\n return
{loadedCheck}
;\n};\n\nexport default GettingStarted;\n","export default __webpack_public_path__ + \"static/media/webhook.ea3be945.png\";","const data = [\n {\n selector: \"node\",\n css: {\n label: \"data(label)\",\n \"text-valign\": \"center\",\n \"font-family\":\n \"Segoe UI, Tahoma, Geneva, Verdana, sans-serif, sans-serif\",\n \"font-weight\": \"lighter\",\n \"margin-right\": \"10px\",\n \"font-size\": \"18px\",\n width: \"80px\",\n height: \"80px\",\n color: \"white\",\n padding: \"10px\",\n margin: \"5px\",\n \"border-width\": \"1px\",\n \"text-margin-x\": \"10px\",\n \"z-index\": 5001,\n },\n },\n {\n selector: \"edge\",\n css: {\n \"target-arrow-shape\": \"triangle\",\n \"target-arrow-color\": \"grey\",\n \"curve-style\": \"unbundled-bezier\",\n label: \"data(label)\",\n \"text-margin-y\": \"-15px\",\n width: \"5px\",\n color: \"white\",\n \"line-fill\": \"linear-gradient\",\n \"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n \"line-gradient-stop-colors\": [\"grey\", \"grey\"],\n \"z-index\": 5001,\n },\n },\n {\n selector: `node[type=\"ACTION\"]`,\n css: {\n shape: \"roundrectangle\",\n \"background-color\": \"#213243\",\n \"border-color\": \"#81c784\",\n \"background-width\": \"100%\",\n \"background-height\": \"100%\",\n \"border-radius\": \"5px\",\n \"z-index\": 5001,\n },\n },\n {\n selector: `node[type=\"COMMENT\"]`,\n css: {\n shape: \"roundrectangle\",\n color: \"data(color)\",\n width: \"data(width)\",\n height: \"data(height)\",\n padding: \"0px\",\n margin: \"0px\",\n \"background-color\": \"data(backgroundcolor)\",\n \"background-image\": \"data(backgroundimage)\",\n \"border-color\": \"#ffffff\",\n \"text-margin-x\": \"0px\",\n \"z-index\": 4999,\n \"border-radius\": \"5px\",\n \"background-opacity\": \"0.5\",\n\t\t\t\"text-wrap\": \"wrap\",\n },\n },\n {\n selector: `node[app_name=\"Shuffle Tools\"]`,\n css: {\n width: \"30px\",\n height: \"30px\",\n \"z-index\": 5000,\n \"font-size\": \"0px\",\n \"background-width\": \"75%\",\n \"background-height\": \"75%\",\n \"background-color\": \"data(iconBackground)\",\n \"background-fill\": \"data(fillstyle)\",\n \"background-gradient-direction\": \"to-right\",\n \"background-gradient-stop-colors\": \"data(fillGradient)\",\n },\n },\n {\n selector: `node[app_name=\"Testing\"]`,\n css: {\n width: \"30px\",\n height: \"30px\",\n \"z-index\": 5000,\n \"font-size\": \"0px\",\n },\n },\n {\n selector: `node[?small_image]`,\n css: {\n \"background-image\": \"data(small_image)\",\n \"text-halign\": \"right\",\n },\n },\n {\n selector: `node[?large_image]`,\n css: {\n \"background-image\": \"data(large_image)\",\n \"text-halign\": \"right\",\n },\n },\n {\n selector: `node[type=\"CONDITION\"]`,\n css: {\n shape: \"diamond\",\n \"border-color\": \"##FFEB3B\",\n padding: \"30px\",\n },\n },\n {\n selector: `node[type=\"eventAction\"]`,\n css: {\n \"background-color\": \"#edbd21\",\n },\n },\n {\n selector: `node[type=\"TRIGGER\"]`,\n css: {\n shape: \"octagon\",\n \"border-radius\": \"5px\",\n \"border-color\": \"orange\",\n \"background-color\": \"#213243\",\n \"background-width\": \"100%\",\n \"background-height\": \"100%\",\n },\n },\n {\n selector: `node[status=\"running\"]`,\n css: {\n \"border-color\": \"#81c784\",\n },\n },\n {\n selector: `node[status=\"stopped\"]`,\n css: {\n \"border-color\": \"orange\",\n },\n },\n {\n selector: 'node[type=\"mq\"]',\n css: {\n \"background-color\": \"#edbd21\",\n },\n },\n {\n selector: \"node[?isButton]\",\n css: {\n shape: \"ellipse\",\n width: \"15px\",\n height: \"15px\",\n \"z-index\": \"5002\",\n \"font-size\": \"0px\",\n border: \"1px solid rgba(255,255,255,0.9)\",\n \"background-image\": \"data(icon)\",\n \"background-color\": \"data(iconBackground)\",\n },\n },\n {\n selector: \"node[?isSuggestion]\",\n css: {\n shape: \"ellipse\",\n width: \"50px\",\n height: \"50px\",\n \"z-index\": \"5002\",\n \"font-size\": \"0px\",\n border: \"1px solid rgba(255,255,255,0.9)\",\n \"background-image\": \"data(large_image)\",\n \"background-color\": \"data(iconBackground)\",\n label: \"data(label)\",\n },\n },\n {\n selector: \"node[?canConnect]\",\n css: {\n \"border-color\": \"#f86a3e\",\n \"border-width\": \"10px\",\n \"z-index\": \"5002\",\n \"background-color\": \"#f86a3e\",\n },\n },\n {\n selector: \"node[?isDescriptor]\",\n css: {\n shape: \"ellipse\",\n \"border-color\": \"#80deea\",\n width: \"5px\",\n height: \"5px\",\n \"z-index\": \"5002\",\n \"font-size\": \"10px\",\n \"text-valign\": \"center\",\n \"text-halign\": \"center\",\n border: \"1px solid black\",\n \"margin-right\": \"0px\",\n \"text-margin-x\": \"0px\",\n \"background-color\": \"data(imageColor)\",\n \"background-image\": \"data(image)\",\n },\n },\n {\n selector: \"node[?isStartNode]\",\n css: {\n shape: \"ellipse\",\n \"border-color\": \"#80deea\",\n width: \"80px\",\n height: \"80px\",\n \"font-size\": \"18px\",\n \"background-width\": \"100%\",\n \"background-height\": \"100%\",\n },\n },\n {\n selector: \"node[!is_valid]\",\n css: {\n \"border-color\": \"red\",\n \"border-width\": \"10px\",\n },\n },\n {\n selector: \":selected\",\n css: {\n \"background-color\": \"#77b0d0\",\n \"border-color\": \"#77b0d0\",\n \"border-width\": \"20px\",\n },\n },\n {\n selector: \".skipped-highlight\",\n css: {\n \"background-color\": \"grey\",\n \"border-color\": \"grey\",\n \"border-width\": \"8px\",\n \"transition-property\": \"background-color\",\n \"transition-duration\": \"0.5s\",\n },\n },\n {\n selector: \".success-highlight\",\n css: {\n \"background-color\": \"#41dcab\",\n \"border-color\": \"#41dcab\",\n \"border-width\": \"5px\",\n \"transition-property\": \"background-color\",\n \"transition-duration\": \"0.5s\",\n },\n },\n {\n selector: \".hover-highlight\",\n css: {\n \"background-color\": \"#5f9265\",\n \"border-color\": \"#5f9265\",\n \"border-width\": \"5px\",\n \"transition-property\": \"background-color\",\n \"transition-duration\": \"0.5s\",\n },\n },\n {\n selector: \".failure-highlight\",\n css: {\n \"background-color\": \"#8e3530\",\n \"border-color\": \"#8e3530\",\n \"border-width\": \"5px\",\n \"transition-property\": \"background-color\",\n \"transition-duration\": \"0.5s\",\n },\n },\n {\n selector: \".not-executing-highlight\",\n css: {\n \"background-color\": \"grey\",\n \"border-color\": \"grey\",\n \"border-width\": \"5px\",\n \"transition-property\": \"#ffef47\",\n \"transition-duration\": \"0.25s\",\n },\n },\n {\n selector: \".executing-highlight\",\n css: {\n \"background-color\": \"#ffef47\",\n \"border-color\": \"#ffef47\",\n \"border-width\": \"8px\",\n \"transition-property\": \"border-width\",\n \"transition-duration\": \"0.25s\",\n },\n },\n {\n selector: \".awaiting-data-highlight\",\n css: {\n \"background-color\": \"#f4ad42\",\n \"border-color\": \"#f4ad42\",\n \"border-width\": \"5px\",\n \"transition-property\": \"border-color\",\n \"transition-duration\": \"0.5s\",\n },\n },\n {\n selector: \".shuffle-hover-highlight\",\n css: {\n \"background-color\": \"#f85a3e\",\n \"border-color\": \"#f85a3e\",\n \"border-width\": \"12px\",\n \"transition-property\": \"border-width\",\n \"transition-duration\": \"0.25s\",\n label: \"data(label)\",\n \"font-size\": \"18px\",\n color: \"white\",\n },\n },\n {\n selector: \"$node > node\",\n css: {\n \"padding-top\": \"10px\",\n \"padding-left\": \"10px\",\n \"padding-bottom\": \"10px\",\n \"padding-right\": \"10px\",\n },\n },\n {\n selector: \"edge.executing-highlight\",\n css: {\n width: \"5px\",\n \"target-arrow-color\": \"#ffef47\",\n \"line-color\": \"#ffef47\",\n \"transition-property\": \"line-color, width\",\n \"transition-duration\": \"0.25s\",\n },\n },\n {\n selector: `edge[?decorator]`,\n css: {\n width: \"1px\",\n \"line-style\": \"dashed\",\n \"line-fill\": \"linear-gradient\",\n \"target-arrow-color\": \"#f34079\",\n \"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n \"line-gradient-stop-colors\": [\"#f86a3e\", \"#f34079\"],\n },\n },\n {\n selector: \"edge.success-highlight\",\n css: {\n width: \"5px\",\n \"target-arrow-color\": \"#41dcab\",\n \"line-color\": \"#41dcab\",\n \"transition-property\": \"line-color, width\",\n \"transition-duration\": \"0.5s\",\n \"line-fill\": \"linear-gradient\",\n \"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n \"line-gradient-stop-colors\": [\"#41dcab\", \"#41dcab\"],\n },\n },\n {\n selector: \".eh-handle\",\n style: {\n \"background-color\": \"#337ab7\",\n width: \"1px\",\n height: \"1px\",\n shape: \"circle\",\n \"border-width\": \"1px\",\n \"border-color\": \"black\",\n },\n },\n {\n selector: \".eh-source\",\n style: {\n \"border-width\": \"3\",\n \"border-color\": \"#337ab7\",\n },\n },\n {\n selector: \".eh-target\",\n style: {\n \"border-width\": \"3\",\n \"border-color\": \"#337ab7\",\n },\n },\n {\n selector: \".eh-preview, .eh-ghost-edge\",\n style: {\n \"background-color\": \"#337ab7\",\n \"line-color\": \"#337ab7\",\n \"target-arrow-color\": \"#337ab7\",\n \"source-arrow-color\": \"#337ab7\",\n },\n },\n {\n selector: \"edge:selected\",\n css: {\n \"target-arrow-color\": \"#f85a3e\",\n },\n },\n {\n selector: `edge[?source_workflow]`,\n css: {\n \"background-opacity\": \"1\",\n \"font-size\": \"0px\",\n },\n },\n {\n selector: `node[?source_workflow]`,\n css: {\n \"background-opacity\": \"0\",\n \"font-size\": \"0px\",\n },\n },\n\t{\n\t\tselector: \"node:selected\",\n\t\tcss: {\n\t\t\t\"border-color\": \"#f86a3e\",\n\t\t\t\"border-width\": \"7px\",\n\t\t},\n\t},\n];\n\n//{\n//\tselector: 'edge[?hasErrors]',\n//\tcss: {\n//\t\t'target-arrow-color': '#991818',\n//\t\t'line-color': '#991818',\n//\t\t'line-style': 'dashed',\n//\t\t\"line-fill\": \"linear-gradient\",\n//\t\t\"line-gradient-stop-positions\": [\"0.0\", \"100\"],\n//\t\t\"line-gradient-stop-colors\": [\"#991818\", \"#991818\"],\n//\t},\n//},\n\nexport default data;\n","import React, {useState, useEffect, useLayoutEffect} from 'react';\r\nimport {\r\n\tCircularProgress, \r\n\tIconButton,\r\n\tDialog, \r\n\tModal, \r\n\tTooltip,\r\n\tDialogTitle, \r\n\tDialogContent,\r\n\tTypography,\r\n\tPaper,\r\n\tMenu,\r\n\tMenuItem,\r\n\tButton,\r\n} from '@material-ui/core';\r\n\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport { orange } from '@mui/material/colors';\r\nimport { isMobile } from \"react-device-detect\" \r\nimport { GetParsedPaths, FindJsonPath } from \"../views/Apps.jsx\";\r\nimport NestedMenuItem from \"material-ui-nested-menu-item\";\r\n\r\nimport {\r\n\tFullscreenExit as FullscreenExitIcon,\r\n\tExtension as ExtensionIcon, \r\n Apps as AppsIcon,\r\n FavoriteBorder as FavoriteBorderIcon,\r\n Schedule as ScheduleIcon,\r\n FormatListNumbered as FormatListNumberedIcon,\r\n\tSquareFoot as SquareFootIcon,\r\n Circle as CircleIcon,\r\n Add as AddIcon,\r\n\tPlayArrow as PlayArrowIcon, \r\n} from '@mui/icons-material';\r\n\r\nimport {\r\n\tAutoFixHigh as AutoFixHighIcon, CompressOutlined, QrCodeScannerOutlined,\r\n} from '@mui/icons-material';\r\n\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { validateJson } from \"../views/Workflows.jsx\";\r\nimport ReactJson from \"react-json-view\";\r\nimport PaperComponent from \"../components/PaperComponent.jsx\";\r\n\r\nimport CodeMirror from '@uiw/react-codemirror';\r\nimport 'codemirror/keymap/sublime';\r\nimport 'codemirror/addon/selection/mark-selection.js'\r\nimport 'codemirror/theme/gruvbox-dark.css';\r\nimport 'codemirror/theme/duotone-light.css';\r\nimport { padding, textAlign } from '@mui/system';\r\nimport data from '../frameworkStyle.jsx';\r\nimport { useNavigate, Link, useParams } from \"react-router-dom\";\r\n\r\nconst liquidFilters = [\r\n\t{\"name\": \"Size\", \"value\": \"size\", \"example\": \"\"},\r\n\t{\"name\": \"Date\", \"value\": `date: \"%Y%m%d\"`, \"example\": `{{ \"now\" | date: \"%s\" }}`},\r\n\t{\"name\": \"Escape String\", \"value\": `{{ \\\"\\\"\\\"'string with weird'\" quotes\\\"\\\"\\\" | escape_string }}`, \"example\": ``},\r\n\t{\"name\": \"Flatten\", \"value\": `flatten`, \"example\": `{{ [1, [1, 2], [2, 3, 4]] | flatten }}`},\r\n]\r\n\r\nconst mathFilters = [\r\n\t{\"name\": \"Plus\", \"value\": \"plus: 1\", \"example\": `{{ \"1\" | plus: 1 }}`},\r\n\t{\"name\": \"Minus\", \"value\": \"minus: 1\", \"example\": `{{ \"1\" | minus: 1 }}`},\r\n]\r\n\r\nconst pythonFilters = [\r\n\t{\"name\": \"Hello World\", \"value\": `{% python %}\\nprint(\"hello world\")\\n{% endpython %}`, \"example\": ``},\r\n\t{\"name\": \"Handle JSON\", \"value\": `{% python %}\\nimport json\\njsondata = json.loads(r\"\"\"$nodename\"\"\")\\n{% endpython %}`, \"example\": ``},\r\n]\r\n\r\nconst CodeEditor = (props) => {\r\n\tconst { globalUrl, fieldCount, setFieldCount, actionlist, changeActionParameterCodeMirror, expansionModalOpen, setExpansionModalOpen, codedata, setcodedata, isFileEditor, runUpdateText } = props\r\n\r\n\tconst [localcodedata, setlocalcodedata] = React.useState(codedata === undefined || codedata === null || codedata.length === 0 ? \"\" : codedata);\r\n \t// const {codelang, setcodelang} = props\r\n const theme = useTheme();\r\n\tconst [validation, setValidation] = React.useState(false);\r\n\tconst [expOutput, setExpOutput] = React.useState(\" \");\r\n\tconst [linewrap, setlinewrap] = React.useState(true);\r\n\tconst [codeTheme, setcodeTheme] = React.useState(\"gruvbox-dark\");\r\n\tconst [editorPopupOpen, setEditorPopupOpen] = React.useState(false);\r\n\r\n\tconst [currentCharacter, setCurrentCharacter] = React.useState(-1);\r\n\tconst [currentLine, setCurrentLine] = React.useState(-1);\r\n\r\n\tconst [variableOccurences, setVariableOccurences] = React.useState([]);\r\n\tconst [currentLocation, setCurrentLocation] = React.useState([]);\r\n\tconst [currentVariable, setCurrentVariable] = React.useState(\"\");\r\n\tconst [anchorEl, setAnchorEl] = React.useState(null);\r\n\tconst [anchorEl2, setAnchorEl2] = React.useState(null);\r\n\tconst [anchorEl3, setAnchorEl3] = React.useState(null);\r\n\tconst [mainVariables, setMainVariables] = React.useState([]);\r\n\tconst [availableVariables, setAvailableVariables] = React.useState([]);\r\n\r\n const [menuPosition, setMenuPosition] = useState(null);\r\n const [showAutocomplete, setShowAutocomplete] = React.useState(false);\r\n\r\n\tconst baseResult = \"\"\r\n\tconst [executionResult, setExecutionResult] = useState({\r\n\t\t\"valid\": false,\t\t\r\n\t\t\"result\": baseResult,\r\n\t})\r\n\tconst [executing, setExecuting] = useState(false)\r\n\r\n\tconst liquidOpen = Boolean(anchorEl);\r\n\tconst mathOpen = Boolean(anchorEl2);\r\n\tconst pythonOpen = Boolean(anchorEl3);\r\n\r\n\tconst handleMenuClose = () => {\r\n\t\tsetShowAutocomplete(false);\r\n\r\n\t\tsetMenuPosition(null);\r\n\t}\r\n\r\n\tlet navigate = useNavigate();\r\n\t// console.log(\"is it file editor? - \", isFileEditor);\r\n\r\n\tuseEffect(() => {\r\n\t\tvar allVariables = []\r\n\t\tvar tmpVariables = []\r\n\r\n\t\tif (actionlist === undefined || actionlist === null) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor(var i=0; i < actionlist.length; i++){\r\n\t\t\tallVariables.push('$'+actionlist[i].autocomplete.toLowerCase())\r\n\t\t\ttmpVariables.push('$'+actionlist[i].autocomplete.toLowerCase())\r\n\r\n\t\t\tvar parsedPaths = []\r\n\t\t\tif (typeof actionlist[i].example === \"object\") {\r\n\t\t\t\tparsedPaths = GetParsedPaths(actionlist[i].example, \"\");\r\n\t\t\t}\r\n\r\n\t\t\tfor (var key in parsedPaths) {\r\n\t\t\t\tconst fullpath = \"$\"+actionlist[i].autocomplete.toLowerCase()+parsedPaths[key].autocomplete\r\n\t\t\t\tif (!allVariables.includes(fullpath)) {\r\n\t\t\t\t\tallVariables.push(fullpath)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tsetAvailableVariables(allVariables)\r\n\t\tsetMainVariables(tmpVariables)\r\n\t}, [])\r\n\r\n\tconst autoFormat = (input) => {\r\n\t\tif (validation !== true) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tinput = JSON.stringify(JSON.parse(input), null, 4)\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"Failed magic JSON stringification: \", e)\r\n\t\t}\r\n\r\n\t\tif (input !== localcodedata) {\r\n\t\t\tsetlocalcodedata(input)\r\n\t\t}\r\n\t}\r\n\r\n\tconst findIndex = (line, loc) => {\r\n\t\t// var temp_arr = []\r\n\t\t// for(var i=0; i {\r\n\t\tif (inputvariable === undefined || inputvariable === null) {\r\n\t\t\treturn inputvariable\r\n\t\t}\r\n\r\n\t\tif (!inputvariable.includes(\".\")) {\r\n\t\t\treturn inputvariable\r\n\t\t}\r\n\r\n\t\tconst itemsplit = inputvariable.split(\".\")\r\n\t\tvar newitem = []\r\n\t\tvar removedIndexes = 0\r\n\t\tfor (var key in itemsplit) {\r\n\t\t\tvar tmpitem = itemsplit[key]\r\n\t\t\tif (tmpitem.startsWith(\"#\")) {\r\n\t\t\t\tremovedIndexes += tmpitem.length-1\r\n\t\t\t\ttmpitem = \"#\"\r\n\t\t\t}\r\n\r\n\t\t\tnewitem.push(tmpitem)\r\n\t\t}\r\n\r\n\t\t//console.log(\"Fixed item: \", newitem, \"removed length: \", removedIndexes)\r\n\r\n\t\treturn newitem.join(\".\")\r\n\t\t//return inputvariable\r\n\t}\r\n\r\n\tconst highlight_variables = (value) => {\r\n\t\t// value.markText({line:0, ch:2}, {line:0, ch:8}, {\"css\": \"background-color: #f85a3e; border-radius: 4px; color: white\"})\r\n\t\t// value.markText({line:0, ch:13}, {line:0, ch:15}, {\"css\": \"background-color: #f85a3e; border-radius: 4px; color: white\"})\r\n\t\t// value.markText({line:0, ch:19}, {line:0, ch:26}, {\"css\": \"background-color: #f85a3e; border-radius: 4px; color: white\"})\r\n\t\t// value.markText({line:0, ch:31}, {line:0, ch:35}, {\"css\": \"background-color: #f85a3e; border-radius: 4px; color: white\"})\r\n\t\t// value.markText({line:0, ch:69}, {line:0, ch:73}, {\"css\": \"background-color: #f85a3e; border-radius: 4px; color: white\"})\r\n\r\n\t\t// var code_variables = value.getValue().match(/[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\r\n\t\t// console.log(code_variables)\r\n\t\t\r\n\t\t// var regex = /[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g\r\n\t\t// var code_variables_loc = regex.exec(value.getValue())\r\n\t\t// console.log(code_variables_loc)\r\n\t\t// while ((code_variables_loc = regex.exec(value.getValue())) != null) {\r\n\t\t// \tconsole.log(code_variables_loc);\r\n\t\t// }\r\n\t\t// var code_variables_loc = regex.exec(value.getValue())\r\n\t\t// console.log(code_variables_loc)\r\n\r\n\t\tvar code_lines = localcodedata.split('\\n')\r\n\t\tfor (var i = 0; i < code_lines.length; i++){\r\n\t\t\tvar current_code_line = code_lines[i]\r\n\t\t\t// console.log(current_code_line)\r\n\r\n\t\t\tvar variable_occurence = current_code_line.match(/[\\\\]{0,1}[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\r\n\r\n\t\t\tif (variable_occurence === null || variable_occurence === undefined) {\r\n\t\t\t\tconsole.log(\"No variables found. Returning\")\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tvar new_occurences = []\r\n\t\t\tfor (var key in variable_occurence) {\r\n\t\t\t\tif (variable_occurence[key][0] !== \"\\\\\") {\r\n\t\t\t\t\tnew_occurences.push(variable_occurence[key])\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvariable_occurence = new_occurences.valueOf()\r\n\t\t\tconsole.log(\"Match2: \", variable_occurence)\r\n\t\t\t// console.log(variable_occurence)\r\n\t\t\t// console.log()\r\n\r\n\t\t\t// for (var j = 0; j < actionlist.length; j++) {\r\n\t\t\t// \tif(found[i].slice(1,).toLowerCase() === actionlist[j].autocomplete.toLowerCase()){\r\n\t\t\t// \t\tinput = input.replace(found[i], JSON.stringify(actionlist[j].example));\r\n\t\t\t// \t\tconsole.log(input)\r\n\t\t\t// \t\tconsole.log(actionlist[j].example)\r\n\t\t\t// \t}\r\n\t\t\t// \tconsole.log(actionlist[j].autocomplete);\r\n\t\t\t// }\r\n\r\n\t\t\t// Finds occurences of dollar signs\r\n\t\t\tvar dollar_occurence = []\r\n\t\t\tfor(var ch = 0; ch < current_code_line.length; ch++){\r\n\t\t\t\tif (current_code_line[ch] === '$' && (ch === 0 || current_code_line[ch-1] !== \"\\\\\")) {\r\n\t\t\t\t\tdollar_occurence.push(ch)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//console.log(dollar_occurence)\r\n\r\n\t\t\tvar dollar_occurence_len = []\r\n\t\t\ttry{\r\n\t\t\t\tfor(var occ = 0; occ < variable_occurence.length; occ++){\r\n\t\t\t\t\tdollar_occurence_len.push(variable_occurence[occ].length)\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {}\r\n\r\n\t\t\t//console.log(\"VARIABLES: \", availableVariables)\r\n\r\n\r\n\t\t\ttry{\r\n\t\t\t\tif (variable_occurence.length === 0) {\r\n\t\t\t\t\t//value.markText({line:i, ch:0}, {line:i, ch:code_lines[i].length-1}, {\"css\": \"background-color: #282828; border-radius: 0px; color: #b8bb26\"})\r\n\t\t\t\t\t//value.markText({line:i, ch:0}, {line:i, ch:code_lines[i].length-1}, {\"css\": \"background-color: #; border-radius: 0px; color: inherit\"})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// console.log(variable_occurence)\r\n\t\t\t\tfor (var occ = 0; occ < variable_occurence.length; occ++){\r\n\t\t\t\t\t// value.markText({line:i, ch:dollar_occurence[occ]}, {line:i, ch:dollar_occurence_len[occ]+dollar_occurence[occ]}, {\"css\": \"background-color: #8b8e26; border-radius: 4px; color: white\"})\r\n\t\t\t\t\t// var correctVariable = actionlist.find(action => action.autocomplete.toLowerCase() === variable_occurence[occ].slice(1,).toLowerCase())\r\n\t\t\t\t\tconst fixedVariable = fixVariable(variable_occurence[occ])\r\n\t\t\t\t\tvar correctVariable = availableVariables.includes(fixedVariable)\r\n\t\t\t\t\tif(!correctVariable) {\r\n\t\t\t\t\t\tvalue.markText({line:i, ch:dollar_occurence[occ]}, {line:i, ch:dollar_occurence_len[occ]+dollar_occurence[occ]}, {\"css\": \"background-color: rgb(248, 106, 62, 0.9); padding-top: 2px; padding-bottom: 2px; color: white\"})\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvalue.markText({line:i, ch:dollar_occurence[occ]}, {line:i, ch:dollar_occurence_len[occ]+dollar_occurence[occ]}, {\"css\": \"background-color: #8b8e26; padding-top: 2px; padding-bottom: 2px; color: white\"})\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// console.log(correctVariables)\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.log(\"Error in color highlighting: \", e)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// function findlocation(arr) {\r\n\t// \tfor(var i=0; i {\r\n\t\t// var updatedCode = localcodedata.slice(0,index) + \"$\" + str + localcodedata.slice(index+currentVariable.length+1,)\r\n\t\t// setlocalcodedata(updatedCode)\r\n\t\t// setEditorPopupOpen(false)\r\n\t\t// setCurrentLocation(0)\r\n\t\t// console.log(index)\r\n\t\t// console.log(currentLocation)\r\n\r\n\t\tvar code_lines = localcodedata.split('\\n')\r\n\t\tvar parsedVariable = currentVariable\r\n\t\tif (currentVariable === undefined || currentVariable === null) {\r\n\t\t\tconsole.log(\"Location: \", currentLocation)\r\n\t\t\tparsedVariable= \"$\"\r\n\t\t}\r\n\r\n\t\tcode_lines[currentLine] = code_lines[currentLine].slice(0,currentLocation[1]) + \"$\" + swapVariable + code_lines[currentLine].slice(currentLocation[1]+parsedVariable.length,)\r\n\t\t// console.log(code_lines)\r\n\t\tvar updatedCode = code_lines.join('\\n')\r\n\t\t// console.log(updatedCode)\r\n\t\tsetlocalcodedata(updatedCode)\r\n\t}\r\n\r\n\tconst expectedOutput = (input) => {\r\n\t\t\r\n\t\t//const found = input.match(/[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\r\n\t\tconst found = input.match(/[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\r\n\t\t//if (found === null || found === undefined) {\r\n\t\t//\tconsole.log(\"No output found!\")\r\n\t\t//\treturn\r\n\t\t//}\r\n\r\n\t\tconsole.log(\"FOUND: \", found)\r\n\r\n\t\t// Whelp this is inefficient af. Single loop pls\r\n\t\t// When the found array is empty.\r\n\t\ttry { \r\n\t\t\tfor (var i = 0; i < found.length; i++) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t//found[i] = found[i].toLowerCase()\r\n\t\t\t\t\tconst fixedVariable = fixVariable(found[i])\r\n\t\t\t\t\t//var correctVariable = availableVariables.includes(fixedVariable)\r\n\r\n\t\t\t\t\t// \r\n\t\t\t\t\tvar valuefound = false\r\n\t\t\t\t\tfor (var j = 0; j < actionlist.length; j++) {\r\n\t\t\t\t\t\tif(fixedVariable.slice(1,).toLowerCase() === actionlist[j].autocomplete.toLowerCase()){\r\n\t\t\t\t\t\t\tvaluefound = true \r\n\r\n\t\t\t\t\t\t\tconsole.log(\"Valuefound: \", fixedVariable, actionlist[j].example)\r\n\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tif (actionlist[j].example.trim().startsWith(\"{\") || actionlist[j].example.trim().startsWith(\"[\")) {\r\n\t\t\t\t\t\t\t\t\tinput = input.replace(fixedVariable, JSON.stringify(actionlist[j].example));\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tinput = input.replace(fixedVariable, actionlist[j].example)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) { \r\n\t\t\t\t\t\t\t\tinput = input.replace(fixedVariable, actionlist[j].example)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!valuefound && availableVariables.includes(fixedVariable)) {\r\n\t\t\t\t\t\tvar shouldbreak = false\r\n\t\t\t\t\t\tfor (var k=0; k < actionlist.length; k++){\r\n\t\t\t\t\t\t\tvar parsedPaths = []\r\n\t\t\t\t\t\t\tif (typeof actionlist[k].example === \"object\") {\r\n\t\t\t\t\t\t\t\tparsedPaths = GetParsedPaths(actionlist[k].example, \"\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfor (var key in parsedPaths) {\r\n\t\t\t\t\t\t\t\tconst fullpath = \"$\"+actionlist[k].autocomplete.toLowerCase()+parsedPaths[key].autocomplete\r\n\t\t\t\t\t\t\t\tif (fullpath === fixedVariable) {\r\n\t\t\t\t\t\t\t\t\t//if (actionlist[k].example === undefined) {\r\n\t\t\t\t\t\t\t\t\t//\tactionlist[k].example = \"TMP\"\r\n\t\t\t\t\t\t\t\t\t//}\r\n\r\n\t\t\t\t\t\t\t\t\tvar new_input = \"\"\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tnew_input = FindJsonPath(fullpath, actionlist[k].example)\r\n\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"ERR IN INPUT: \", e)\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//console.log(\"Got output for: \", fullpath, new_input, actionlist[k].example, typeof new_input)\r\n\r\n\t\t\t\t\t\t\t\t\tif (typeof new_input === \"object\") {\r\n\t\t\t\t\t\t\t\t\t\tnew_input = JSON.stringify(new_input)\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tif (typeof new_input === \"string\") {\r\n\t\t\t\t\t\t\t\t\t\t\tnew_input = new_input\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"NO TYPE? \", typeof new_input)\r\n\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnew_input = new_input.toString()\r\n\t\t\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnew_input = \"\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//console.log(\"FOUND2: \", fixedVariable, actionlist[j].example)\r\n\t\t\t\t\t\t\t\t\tinput = input.replace(fixedVariable, new_input)\r\n\r\n\t\t\t\t\t\t\t\t\t//} catch (e) {\r\n\t\t\t\t\t\t\t\t\t//\tinput = input.replace(found[i], actionlist[k].example)\r\n\t\t\t\t\t\t\t\t\t//}\r\n\r\n\t\t\t\t\t\t\t\t\tshouldbreak = true \r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (shouldbreak) {\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.log(\"Replace error: \", e)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"Outer replace error: \", e)\r\n\t\t}\r\n\r\n\t\tconst tmpValidation = validateJson(input.valueOf())\r\n\t\t//setValidation(true)\r\n\t\tif (tmpValidation.valid === true) {\r\n\t\t\tsetValidation(true)\r\n\t\t\tsetExpOutput(tmpValidation.result)\r\n\t\t} else {\r\n\t\t\tsetExpOutput(input.valueOf())\r\n\t\t\tsetValidation(false)\r\n\t\t}\r\n\t}\r\n\r\n const handleItemClick = (values) => {\r\n\t\tif (\r\n\t\t\tvalues === undefined ||\r\n\t\t\tvalues === null ||\r\n\t\t\tvalues.length === 0\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar toComplete = localcodedata.trim().endsWith(\"$\") ? values[0].autocomplete : \"$\" + values[0].autocomplete;\r\n\r\n\t\ttoComplete = toComplete.toLowerCase().replaceAll(\" \", \"_\");\r\n\t\tfor (var key in values) {\r\n\t\t\tif (key == 0 || values[key].autocomplete.length === 0) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttoComplete += values[key].autocomplete;\r\n\t\t}\r\n\r\n\t\tsetlocalcodedata(localcodedata+toComplete)\r\n\t\tsetMenuPosition(null)\r\n\t}\r\n\r\n\tconst handleClick = (item) => {\r\n\t\tif (item === undefined || item.value === undefined || item.value === null) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (!item.value.includes(\"{%\") && !item.value.includes(\"{{\")) {\r\n\t\t\tsetlocalcodedata(localcodedata+\" | \"+item.value+\" }}\")\r\n\t\t} else {\r\n\t\t\tsetlocalcodedata(localcodedata+item.value)\r\n\t\t}\r\n\r\n\t\tsetAnchorEl(null)\r\n\t\tsetAnchorEl2(null)\r\n\t\tsetAnchorEl3(null)\r\n\t}\r\n\r\n\tconst executeSingleAction = (inputdata) => {\r\n\t\t//if (serverside === true) {\r\n\t\t//\treturn\r\n\t\t//}\r\n\t\r\n\t\tif (validation === true) {\r\n\t\t\tinputdata = JSON.stringify(inputdata)\r\n\t\t}\r\n\r\n\t\tconst appid = \"3e2bdf9d5069fe3f4746c29d68785a6a\" \r\n\t\tconst actiondata = {\"description\":\"Repeats the call parameter\",\"id\":\"\",\"name\":\"repeat_back_to_me\",\"label\":\"\",\"node_type\":\"\",\"environment\":\"\",\"sharing\":false,\"private_id\":\"\",\"public_id\":\"\",\"app_id\":\"3e2bdf9d5069fe3f4746c29d68785a6a\",\"tags\":null,\"authentication\":[],\"tested\":false,\"parameters\":[{\"description\":\"The message to repeat\",\"id\":\"\",\"name\":\"call\",\"example\":\"REPEATING: Hello world\",\"value\":inputdata,\"multiline\":true,\"options\":null,\"action_field\":\"\",\"variant\":\"STATIC_VALUE\",\"required\":true,\"configuration\":false,\"tags\":null,\"schema\":{\"type\":\"string\"},\"skip_multicheck\":false,\"value_replace\":null,\"unique_toggled\":false,\"autocompleted\":false}],\"execution_variable\":{\"description\":\"\",\"id\":\"\",\"name\":\"\",\"value\":\"\"},\"returns\":{\"description\":\"\",\"example\":\"\",\"id\":\"\",\"schema\":{\"type\":\"string\"}},\"authentication_id\":\"\",\"example\":\"\",\"auth_not_required\":false,\"source_workflow\":\"\",\"run_magic_output\":false,\"run_magic_input\":false,\"execution_delay\":0,\"app_name\":\"Shuffle Tools\",\"app_version\":\"1.2.0\",\"selectedAuthentication\":{}}\r\n\r\n\t\tsetExecutionResult({\r\n\t\t\t\"valid\": false,\t\t\r\n\t\t\t\"result\": baseResult,\r\n\t\t})\r\n\r\n\t\tsetExecuting(true)\r\n\r\n\t\tfetch(globalUrl+\"/api/v1/apps/\"+appid+\"/execute\", {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Accept': 'application/json',\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(actiondata),\r\n\t\t\tcredentials: \"include\",\r\n\t\t})\r\n\t\t.then((response) => {\r\n\t\t\tif (response.status !== 200) {\r\n\t\t\t\tconsole.log(\"Status not 200 for stream results :O!\")\r\n\t\t\t}\r\n\r\n\t\t\treturn response.json()\r\n\t\t})\r\n\t\t.then((responseJson) => {\r\n\t\t\t//console.log(\"RESPONSE: \", responseJson)\r\n\t\t\tif (responseJson.success === true && responseJson.result !== null && responseJson.result !== undefined && responseJson.result.length > 0) {\r\n\t\t\t\tconst result = responseJson.result.slice(0, 50)+\"...\"\r\n\t\t\t\t//alert.info(\"SUCCESS: \"+result)\r\n\r\n\t\t\t\tconst validate = validateJson(responseJson.result)\r\n\t\t\t\tsetExecutionResult(validate)\r\n\t\t\t} else if (responseJson.success === false && responseJson.reason !== undefined && responseJson.reason !== null) {\r\n\t\t\t\talert.error(responseJson.reason)\r\n\t\t\t\tsetExecutionResult({\"valid\": false, \"result\": responseJson.reason})\r\n\t\t\t} else if (responseJson.success === true) {\r\n\t\t\t\tsetExecutionResult({\"valid\": false, \"result\": \"Couldn't finish execution. Please fill all the required fields, and retry the execution.\"})\r\n\t\t\t} else {\r\n\t\t\t\tsetExecutionResult({\"valid\": false, \"result\": \"Couldn't finish execution (2). Please fill all the required fields, and validate the execution.\"})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tsetExecuting(false)\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\t//alert.error(\"Execution error: \"+error.toString())\r\n\t\t\tconsole.log(\"error: \", error)\r\n\t\t\tsetExecuting(false)\r\n\t\t})\r\n\t}\r\n\r\n\treturn (\r\n\t\t {\r\n\t\t\t\tconsole.log(\"In closer\")\r\n\r\n\t\t\t\tif (changeActionParameterCodeMirror !== undefined) {\r\n\t\t\t\t\tchangeActionParameterCodeMirror({target: {value: \"\"}}, fieldCount, localcodedata)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"No action called changeActionParameterCodeMirror in code editor\")\r\n\t\t\t\t}\r\n\t\t\t\t//setExpansionModalOpen(false)\r\n\t\t\t}}\r\n\t\t\tPaperComponent={PaperComponent}\r\n\t\t\tPaperProps={{\r\n\t\t\t\tstyle: {\r\n\t\t\t\t\tbackgroundColor: theme.palette.surfaceColor,\r\n\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\tminWidth: isMobile ? \"100%\" : 600,\r\n\t\t\t\t\tpadding: isMobile ? \"25px 10px 25px 10px\" : 25,\r\n\t\t\t\t\tborder: theme.palette.defaultBorder,\r\n\t\t\t\t\tzIndex: 10012,\r\n\t\t\t\t},\r\n\t\t\t}}\r\n\t\t>\r\n\t\t{ isFileEditor ? \r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\tFile Editor\r\n\t\t\t\t \r\n\t\t\t
\r\n\t\t
\t\r\n\t\t\t:\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\tCode Editor\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tautoFormat(localcodedata) \r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
}\r\n\r\n\t\t\r\n\t\t\t{ isFileEditor ? null :\r\n\t\t\t
\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl(event.currentTarget);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\tFilters \r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tMenuListProps={{\r\n\t\t\t\t\t\t'aria-labelledby': 'basic-button',\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{liquidFilters.map((item, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\thandleClick(item)\r\n\t\t\t\t\t\t\t}}>{item.name}\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl2(event.currentTarget);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\tMath \r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl2(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tMenuListProps={{\r\n\t\t\t\t\t\t'aria-labelledby': 'basic-button',\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{mathFilters.map((item, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\thandleClick(item)\r\n\t\t\t\t\t\t\t}}>{item.name}\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl3(event.currentTarget);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\tPython\t\r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetAnchorEl3(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tMenuListProps={{\r\n\t\t\t\t\t\t'aria-labelledby': 'basic-button',\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{pythonFilters.map((item, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\thandleClick(item)\r\n\t\t\t\t\t\t\t}}>{item.name}\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t \r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetMenuPosition({\r\n\t\t\t\t\t\t\ttop: event.pageY,\r\n\t\t\t\t\t\t\tleft: event.pageX,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t Autocomplete \r\n\t\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\thandleMenuClose();\r\n\t\t\t\t\t}}\r\n\t\t\t\t\topen={!!menuPosition}\r\n\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\tmarginTop: 2,\r\n\t\t\t\t\t\tmaxHeight: 650,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{actionlist.map((innerdata) => {\r\n\t\t\t\t\t\tconst icon =\r\n\t\t\t\t\t\t\tinnerdata.type === \"action\" ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : innerdata.type === \"workflow_variable\" ||\r\n\t\t\t\t\t\t\t\tinnerdata.type === \"execution_variable\" ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconst handleExecArgumentHover = (inside) => {\r\n\t\t\t\t\t\t\tvar exec_text_field = document.getElementById(\r\n\t\t\t\t\t\t\t\t\"execution_argument_input_field\"\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tif (exec_text_field !== null) {\r\n\t\t\t\t\t\t\t\tif (inside) {\r\n\t\t\t\t\t\t\t\t\texec_text_field.style.border = \"2px solid #f85a3e\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\texec_text_field.style.border = \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tconst handleActionHover = (inside, actionId) => {\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tconst handleMouseover = () => {\r\n\t\t\t\t\t\t\tif (innerdata.type === \"Execution Argument\") {\r\n\t\t\t\t\t\t\t\thandleExecArgumentHover(true);\r\n\t\t\t\t\t\t\t} else if (innerdata.type === \"action\") {\r\n\t\t\t\t\t\t\t\thandleActionHover(true, innerdata.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tconst handleMouseOut = () => {\r\n\t\t\t\t\t\t\tif (innerdata.type === \"Execution Argument\") {\r\n\t\t\t\t\t\t\t\thandleExecArgumentHover(false);\r\n\t\t\t\t\t\t\t} else if (innerdata.type === \"action\") {\r\n\t\t\t\t\t\t\t\thandleActionHover(false, innerdata.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar parsedPaths = [];\r\n\t\t\t\t\t\tif (typeof innerdata.example === \"object\") {\r\n\t\t\t\t\t\t\tparsedPaths = GetParsedPaths(innerdata.example, \"\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst coverColor = \"#82ccc3\"\r\n\t\t\t\t\t\t//menuPosition.left -= 50\r\n\t\t\t\t\t\t//menuPosition.top -= 250 \r\n\t\t\t\t\t\t//console.log(\"POS: \", menuPosition1)\r\n\t\t\t\t\t\tvar menuPosition1 = menuPosition\r\n\t\t\t\t\t\tif (menuPosition1 === null) {\r\n\t\t\t\t\t\t\tmenuPosition1 = {\r\n\t\t\t\t\t\t\t\t\"left\": 0,\r\n\t\t\t\t\t\t\t\t\"top\": 0,\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (menuPosition1.top === null || menuPosition1.top === undefined) {\r\n\t\t\t\t\t\t\tmenuPosition1.top = 0\r\n\t\t\t\t\t\t} else if (menuPosition1.left === null || menuPosition1.left === undefined) {\r\n\t\t\t\t\t\t\tmenuPosition1.left = 0\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//console.log(\"POS1: \", menuPosition1)\r\n\r\n\t\t\t\t\t\treturn parsedPaths.length > 0 ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{icon} {innerdata.name}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tparentMenuOpen={!!menuPosition}\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tcolor: \"white\",\r\n\t\t\t\t\t\t\t\t\tminWidth: 250,\r\n\t\t\t\t\t\t\t\t\tmaxWidth: 250,\r\n\t\t\t\t\t\t\t\t\tmaxHeight: 50,\r\n\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"CLICKED: \", innerdata);\r\n\t\t\t\t\t\t\t\t\tconsole.log(innerdata.example)\r\n\t\t\t\t\t\t\t\t\thandleItemClick([innerdata]);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t//console.log(\"HOVER: \", pathdata);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\thandleItemClick([innerdata]);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{innerdata.name}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{parsedPaths.map((pathdata, index) => {\r\n\t\t\t\t\t\t\t\t\t\t// FIXME: Should be recursive in here\r\n\t\t\t\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t\t\t\tconst icon =\r\n\t\t\t\t\t\t\t\t\t\t\tpathdata.type === \"value\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t) : pathdata.type === \"list\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t//\r\n\r\n\t\t\t\t\t\t\t\t\t\tconst indentation_count = (pathdata.name.match(/\\./g) || []).length+1\r\n\t\t\t\t\t\t\t\t\t\t//const boxPadding = pathdata.type === \"object\" ? \"10px 0px 0px 0px\" : 0\r\n\t\t\t\t\t\t\t\t\t\tconst boxPadding = 0 \r\n\t\t\t\t\t\t\t\t\t\tconst namesplit = pathdata.name.split(\".\")\r\n\t\t\t\t\t\t\t\t\t\tconst newname = namesplit[namesplit.length-1]\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log(\"HOVER: \", pathdata);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleItemClick([innerdata, pathdata]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Array(indentation_count).fill().map((subdata, subindex) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{icon} {newname} \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{pathdata.type === \"list\" ? {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"INNER: \", innerdata, pathdata)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Removing .list from autocomplete\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newname = pathdata.name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (newname.length > 5) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewname = newname.slice(0, newname.length-5)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//selectedActionParameters[count].value += `{{ $${innerdata.name}.${newname} | size }}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//selectedAction.parameters[count].value = selectedActionParameters[count].value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//setSelectedAction(selectedAction);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//setShowDropdown(false);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMenuPosition(null);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// innerdata.name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// pathdata.name\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//handleItemClick([innerdata, newpathdata])\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log(\"CLICK LENGTH!\")\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}} /> : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t handleMouseover()}\r\n\t\t\t\t\t\t\t\tonMouseOut={() => {\r\n\t\t\t\t\t\t\t\t\thandleMouseOut();\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\thandleItemClick([innerdata]);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{icon} {innerdata.name}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\r\n
}\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\t// console.log(value.getCursor())\r\n\t\t\t\t\t\tsetCurrentCharacter(value.getCursor().ch)\r\n\t\t\t\t\t\tsetCurrentLine(value.getCursor().line)\r\n\t\t\t\t\t\t// console.log(value.getCursor().ch, value.getCursor().line)\r\n\t\t\t\t\t\tfindIndex(value.getCursor().line, value.getCursor().ch)\r\n\t\t\t\t\t\thighlight_variables(value)\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonChange={(value) => {\r\n\t\t\t\t\t\tsetlocalcodedata(value.getValue())\r\n\t\t\t\t\t\texpectedOutput(value.getValue())\r\n\r\n\t\t\t\t\t\tif(value.display.input.prevInput.startsWith('$') || value.display.input.prevInput.endsWith('$')){\r\n\t\t\t\t\t\t\tsetEditorPopupOpen(true)\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// console.log(findIndex(value.getValue()))\r\n\t\t\t\t\t\t// highlight_variables(value)\r\n\t\t\t\t\t}}\r\n\t\t\t\t\toptions={{\r\n\t\t\t\t\t\tstyleSelectedText: true,\r\n\t\t\t\t\t\ttheme: codeTheme,\r\n\t\t\t\t\t\tkeyMap: 'sublime',\r\n\t\t\t\t\t\tmode: 'python',\r\n\t\t\t\t\t\tlineWrapping: linewrap,\r\n\t\t\t\t\t\t// mode: {codelang},\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t{/*editorPopupOpen ?\r\n\t\t\t\t\r\n\t\t\t\t\t{mainVariables.map((data, index) => {\r\n\t\t\t\t\t\t// console.log(data)\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\treplaceVariables(data.substring(1,))\r\n\t\t\t\t\t\t\t\t\t\t// console.log(currentCharacter, currentLine)\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\r\n\t\t\t\t\t\t\t\t\t\tcolor: 'white',\r\n\t\t\t\t\t\t\t\t\t\tborder: 'none',\r\n\t\t\t\t\t\t\t\t\t\tpadding: 7.5,\r\n\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\r\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\r\n\t\t\t\t\t\t\t\t\t\ttextAlign: 'left'\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{data.substring(0, 25)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t: null*/}\r\n\r\n\t\t\t\r\n\t\t\t\t{/*\r\n\t\t\t\t\r\n\t\t\t\t\tLine Wrap\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (linewrap) {\r\n\t\t\t\t\t\t\t\tsetlinewrap(false)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!linewrap){\r\n\t\t\t\t\t\t\t\tsetlinewrap(true)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tdefaultChecked\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tcolor: orange[600],\r\n\t\t\t\t\t\t\t'&.Mui-checked': {\r\n\t\t\t\t\t\t\t color: orange[800],\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\tDark Theme\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (codeTheme === \"gruvbox-dark\") {\r\n\t\t\t\t\t\t\t\tsetcodeTheme(\"duotone-light\")\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (codeTheme === \"duotone-light\"){\r\n\t\t\t\t\t\t\t\tsetcodeTheme(\"gruvbox-dark\")\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tdefaultChecked\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\tcolor: orange[600],\r\n\t\t\t\t\t\t\t'&.Mui-checked': {\r\n\t\t\t\t\t\t\t color: orange[800],\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t*/}\r\n\r\n\t\t\t
\r\n\t\t\t\t{isFileEditor ? null : (\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{isMobile ? null : \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tExpected Output\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\texecuteSingleAction(expOutput)\r\n\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{executing ? : }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{isMobile ? null : \r\n\t\t\t\t\t\t\tvalidation === true ? \r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t//handleReactJsonClipboard(copy);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tdisplayDataTypes={false}\r\n\t\t\t\t\t\t\t\t\tonSelect={(select) => {\r\n\t\t\t\t\t\t\t\t\t\t//HandleJsonCopy(validate.result, select, \"exec\");\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tname={\"JSON autocompletion\"}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{expOutput}\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t{executionResult.valid === true ? \r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t//handleReactJsonClipboard(copy);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisplayDataTypes={false}\r\n\t\t\t\t\t\t\t\tonSelect={(select) => {\r\n\t\t\t\t\t\t\t\t\t//HandleJsonCopy(validate.result, select, \"exec\");\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tname={\"Test result\"}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{executionResult.result.length > 0 ? \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tTest output: {executionResult.result}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t
\r\n\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\t
\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tsetExpansionModalOpen(false);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tCancel\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\t// console.log(codedata)\r\n\t\t\t\t\t\t\t// console.log(fieldCount)\r\n\t\t\t\t\t\t\tif (isFileEditor === true){\r\n\t\t\t\t\t\t\t\trunUpdateText(localcodedata);\r\n\t\t\t\t\t\t\t\tsetcodedata(localcodedata);\r\n\t\t\t\t\t\t\t\tsetExpansionModalOpen(false)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tchangeActionParameterCodeMirror(event, fieldCount, localcodedata)\r\n\t\t\t\t\t\t\tsetExpansionModalOpen(false)\r\n\t\t\t\t\t\t\tsetcodedata(localcodedata)}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\tDone\r\n\t\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n}\r\n\r\nexport default CodeEditor;\r\n","import React, { useState, useEffect, useLayoutEffect } from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\n\nimport { validateJson, GetIconInfo } from \"../views/Workflows.jsx\";\nimport { GetParsedPaths } from \"../views/Apps.jsx\";\nimport { sortByKey } from \"../views/AngularWorkflow.jsx\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport NestedMenuItem from \"material-ui-nested-menu-item\";\nimport { useAlert } from \"react-alert\";\nimport theme from '../theme';\n\nimport {\n\tButtonGroup,\n Popper,\n TextField,\n TextareaAutosize,\n Drawer,\n Button,\n Paper,\n Tabs,\n InputAdornment,\n Tab,\n ButtonBase,\n Tooltip,\n Select,\n MenuItem,\n Divider,\n Dialog,\n Modal,\n DialogActions,\n DialogTitle,\n InputLabel,\n DialogContent,\n FormControl,\n IconButton,\n Menu,\n Input,\n FormGroup,\n FormControlLabel,\n Typography,\n Checkbox,\n Breadcrumbs,\n CircularProgress,\n Switch,\n Fade,\n} from \"@material-ui/core\";\n\nimport {\n HelpOutline as HelpOutlineIcon,\n Description as DescriptionIcon,\n GetApp as GetAppIcon,\n Search as SearchIcon,\n ArrowUpward as ArrowUpwardIcon,\n Visibility as VisibilityIcon,\n Done as DoneIcon,\n Close as CloseIcon,\n Error as ErrorIcon,\n FindReplace as FindreplaceIcon,\n ArrowLeft as ArrowLeftIcon,\n Cached as CachedIcon,\n DirectionsRun as DirectionsRunIcon,\n Add as AddIcon,\n Polymer as PolymerIcon,\n FormatListNumbered as FormatListNumberedIcon,\n Create as CreateIcon,\n PlayArrow as PlayArrowIcon,\n AspectRatio as AspectRatioIcon,\n MoreVert as MoreVertIcon,\n Apps as AppsIcon,\n Schedule as ScheduleIcon,\n FavoriteBorder as FavoriteBorderIcon,\n Pause as PauseIcon,\n Delete as DeleteIcon,\n AddCircleOutline as AddCircleOutlineIcon,\n Circle as CircleIcon,\n Save as SaveIcon,\n KeyboardArrowLeft as KeyboardArrowLeftIcon,\n KeyboardArrowRight as KeyboardArrowRightIcon,\n ArrowBack as ArrowBackIcon,\n Settings as SettingsIcon,\n LockOpen as LockOpenIcon,\n ExpandMore as ExpandMoreIcon,\n VpnKey as VpnKeyIcon,\n\tAutoFixHigh as AutoFixHighIcon,\n\tSquareFoot as SquareFootIcon,\n} from '@mui/icons-material';\n//} from \"@material-ui/icons\";\n\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\n\n//import CodeMirror from \"@uiw/react-codemirror\";\n//import \"codemirror/keymap/sublime\";\n//import \"codemirror/theme/gruvbox-dark.css\";\nimport ShuffleCodeEditor from \"../components/ShuffleCodeEditor.jsx\";\n\nconst useStyles = makeStyles({\n notchedOutline: {\n borderColor: \"#f85a3e !important\",\n },\n root: {\n \"& .MuiAutocomplete-listbox\": {\n border: \"2px solid grey\",\n color: \"white\",\n fontSize: 18,\n \"& li:nth-child(even)\": {\n backgroundColor: \"#CCC\",\n },\n \"& li:nth-child(odd)\": {\n backgroundColor: \"#FFF\",\n },\n },\n },\n inputRoot: {\n color: \"white\",\n // This matches the specificity of the default styles at https://github.com/mui-org/material-ui/blob/v4.11.3/packages/material-ui-lab/src/Autocomplete/Autocomplete.js#L90\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#f86a3e\",\n },\n },\n});\n\t\t\t\t\t\t\nconst openApiFieldDesc = \"Generated by OpenAPI body example\";\nconst ParsedAction = (props) => {\n const {\n workflow,\n\t\tfiles,\n setWorkflow,\n setAction,\n setSelectedAction,\n setUpdate,\n appActionArguments,\n selectedApp,\n workflowExecutions,\n setSelectedResult,\n selectedAction,\n setSelectedApp,\n setSelectedTrigger,\n setSelectedEdge,\n setCurrentView,\n cy,\n setAuthenticationModalOpen,\n setVariablesModalOpen,\n setCodeModalOpen,\n selectedNameChange,\n rightsidebarStyle,\n showEnvironment,\n selectedActionEnvironment,\n environments,\n setNewSelectedAction,\n appApiViewStyle,\n globalUrl,\n setSelectedActionEnvironment,\n requiresAuthentication,\n hideExtraTypes,\n scrollConfig,\n setScrollConfig,\n authenticationType,\n appAuthentication,\n getAppAuthentication,\n\t\tactionDelayChange,\n\t\tgetParents,\n\t\tisCloud,\n\t\tlastSaved,\n\t\tsetLastSaved,\n\t\tsetShowVideo,\n\t\t//expansionModalOpen,\n\t\t//setExpansionModalOpen,\n } = props;\n\n //const theme = useTheme();\n const classes = useStyles();\n const alert = useAlert()\n\n const [expansionModalOpen, setExpansionModalOpen] = React.useState(false);\n const [hideBody, setHideBody] = React.useState(true);\n const [activateHidingBodyButton, setActivateHidingBodyButton] = React.useState(false);\n\n\tconst [codedata, setcodedata] = React.useState(\"\");\n\tconst [fieldCount, setFieldCount] = React.useState(0);\n\tconst [hiddenDescription, setHiddenDescription] = React.useState(true);\n\n\n useEffect(() => {\n\t\tif (setLastSaved !== undefined) {\n\t\t\tsetLastSaved(false)\n\t\t}\n\t}, [expansionModalOpen])\n\n useEffect(() => {\n\t\tif (selectedAction.parameters !== null && selectedAction.parameters !== undefined) {\n\t\t\tconst paramcheck = selectedAction.parameters.find(param => param.name === \"body\")\n\t\t\t//console.log(\"LOADED! Change hideBody based on input? Action: \", selectedAction, paramcheck)\n\t\t\tif (paramcheck !== undefined && paramcheck !== null) {\n\t\t\t\tif (paramcheck.id === \"TOGGLED\"){ \n \t\t\t\tsetHideBody(false)\n \t\t\t\tsetActivateHidingBodyButton(false)\n\t\t\t\t\tconsole.log(\"TOGGLED BODY!\")\n\t\t\t\t} else {\n \t\t\t\tsetHideBody(true)\n\n\t\t\t\t\tif (paramcheck.id === \"UNTOGGLED\") {\n \t\t\t\t\tsetActivateHidingBodyButton(false)\n\t\t\t\t\t\tconsole.log(\"UNTOGGLED!\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [])\n\n const keywords = [\n \"len(\",\n \"lower(\",\n \"upper(\",\n \"trim(\",\n \"split(\",\n \"length(\",\n \"number(\",\n \"parse(\",\n \"join(\",\n ];\n\n const getApp = (appId, setApp) => {\n fetch(globalUrl + \"/api/v1/apps/\" + appId + \"/config?openapi=false\", {\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n //alert.success(\"Successfully GOT app \"+appId)\n } else {\n alert.error(\"Failed getting app\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n console.log(\"RESPONSE: \", responseJson);\n\n const parsedapp =\n responseJson.app !== undefined && responseJson.app !== null\n ? JSON.parse(atob(responseJson.app))\n : {};\n console.log(\"PARSED: \", parsedapp);\n //data = parsedapp.body === undefined ? parsedapp : parsedapp.body\n\n if (\n setApp &&\n parsedapp.actions !== undefined &&\n parsedapp.actions !== null\n ) {\n console.log(\"Inside first if\");\n if (\n selectedApp.versions !== undefined &&\n selectedApp.versions !== null\n ) {\n parsedapp.versions = selectedApp.versions;\n }\n\n if (\n selectedApp.loop_versions !== undefined &&\n selectedApp.loop_versions !== null\n ) {\n parsedapp.loop_versions = selectedApp.loop_versions;\n }\n\n // Find authentication, and if it works?\n // If authentication has less OR more fields, it has to change\n //console.log(selected\n\n console.log(\"Inside first if2\");\n var foundAction = parsedapp.actions.find(\n (action) =>\n action.name.toLowerCase() === selectedAction.name.toLowerCase()\n );\n console.log(\"FOUNDACTION: \", foundAction);\n if (foundAction !== null && foundAction !== undefined) {\n var foundparams = [];\n for (var paramkey in foundAction.parameters) {\n const param = foundAction.parameters[paramkey];\n\n const foundParam = selectedAction.parameters.find(\n (item) => item.name.toLowerCase() === param.name.toLowerCase()\n );\n if (foundParam === undefined) {\n console.log(\"COULDNT find Param: \", param);\n } else {\n foundAction.parameters[paramkey] = foundParam;\n }\n //foundparams.push(param.name)\n }\n } else {\n alert.error(\"Couldn't find action \" + selectedAction.name);\n }\n\n selectedAction.errors = [];\n selectedAction.is_valid = true;\n\n // Updating params for the new action\n selectedAction.parameters = foundAction.parameters;\n selectedAction.app_id = appId;\n selectedAction.app_version = parsedapp.app_version;\n\n setSelectedAction(selectedAction);\n setSelectedApp(parsedapp);\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n\n\n const defineStartnode = () => {\n if (cy === undefined) {\n return;\n }\n\n var oldstartnode = cy.getElementById(workflow.start);\n if (oldstartnode.length > 0) {\n oldstartnode[0].data(\"isStartNode\", false);\n var oldnodecnt = workflow.actions.findIndex(\n (a) => a.id === workflow.start\n );\n if (workflow.actions[oldnodecnt] !== undefined) {\n workflow.actions[oldnodecnt].isStartNode = false;\n }\n }\n\n var newstartnode = cy.getElementById(selectedAction.id);\n if (newstartnode.length > 0) {\n newstartnode[0].data(\"isStartNode\", true);\n var newnodecnt = workflow.actions.findIndex(\n (a) => a.id === selectedAction.id\n );\n console.log(\"NEW NODE CNT: \", newnodecnt);\n if (workflow.actions[newnodecnt] !== undefined) {\n workflow.actions[newnodecnt].isStartNode = true;\n console.log(workflow.actions[newnodecnt]);\n }\n }\n\n // Find branches with triggers as source nodes\n // Move these targets to be the new node\n // Set arrows pointing to new startnode with errors\n //for (var key in workflow.branches) {\n //\tvar item = workflow.branches[key]\n //\tif (item.destination_id === oldstartnode[0].data()[\"id\"]) {\n //\t\tvar curbranch = cy.getElementById(item.id)\n //\t\tif (curbranch.length > 0) {\n //\t\t\t//console.log(curbranch[0].data())\n //\t\t\t//curbranch[0].data(\"target\", selectedAction.id)\n //\t\t\t//curbranch[0].data(\"hasErrors\", true)\n //\t\t\t//workflow.branches[key].destination_id = selectedAction.id\n //\t\t\t//console.log(curbranch[0].data())\n //\t\t}\n //\t}\n //}\n\n setUpdate(\"start_node\" + selectedAction.id);\n workflow.start = selectedAction.id;\n setWorkflow(workflow);\n //setStartNode(selectedAction.id)\n };\n\n const AppActionArguments = (props) => {\n const [selectedActionParameters, setSelectedActionParameters] = React.useState([]);\n const [selectedVariableParameter, setSelectedVariableParameter] = React.useState(\"\");\n const [actionlist, setActionlist] = React.useState([]);\n const [jsonList, setJsonList] = React.useState([]);\n const [showDropdown, setShowDropdown] = React.useState(false);\n const [showDropdownNumber, setShowDropdownNumber] = React.useState(0);\n const [showAutocomplete, setShowAutocomplete] = React.useState(false);\n const [menuPosition, setMenuPosition] = useState(null);\n\n useEffect(() => {\n if (\n selectedActionParameters !== null &&\n selectedActionParameters.length === 0\n ) {\n if (\n selectedAction.parameters !== null &&\n selectedAction.parameters.length > 0\n ) {\n setSelectedActionParameters(selectedAction.parameters);\n }\n }\n\n if (\n (selectedVariableParameter === null ||\n selectedVariableParameter === undefined) &&\n workflow.workflow_variables !== null &&\n workflow.workflow_variables.length > 0\n ) {\n // FIXME - this is the bad thing\n setSelectedVariableParameter(workflow.workflow_variables[0].name);\n }\n\n if (actionlist.length === 0) {\n // FIXME: Have previous execution values in here\n\t\t\t\tif (workflowExecutions.length > 0) {\n\t\t\t\t\tfor (var key in workflowExecutions) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tworkflowExecutions[key].execution_argument === undefined ||\n\t\t\t\t\t\t\tworkflowExecutions[key].execution_argument === null ||\n\t\t\t\t\t\t\tworkflowExecutions[key].execution_argument.length === 0 \n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst valid = validateJson(workflowExecutions[key].execution_argument)\n\t\t\t\t\t\tif (valid.valid) {\n\t\t\t\t\t\t\tactionlist.push({\n\t\t\t\t\t\t\t\ttype: \"Execution Argument\",\n\t\t\t\t\t\t\t\tname: \"Execution Argument\",\n\t\t\t\t\t\t\t\tvalue: \"$exec\",\n\t\t\t\t\t\t\t\thighlight: \"exec\",\n\t\t\t\t\t\t\t\tautocomplete: \"exec\",\n\t\t\t\t\t\t\t\texample: valid.result,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif (actionlist.length === 0) {\n\t\t\t\t\tactionlist.push({\n\t\t\t\t\t\ttype: \"Execution Argument\",\n\t\t\t\t\t\tname: \"Execution Argument\",\n\t\t\t\t\t\tvalue: \"$exec\",\n\t\t\t\t\t\thighlight: \"exec\",\n\t\t\t\t\t\tautocomplete: \"exec\",\n\t\t\t\t\t\texample: \"\",\n\t\t\t\t\t})\n\t\t\t\t}\n\n actionlist.push({\n type: \"Shuffle DB\",\n name: \"Shuffle DB\",\n value: \"$shuffle_cache\",\n highlight: \"shuffle_cache\",\n autocomplete: \"shuffle_cache\",\n example: \"\",\n })\n\n if (\n workflow.workflow_variables !== null &&\n workflow.workflow_variables !== undefined &&\n workflow.workflow_variables.length > 0\n ) {\n for (var key in workflow.workflow_variables) {\n const item = workflow.workflow_variables[key];\n actionlist.push({\n type: \"workflow_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: item.value,\n });\n }\n }\n\n // FIXME: Add values from previous executions if they exist\n if (\n workflow.execution_variables !== null &&\n workflow.execution_variables !== undefined &&\n workflow.execution_variables.length > 0\n ) {\n for (var key in workflow.execution_variables) {\n const item = workflow.execution_variables[key];\n actionlist.push({\n type: \"execution_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: \"\",\n });\n }\n }\n\n // Loops parent nodes' old results to fix autocomplete\n\t\t\t\tif (getParents !== undefined) {\n \tvar parents = getParents(selectedAction);\n\n \tif (parents.length > 1) {\n \t for (var key in parents) {\n \t const item = parents[key];\n \t if (item.label === \"Execution Argument\") {\n \t continue;\n \t }\n\n \t var exampledata = item.example === undefined || item.example === null ? \"\" : item.example;\n \t // Find previous execution and their variables\n \t //exampledata === \"\" &&\n \t if (workflowExecutions.length > 0) {\n \t // Look for the ID\n \t const found = false;\n \t for (var key in workflowExecutions) {\n \t if (\n \t workflowExecutions[key].results === undefined ||\n \t workflowExecutions[key].results === null\n \t ) {\n \t continue;\n \t }\n\n \t var foundResult = workflowExecutions[key].results.find(\n \t (result) => result.action.id === item.id\n \t );\n \t if (foundResult === undefined || foundResult === null) {\n \t continue;\n \t }\n\n\t\t\t\t\t\t\t\t\tif (foundResult.result !== undefined && foundResult.result !== null) {\n\t\t\t\t\t\t\t\t\t\tfoundResult = foundResult.result\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst valid = validateJson(foundResult)\n\t\t\t\t\t\t\t\t\tif (valid.valid) {\n\t\t\t\t\t\t\t\t\t\tif (valid.result.success === false) {\n\t\t\t\t\t\t\t\t\t\t\t//console.log(\"Skipping success false autocomplete\")\n\t\t\t\t\t\t\t\t\t\t} else {\n \t \texampledata = valid.result;\n \t \tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n \t } else {\n \t exampledata = foundResult;\n\t\t\t\t\t\t\t\t\t}\n \t }\n \t }\n\n \t // 1. Take\n \t const itemlabelComplete =\n \t item.label === null || item.label === undefined\n \t ? \"\"\n \t : item.label.split(\" \").join(\"_\");\n\n \t const actionvalue = {\n \t type: \"action\",\n \t id: item.id,\n \t name: item.label,\n \t autocomplete: itemlabelComplete,\n \t example: exampledata,\n \t };\n\n \t actionlist.push(actionvalue);\n \t }\n \t}\n\n\t\t\t\t\t//console.log(\"ACTIONLIST: \", actionlist)\n \tsetActionlist(actionlist);\n\t\t\t\t}\n }\n });\n\n\n\t\tconst calculateHelpertext = (input_data) => {\n\t\t\tvar helperText = \"\"\n\t\t\tvar looperText = \"\"\n\t\t\t//const found = input_data.match(/[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\n\t\t\tvar found = input_data.match(/[\\\\]{0,1}[$]{1}([a-zA-Z0-9_-]+\\.?){1}([a-zA-Z0-9#_-]+\\.?){0,}/g)\n\n\t\t\tif (found !== null && found !== undefined) {\n\t\t\t\tvar new_occurences = []\n\t\t\t\tfor (var key in found) {\n\t\t\t\t\tif (found[key][0] !== \"\\\\\") {\n\t\t\t\t\t\tnew_occurences.push(found[key])\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\"New found: \", new_occurences)\n\t\t\t\tfound = new_occurences.valueOf()\n\t\t\t}\n\n\t\t\tif (found !== null) {\n\t\t\t\ttry {\n\t\t\t\t\t// When the found array is empty.\n\t\t\t\t\tfor (var i = 0; i < found.length; i++) {\n\t\t\t\t\t\tconst variableSplit = found[i].split(\".#\")\n\t\t\t\t\t\tif ((variableSplit.length-1) > 1) {\n\t\t\t\t\t\t\t//console.log(\"Larger than 1: \", variableSplit)\n\t\t\t\t\t\t\tif (looperText.length === 0) {\n\t\t\t\t\t\t\t\tlooperText += \"PS: Double looping (.#.#) may cause problems.\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar foundSlice = false\n\t\t\t\t\t\tfor (var j = 0; j < actionlist.length; j++) {\n\t\t\t\t\t\t\t//console.log(\"ACTION: \", found[i], actionlist[j])\n\t\t\t\t\t\t\t//console.log(\"ACTION :\", found[i].split(\".\")[0].slice(1,).toLowerCase(), actionlist[j].autocomplete.toLowerCase())\n\t\t\t\t\t\t\tif(found[i].split(\".\")[0].slice(1,).toLowerCase() == actionlist[j].autocomplete.toLowerCase()){\n\t\t\t\t\t\t\t\t//console.log(\"Found: \", found[i])\n\t\t\t\t\t\t\t\t// Validate path?\n\n\t\t\t\t\t\t\t\tfoundSlice = true\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!foundSlice) {\n\t\t\t\t\t\t\tif (!helperText.includes(\"Invalid variables\")) {\n\t\t\t\t\t\t\t\thelperText+= \"Invalid variables: \"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelperText+= found[i] + \", \"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.log(\"Parsing error: \", e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (looperText.length > 0) {\n\t\t\t\tif (helperText.length > 0) {\n\t\t\t\t\thelperText += \". \"\n\t\t\t\t}\n\n\t\t\t\thelperText += looperText\n\t\t\t}\n\n\t\t\treturn helperText\n\t\t}\n\n const changeActionParameter = (event, count, data) => {\n\t\t\t//console.log(\"Action change: \", selectedAction, data)\n if (data.name.startsWith(\"${\") && data.name.endsWith(\"}\")) {\n // PARAM FIX - Gonna use the ID field, even though it's a hack\n const paramcheck = selectedAction.parameters.find(\n (param) => param.name === \"body\"\n );\n if (paramcheck !== undefined) {\n // Escapes all double quotes\n var toReplace = event.target.value.trim()\n\n\n\t\t\t\t\tif (!toReplace.startsWith(\"{\") && !toReplace.startsWith(\"[\")) {\n\t\t\t\t\t\ttoReplace = toReplace.replaceAll('\\\\\"', '\"').replaceAll('\"', '\\\\\"')\n\t\t\t\t\t}\n\n console.log(\"REPLACE WITH: \", toReplace);\n if (\n paramcheck[\"value_replace\"] === undefined ||\n paramcheck[\"value_replace\"] === null\n ) {\n paramcheck[\"value_replace\"] = [\n {\n key: data.name,\n value: toReplace,\n },\n ];\n\n console.log(\"IN IF: \", paramcheck);\n } else {\n const subparamindex = paramcheck[\"value_replace\"].findIndex(\n (param) => param.key === data.name\n );\n if (subparamindex === -1) {\n paramcheck[\"value_replace\"].push({\n key: data.name,\n value: toReplace,\n });\n } else {\n paramcheck[\"value_replace\"][subparamindex][\"value\"] = toReplace;\n }\n\n console.log(\"IN ELSE: \", paramcheck);\n }\n //console.log(\"PARAM: \", paramcheck)\n //if (paramcheck.id === undefined) {\n //\tconsole.log(\"Normal paramcheck\")\n //} else {\n //\tselectedActionParameters[count][\"value_replace\"] = paramcheck\n //\tselectedAction.parameters[count][\"value_replace\"] = paramcheck\n //}\n\n if (paramcheck[\"value_replace\"] === undefined) {\n selectedActionParameters[count][\"value_replace\"] = paramcheck;\n selectedAction.parameters[count][\"value_replace\"] = paramcheck;\n } else {\n selectedActionParameters[count][\"value_replace\"] =\n paramcheck[\"value_replace\"];\n selectedAction.parameters[count][\"value_replace\"] =\n paramcheck[\"value_replace\"];\n }\n console.log(\"RESULT: \", selectedAction);\n setSelectedAction(selectedAction);\n //setUpdate(Math.random())\n return;\n }\n }\n\n\n if (event.target.value[event.target.value.length - 1] === \"$\") {\n if (!showDropdown) {\n setShowAutocomplete(false);\n setShowDropdown(true);\n setShowDropdownNumber(count);\n }\n } else {\n if (showDropdown) {\n setShowDropdown(false);\n }\n }\n\n // bad detection mechanism probably\n if (\n event.target.value[event.target.value.length - 1] === \".\" &&\n actionlist.length > 0\n ) {\n console.log(\"GET THE LAST ARGUMENT FOR NODE!\");\n // THIS IS AN EXAMPLE OF SHOWING IT\n /*\n\n\t\t\t\tconst inputdata = {\"data\": \"1.2.3.4\", \"dataType\": \"4.5.6.6\"}\n\t\t\t\tsetJsonList(GetParsedPaths(inputdata, \"\"))\n\t\t\t\tif (!showDropdown) {\n\t\t\t\t\tsetShowAutocomplete(false)\n\t\t\t\t\tsetShowDropdown(true)\n\t\t\t\t\tsetShowDropdownNumber(count)\n\t\t\t\t}\n\t\t\t\tconsole.log(jsonList)\n\t\t\t\t*/\n\n // Search for the item backwards\n // 1. Reverse search backwards from . -> $\n // 2. Search the actionlist for the item\n // 3. Find the data for the specific item\n\n var curstring = \"\";\n var record = false;\n for (var key in selectedActionParameters[count].value) {\n const item = selectedActionParameters[count].value[key];\n if (record) {\n curstring += item;\n }\n\n if (item === \"$\") {\n record = true;\n curstring = \"\";\n }\n }\n\n //console.log(\"CURSTRING: \", curstring)\n if (curstring.length > 0 && actionlist !== null) {\n // Search back in the action list\n curstring = curstring.split(\" \").join(\"_\").toLowerCase();\n var actionItem = actionlist.find(\n (data) =>\n data.autocomplete.split(\" \").join(\"_\").toLowerCase() === curstring\n );\n if (actionItem !== undefined) {\n console.log(\"Found item: \", actionItem);\n\n //actionItem.example = actionItem.example.trim()\n //actionItem.example = actionItem.example.split(\" None\").join(\" \\\"None\\\"\")\n //actionItem.example = actionItem.example.split(\"\\'\").join(\"\\\"\")\n\n var jsonvalid = true;\n try {\n const tmp = String(JSON.parse(actionItem.example));\n if (\n !actionItem.example.includes(\"{\") &&\n !actionItem.example.includes(\"[\")\n ) {\n jsonvalid = false;\n }\n } catch (e) {\n jsonvalid = false;\n }\n\n if (jsonvalid) {\n setJsonList(GetParsedPaths(JSON.parse(actionItem.example), \"\"));\n\n if (!showDropdown) {\n setShowAutocomplete(false);\n setShowDropdown(true);\n setShowDropdownNumber(count);\n }\n }\n }\n }\n } else {\n if (jsonList.length > 0) {\n setJsonList([]);\n }\n }\n\n //console.log(\"CHANGING ACTION COUNT !\")\n\t\t\tselectedActionParameters[count].autocompleted = false\n\t\t\tselectedAction.parameters[count].autocompleted = false \n selectedActionParameters[count].value = event.target.value;\n selectedAction.parameters[count].value = event.target.value;\n\n\t\t\tvar forceUpdate = false \n\t\t\tif (isCloud && (selectedAction.app_name === \"Shuffle Tools\" || selectedAction.app_name === \"email\") && (selectedAction.name === \"send_email_shuffle\" || selectedAction.name === \"send_sms_shuffle\") && data.name === \"apikey\") {\n\t\t\t\tconsole.log(\"APIKEY - this shouldn't show up!\")\n\t\t\t}\n\n\t\t\tif (selectedAction.app_name === \"Shuffle Tools\" && selectedAction.name === \"filter_list\" && data.name === \"input_list\") {\n\t\t\t\t//console.log(\"FILTER LIST!: \", event, count, data)\n\t\t\t\tconst parsedvalue = event.target.value\n\t\t\t\tif (parsedvalue.includes(\"#\")) {\n\t\t\t\t\tconst splitparsed = parsedvalue.split(\".#.\")\n\t\t\t\t\t//console.log(\"Cant contain #: \", splitparsed)\n\t\t\t\t\tif (splitparsed.length > 1) {\n\t\t\t\t\t\tdata.value = splitparsed[0]\n\n\t\t\t\t\t\tselectedActionParameters[count].value = splitparsed[0]\n\t\t\t\t\t\tselectedAction.parameters[count].value = splitparsed[0]\n\n\t\t\t\t\t\t//changeActionParameter({target: {value: splitparsed[1]}}, \n \tselectedActionParameters[1].value = splitparsed[1] \n \t\t\tselectedAction.parameters[1].value = splitparsed[1] \n\t\t\t\t\t\tforceUpdate = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n setSelectedAction(selectedAction);\n\t\t\tif (forceUpdate) {\n \tsetUpdate(Math.random())\n\t\t\t}\n //setUpdate(event.target.value)\n };\n\n\t\t\n\t\tconst changeActionParameterCodeMirror = (event, count, data) => {\n\t\t\tif (data.startsWith(\"${\") && data.endsWith(\"}\")) {\n\t\t\t\t// PARAM FIX - Gonna use the ID field, even though it's a hack\n\t\t\t\tconst paramcheck = selectedAction.parameters.find(param => param.name === \"body\")\n\t\t\t\tif (paramcheck !== undefined) {\n\t\t\t\t\t// Escapes all double quotes\n\t\t\t\t\tconst toReplace = event.target.value.trim().replaceAll(\"\\\\\\\"\", \"\\\"\").replaceAll(\"\\\"\", \"\\\\\\\"\");\n\t\t\t\t\tconsole.log(\"REPLACE WITH: \", toReplace)\n\t\t\t\t\tif (paramcheck[\"value_replace\"] === undefined || paramcheck[\"value_replace\"] === null) {\n\t\t\t\t\t\tparamcheck[\"value_replace\"] = [{\n\t\t\t\t\t\t\t\"key\": data.name,\n\t\t\t\t\t\t\t\"value\": toReplace,\n\t\t\t\t\t\t}]\n\n\t\t\t\t\t\tconsole.log(\"IN IF: \", paramcheck)\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst subparamindex = paramcheck[\"value_replace\"].findIndex(param => param.key === data.name)\n\t\t\t\t\t\tif (subparamindex === -1) {\n\t\t\t\t\t\t\tparamcheck[\"value_replace\"].push({\n\t\t\t\t\t\t\t\t\"key\": data.name,\n\t\t\t\t\t\t\t\t\"value\": toReplace,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparamcheck[\"value_replace\"][subparamindex][\"value\"] = toReplace \n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconsole.log(\"IN ELSE: \", paramcheck)\n\t\t\t\t\t}\n\t\t\t\t\t//console.log(\"PARAM: \", paramcheck)\n\t\t\t\t\t//if (paramcheck.id === undefined) {\n\t\t\t\t\t//\tconsole.log(\"Normal paramcheck\")\n\t\t\t\t\t//} else {\n\t\t\t\t\t//\tselectedActionParameters[count][\"value_replace\"] = paramcheck\n\t\t\t\t\t//\tselectedAction.parameters[count][\"value_replace\"] = paramcheck\n\t\t\t\t\t//}\n\n\t\t\t\t\tif (paramcheck[\"value_replace\"] === undefined) {\n\t\t\t\t\t\tselectedActionParameters[count][\"value_replace\"] = paramcheck\n\t\t\t\t\t\tselectedAction.parameters[count][\"value_replace\"] = paramcheck\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectedActionParameters[count][\"value_replace\"] = paramcheck[\"value_replace\"]\n\t\t\t\t\t\tselectedAction.parameters[count][\"value_replace\"] = paramcheck[\"value_replace\"]\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(\"RESULT: \", selectedAction)\n\t\t\t\t\tsetSelectedAction(selectedAction)\n\t\t\t\t\t//setUpdate(Math.random())\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.target.value[event.target.value.length-1] === \"$\") {\n\t\t\t\tif (!showDropdown) {\n\t\t\t\t\tsetShowAutocomplete(false)\n\t\t\t\t\tsetShowDropdown(true)\n\t\t\t\t\tsetShowDropdownNumber(count)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (showDropdown) {\n\t\t\t\t\tsetShowDropdown(false)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// bad detection mechanism probably\n\t\t\tif (event.target.value[event.target.value.length-1] === \".\" && actionlist.length > 0) {\n\t\t\t\tconsole.log(\"GET THE LAST ARGUMENT FOR NODE!\")\n\t\t\t\t// THIS IS AN EXAMPLE OF SHOWING IT \n\t\t\t\t/*\n\t\t\t\tconst inputdata = {\"data\": \"1.2.3.4\", \"dataType\": \"4.5.6.6\"}\n\t\t\t\tsetJsonList(GetParsedPaths(inputdata, \"\"))\n\t\t\t\tif (!showDropdown) {\n\t\t\t\t\tsetShowAutocomplete(false)\n\t\t\t\t\tsetShowDropdown(true)\n\t\t\t\t\tsetShowDropdownNumber(count)\n\t\t\t\t}\n\t\t\t\tconsole.log(jsonList)\n\t\t\t\t*/\n\n\t\t\t\t// Search for the item backwards\n\t\t\t\t// 1. Reverse search backwards from . -> $\n\t\t\t\t// 2. Search the actionlist for the item \n\t\t\t\t// 3. Find the data for the specific item\n\n\t\t\t\tvar curstring = \"\"\n\t\t\t\tvar record = false\n\t\t\t\tfor (var key in selectedActionParameters[count].value) {\n\t\t\t\t\tconst item = selectedActionParameters[count].value[key]\n\t\t\t\t\tif (record) {\n\t\t\t\t\t\tcurstring += item\n\t\t\t\t\t}\n\n\t\t\t\t\tif (item === \"$\") {\n\t\t\t\t\t\trecord = true\n\t\t\t\t\t\tcurstring = \"\"\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t//console.log(\"CURSTRING: \", curstring)\n\t\t\t\tif (curstring.length > 0 && actionlist !== null) {\n\t\t\t\t\t// Search back in the action list\n\t\t\t\t\tcurstring = curstring.split(\" \").join(\"_\").toLowerCase()\n\t\t\t\t\tvar actionItem = actionlist.find(data => data.autocomplete.split(\" \").join(\"_\").toLowerCase() === curstring)\n\t\t\t\t\tif (actionItem !== undefined) {\n\t\t\t\t\t\tconsole.log(\"Found item: \", actionItem)\n\n\t\t\t\t\t\t//actionItem.example = actionItem.example.trim()\n\t\t\t\t\t\t//actionItem.example = actionItem.example.split(\" None\").join(\" \\\"None\\\"\")\n\t\t\t\t\t\t//actionItem.example = actionItem.example.split(\"\\'\").join(\"\\\"\")\n\n\t\t\t\t\t\tvar jsonvalid = true\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst tmp = String(JSON.parse(actionItem.example))\n\t\t\t\t\t\t\tif (!actionItem.example.includes(\"{\") && !actionItem.example.includes(\"[\")) {\n\t\t\t\t\t\t\t\tjsonvalid = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tjsonvalid = false\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (jsonvalid) {\n\t\t\t\t\t\t\tsetJsonList(GetParsedPaths(JSON.parse(actionItem.example), \"\"))\n\n\t\t\t\t\t\t\tif (!showDropdown) {\n\t\t\t\t\t\t\t\tsetShowAutocomplete(false)\n\t\t\t\t\t\t\t\tsetShowDropdown(true)\n\t\t\t\t\t\t\t\tsetShowDropdownNumber(count)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (jsonList.length > 0) {\n\t\t\t\t\tsetJsonList([])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tselectedActionParameters[count].autocompleted = false\n\t\t\tselectedAction.parameters[count].autocompleted = false \n\t\t\tselectedActionParameters[count].value = data\n\t\t\tselectedAction.parameters[count].value = data\n\t\t\tsetSelectedAction(selectedAction)\n\t\t\t//setUpdate(Math.random())\n\t\t\t//setUpdate(event.target.value)\n\t\t}\n\n\n const changeActionParameterVariable = (fieldvalue, count) => {\n //console.log(\"CALLED THIS ONE WITH VALUE!\", fieldvalue)\n //if (selectedVariableParameter === fieldvalue) {\n //\treturn\n //}\n\n setSelectedVariableParameter(fieldvalue);\n\n selectedActionParameters[count].action_field = fieldvalue;\n selectedAction.parameters = selectedActionParameters;\n\n setSelectedApp(selectedApp);\n setSelectedAction(selectedAction);\n setUpdate(fieldvalue);\n };\n\n // Sets ACTION_RESULT things\n const changeActionParameterActionResult = (fieldvalue, count) => {\n //cy.nodes().forEach(function( ele ) {\n //\tif (ele.data()[\"label\"] === fieldvalue) {\n //\t\tselectedActionParameters[count].action_field = ele.id()\n //\t\treturn\n //\t}\n //});\n\n selectedActionParameters[count].action_field = fieldvalue;\n selectedAction.parameters = selectedActionParameters;\n\n // FIXME - check if startnode\n\n // Set value\n setSelectedApp(selectedApp);\n\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n };\n\n const changeActionParameterVariant = (data, count) => {\n selectedActionParameters[count].variant = data;\n selectedActionParameters[count].value = \"\";\n\n if (data === \"ACTION_RESULT\" && getParents !== undefined) {\n var parents = getParents(selectedAction);\n if (parents.length > 0) {\n selectedActionParameters[count].action_field = parents[0].label;\n } else {\n selectedActionParameters[count].action_field = \"\";\n }\n } else if (data === \"WORKFLOW_VARIABLE\") {\n if (\n workflow.workflow_variables !== null &&\n workflow.workflow_variables !== undefined &&\n workflow.workflow_variables.length > 0\n ) {\n selectedActionParameters[count].action_field =\n workflow.workflow_variables[0].name;\n }\n }\n\n selectedAction.parameters = selectedActionParameters;\n\n // This is a stupid workaround to make it refresh rofl\n setSelectedAction({});\n\n if (setSelectedTrigger !== undefined) {\n setSelectedTrigger({});\n setSelectedApp({});\n setSelectedEdge({});\n }\n // FIXME - check if startnode\n\n // Set value\n setSelectedApp(selectedApp);\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n };\n\n\n\t\tconst returnHelperText = (name, value) => {\n\t\t\tif (name === undefined || value === undefined) {\n\t\t\t\treturn \"\"\n\t\t\t}\n\n\t\t\tvar helperText = \"\"\n\t\t\t//console.log(\"DATA: \", name, value)\n\t\t\tif (name.includes(\"url\")) {\n\t\t\t\tif (value.includes(\"localhost\") || value.includes(\"127.0.0.1\")) {\n\t\t\t\t\thelperText = \"Can't use localhost. Please change to an external IP or hostname.\" \n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn helperText\n\t\t}\n\n\t\t//console.log(\"AUTH: \", authenticationType)\n if (authenticationType !== undefined && authenticationType !== null && authenticationType.type === \"oauth2\") {\n\t\t\t/*\n\t\t\treturn (\n\t\t\t\t \n\t\t\t\t\tYou must authenticate before using oauth2 apps.\n\t\t\t\t\n\t\t\t)\n\t\t\t*/\n\t\t}\n\n\t\t//console.log(\"APP: \", selectedApp)\n\n // FIXME: Issue #40 - selectedActionParameters not reset\n if (\n Object.getOwnPropertyNames(selectedAction).length > 0 &&\n selectedActionParameters.length > 0\n ) {\n var authWritten = false;\n return (\n
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{selectedAction.template === true && selectedAction.matching_actions !== undefined && selectedAction.matching_actions !== null && selectedAction.matching_actions.length > 0 ?\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSelect an app you want to use \n\t\t\t\t\t\t\t\n \t\t {\n\t\t\t\t\t\t\t\t\tconsole.log(\"LABEL: \", option)\n \t\t if (\n \t\t option === undefined ||\n \t\t option === null ||\n \t\t option.app_name === undefined ||\n \t\t option.app_name === null \n \t\t ) {\n \t\t return null;\n \t\t }\n\n \t\t const newname = (\n \t\t option.app_name.charAt(0).toUpperCase() + option.app_name.substring(1)\n \t\t ).replaceAll(\"_\", \" \");\n \t\t return newname;\n \t\t }}\n \t\t options={selectedAction.matching_actions}\n \t\t fullWidth\n \t\t style={{\n \t\t backgroundColor: theme.palette.inputColor,\n \t\t height: 50,\n \t\t borderRadius: theme.palette.borderRadius,\n \t\t }}\n \t\t onChange={(event, newValue) => {\n\t\t\t\t\t\t\t\t\tconsole.log(\"SELECT: \", event, newValue)\n \t\t // Workaround with event lol\n \t\t //if (newValue !== undefined && newValue !== null) {\n \t\t // setNewSelectedAction({ target: { value: newValue.name } });\n \t\t //}\n \t\t }}\n \t\t renderOption={(data) => {\n \t\t var newActionname = data.app_name;\n \t\t if (\n \t\t data.label !== undefined &&\n \t\t data.label !== null &&\n \t\t data.label.length > 0\n \t\t ) {\n \t\t newActionname = data.label;\n \t\t }\n\n \t\t const iconInfo = GetIconInfo({ name: data.app_name });\n \t\t const useIcon = iconInfo.originalIcon;\n\n \t\t newActionname = (\n \t\t newActionname.charAt(0).toUpperCase() +\n \t\t newActionname.substring(1)\n \t\t ).replaceAll(\"_\", \" \");\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{useIcon}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{newActionname}\n\t\t\t\t\t\t\t\t\t\t
\n \t\t );\n \t\t }}\n \t\t renderInput={(params) => {\n\t\t\t\t\t\t\t\t\tif (params.inputProps !== undefined && params.inputProps !== null && params.inputProps.value !== undefined && params.inputProps.value !== null) {\n\t\t\t\t\t\t\t\t\t\tconst prefixes = [\"Post\", \"Put\", \"Patch\"]\n\t\t\t\t\t\t\t\t\t\tfor (var key in prefixes) {\n\t\t\t\t\t\t\t\t\t\t\tif (params.inputProps.value.startsWith(prefixes[key])) {\n\t\t\t\t\t\t\t\t\t\t\t\tparams.inputProps.value = params.inputProps.value.replace(prefixes[key]+\" \", \"\", -1)\n\t\t\t\t\t\t\t\t\t\t\t\tif (params.inputProps.value.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tparams.inputProps.value = params.inputProps.value.charAt(0).toUpperCase()+params.inputProps.value.substring(1)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n \t\t return (\n\t\t\t\t\t\t\t\t\t\t\t\n \t\t );\n \t\t }}\n \t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t: null}\n \t{selectedAction.description !== undefined && selectedAction.description !== null && selectedAction.description.length > 0 && hiddenDescription === false ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tDescription\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{selectedAction.description}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t) : null}\n {selectedActionParameters.map((data, count) => {\n if (data.variant === \"\") {\n data.variant = \"STATIC_VALUE\";\n }\n\n // selectedAction.selectedAuthentication = e.target.value\n // selectedAction.authentication_id = e.target.value.id\n if (\n !selectedAction.auth_not_required &&\n selectedAction.selectedAuthentication !== undefined &&\n selectedAction.selectedAuthentication.fields !== undefined &&\n selectedAction.selectedAuthentication.fields[data.name] !==\n undefined\n ) {\n // This sets the placeholder in the frontend. (Replaced in backend)\n selectedActionParameters[count].value =\n selectedAction.selectedAuthentication.fields[data.name];\n selectedAction.parameters[count].value =\n selectedAction.selectedAuthentication.fields[data.name];\n setSelectedAction(selectedAction);\n //setUpdate(Math.random())\n\n if (authWritten) {\n return null;\n }\n\n authWritten = true;\n return (\n \n Authentication fields are hidden\n \n );\n }\n\n\t\t\t\t\t\t// Added autofill to make this ALOT simpler\n\t\t\t\t\t\tif (isCloud && (selectedAction.app_name === \"Shuffle Tools\" || selectedAction.app_name === \"email\") && (selectedAction.name === \"send_email_shuffle\" || selectedAction.name === \"send_sms_shuffle\") && data.name === \"apikey\") {\n\t\t\t\t\t\t\tif (selectedActionParameters[count].length === 0) {\n\t\t\t\t\t\t\t\tselectedAction.parameters[count].value = \"TMP: Will be replaced during execution if cloud\"\n\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t}\n\n var staticcolor = \"inherit\";\n var actioncolor = \"inherit\";\n var varcolor = \"inherit\";\n var multiline;\n if (\n data.multiline !== undefined &&\n data.multiline !== null &&\n data.multiline === true\n ) {\n multiline = true;\n }\n\n if (\n data.value !== undefined &&\n data.value !== null &&\n data.value.startsWith(\"{\") &&\n data.value.endsWith(\"}\")\n ) {\n multiline = true;\n }\n\n var placeholder = \"Value\";\n if (\n data.example !== undefined &&\n data.example !== null &&\n data.example.length > 0\n ) {\n placeholder = data.example;\n\n if (data.name === \"url\" && data.value !== undefined && data.value !== null && data.value.length === 0) {\n data.value = data.example;\n }\n\n\t\t\t\t\t\t\t// In case of data.example\n\t\t\t\t\t\t\tif (data.value === undefined || data.value === null) {\n\t\t\t\t\t\t\t\tdata.value = \"\"\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (data.value.length === 0) {\n \tif (data.name.toLowerCase() === \"headers\") {\n\t\t\t\t\t\t\t\t\tconsole.log(\"Should show headers field instead with + and -!\")\n\n\t\t\t\t\t\t\t\t\t// Check if file ID exists\n\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\tconst fileFound = selectedActionParameters.find(param => param.name === \"file_id\")\n\t\t\t\t\t\t\t\t\tif (fileFound === undefined || fileFound === null) {\n\t\t\t\t\t\t\t\t\t\tdata.value = data.example\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// Purposely unset it if set by default when using files\n\t\t\t\t\t\t\t\t\t\tdata.value = \"\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/*\n \tif (data.name !== \"queries\" && data.name !== \"key\" && data.name !== \"value\" ) {\n\t\t\t\t\t\t\t\t\tdata.value = data.example\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t*/\n }\n\n if (data.name.startsWith(\"${\") && data.name.endsWith(\"}\")) {\n const paramcheck = selectedAction.parameters.find(\n (param) => param.name === \"body\"\n );\n\n if (paramcheck !== undefined && paramcheck !== null) {\n if (\n paramcheck[\"value_replace\"] !== undefined &&\n paramcheck[\"value_replace\"] !== null\n ) {\n //console.log(\"IN THE VALUE REPLACE: \", paramcheck[\"value_replace\"])\n const subparamindex = paramcheck[\"value_replace\"].findIndex(\n (param) => param.key === data.name\n );\n if (subparamindex !== -1) {\n data.value =\n paramcheck[\"value_replace\"][subparamindex][\"value\"];\n }\n }\n }\n }\n\n var disabled = false;\n var rows = \"5\";\n var openApiHelperText = \"This is an OpenAPI specific field\";\n\t\t\t\t\t\t/*\n if (\n selectedApp.generated &&\n data.name === \"url\" &&\n data.required &&\n data.configuration \n ) {\n\t\t\t\t\t\t\t//&&\n //hideExtraTypes\n\t\t\t\t\t\t\t\n //console.log(\"GENERATED WITH DATA: \", data);\n return null;\n }\n\t\t\t\t\t\t*/\n\n if (selectedApp.generated && data.name === \"headers\") {\n //console.log(\"HEADER: \", data)\n //if (data.value.length === 0) {\n //}\n //setSelectedActionParameters(selectedActionParameters)\n }\n\n var hideBodyButton = \"\";\n const hideBodyButtonValue = (\n \n \n {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar tag = \"TOGGLED\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (hideBody) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag = \"UNTOGGLED\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t} \n\n setHideBody(!hideBody);\n\t\t\t\n for (var key in selectedActionParameters) {\n var currentItem = selectedActionParameters[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (currentItem.name === \"ssl_verify\") {\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (currentItem.name === \"body\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: Workaround for toggling, as actions don't have IDs. \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// May screw up something in the future.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentItem.id = tag\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n if (currentItem.description === openApiFieldDesc) {\n currentItem.field_active = !hideBody;\n //console.log(\"Changing\", currentItem);\n }\n }\n }}\n name=\"requires_unique\"\n />\n }\n label={\"Automatically fix body\"}\n />\n \n
\n )\n\n if (selectedApp.generated && data.name === \"body\") {\n const regex = /\\${(\\w+)}/g;\n const found = placeholder.match(regex);\n\n hideBodyButton = hideBodyButtonValue;\n if (found === null || !hideBody) {\n if (found === null) {\n setActivateHidingBodyButton(true);\n } else {\n\t\t\t\t\t\t\t\t\tconsole.log(\"In found: \", found, hideBody)\n\t\t\t\t\t\t\t\t}\n } else {\n //console.log(\"SHOW BUTTON\");\n\n rows = \"1\";\n disabled = true;\n openApiHelperText = \"OpenAPI spec: fill the following fields.\";\n //console.log(\"SHOULD ADD TO selectedActionParameters!: \", found, selectedActionParameters)\n var changed = false;\n for (var specKey in found) {\n const tmpitem = found[specKey];\n var skip = false;\n for (var innerkey in selectedActionParameters) {\n if (selectedActionParameters[innerkey].name === tmpitem) {\n skip = true;\n break;\n }\n }\n\n if (skip) {\n //console.log(\"SKIPPING \", tmpitem)\n continue;\n }\n\n changed = true;\n selectedActionParameters.push({\n action_field: \"\",\n configuration: false,\n description: openApiFieldDesc,\n example: \"\",\n id: \"\",\n multiline: true,\n name: tmpitem,\n options: null,\n required: false,\n schema: { type: \"string\" },\n skip_multicheck: false,\n tags: null,\n value: \"\",\n variant: \"STATIC_VALUE\",\n field_active: true,\n });\n }\n\n if (changed) {\n setSelectedActionParameters(selectedActionParameters);\n }\n\n return hideBodyButton;\n }\n }\n\n if (activateHidingBodyButton === true) {\n hideBodyButton = \"\";\n }\n\n const clickedFieldId = \"rightside_field_\" + count;\n\n\t\t\t\t\t\tconst shufflecode = fieldCount !== count ? null : \n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\n // 0) {\n\t\t\t\t\t\t\tbaseHelperText = calculateHelpertext(data.value)\n\t\t\t\t\t\t}\n\n\n var tmpitem = data.name.valueOf();\n if (data.name.startsWith(\"${\") && data.name.endsWith(\"}\")) {\n tmpitem = tmpitem.slice(2, data.name.length - 1);\n }\n\n if (tmpitem === \"from_shuffle\") {\n\t\t\t\t\t\t\ttmpitem = \"from\"\n\t\t\t\t\t\t}\n\n tmpitem = (\n tmpitem.charAt(0).toUpperCase() + tmpitem.substring(1)\n ).replaceAll(\"_\", \" \");\n\n if (tmpitem === \"Username basic\") {\n tmpitem = \"Username\"\n } else if (tmpitem === \"Password basic\") {\n tmpitem = \"Password\"\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmultiline = data.name.startsWith(\"${\") && data.name.endsWith(\"}\") ? true : multiline\n\t\t\t\t\t\t\n var datafield = (\n \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldCount(count)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetcodedata(data.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetExpansionModalOpen(true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMenuPosition({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop: event.pageY + 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft: event.pageX + 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowDropdownNumber(count);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowDropdown(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowAutocomplete(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n \n ),\n }}\n multiline={data.name.startsWith(\"${\") && data.name.endsWith(\"}\") ? true : multiline}\n helperText={returnHelperText(data.name, data.value)}\n onClick={() => {\n console.log(\"Clicked field: \", clickedFieldId, data.name)\n\t\t\t\t\t\t\t\t\tif (data.name === \"file_id\") {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"show file video?\")\n\t\t\t\t\t\t\t\t\t\tif (setShowVideo !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\tsetShowVideo(\"https://www.youtube.com/embed/DPYowyTbsSk\")\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n //(data.name.toLowerCase().includes(\"api\") ||\n\t\t\t\t\t\t\t\t\t/*\n setExpansionModalOpen(false);\n if (\n setScrollConfig !== undefined &&\n scrollConfig !== null &&\n scrollConfig !== undefined &&\n scrollConfig.selected !== clickedFieldId\n ) {\n scrollConfig.selected = clickedFieldId;\n setScrollConfig(scrollConfig);\n //console.log(\"Change field id!\")\n }\n\t\t\t\t\t\t\t\t\t*/\n\n\t\t\t\t\t\t\t\t\t//console.log(\"Clicked field: \", clickedFieldId)\n\t\t\t\t\t\t\t\t\tif (setScrollConfig !== undefined && scrollConfig !== null && scrollConfig !== undefined && scrollConfig.selected !== clickedFieldId) {\n\t\t\t\t\t\t\t\t\t\tscrollConfig.selected = clickedFieldId\n\t\t\t\t\t\t\t\t\t\tsetScrollConfig(scrollConfig)\n\t\t\t\t\t\t\t\t\t\t//console.log(\"Change field id!\")\n\t\t\t\t\t\t\t\t\t}\n }}\n id={clickedFieldId}\n rows={data.name.startsWith(\"${\") && data.name.endsWith(\"}\") ? 2 : rows}\n color=\"primary\"\n defaultValue={data.value}\n //value={data.value}\n //options={{\n //\ttheme: 'gruvbox-dark',\n //\tkeyMap: 'sublime',\n //\tmode: 'python',\n //}}\n //height={multiline ? 50 : 150}\n\n type={\n placeholder.includes(\"***\") ||\n (data.configuration &&\n (data.name.toLowerCase().includes(\"api\") ||\n data.name.toLowerCase().includes(\"key\") ||\n data.name.toLowerCase().includes(\"pass\")))\n ? \"password\"\n : \"text\"\n }\n placeholder={placeholder}\n onChange={(event) => {\n //changeActionParameterCodemirror(event, count, data)\n changeActionParameter(event, count, data);\n }}\n helperText={baseHelperText.length > 0 ? baseHelperText : \n selectedApp.generated &&\n selectedApp.activated &&\n data.name === \"body\" ? (\n \n {openApiHelperText}\n \n ) : data.name.startsWith(\"${\") && data.name.endsWith(\"}\") ? \n\t\t\t\t\t\t\t\t\t\tnull : null\t\n }\n onBlur={(event) => {\n\t\t\t\t\t\t\t\t\tbaseHelperText = calculateHelpertext(event.target.value)\n\t\t\t\t\t\t\t\t\tif (setLastSaved !== undefined) {\n\t\t\t\t\t\t\t\t\t\tsetLastSaved(false)\n\t\t\t\t\t\t\t\t\t}\n }}\n />\n );\n\t\t\n\t\t\t\t\t\t// Finds headers from a string to be used for autocompletion\n\t\t\t\t\t\tconst findHeaders = (inputdata) => {\n\t\t\t\t\t\t\tvar splitdata = inputdata.split(\"\\n\")\n\n\t\t\t\t\t\t\tvar foundnewline = false\n\t\t\t\t\t\t\tvar allValues = []\n\t\t\t\t\t\t\tfor (var key in splitdata) {\n\t\t\t\t\t\t\t\tconst line = splitdata[key]\n\t\t\t\t\t\t\t\tif (line === \"\") {\n\t\t\t\t\t\t\t\t\tfoundnewline = true \n\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar splitvalue = \"\"\n\t\t\t\t\t\t\t\tif (line.includes(\":\")) {\n\t\t\t\t\t\t\t\t\tsplitvalue = \":\"\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (line.includes(\"=\")) {\n\t\t\t\t\t\t\t\t\tsplitvalue = \"=\"\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (splitvalue.length === 0){\n\t\t\t\t\t\t\t\t\tallValues.push({\n\t\t\t\t\t\t\t\t\t\tkey: line,\n\t\t\t\t\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar splitKeys = line.split(splitvalue)\n\t\t\t\t\t\t\t\tif (splitKeys.length > 1) {\n\t\t\t\t\t\t\t\t\tallValues.push({\n\t\t\t\t\t\t\t\t\t\tkey: splitKeys[0].trim(),\n\t\t\t\t\t\t\t\t\t\tvalue: splitKeys[1].trim(),\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconsole.log(\"No keys for \", line)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Just add one\n\t\t\t\t\t\t\tif (foundnewline) {\n\t\t\t\t\t\t\t\tallValues.push({\n\t\t\t\t\t\t\t\t\tkey: \"\",\n\t\t\t\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn allValues\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (data.name.toLowerCase() === \"headers\") {\n\t\t\t\t\t\t\t//var tmpheaders = findHeaders(data.value)\n\t\t\t\t\t\t\tvar tmpheaders = findHeaders(selectedActionParameters[count].value)\n\t\t\t\t\t\t\tconst tmpdatafield = \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{tmpheaders.map((inputdata, index) => {\n\t\t\t\t\t\t\t\t\t\tconst oldkey = inputdata.key\n\t\t\t\t\t\t\t\t\t\tconst oldval = inputdata.value\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Change from oldkey to new: \", oldkey, e.target.value)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Find the right line to replace!\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//const newval = selectedActionParameters[count].value.replace(oldval, e.target.value, 1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst tmpsplit = selectedActionParameters[count].value.split(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar valsplit = []\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar add_empty = false\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (var key in tmpsplit) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (tmpsplit[key] === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tadd_empty = true\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalsplit.push(tmpsplit[key])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (add_empty) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalsplit.push(\"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Split: \", valsplit)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newarr = []\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (var key in valsplit) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar line = valsplit[key]\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (key == index) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (oldkey === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (line.includes(\"=\") || line.includes(\":\")) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(e.target.value + line)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(e.target.value + \": \" + line)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line.replace(oldkey, e.target.value, 1))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newval = newarr.join(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Fixed: \", newval)\n\n \t\t\t\t\t\t\t\t\t\t\t\tselectedActionParameters[count].value = newval\n \t\t\t\t\t\t\t\t\t\t\t\tselectedAction.parameters[count].value = newval\n \t\t\t\t\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction)\n \t\t\t\t\t\t\t\t\t\tsetSelectedActionParameters(selectedActionParameters)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Change from oldval to new: \", oldval, e.target.value)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Find the right line to replace!\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//const newval = selectedActionParameters[count].value.replace(oldval, e.target.value, 1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar tmpsplit = selectedActionParameters[count].value.split(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar valsplit = []\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar add_empty = false\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (var key in tmpsplit) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (tmpsplit[key] === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tadd_empty = true\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalsplit.push(tmpsplit[key])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (add_empty) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalsplit.push(\"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Split: \", valsplit)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newarr = []\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (var key in valsplit) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar line = valsplit[key]\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (key == index) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (oldval === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (line.includes(\"=\") || line.includes(\":\")) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line + e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line + \": \" + e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line.replace(oldval, e.target.value, 1))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewarr.push(line)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newval = newarr.join(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Fixed: \", newval)\n\n \t\t\t\t\t\t\t\t\t\t\t\tselectedActionParameters[count].value = newval\n \t\t\t\t\t\t\t\t\t\t\t\tselectedAction.parameters[count].value = newval\n \t\t\t\t\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction)\n \t\t\t\t\t\t\t\t\t\tsetSelectedActionParameters(selectedActionParameters)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\n //console.log(\"FIELD VALUE: \", data.value)\n //const regexp = new RegExp(\"\\W+\\.\", \"g\")\n //let match\n //while ((match = regexp.exec(data.value)) !== null) {\n //\tconsole.log(`Found ${match[0]} start=${match.index} end=${regexp.lastIndex}.`);\n //}\n\n //const str = = data.value.search(submatch)\n //console.log(\"FOUND? \", n)\n //for (var key in keywords) {\n //\tconst keyword = keywords[key]\n //\tif (data.value.includes(keyword)) {\n //\t\tconsole.log(\"INCLUDED: \", keyword)\n //\t}\n //}\n\n\t\t\t\t\t\t// Basic helpertext\n\n if (data.name.toLowerCase() === \"file_category\") {\n //selectedActionParameters[count].options.length > 0\n\t\t\t\t\t\t\tconsole.log(\"FileS: \", files)\n\t\t\t\t\t\t\tif (files.namespaces !== undefined && files.namespaces !== null && files.namespaces.length > 0) {\n\t\t\t\t\t\t\t\tdata.options = files.namespaces\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n //const keywords = [\"len\", \"lower\", \"upper\", \"trim\", \"split\", \"length\", \"number\", \"parse\", \"join\"]\n if (\n selectedActionParameters[count].schema !== undefined &&\n selectedActionParameters[count].schema !== null &&\n selectedActionParameters[count].schema.type === \"file\"\n ) {\n datafield = (\n \n \n {\n setMenuPosition({\n top: event.pageY + 10,\n left: event.pageX + 10,\n });\n setShowDropdownNumber(count);\n setShowDropdown(true);\n setShowAutocomplete(true);\n }}\n />\n \n \n ),\n }}\n \thelperText={returnHelperText(data.name, data.value)}\n fullWidth\n multiline={multiline}\n rows=\"5\"\n color=\"primary\"\n defaultValue={data.value}\n type={\"text\"}\n placeholder={\"The file ID to get\"}\n id={\"rightside_field_\" + count}\n onChange={(event) => {\n changeActionParameter(event, count, data);\n }}\n onBlur={(event) => {}}\n />\n );\n //const fileId = \"6daabec1-892b-469c-b603-c902e47223a9\"\n //datafield = `SHOW FILES FROM OTHER NODES? Filename: ${selectedActionParameters[count].value}`\n /*\n\t\t\t\t\t\t\tif (selectedActionParameters[count].value != fileId) {\n\t\t\t\t\t\t\t\tchangeActionParameter(fileId, count, data)\n\t\t\t\t\t\t\t\tsetUpdate(Math.random())\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t*/\n } else if (\n (data.options !== undefined &&\n data.options !== null &&\n data.options.length > 0) \n\t\t\t\t\t\t\t||\n (selectedActionParameters[count].options !== undefined &&\n selectedActionParameters[count].options !== null &&\n selectedActionParameters[count].options.length > 0)\n ) {\n\t\t\t\t\t\t\tconst parsedoptions = data.options !== undefined && data.options !== null && data.options.length > 0 ? data.options : selectedActionParameters[count].options \n\n if (selectedActionParameters[count].value === \"\") {\n // && selectedActionParameters[count].required) {\n // Rofl, dirty workaround :)\n const e = {\n target: {\n value: parsedoptions[0],\n },\n };\n\n changeActionParameter(e, count, data);\n }\n\n datafield = (\n {\n changeActionParameter(e, count, data);\n setUpdate(Math.random());\n }}\n style={{\n backgroundColor: theme.palette.surfaceColor,\n color: \"white\",\n height: \"50px\",\n borderRadius: theme.palette.borderRadius,\n }}\n >\n {parsedoptions.map(\n (data, index) => {\n const split_data = data.split(\"||\");\n var viewed_data = data;\n if (split_data.length > 1) {\n viewed_data = split_data[0];\n }\n\n return (\n \n {viewed_data}\n \n );\n }\n )}\n \n );\n } else if (data.variant === \"STATIC_VALUE\") {\n staticcolor = \"#f85a3e\";\n }\n\n if (data.field_active === false) {\n return null;\n }\n\n\n // Shows nested list of nodes > their JSON lists\n const ActionlistWrapper = (props) => {\n const handleMenuClose = () => {\n setShowAutocomplete(false);\n\n if (\n !selectedActionParameters[count].value[\n selectedActionParameters[count].value.length - 1\n ] === \"$\"\n ) {\n setShowDropdown(false);\n }\n\n setUpdate(Math.random());\n setMenuPosition(null);\n };\n\n const handleItemClick = (values) => {\n if (\n values === undefined ||\n values === null ||\n values.length === 0\n ) {\n return;\n }\n\n var toComplete = selectedActionParameters[count].value.trim()\n .endsWith(\"$\")\n ? values[0].autocomplete\n : \"$\" + values[0].autocomplete;\n\n toComplete = toComplete.toLowerCase().replaceAll(\" \", \"_\");\n for (var key in values) {\n if (key == 0 || values[key].autocomplete.length === 0) {\n continue;\n }\n\n toComplete += values[key].autocomplete;\n }\n\n // Handles the fields under OpenAPI body to be parsed.\n if (data.name.startsWith(\"${\") && data.name.endsWith(\"}\")) {\n console.log(\"INSIDE VALUE REPLACE: \", data.name, toComplete);\n // PARAM FIX - Gonna use the ID field, even though it's a hack\n const paramcheck = selectedAction.parameters.find(\n (param) => param.name === \"body\"\n );\n if (paramcheck !== undefined) {\n if (\n paramcheck[\"value_replace\"] === undefined ||\n paramcheck[\"value_replace\"] === null\n ) {\n paramcheck[\"value_replace\"] = [\n {\n key: data.name,\n value: toComplete,\n },\n ];\n } else {\n const subparamindex = paramcheck[\n \"value_replace\"\n ].findIndex((param) => param.key === data.name);\n if (subparamindex === -1) {\n paramcheck[\"value_replace\"].push({\n key: data.name,\n value: toComplete,\n });\n } else {\n paramcheck[\"value_replace\"][subparamindex][\"value\"] +=\n toComplete;\n }\n }\n\n selectedActionParameters[count][\"value_replace\"] =\n paramcheck;\n selectedAction.parameters[count][\"value_replace\"] =\n paramcheck;\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n\n setShowDropdown(false);\n setMenuPosition(null);\n return;\n }\n }\n\n selectedActionParameters[count].value += toComplete;\n selectedAction.parameters[count].value =\n selectedActionParameters[count].value;\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n\n setShowDropdown(false);\n setMenuPosition(null);\n };\n\n const iconStyle = {\n marginRight: 15,\n };\n\n return (\n {\n handleMenuClose();\n }}\n open={!!menuPosition}\n style={{\n color: \"white\",\n marginTop: 2,\n maxHeight: 650,\n }}\n >\n {actionlist.map((innerdata) => {\n const icon =\n innerdata.type === \"action\" ? (\n \n ) : innerdata.type === \"workflow_variable\" ||\n innerdata.type === \"execution_variable\" ? (\n \n ) : (\n \n );\n\n const handleExecArgumentHover = (inside) => {\n var exec_text_field = document.getElementById(\n \"execution_argument_input_field\"\n );\n if (exec_text_field !== null) {\n if (inside) {\n exec_text_field.style.border = \"2px solid #f85a3e\";\n } else {\n exec_text_field.style.border = \"\";\n }\n }\n\n // Also doing arguments\n if (\n workflow.triggers !== undefined &&\n workflow.triggers !== null &&\n workflow.triggers.length > 0\n ) {\n for (var key in workflow.triggers) {\n const item = workflow.triggers[key];\n\n if (cy !== undefined) {\n var node = cy.getElementById(item.id);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n }\n }\n }\n };\n\n const handleActionHover = (inside, actionId) => {\n if (cy !== undefined) {\n var node = cy.getElementById(actionId);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n }\n };\n\n const handleMouseover = () => {\n if (innerdata.type === \"Execution Argument\") {\n handleExecArgumentHover(true);\n } else if (innerdata.type === \"action\") {\n handleActionHover(true, innerdata.id);\n }\n };\n\n const handleMouseOut = () => {\n if (innerdata.type === \"Execution Argument\") {\n handleExecArgumentHover(false);\n } else if (innerdata.type === \"action\") {\n handleActionHover(false, innerdata.id);\n }\n };\n\n var parsedPaths = [];\n if (typeof innerdata.example === \"object\") {\n parsedPaths = GetParsedPaths(innerdata.example, \"\");\n }\n\n\t\t\t\t\t\t\t\t\t\tconst coverColor = \"#82ccc3\"\n\t\t\t\t\t\t\t\t\t\t//menuPosition.left -= 50\n\t\t\t\t\t\t\t\t\t\t//menuPosition.top -= 250 \n\t\t\t\t\t\t\t\t\t\t//console.log(\"POS: \", menuPosition1)\n\t\t\t\t\t\t\t\t\t\tvar menuPosition1 = menuPosition\n\t\t\t\t\t\t\t\t\t\tif (menuPosition1 === null) {\n\t\t\t\t\t\t\t\t\t\t\tmenuPosition1 = {\n\t\t\t\t\t\t\t\t\t\t\t\t\"left\": 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\"top\": 0,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else if (menuPosition1.top === null || menuPosition1.top === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tmenuPosition1.top = 0\n\t\t\t\t\t\t\t\t\t\t} else if (menuPosition1.left === null || menuPosition1.left === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tmenuPosition1.left = 0\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t//console.log(\"POS1: \", menuPosition1)\n\n return parsedPaths.length > 0 ? (\n \n {icon} {innerdata.name}\n
\n }\n parentMenuOpen={!!menuPosition}\n style={{\n color: \"white\",\n minWidth: 250,\n maxWidth: 250,\n maxHeight: 50,\n overflow: \"hidden\",\n }}\n onClick={() => {\n console.log(\"CLICKED: \", innerdata);\n console.log(innerdata.example)\n handleItemClick([innerdata]);\n }}\n >\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log(\"HOVER: \", pathdata);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleItemClick([innerdata]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \t\t\t{innerdata.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n \t{parsedPaths.map((pathdata, index) => {\n \t // FIXME: Should be recursive in here\n \t //\n \t const icon =\n \t pathdata.type === \"value\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \t ) : pathdata.type === \"list\" ? (\n \t \n \t ) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n \t );\n \t //\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst indentation_count = (pathdata.name.match(/\\./g) || []).length+1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst baseIndent =
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//const boxPadding = pathdata.type === \"object\" ? \"10px 0px 0px 0px\" : 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst boxPadding = 0 \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst namesplit = pathdata.name.split(\".\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newname = namesplit[namesplit.length-1]\n \t return (\n \t {\n \t //console.log(\"HOVER: \", pathdata);\n \t }}\n \t onClick={() => {\n \t handleItemClick([innerdata, pathdata]);\n \t }}\n \t >\n \t \n \t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Array(indentation_count).fill().map((subdata, subindex) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbaseIndent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n \t {icon} {newname} \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{pathdata.type === \"list\" ? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"INNER: \", innerdata, pathdata)\n \t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Removing .list from autocomplete\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar newname = pathdata.name\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (newname.length > 5) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewname = newname.slice(0, newname.length-5)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedActionParameters[count].value += `{{ $${innerdata.name}.${newname} | size }}`\n \t\t\t\t\t\t\t\t\t\t\tselectedAction.parameters[count].value = selectedActionParameters[count].value;\n \t\t\t\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction);\n \t\t\t\t\t\t\t\t\t\t\tsetUpdate(Math.random());\n \t\t\t\t\t\t\t\t\t\t\tsetShowDropdown(false);\n \t\t\t\t\t\t\t\t\t\t\tsetMenuPosition(null);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// innerdata.name\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// pathdata.name\n \t\t\t\t\t\t\t\t\t\t\t\t//handleItemClick([innerdata, newpathdata])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log(\"CLICK LENGTH!\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}} /> : null}\n \t
\n \t \n \t \n \t );\n \t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\n \n ) : (\n handleMouseover()}\n onMouseOut={() => {\n handleMouseOut();\n }}\n onClick={() => {\n handleItemClick([innerdata]);\n }}\n >\n \n
\n {icon} {innerdata.name}\n
\n \n \n );\n })}\n \n );\n };\n \n const description =\n data.description === undefined ? \"\" : data.description;\n const tooltipDescription = (\n \n \n - Required:{\" \"}\n {data.required === true || data.configuration === true\n ? \"True\"\n : \"False\"}\n \n \n - Example: {data.example}\n \n \n - Description: {description}\n \n \n );\n\n //var itemColor = \"#f85a3e\"\n //if (!data.required) {\n //\titemColor = \"#ffeb3b\"\n //}\n {\n /*
*/\n }\n\n\t\t\t\t\t\t//console.log(data.configuration)\n\n\t\t\t\t\t\tconst buttonTitle = `Authenticate ${selectedApp.name.replaceAll(\"_\", \" \")}`\n\t\t\t\t\t\tconst hasAutocomplete = data.autocompleted === true\n return (\n
\n {hideBodyButton}\n \n {data.configuration === true ? (\n \n {\n setAuthenticationModalOpen(true);\n }}\n />\n \n ) : null}\n\n\t\t\t\t\t\t\t\t\t{hasAutocomplete === true ? \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\tnull}\n\n \n \n {tmpitem} \n \n
\n\n {/*selectedActionParameters[count].options !== undefined && selectedActionParameters[count].options !== null && selectedActionParameters[count].options.length > 0 ? null : \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\t\tchangeActionParameterVariant(\"STATIC_VALUE\", count) \n\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t | \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\tchangeActionParameterVariant(\"ACTION_RESULT\", count) \n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t | \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\t\t\tchangeActionParameterVariant(\"WORKFLOW_VARIABLE\", count) \n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\t\n\t\t\t\t\t\t\t*/}\n {/*(selectedActionParameters[count].options !== undefined && selectedActionParameters[count].options !== null && selectedActionParameters[count].options.length > 0 && selectedActionParameters[count].required === true && selectedActionParameters[count].unique_toggled !== undefined) || hideExtraTypes ? null : \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{}}>\n \t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//console.log(\"CHECKED!: \", selectedActionParameters[count])\n \t\t\t\t\t\t \tselectedActionParameters[count].unique_toggled = !selectedActionParameters[count].unique_toggled\n\t\t\t\t\t\t\t\t\t\t\t\t selectedAction.parameters[count].unique_toggled = selectedActionParameters[count].unique_toggled\n \t\t\t\t\t\t \tsetSelectedActionParameters(selectedActionParameters)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetUpdate(Math.random())\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n \t\t\t\t\t\t name=\"requires_unique\"\n \t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t*/}\n
\n {datafield}\n\t\t\t\t\t\t\t\t{shufflecode}\n {showDropdown &&\n showDropdownNumber === count &&\n data.variant === \"STATIC_VALUE\" &&\n jsonList.length > 0 ? (\n \n \n Autocomplete\n \n {\n setShowAutocomplete(false);\n\n if (\n !selectedActionParameters[count].value[\n selectedActionParameters[count].value.length - 1\n ] === \".\"\n ) {\n setShowDropdown(false);\n }\n\n setUpdate(Math.random());\n }}\n onClick={() => setShowAutocomplete(true)}\n fullWidth\n open={showAutocomplete}\n style={{\n color: \"white\",\n height: 50,\n marginTop: 2,\n borderRadius: theme.palette.borderRadius,\n }}\n onChange={(e) => {\n if (\n selectedActionParameters[count].value[\n selectedActionParameters[count].value.length - 1\n ] === \".\"\n ) {\n e.target.value.autocomplete =\n e.target.value.autocomplete.slice(\n 1,\n e.target.value.autocomplete.length\n );\n }\n\n selectedActionParameters[count].value +=\n e.target.value.autocomplete;\n selectedAction.parameters[count].value =\n selectedActionParameters[count].value;\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n\n setShowDropdown(false);\n }}\n >\n {jsonList.map((data) => {\n const iconStyle = {\n marginRight: 15,\n };\n\n const icon =\n data.type === \"value\" ? (\n \n ) : data.type === \"list\" ? (\n \n ) : (\n \n );\n return (\n {}}\n >\n \n
\n {icon} {data.name}\n
\n \n \n );\n })}\n \n
\n ) : null}\n {showDropdown &&\n \tshowDropdownNumber === count &&\n \tdata.variant === \"STATIC_VALUE\" &&\n \tjsonList.length === 0 ? (\n \t \n ) : null}\n
\n );\n })}\n
\n );\n }\n return null;\n };\n\n //const CustomPopper = function (props) {\n //\tconst classes = useStyles()\n //\treturn \n //}\n //console.log(\"env: \", selectedActionEnvironment)\n\t\n var baselabel = selectedAction.label;\n return (\n
\n\n {hideExtraTypes === true ? null : (\n \n
\n
\n

\n {(\n selectedAction.app_name.charAt(0).toUpperCase() +\n selectedAction.app_name.substring(1)\n ).replaceAll(\"_\", \" \")}\n

\n
\n {\n console.log(\"FIND EXAMPLE RESULTS FOR \", selectedAction);\n if (workflowExecutions.length > 0) {\n // Look for the ID\n const found = false;\n for (var key in workflowExecutions) {\n if (\n workflowExecutions[key].results === undefined ||\n workflowExecutions[key].results === null\n ) {\n continue;\n }\n\n var foundResult = workflowExecutions[key].results.find(\n (result) => result.action.id === selectedAction.id\n )\n\n if (foundResult === undefined || foundResult === null) {\n continue;\n }\n\n \t\t\t\t\t\t\t\t\t\tconst oldstartnode = cy.getElementById(selectedAction.id);\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"FOUND NODe: \", oldstartnode)\n \t\t\t\t\t\t\t\t\t\tif (oldstartnode !== undefined && oldstartnode !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst foundname = oldstartnode.data(\"label\")\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundname !== undefined && foundname !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfoundResult.action.label = foundname\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n setSelectedResult(foundResult);\n if (setCodeModalOpen !== undefined) {\n setCodeModalOpen(true);\n }\n\n break;\n }\n }\n }}\n >\n \n \n \n \n {\n setAuthenticationModalOpen(true)\n }}\n >\n \n \n \n \n {}}\n >\n \n \n \n \n \n \n\t\t\t\t\t\t\t\t{/*\n {\n //setAuthenticationModalOpen(true);\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Should enable/disable magic!\")\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"Action: \", selectedAction)\n\t\t\t\t\t\t\t\t\t\tif (selectedAction.run_magic_output === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tselectedAction.run_magic_output = true\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif (selectedAction.run_magic_output === true) {\n\t\t\t\t\t\t\t\t\t\t\t\tselectedAction.run_magic_output = false\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tselectedAction.run_magic_output = true \n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tsetSelectedAction(selectedAction)\n\t\t\t\t\t\t\t\t\t\tsetUpdate(Math.random());\n }}\n >\n \n\t\t\t\t\t\t\t\t\t\t\n \n \n\t\t\t\t\t\t\t\t*/}\n {\n }}\n >\n \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n \n \n\n
\n
\n
\n {/*selectedAction.id === workflow.start ? null : \n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t*/}\n {selectedApp.versions !== null &&\n selectedApp.versions !== undefined &&\n selectedApp.versions.length > 1 ? (\n {\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"VAL: \", event.target.value)\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"App: \", selectedApp)\n const newversion = selectedApp.versions.find(\n (tmpApp) => tmpApp.version == event.target.value\n );\n\n console.log(\"NEWVERSION: \", newversion);\n if (newversion !== undefined && newversion !== null) {\n getApp(newversion.id, true);\n }\n }}\n style={{\n marginTop: 10,\n backgroundColor: theme.palette.surfaceColor,\n backgroundColor: theme.palette.inputColor,\n color: \"white\",\n height: 35,\n marginleft: 10,\n borderRadius: theme.palette.borderRadius,\n }}\n SelectDisplayProps={{\n style: {\n marginLeft: 10,\n },\n }}\n >\n {selectedApp.versions.map((data, index) => {\n return (\n \n {data.version}\n \n );\n })}\n \n ) : null}\n
\n
\n \n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tName\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconst name = e.target.value;\n\t\t\t\t\t\t\t\t\tconst parsedBaseLabel = \"$\"+baselabel.toLowerCase().replaceAll(\" \", \"_\")\n\t\t\t\t\t\t\t\t\tconst newname = \"$\"+name.toLowerCase().replaceAll(\" \", \"_\")\n\n\t\t\t\t\t\t\t\t\t// Change in actions, triggers & conditions\n\t\t\t\t\t\t\t\t\t// Highlight the changes somehow with a glow?\n\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t// Should make it a function lol\n\t\t\t\t\t\t\t\t\tif (workflow.branches !== undefined && workflow.branches !== null) {\t\n\t\t\t\t\t\t\t\t\t\tfor (var key in workflow.branches) {\n\t\t\t\t\t\t\t\t\t\t\tfor (var subkey in workflow.branches[key].conditions) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst condition = workflow.branches[key].conditions[subkey]\n\t\t\t\t\t\t\t\t\t\t\t\tconst sourceparam = condition.source\n\t\t\t\t\t\t\t\t\t\t\t\tconst destinationparam = condition.destination\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Should have a smarter way of discovering node names\n\t\t\t\t\t\t\t\t\t\t\t\t// Finding index(es) and replacing at the location\n\t\t\t\t\t\t\t\t\t\t\t\tif (sourceparam.value.includes(\"$\")) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar cnt = -1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar previous = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcnt += 1 \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to make sure e.g. changing the first here doesn't change the 2nd\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me_2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst foundindex = sourceparam.value.toLowerCase().indexOf(parsedBaseLabel, previous)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex === previous && foundindex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex >= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprevious = foundindex+newname.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to add diff of length to word\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Check location:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// If it's a-zA-Z_ then don't replace\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (sourceparam.value.length > foundindex+parsedBaseLabel.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst regex = /[a-zA-Z0-9_]/g;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst match = sourceparam.value[foundindex+parsedBaseLabel.length].match(regex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (match !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Old found: \", workflow.branches[key].conditions[subkey].source.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst extralength = newname.length-parsedBaseLabel.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsourceparam.value = sourceparam.value.substring(0, foundindex) + newname + sourceparam.value.substring(foundindex-extralength+newname.length, sourceparam.value.length)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"New: \", workflow.branches[key].conditions[subkey].source.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Break no matter what after 5 replaces. May need to increase\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (cnt >= 5) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n \t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Failed value replacement based on index: \", e)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (destinationparam.value.includes(\"$\")) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar cnt = -1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar previous = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcnt += 1 \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to make sure e.g. changing the first here doesn't change the 2nd\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me_2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst foundindex = destinationparam.value.toLowerCase().indexOf(parsedBaseLabel, previous)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex === previous && foundindex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex >= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprevious = foundindex+newname.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to add diff of length to word\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Check location:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// If it's a-zA-Z_ then don't replace\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (destinationparam.value.length > foundindex+parsedBaseLabel.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst regex = /[a-zA-Z0-9_]/g;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst match = destinationparam.value[foundindex+parsedBaseLabel.length].match(regex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (match !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Old found: \", workflow.branches[key].conditions[subkey].destination.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst extralength = newname.length-parsedBaseLabel.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdestinationparam.value = destinationparam.value.substring(0, foundindex) + newname + destinationparam.value.substring(foundindex-extralength+newname.length, destinationparam.value.length)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"New: \", workflow.branches[key].conditions[subkey].destination.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Break no matter what after 5 replaces. May need to increase\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (cnt >= 5) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n \t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Failed value replacement based on index: \", e)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tfor (var key in workflow.actions) {\n\t\t\t\t\t\t\t\t\t\tif (workflow.actions[key].id === selectedAction.id) {\n\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tfor (var subkey in workflow.actions[key].parameters) {\n\t\t\t\t\t\t\t\t\t\t\tconst param = workflow.actions[key].parameters[subkey];\n\t\t\t\t\t\t\t\t\t\t\tif (!param.value.includes(\"$\")) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Should have a smarter way of discovering node names\n\t\t\t\t\t\t\t\t\t\t\t// Do regex? \n\t\t\t\t\t\t\t\t\t\t\t// Finding index(es) and replacing at the location\n\t\t\t\t\t\t\t\t\t\t\t//\n\n\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\tvar cnt = -1\n\t\t\t\t\t\t\t\t\t\t\t\tvar previous = 0\n\t\t\t\t\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcnt += 1 \n\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to make sure e.g. changing the first here doesn't change the 2nd\n\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me\n\t\t\t\t\t\t\t\t\t\t\t\t\t// $change_me_2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst foundindex = param.value.toLowerCase().indexOf(parsedBaseLabel, previous)\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex === previous && foundindex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (foundindex >= 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tprevious = foundindex+newname.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Need to add diff of length to word\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Check location:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// If it's a-zA-Z_ then don't replace\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (param.value.length > foundindex+parsedBaseLabel.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst regex = /[a-zA-Z0-9_]/g;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst match = param.value[foundindex+parsedBaseLabel.length].match(regex);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (match !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Old found: \", workflow.actions[key].parameters[subkey].value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst extralength = newname.length-parsedBaseLabel.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparam.value = param.value.substring(0, foundindex) + newname + param.value.substring(foundindex-extralength+newname.length, param.value.length)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"New: \", workflow.actions[key].parameters[subkey].value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Break no matter what after 5 replaces. May need to increase\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (cnt >= 5) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n \t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Failed value replacement based on index: \", e)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconsole.log(\"DID NAME REPLACE ACTUALLY WORK? - may be missing it in certain triggers\");\n\t\t\t\t\t\t\t\t\tsetWorkflow(workflow);\n setUpdate(Math.random());\n\t\t\t\t\t\t\t\t\tbaselabel = name\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/*!isCloud ? null :*/}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tDelay\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (actionDelayChange !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tactionDelayChange(event) \n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/**/}\n\t\t\t\t\t
\n
\n )}\n {selectedApp.name !== undefined &&\n\t\t\t\tselectedAction.authentication !== null &&\n\t\t\t\tselectedAction.authentication !== undefined &&\n\t\t\t\tselectedAction.authentication.length === 0 &&\n\t\t\t\trequiresAuthentication ? (\n
\n \n \n {\n console.log(authenticationType);\n //if (authenticationType.type === \"oauth2\" && authenticationType.redirect_uri !== undefined && authenticationType.redirect_uri !== null) {\n //\treturn null\n //}\n\n setAuthenticationModalOpen(true);\n }}\n >\n Authenticate{\" \"}\n {selectedApp.name}\n \n \n \n
\n ) : null}\n {selectedAction.authentication !== undefined &&\n\t\t\t\tselectedAction.authentication !== null &&\n\t\t\t\tselectedAction.authentication.length > 0 ? (\n
\n Authentication\n
\n {\n if (e.target.value === \"No selection\") {\n selectedAction.selectedAuthentication = {};\n selectedAction.authentication_id = \"\";\n\n for (var key in selectedAction.parameters) {\n //console.log(selectedAction.parameters[key])\n if (selectedAction.parameters[key].configuration) {\n selectedAction.parameters[key].value = \"\";\n }\n }\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n } else {\n selectedAction.selectedAuthentication = e.target.value;\n selectedAction.authentication_id = e.target.value.id;\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n }\n }}\n style={{\n backgroundColor: theme.palette.inputColor,\n color: \"white\",\n height: 50,\n maxWidth: rightsidebarStyle.maxWidth - 80,\n borderRadius: theme.palette.borderRadius,\n }}\n >\n \n No selection\n \n {selectedAction.authentication.map((data) => {\n //console.log(\"AUTH DATA: \", data)\n return (\n \n {data.label} - ({data.app.app_version})\n \n );\n })}\n \n\n {/*\n\n\t\t\t\t\t\t\n\t\t\t\t\t\tcuraction.authentication = authenticationOptions\n\t\t\t\t\t\t\tif (curaction.selectedAuthentication === null || curaction.selectedAuthentication === undefined || curaction.selectedAuthentication.length === \"\")\n\t\t\t\t\t\t*/}\n \n {\n setAuthenticationModalOpen(true);\n }}\n >\n \n \n \n
\n
\n ) : null}\n\n {showEnvironment !== undefined && showEnvironment && environments.length > 1 ? (\n
\n Environment\n {\n const env = environments.find((a) => a.Name === e.target.value);\n setSelectedActionEnvironment(env);\n selectedAction.environment = env.Name;\n setSelectedAction(selectedAction);\n }}\n style={{\n backgroundColor: theme.palette.inputColor,\n color: \"white\",\n height: \"50px\",\n borderRadius: theme.palette.borderRadius,\n }}\n >\n {environments.map((data, index) => {\n if (data.archived === true) {\n return null;\n }\n\n return (\n \n {data.Name}\n \n );\n })}\n \n
\n ) : null}\n\n {workflow.execution_variables !== undefined &&\n workflow.execution_variables !== null &&\n workflow.execution_variables.length > 0 ? (\n
\n Execution variable (optional)\n 0 \n ? selectedAction.execution_variable.name\n : \"No selection\"\n }\n SelectDisplayProps={{\n style: {\n marginLeft: 10,\n },\n }}\n fullWidth\n onChange={(e) => {\n if (e.target.value === \"No selection\") {\n selectedAction.execution_variable = { name: \"No selection\" };\n } else {\n const value = workflow.execution_variables.find(\n (a) => a.name === e.target.value\n );\n selectedAction.execution_variable = value;\n }\n setSelectedAction(selectedAction);\n setUpdate(Math.random());\n }}\n style={{\n backgroundColor: theme.palette.inputColor,\n color: \"white\",\n height: \"50px\",\n borderRadius: theme.palette.borderRadius,\n }}\n >\n \n No selection\n \n \n {workflow.execution_variables.map((data) => (\n \n {data.name}\n \n ))}\n \n
\n ) : null}\n\n \n
\n {/*hideExtraTypes ? null : \n\t\t\t\t\t
\n\t\t\t\t\t\tActions\n\t\t\t\t\t
\n\t\t\t\t*/}\n\n {setNewSelectedAction !== undefined ? (\n {\n\t\t\t\t\t\t\t//console.log(\"Option contains?: \", inputValue, options)\n\t\t\t\t\t\t\tconst lowercaseValue = inputValue.toLowerCase()\n\t\t\t\t\t\t\toptions = options.filter(x => x.name.replaceAll(\"_\", \" \").toLowerCase().includes(lowercaseValue) || x.description.toLowerCase().includes(lowercaseValue))\n\n\t\t\t\t\t\t\treturn options\n\t\t\t\t\t\t}}\n getOptionLabel={(option) => {\n if (\n option === undefined ||\n option === null ||\n option.name === undefined ||\n option.name === null \n ) {\n return null;\n }\n\n const newname = (\n option.name.charAt(0).toUpperCase() + option.name.substring(1)\n ).replaceAll(\"_\", \" \");\n\n return newname;\n }}\n options={sortByKey(selectedApp.actions, \"label\")}\n fullWidth\n style={{\n backgroundColor: theme.palette.inputColor,\n height: 50,\n borderRadius: theme.palette.borderRadius,\n }}\n onChange={(event, newValue) => {\n // Workaround with event lol\n if (newValue !== undefined && newValue !== null) {\n setNewSelectedAction({ \n\t\t\t\t\t\t\t\t\ttarget: { \n\t\t\t\t\t\t\t\t\t\tvalue: newValue.name \n\t\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t});\n }\n }}\n renderOption={(data) => {\n var newActionname = data.name;\n if (\n data.label !== undefined &&\n data.label !== null &&\n data.label.length > 0\n ) {\n newActionname = data.label;\n }\n\n var newActiondescription = data.description;\n\t\t\t\t\t\t\t//console.log(\"DESC: \", newActiondescription)\n if (\n data.description === undefined || data.description === null\n ) {\n\t\t\t\t\t\t\t\tnewActiondescription = \"Description: No description defined for this action\"\n } else {\n\t\t\t\t\t\t\t\tnewActiondescription = \"Description: \"+newActiondescription\n\t\t\t\t\t\t\t}\n\n const iconInfo = GetIconInfo({ name: data.name });\n const useIcon = iconInfo.originalIcon;\n\n newActionname = (\n newActionname.charAt(0).toUpperCase() +\n newActionname.substring(1)\n ).replaceAll(\"_\", \" \");\n\n\t\t\t\t\t\t\tvar method = \"\"\n\t\t\t\t\t\t\tvar extraDescription = \"\"\n\t\t\t\t\t\t\tif (data.name.includes(\"get_\")) {\n\t\t\t\t\t\t\t\tmethod = \"GET\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"post_\")) {\n\t\t\t\t\t\t\t\tmethod = \"POST\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"put_\")) {\n\t\t\t\t\t\t\t\tmethod = \"PUT\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"patch_\")) {\n\t\t\t\t\t\t\t\tmethod = \"PATCH\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"delete_\")) {\n\t\t\t\t\t\t\t\tmethod = \"DELETE\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"options_\")) {\n\t\t\t\t\t\t\t\tmethod = \"OPTIONS\"\n\t\t\t\t\t\t\t} else if (data.name.includes(\"connect_\")) {\n\t\t\t\t\t\t\t\tmethod = \"CONNECT\"\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// FIXME: Should it require a base URL?\n\t\t\t\t\t\t\tif (method.length > 0 && data.description !== undefined && data.description !== null && data.description.includes(\"http\")) {\n\t\t\t\t\t\t\t\tvar extraUrl = \"\"\n\t\t\t\t\t\t\t\tconst descSplit = data.description.split(\"\\n\")\n\t\t\t\t\t\t\t\tfor (var line in descSplit) {\n\t\t\t\t\t\t\t\t\tif (descSplit[line].includes(\"http\") && descSplit[line].includes(\"://\")) {\n\t\t\t\t\t\t\t\t\t\tconst urlsplit = descSplit[line].split(\"/\")\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\textraUrl = \"/\"+urlsplit.slice(3, urlsplit.length).join(\"/\")\n\t\t\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Failed - running with -1\")\n\t\t\t\t\t\t\t\t\t\t\textraUrl = \"/\"+urlsplit.slice(3, urlsplit.length-1).join(\"/\")\n\t\t\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\t\t\t//console.log(\"NO BASEURL TOO!! Why missing last one in certain scenarios (sevco)?\", extraUrl, urlsplit, descSplit[line])\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (extraUrl.length > 0) {\n\t\t\t\t\t\t\t\t\tif (extraUrl.includes(\" \")) {\n\t\t\t\t\t\t\t\t\t\textraUrl = extraUrl.split(\" \")[0]\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (extraUrl.includes(\"#\")) {\n\t\t\t\t\t\t\t\t\t\textraUrl = extraUrl.split(\"#\")[0]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\textraDescription = `${method} ${extraUrl}`\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconsole.log(\"No url found. Check again :)\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n return (\n \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{useIcon}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{newActionname}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{extraDescription.length > 0 ? \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{extraDescription}\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n );\n }}\n renderInput={(params) => {\n\t\t\t\t\t\t\tif (params.inputProps !== undefined && params.inputProps !== null && params.inputProps.value !== undefined && params.inputProps.value !== null) {\n\t\t\t\t\t\t\t\tconst prefixes = [\"Post\", \"Put\", \"Patch\"]\n\t\t\t\t\t\t\t\tfor (var key in prefixes) {\n\t\t\t\t\t\t\t\t\tif (params.inputProps.value.startsWith(prefixes[key])) {\n\t\t\t\t\t\t\t\t\t\tparams.inputProps.value = params.inputProps.value.replace(prefixes[key]+\" \", \"\", -1)\n\t\t\t\t\t\t\t\t\t\tif (params.inputProps.value.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\tparams.inputProps.value = params.inputProps.value.charAt(0).toUpperCase()+params.inputProps.value.substring(1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n return (\n\t\t\t\t\t\t\t\t\n );\n }}\n />\n ) : null}\n\n {/*setNewSelectedAction !== undefined ? \n\t\t\t\t\t\n\t\t\t\t\t\t{sortByKey(selectedApp.actions, \"label\").map(data => {\n\t\t\t\t\t\t\tvar newActionname = data.name\n\t\t\t\t\t\t\tif (data.label !== undefined && data.label !== null && data.label.length > 0) {\n\t\t\t\t\t\t\t\tnewActionname = data.label\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst iconInfo = GetIconInfo({\"name\": data.name})\n\t\t\t\t\t\t\tconst useIcon = iconInfo.originalIcon\n\n\t\t\t\t\t\t\t// ROFL FIXME - loop\n\t\t\t\t\t\t\tnewActionname = newActionname.replaceAll(\"_\", \" \")\n\t\t\t\t\t\t\tnewActionname = newActionname.charAt(0).toUpperCase()+newActionname.substring(1)\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{useIcon} \n\t\t\t\t\t\t\t\t\t{newActionname}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t: null*/}\n\n \n \n
\n
\n
\n );\n};\n\nexport default ParsedAction;\n","import React, { useState, useEffect, useLayoutEffect } from \"react\";\nimport ReactDOM from \"react-dom\"\n\nimport { useInterval } from \"react-powerhooks\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useNavigate, Link, useParams } from \"react-router-dom\";\n// import { Prompt } from \"react-router\"; // FIXME\nimport { useBeforeunload } from \"react-beforeunload\";\nimport ReactJson from \"react-json-view\";\nimport NestedMenuItem from \"material-ui-nested-menu-item\";\nimport ReactMarkdown from \"react-markdown\";\nimport { useAlert } from \"react-alert\";\nimport theme from '../theme';\nimport { isMobile } from \"react-device-detect\" \nimport aa from 'search-insights'\nimport Drift from \"react-driftjs\";\n\n//import { Cron } from 'react-js-cron';\n//import 'react-js-cron/dist/styles.css'\n\n\nimport { InstantSearch, Configure, connectSearchBox, connectHits, Index } from 'react-instantsearch-dom';\nimport algoliasearch from 'algoliasearch/lite';\n\nimport {\n\tZoom,\n\tAvatar,\n\tPopover,\n TextField,\n Drawer,\n Button,\n Paper,\n Grid,\n Tabs,\n InputAdornment,\n Tab,\n ButtonBase,\n Tooltip,\n Select,\n MenuItem,\n Divider,\n Dialog,\n DialogActions,\n DialogTitle,\n InputLabel,\n DialogContent,\n FormControl,\n IconButton,\n Menu,\n Input,\n\tFade,\n FormGroup,\n FormControlLabel,\n Typography,\n Checkbox,\n Breadcrumbs,\n CircularProgress,\n\tSwipeableDrawer,\n Switch,\n\tChip,\n\tCard,\n\tList,\n\tListItem,\n\tListItemText,\n\tListItemAvatar,\n\tBadge,\n} from \"@material-ui/core\";\n\nimport {\n\tAvatarGroup,\n} from \"@mui/material\"\n\nimport {\n\tFolder as FolderIcon,\n\tLibraryBooks as LibraryBooksIcon,\n OpenInNew as OpenInNewIcon,\n Undo as UndoIcon,\n GetApp as GetAppIcon,\n Search as SearchIcon,\n Visibility as VisibilityIcon,\n Done as DoneIcon,\n Close as CloseIcon,\n Error as ErrorIcon,\n ArrowLeft as ArrowLeftIcon,\n Cached as CachedIcon,\n DirectionsRun as DirectionsRunIcon,\n Polymer as PolymerIcon,\n FormatListNumbered as FormatListNumberedIcon,\n PlayArrow as PlayArrowIcon,\n AspectRatio as AspectRatioIcon,\n MoreVert as MoreVertIcon,\n Apps as AppsIcon,\n Schedule as ScheduleIcon,\n FavoriteBorder as FavoriteBorderIcon,\n Pause as PauseIcon,\n Delete as DeleteIcon,\n AddCircleOutline as AddCircleOutlineIcon,\n Save as SaveIcon,\n KeyboardArrowRight as KeyboardArrowRightIcon,\n ArrowBack as ArrowBackIcon,\n Settings as SettingsIcon,\n LockOpen as LockOpenIcon,\n ExpandMore as ExpandMoreIcon,\n VpnKey as VpnKeyIcon,\n AddComment as AddCommentIcon,\n\tEdit as EditIcon,\n} from \"@material-ui/icons\";\n\nimport {\n\t\tPreview as PreviewIcon,\n\t\tContentCopy as ContentCopyIcon, \n} from '@mui/icons-material';\n\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\n\nimport * as cytoscape from \"cytoscape\";\nimport * as edgehandles from \"cytoscape-edgehandles\";\nimport * as clipboard from \"cytoscape-clipboard\";\nimport CytoscapeComponent from \"react-cytoscapejs\";\nimport undoRedo from \"cytoscape-undo-redo\";\n\nimport Draggable from \"react-draggable\";\n\nimport cytoscapestyle from \"../defaultCytoscapeStyle\";\nimport cxtmenu from \"cytoscape-cxtmenu\";\n\nimport { validateJson, GetIconInfo } from \"./Workflows.jsx\";\nimport { GetParsedPaths } from \"./Apps.jsx\";\nimport ConfigureWorkflow from \"../components/ConfigureWorkflow.jsx\";\nimport AuthenticationOauth2 from \"../components/Oauth2Auth.jsx\";\nimport ParsedAction from \"../components/ParsedAction.jsx\";\nimport PaperComponent from \"../components/PaperComponent.jsx\"\nimport ExtraApps from \"../components/ExtraApps.jsx\" \nimport EditWorkflow from \"../components/EditWorkflow.jsx\" \n\nconst surfaceColor = \"#27292D\";\nconst inputColor = \"#383B40\";\n\n// http://apps.cytoscape.org/apps/yfileslayoutalgorithms\ncytoscape.use(edgehandles);\ncytoscape.use(clipboard);\ncytoscape.use(undoRedo);\ncytoscape.use(cxtmenu);\n\n// Adds specific text to items\n//import popper from 'cytoscape-popper';\n//cytoscape.use(popper);\n\n// https://stackoverflow.com/questions/19014250/rerender-view-on-browser-resize-with-react\nfunction useWindowSize() {\n const [size, setSize] = useState([0, 0]);\n useLayoutEffect(() => {\n function updateSize() {\n setSize([window.innerWidth, window.innerHeight]);\n }\n window.addEventListener(\"resize\", updateSize);\n updateSize();\n return () => window.removeEventListener(\"resize\", updateSize);\n }, []);\n return size;\n}\n\nexport function sortByKey(array, key) {\n if (array === undefined) {\n return [];\n }\n\n if (key.startsWith(\"-\") && key.length > 2) {\n key = key.slice(1, key.length);\n return array\n .sort(function (a, b) {\n var x = a[key];\n var y = b[key];\n return x < y ? -1 : x > y ? 1 : 0;\n })\n .reverse();\n }\n\n if (array === undefined || array === null) {\n return [];\n }\n\n return array.sort(function (a, b) {\n var x = a[key];\n var y = b[key];\n return x < y ? -1 : x > y ? 1 : 0;\n });\n}\n\nexport function removeParam(key, sourceURL) {\n if (sourceURL === undefined) {\n return;\n }\n\n var rtn = sourceURL.split(\"?\")[0],\n param,\n params_arr = [],\n queryString = sourceURL.indexOf(\"?\") !== -1 ? sourceURL.split(\"?\")[1] : \"\";\n\n if (queryString !== \"\") {\n params_arr = queryString.split(\"&\");\n for (var i = params_arr.length - 1; i >= 0; i -= 1) {\n param = params_arr[i].split(\"=\")[0];\n if (param === key) {\n params_arr.splice(i, 1);\n }\n }\n rtn = rtn + \"?\" + params_arr.join(\"&\");\n }\n\n if (rtn === \"?\") {\n return \"\";\n }\n\n return rtn;\n}\n\nconst useStyles = makeStyles({\n notchedOutline: {\n borderColor: \"#f85a3e !important\",\n },\n root: {\n \"& .MuiAutocomplete-listbox\": {\n border: \"2px solid #f85a3e\",\n color: \"white\",\n fontSize: 18,\n \"& li:nth-child(even)\": {\n backgroundColor: \"#CCC\",\n },\n \"& li:nth-child(odd)\": {\n backgroundColor: \"#FFF\",\n },\n },\n },\n inputRoot: {\n color: \"white\",\n // This matches the specificity of the default styles at https://github.com/mui-org/material-ui/blob/v4.11.3/packages/material-ui-lab/src/Autocomplete/Autocomplete.js#L90\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#f86a3e\",\n },\n },\n});\n\nconst splitter = \"|~|\";\nconst svgSize = 24;\n//const referenceUrl = \"https://shuffler.io/functions/webhooks/\"\n//const referenceUrl = window.location.origin+\"/api/v1/hooks/\"\n\nconst searchClient = algoliasearch(\"JNSS5CFDZZ\", \"db08e40265e2941b9a7d8f644b6e5240\")\nconst AngularWorkflow = (defaultprops) => {\n const { globalUrl, isLoggedIn, isLoaded, userdata } = defaultprops;\n const referenceUrl = globalUrl + \"/api/v1/hooks/\";\n const alert = useAlert()\n\tlet navigate = useNavigate();\n\n\tconst params = useParams();\n\tvar props = JSON.parse(JSON.stringify(defaultprops))\n\tprops.match = {}\n\tprops.match.params = params\n\n const green = \"#86c142\";\n const yellow = \"#FECC00\";\n //const theme = useTheme();\n\n\n var to_be_copied = \"\";\n const [firstrequest, setFirstrequest] = React.useState(true);\n const [cystyle] = useState(cytoscapestyle);\n const [cy, setCy] = React.useState();\n\n const [currentView, setCurrentView] = React.useState(0);\n const [triggerAuthentication, setTriggerAuthentication] = React.useState({});\n const [triggerFolders, setTriggerFolders] = React.useState([]);\n const [workflows, setWorkflows] = React.useState([]);\n const [showEnvironment, setShowEnvironment] = React.useState(false);\n const [editWorkflowDetails, setEditWorkflowDetails] = React.useState(false);\n\n const [workflow, setWorkflow] = React.useState({});\n const [userSettings, setUserSettings] = React.useState({});\n const [subworkflow, setSubworkflow] = React.useState({});\n const [subworkflowStartnode, setSubworkflowStartnode] = React.useState(\"\");\n const [leftViewOpen, setLeftViewOpen] = React.useState(isMobile ? false : true);\n const [leftBarSize, setLeftBarSize] = React.useState(isMobile ? 0 : 350);\n const [creatorProfile, setCreatorProfile] = React.useState({});\n const [usecases, setUsecases] = React.useState([]);\n const [files, setFiles] = React.useState({\n\t\t\"namespaces\": [\n\t\t\t\"default\",\n\t\t]\n\t});\n const [appGroup, setAppGroup] = React.useState([]);\n const [triggerGroup, setTriggerGroup] = React.useState([]);\n const [executionText, setExecutionText] = React.useState(\"\");\n const [executionRequestStarted, setExecutionRequestStarted] =\n React.useState(false);\n const [scrollConfig, setScrollConfig] = React.useState({\n top: 0,\n left: 0,\n selected: \"\",\n });\n\n const [history, setHistory] = React.useState([]);\n const [historyIndex, setHistoryIndex] = React.useState(history.length);\n\tconst [variableInfo, setVariableInfo] = React.useState({})\n\n const [appAuthentication, setAppAuthentication] = React.useState([]);\n const [variablesModalOpen, setVariablesModalOpen] = React.useState(false);\n const [executionVariablesModalOpen, setExecutionVariablesModalOpen] =\n React.useState(false);\n const [authenticationModalOpen, setAuthenticationModalOpen] =\n React.useState(false);\n const [conditionsModalOpen, setConditionsModalOpen] = React.useState(false);\n const [authenticationType, setAuthenticationType] = React.useState(\"\");\n\n\n const [workflowDone, setWorkflowDone] = React.useState(false);\n const [authLoaded, setAuthLoaded] = React.useState(false);\n const [localFirstrequest, setLocalFirstrequest] = React.useState(true);\n const [requiresAuthentication, setRequiresAuthentication] =\n React.useState(false);\n const [rightSideBarOpen, setRightSideBarOpen] = React.useState(false);\n const [showSkippedActions, setShowSkippedActions] = React.useState(false);\n const [lastExecution, setLastExecution] = React.useState(\"\");\n const [configureWorkflowModalOpen, setConfigureWorkflowModalOpen] =\n React.useState(false);\n\n const curpath =\n typeof window === \"undefined\" || window.location === undefined\n ? \"\"\n : window.location.pathname;\n\n // 0 = normal, 1 = just done, 2 = normal\n const [savingState, setSavingState] = React.useState(0);\n\n const [selectedResult, setSelectedResult] = React.useState({});\n const [codeModalOpen, setCodeModalOpen] = React.useState(false);\n\n const [variableAnchorEl, setVariableAnchorEl] = React.useState(null);\n\n const [sourceValue, setSourceValue] = React.useState({});\n const [destinationValue, setDestinationValue] = React.useState({});\n const [conditionValue, setConditionValue] = React.useState({});\n const [dragging, setDragging] = React.useState(false);\n const [dragPosition, setDragPosition] = React.useState({\n x: 0,\n y: 0,\n });\n\n // Trigger stuff\n const [selectedComment, setSelectedComment] = React.useState({});\n const [selectedTrigger, setSelectedTrigger] = React.useState({});\n const [selectedTriggerIndex, setSelectedTriggerIndex] = React.useState({});\n const [selectedEdge, setSelectedEdge] = React.useState({});\n const [selectedEdgeIndex, setSelectedEdgeIndex] = React.useState({});\n\n const [visited, setVisited] = React.useState([]);\n\n const [apps, setApps] = React.useState([]);\n const [filteredApps, setFilteredApps] = React.useState([]);\n const [prioritizedApps, setPrioritizedApps] = React.useState([]);\n\n const [environments, setEnvironments] = React.useState([]);\n const [established, setEstablished] = React.useState(false);\n const [setupSent, setSetupSent] = React.useState(false);\n\n const [graphSetup, setGraphSetup] = React.useState(false);\n\n const [selectedApp, setSelectedApp] = React.useState({});\n const [selectedAction, setSelectedAction] = React.useState({});\n const [selectedActionEnvironment, setSelectedActionEnvironment] = React.useState({});\n\n const [executionRequest, setExecutionRequest] = React.useState({});\n\n const [executionRunning, setExecutionRunning] = React.useState(false);\n const [executionModalOpen, setExecutionModalOpen] = React.useState(false);\n const [executionModalView, setExecutionModalView] = React.useState(0);\n const [executionData, setExecutionData] = React.useState({});\n const [appsLoaded, setAppsLoaded] = React.useState(false);\n const [showVideo, setShowVideo] = React.useState(\"\");\n\tconst [editWorkflowModalOpen, setEditWorkflowModalOpen] = React.useState(false);\n const [userediting, setUserediting] = React.useState(false)\n\n const [lastSaved, setLastSaved] = React.useState(true);\n\n // eslint-disable-next-line no-unused-vars\n const [_, setUpdate] = useState(\"\"); // Used for rendring, don't remove\n\n const [workflowExecutions, setWorkflowExecutions] = React.useState([]);\n const [defaultEnvironmentIndex, setDefaultEnvironmentIndex] = React.useState(0);\n\n // This should all be set once, not on every iteration\n // Use states and don't update lol\n const cloudSyncEnabled =\n props.userdata !== undefined &&\n props.userdata.active_org !== null &&\n props.userdata.active_org !== undefined\n ? props.userdata.active_org.cloud_sync === true\n : false;\n const isCloud =\n window.location.host === \"localhost:3002\" ||\n window.location.host === \"shuffler.io\";\n const appBarSize = isCloud ? 75 : 60;\n const triggerEnvironments = isCloud ? [\"cloud\"] : [\"onprem\", \"cloud\"];\n const unloadText = \"Are you sure you want to leave without saving (CTRL+S)?\";\n const classes = useStyles();\n\n const [bodyWidth, bodyHeight] = useWindowSize()\n\t//console.log(\"Mobile: \", isMobile, bodyWidth, bodyHeight)\n\tconst cytoscapeWidth = isMobile ? bodyWidth - leftBarSize : bodyWidth - leftBarSize - 25\n\n\n const [elements, setElements] = useState([]);\n // No point going as fast, as the nodes aren't realtime anymore, but bulk updated.\n // Set it from 2500 to 6000 to reduce overall load\n const { start, stop } = useInterval({\n duration: 3000,\n startImmediate: false,\n callback: () => {\n fetchUpdates();\n },\n });\n\n const getAppDocs = (appname, location, version) => {\n fetch(`${globalUrl}/api/v1/docs/${appname}?location=${location}&version=${version}`, {\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status === 200) {\n //alert.success(\"Successfully GOT app \"+appId)\n } else {\n //alert.error(\"Failed getting app\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson.success === true) {\n\t\t\t\t\tif (responseJson.reason !== undefined && responseJson.reason !== undefined && responseJson.reason.length > 0) {\n\t\t\t\t\t\tif (!responseJson.reason.includes(\"404: Not Found\") && responseJson.reason.length > 25) {\n\t\t\t\t\t\t\tselectedApp.documentation = responseJson.reason\n\t\t\t\t\t\t\tsetSelectedApp(selectedApp)\n\t\t\t\t\t\t\tsetUpdate(Math.random())\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n \n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n useEffect(() => {\n\t\tif (authenticationModalOpen === true && selectedAction.app_name !== undefined) {\n\t\t\tconsole.log(`Should get app docs for: ${selectedAction.app_name}`)\n\t\t\t//console.log(selectedAction)\n\t\t\t//console.log(\"APP: \", selectedApp)\n\n\t\t\tif (selectedAction.documentation === undefined || selectedAction.documentation === null || selectedAction.documentation.length === 0) {\n\t\t\t\t// SelectedApp.documentation = Markdown? If so, it works\n\t\t\t\t//\n\t\t\t\tconst apptype = selectedApp.generated === false ? \"python\" : \"openapi\"\n\t\t\t\tgetAppDocs(selectedAction.app_name, apptype, selectedAction.app_version)\n\t\t\t}\n\t\t}\n\t}, [authenticationModalOpen])\n\n const getAvailableWorkflows = (trigger_index) => {\n fetch(globalUrl + \"/api/v1/workflows\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n return;\n }\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson !== undefined) {\n setWorkflows(responseJson);\n\n // Sets up subflow trigger with the right info\n if (trigger_index > -1) {\n\t\t\t\t\t\tvar baseSubflow = {}\n const trigger = workflow.triggers[trigger_index];\n if (trigger.parameters.length >= 3) {\n for (var key in trigger.parameters) {\n const param = trigger.parameters[key];\n\n if (param.name === \"workflow\") {\n if (param.value === workflow.id) {\n setSubworkflow(workflow);\n\t\t\t\t\t\t\t\t\t\tbaseSubflow = workflow\n } else {\n const sub = responseJson.find(\n (data) => data.id === param.value\n );\n if (sub !== undefined && subworkflow.id !== sub.id) {\n\t\t\t\t\t\t\t\t\t\t\tbaseSubflow = sub\n setSubworkflow(sub);\n }\n }\n }\n\n if (\n param.name === \"startnode\" &&\n param.value !== undefined &&\n param.value !== null\n ) {\n \t\t\t\t\t\tif (Object.getOwnPropertyNames(baseSubflow).length > 0) {\n\t\t\t\t\t\t\t\t\t\tconst foundAction = baseSubflow.actions.find(action => action.id === param.value)\n\t\t\t\t\t\t\t\t\t\tif (foundAction !== null && foundAction !== undefined) {\n \t\tsetSubworkflowStartnode(foundAction);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n \tsetSubworkflowStartnode(param.value);\n\t\t\t\t\t\t\t\t\t}\n }\n }\n }\n }\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Workflow error: \", error.toString())\n });\n };\n\n function OuterLink(props) {\n if (props.href.includes(\"http\") || props.href.includes(\"mailto\")) {\n return (\n \n {props.children}\n \n );\n }\n return (\n \n {props.children}\n \n );\n }\n\n function Img(props) {\n return {props.alt};\n }\n\n function CodeHandler(props) {\n return (\n \n {props.value}\n \n );\n }\n\n function Heading(props) {\n const element = React.createElement(\n `h${props.level}`,\n { style: { marginTop: 40 } },\n props.children\n );\n return (\n \n {props.level !== 1 ? (\n \n ) : null}\n {element}\n \n );\n }\n\n const generateApikey = () => {\n fetch(globalUrl + \"/api/v1/generateapikey\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for APIKEY gen :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n setUserSettings(responseJson);\n })\n .catch((error) => {\n console.log(\"Apikey error: \", error);\n });\n };\n\n const getSettings = () => {\n fetch(globalUrl + \"/api/v1/getsettings\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for get settings :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (\n\t\t\t\t\tresponseJson.success === true &&\n (responseJson.apikey === undefined ||\n responseJson.apikey.length === 0 ||\n responseJson.apikey === null)\n ) {\n generateApikey();\n }\n\n\t\t\t\tif (responseJson.success === true) {\n \tsetUserSettings(responseJson)\n\t\t\t\t}\n })\n .catch((error) => {\n console.log(\"Settings error: \", error);\n });\n };\n\n const setNewAppAuth = (appAuthData) => {\n fetch(globalUrl + \"/api/v1/apps/authentication\", {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(appAuthData),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for setting app auth :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n alert.error(\"Failed to set app auth: \" + responseJson.reason);\n } else {\n getAppAuthentication(true, false);\n setAuthenticationModalOpen(false);\n\n // Needs a refresh with the new authentication..\n //alert.success(\"Successfully saved new app auth\")\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"New auth error: \", error.toString());\n });\n };\n\n const getWorkflowExecution = (id, execution_id) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + id + \"/executions\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for WORKFLOW EXECUTION :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.length > 0) {\n // FIXME: Sort this by time\n\n // - means it's opposite\n const newkeys = sortByKey(responseJson, \"-started_at\");\n setWorkflowExecutions(newkeys);\n\n const cursearch =\n typeof window === \"undefined\" || window.location === undefined\n ? \"\"\n : window.location.search;\n\n var tmpView = new URLSearchParams(cursearch).get(\"execution_id\");\n if (\n execution_id !== undefined &&\n execution_id !== null &&\n execution_id.length > 0 &&\n (tmpView === undefined || tmpView === null || tmpView.length === 0)\n ) {\n tmpView = execution_id;\n }\n\n if (tmpView !== undefined && tmpView !== null && tmpView.length > 0) {\n const execution = responseJson.find(\n (data) => data.execution_id === tmpView\n );\n\n if (execution !== null && execution !== undefined) {\n setExecutionData(execution);\n setExecutionModalView(1);\n start();\n\n setExecutionRequest({\n execution_id: execution.execution_id,\n authorization: execution.authorization,\n });\n\n const newitem = removeParam(\"execution_id\", cursearch);\n\t\t\t\t\t\t\tnavigate(curpath + newitem)\n //props.history.push(curpath + newitem);\n } else {\n\t\t\t\t\t\t\tconsole.log(\"Couldn't find execution for execution ID. Retrying as user to get \", tmpView)\n\n \t \t\t\t//setExecutionRequestStarted(true);\n \tconst cur_execution = {\n \texecution_id: tmpView,\n \t\t//authorization: data.authorization,\n }\n setExecutionModalView(1);\n setExecutionRequest(cur_execution);\n \t \t\tstart();\n\n const newitem = removeParam(\"execution_id\", cursearch);\n\t\t\t\t\t\t\tnavigate(curpath + newitem)\n\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tstop()\n\t\t\t\t\t\t\t}, 5000);\n\t\t\t\t\t\t}\n }\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Get execution error: \", error.toString());\n });\n };\n\n const fetchUpdates = () => {\n fetch(globalUrl + \"/api/v1/streams/results\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(executionRequest),\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for stream results :O!\");\n stop();\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\t//console.log(\"RESPONSE: \", responseJson)\n handleUpdateResults(responseJson, executionRequest);\n })\n .catch((error) => {\n console.log(\"Execution result Error: \", error);\n stop();\n });\n };\n\n const abortExecution = () => {\n setExecutionRunning(false);\n\n fetch(\n globalUrl +\n \"/api/v1/workflows/\" +\n props.match.params.key +\n \"/executions/\" +\n executionRequest.execution_id +\n \"/abort\",\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for ABORT EXECUTION :O!\");\n }\n\n return response.json();\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Abort error: \", error.toString());\n });\n };\n\n // Controls the colors and direction of execution results.\n // Style is in defaultCytoscapeStyle.js\n const handleUpdateResults = (responseJson, executionRequest) => {\n //console.log(responseJson)\n // Loop nodes and find results\n // Update on every interval? idk\n\n\t\tReactDOM.unstable_batchedUpdates(() => {\n \tif (JSON.stringify(responseJson) !== JSON.stringify(executionData)) {\n \t // FIXME: If another is selected, don't edit..\n \t // Doesn't work because this is some async garbage\n \t if (\n \t executionData.execution_id === undefined ||\n \t (responseJson.execution_id === executionData.execution_id &&\n \t responseJson.results !== undefined &&\n \t responseJson.results !== null)\n \t ) {\n \t if (\n \t executionData.status !== responseJson.status ||\n \t executionData.result !== responseJson.result ||\n \t executionData.results.length !== responseJson.results.length\n \t ) {\n \t setExecutionData(responseJson);\n \t } else {\n \t //console.log(\"NOT updating state.\");\n \t }\n \t }\n \t}\n\n \tif (responseJson.execution_id !== executionRequest.execution_id) {\n \t cy.elements().removeClass(\n \t \"success-highlight failure-highlight executing-highlight\"\n \t );\n \t return;\n \t}\n\n \tif (responseJson.results !== null && responseJson.results.length > 0) {\n \t for (var key in responseJson.results) {\n \t var item = responseJson.results[key];\n \t var currentnode = cy.getElementById(item.action.id);\n \t if (currentnode.length === 0) {\n \t continue;\n \t }\n\n \t currentnode = currentnode[0];\n \t const outgoingEdges = currentnode.outgoers(\"edge\");\n \t const incomingEdges = currentnode.incomers(\"edge\");\n\n \t switch (item.status) {\n \t case \"EXECUTING\":\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"success-highlight\");\n \t currentnode.removeClass(\"failure-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.removeClass(\"awaiting-data-highlight\");\n \t incomingEdges.addClass(\"success-highlight\");\n \t currentnode.addClass(\"executing-highlight\");\n \t break;\n \t case \"SKIPPED\":\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"success-highlight\");\n \t currentnode.removeClass(\"failure-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.removeClass(\"awaiting-data-highlight\");\n \t currentnode.removeClass(\"executing-highlight\");\n \t currentnode.addClass(\"skipped-highlight\");\n \t break;\n \t case \"WAITING\":\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"success-highlight\");\n \t currentnode.removeClass(\"failure-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.removeClass(\"awaiting-data-highlight\");\n \t currentnode.addClass(\"executing-highlight\");\n\n \t if (!visited.includes(item.action.label)) {\n \t if (executionRunning) {\n \t visited.push(item.action.label);\n \t setVisited(visited);\n \t }\n \t }\n\n \t // FIXME - add outgoing nodes to executing\n \t //const outgoingNodes = outgoingEdges.find().data().target\n \t if (outgoingEdges.length > 0) {\n \t outgoingEdges.addClass(\"success-highlight\");\n \t }\n \t break;\n \t case \"SUCCESS\":\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"executing-highlight\");\n \t currentnode.removeClass(\"failure-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.removeClass(\"awaiting-data-highlight\");\n \t currentnode.addClass(\"success-highlight\");\n \t incomingEdges.addClass(\"success-highlight\");\n \t outgoingEdges.addClass(\"success-highlight\");\n\n \t if (\n \t visited !== undefined &&\n \t visited !== null &&\n \t !visited.includes(item.action.label)\n \t ) {\n \t if (executionRunning) {\n \t visited.push(item.action.label);\n \t setVisited(visited);\n \t }\n \t }\n\n \t // FIXME - add outgoing nodes to executing\n \t //const outgoingNodes = outgoingEdges.find().data().target\n \t if (outgoingEdges.length > 0) {\n \t for (var i = 0; i < outgoingEdges.length; i++) {\n \t const edge = outgoingEdges[i];\n \t const targetnode = cy.getElementById(edge.data().target);\n \t if (\n \t targetnode !== undefined &&\n \t !targetnode.classes().includes(\"success-highlight\") &&\n \t !targetnode.classes().includes(\"failure-highlight\")\n \t ) {\n \t targetnode.removeClass(\"not-executing-highlight\");\n \t targetnode.removeClass(\"success-highlight\");\n \t targetnode.removeClass(\"shuffle-hover-highlight\");\n \t targetnode.removeClass(\"failure-highlight\");\n \t targetnode.removeClass(\"awaiting-data-highlight\");\n \t targetnode.addClass(\"executing-highlight\");\n \t }\n \t }\n \t }\n \t break;\n \t case \"FAILURE\":\n \t //When status comes as failure, allow user to start workflow execution\n \t if (executionRunning) {\n \t setExecutionRunning(false);\n \t }\n\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"executing-highlight\");\n \t currentnode.removeClass(\"success-highlight\");\n \t currentnode.removeClass(\"awaiting-data-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.addClass(\"failure-highlight\");\n\n \t if (!visited.includes(item.action.label)) {\n \t if (\n \t item.action.result !== undefined &&\n \t item.action.result !== null &&\n \t !item.action.result.includes(\"failed condition\")\n \t ) {\n \t alert.error(\n \t \"Error for \" +\n \t item.action.label +\n \t \" with result \" +\n \t item.result\n \t );\n \t }\n \t visited.push(item.action.label);\n \t setVisited(visited);\n \t }\n \t break;\n \t case \"AWAITING_DATA\":\n \t currentnode.removeClass(\"not-executing-highlight\");\n \t currentnode.removeClass(\"executing-highlight\");\n \t currentnode.removeClass(\"success-highlight\");\n \t currentnode.removeClass(\"failure-highlight\");\n \t currentnode.removeClass(\"shuffle-hover-highlight\");\n \t currentnode.addClass(\"awaiting-data-highlight\");\n \t break;\n \t default:\n \t console.log(\"DEFAULT?\");\n \t break;\n \t }\n \t }\n \t}\n\n \tif (\n \t responseJson.status === \"ABORTED\" ||\n \t responseJson.status === \"STOPPED\" ||\n \t responseJson.status === \"FAILURE\" ||\n \t responseJson.status === \"WAITING\"\n \t) {\n \t stop();\n\n \t if (executionRunning) {\n \t setExecutionRunning(false);\n \t }\n\n \t var curelements = cy.elements();\n \t for (var i = 0; i < curelements.length; i++) {\n \t if (curelements[i].classes().includes(\"executing-highlight\")) {\n \t curelements[i].removeClass(\"executing-highlight\");\n \t curelements[i].addClass(\"failure-highlight\");\n \t }\n \t }\n\n \t getWorkflowExecution(props.match.params.key, \"\");\n \t} else if (responseJson.status === \"FINISHED\") {\n \t setExecutionRunning(false);\n \t stop();\n \t getWorkflowExecution(props.match.params.key, \"\");\n \t setUpdate(Math.random());\n \t}\n\t\t})\n };\n\n\tconst sendStreamRequest = (body) => {\n\t\tconsole.log(\"Stream not activated yet.\")\n\t\treturn\n\n\t\t// Session may be important here huh \n\t\tbody.user_id = userdata.id\n\n\t\tfetch(globalUrl + \"/api/v1/workflows/\" + props.match.params.key + \"/stream\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(body),\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tsetSavingState(0);\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for setting workflows :O!\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n .then((responseJson) => {\n\t\t\tconsole.log(\"RESP: \", responseJson)\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.log(\"Stream send error: \", error.toString())\n\t\t\t//alert.error(error.toString());\n\t\t})\n\t}\n\n const saveWorkflow = (curworkflow, executionArgument, startNode) => {\n var success = false;\n\n if (isCloud && !isLoggedIn) {\n console.log(\"Should redirect to register with redirect.\");\n window.location.href = `/register?view=/workflows/${props.match.params.key}&message=You need sign up to use workflows with Shuffle`;\n return;\n }\n\n \tsetSavingState(2);\n\n \t// This might not be the right course of action, but seems logical, as items could be running already\n \t// Makes it possible to update with a version in current render\n \tstop();\n \tvar useworkflow = workflow;\n \tif (curworkflow !== undefined) {\n \t useworkflow = curworkflow;\n \t}\n\n \tvar cyelements = cy.elements();\n \tvar newActions = [];\n \tvar newTriggers = [];\n \tvar newBranches = [];\n \tvar newVBranches = [];\n \tvar newComments = [];\n \tfor (var key in cyelements) {\n \t if (cyelements[key].data === undefined) {\n \t continue;\n \t }\n\n \t var type = cyelements[key].data()[\"type\"];\n \t if (type === undefined) {\n \t if (\n \t cyelements[key].data().source === undefined ||\n \t cyelements[key].data().target === undefined\n \t ) {\n \t continue;\n \t }\n\n \t var parsedElement = {\n \t id: cyelements[key].data().id,\n \t source_id: cyelements[key].data().source,\n \t destination_id: cyelements[key].data().target,\n \t conditions: cyelements[key].data().conditions,\n \t decorator: cyelements[key].data().decorator,\n \t };\n\n \t if (parsedElement.decorator) {\n \t newVBranches.push(parsedElement);\n \t } else {\n \t newBranches.push(parsedElement);\n \t }\n \t } else {\n \t if (type === \"ACTION\") {\n \t const cyelement = cyelements[key].data();\n \t const elementid =\n \t cyelement.id === undefined || cyelement.id === null\n \t ? cyelement[\"_id\"]\n \t : cyelement.id;\n\n \t var curworkflowAction = useworkflow.actions.find(\n \t (a) =>\n \t a !== undefined &&\n \t (a[\"id\"] === elementid || a[\"_id\"] === elementid)\n \t );\n \t if (curworkflowAction === undefined) {\n \t curworkflowAction = cyelements[key].data();\n \t }\n\n \t curworkflowAction.position = cyelements[key].position();\n\n \t // workaround to fix some edgecases\n \t if (\n \t curworkflowAction.parameters === \"\" ||\n \t curworkflowAction.parameters === null\n \t ) {\n \t curworkflowAction.parameters = [];\n \t }\n\n \t if (\n \t curworkflowAction.example === undefined ||\n \t curworkflowAction.example === \"\" ||\n \t curworkflowAction.example === null\n \t ) {\n \t if (cyelements[key].data().example !== undefined) {\n \t curworkflowAction.example = cyelements[key].data().example;\n \t }\n \t }\n\n \t // Override just in this place\n \t curworkflowAction.errors = [];\n \t curworkflowAction.isValid = true;\n\n \t // Cleans up OpenAPI items\n \t var newparams = [];\n \t for (var key in curworkflowAction.parameters) {\n \t const thisitem = curworkflowAction.parameters[key];\n \t if (thisitem.name.startsWith(\"${\") && thisitem.name.endsWith(\"}\")) {\n \t continue;\n \t }\n\n \t newparams.push(thisitem);\n \t }\n\n \t curworkflowAction.parameters = newparams;\n \t newActions.push(curworkflowAction);\n \t } else if (type === \"TRIGGER\") {\n \t if (useworkflow.triggers === undefined || useworkflow.triggers === null) {\n \t useworkflow.triggers = [];\n \t }\n\n \t var curworkflowTrigger = useworkflow.triggers.find(\n \t (a) => a.id === cyelements[key].data()[\"id\"]\n \t );\n \t if (curworkflowTrigger === undefined) {\n \t curworkflowTrigger = cyelements[key].data();\n \t }\n\n \t curworkflowTrigger.position = cyelements[key].position();\n\t\t\t\t\t\tif (curworkflowTrigger.canConnect === false) {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n \t newTriggers.push(curworkflowTrigger);\n \t } else if (type === \"COMMENT\") {\n \t if (useworkflow.comments === undefined || useworkflow.comments === null) {\n \t useworkflow.comments = [];\n \t }\n\n \t var curworkflowComment = useworkflow.comments.find(\n \t (a) => a.id === cyelements[key].data()[\"id\"]\n \t )\n\n \t if (curworkflowComment === undefined) {\n \t curworkflowComment = cyelements[key].data();\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcurworkflowComment.position.x = parseInt(curworkflowComment.position.x)\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tconsole.log(\"Failed to parse position Y of comment: \", curworkflowComment.position.x)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcurworkflowComment.position.y = parseInt(curworkflowComment.position.y)\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tconsole.log(\"Failed to parse position Y of comment: \", curworkflowComment.position.y)\n\t\t\t\t\t\t\t}\n \t }\n\n\t\t\t\t\t\tconst parsedHeight = parseInt(curworkflowComment[\"height\"])\n\t\t\t\t\t\tif (!isNaN(parsedHeight)) {\n\t\t\t\t\t\t\tcurworkflowComment.height = parsedHeight\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurworkflowComment.width = 150 \n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst parsedWidth = parseInt(curworkflowComment[\"width\"])\n\t\t\t\t\t\tif (!isNaN(parsedWidth)) {\n\t\t\t\t\t\t\tcurworkflowComment.width = parsedWidth\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurworkflowComment.width = 200\n\t\t\t\t\t\t}\n\n \t curworkflowComment.position = cyelements[key].position();\n\t\t\t\t\t\t//console.log(curworkflowComment)\n\n \t newComments.push(curworkflowComment);\n \t } else {\n \t alert.info(\"No handler for type: \" + type);\n \t }\n \t }\n \t}\n\n\t\t\tif (userediting === true) {\n\t\t\t\tuseworkflow.user_editing = true\n\t\t\t}\n\n \tuseworkflow.actions = newActions;\n \tuseworkflow.triggers = newTriggers;\n \tuseworkflow.branches = newBranches;\n \tuseworkflow.comments = newComments;\n \tuseworkflow.visual_branches = newVBranches;\n\n \t// Errors are backend defined\n \tuseworkflow.errors = [];\n \tuseworkflow.previously_saved = true;\n\n\t\t\tif (cy !== undefined) {\n\t\t\t\t// scale: 0.3,\n\t\t\t\t// bg: \"#27292d\",\n\t\t\t\tconst cyImageData = cy.png({\n\t\t\t\t\toutput: \"base64uri\",\n\t\t\t\t\tmaxWidth: 480,\n\t\t\t\t\tmaxHeight: 270,\n\t\t\t\t})\n\n\t\t\t\tif (cyImageData !== undefined && cyImageData !== null && cyImageData.length > 0) {\n\t\t\t\t\tuseworkflow.image = cyImageData\n\t\t\t\t}\n\t\t\t}\n\n \tsetLastSaved(true);\n \tfetch(globalUrl + \"/api/v1/workflows/\" + props.match.params.key, {\n \t method: \"PUT\",\n \t headers: {\n \t \"Content-Type\": \"application/json\",\n \t Accept: \"application/json\",\n \t },\n \t body: JSON.stringify(useworkflow),\n \t credentials: \"include\",\n \t})\n \t .then((response) => {\n \t setSavingState(0);\n \t if (response.status !== 200) {\n \t console.log(\"Status not 200 for setting workflows :O!\");\n \t }\n\n \t return response.json();\n \t })\n \t .then((responseJson) => {\n \t if (executionArgument !== undefined && startNode !== undefined) {\n \t //console.log(\"Running execution AFTER saving\");\n \t executeWorkflow(executionArgument, startNode, true);\n \t return;\n \t }\n\n \t if (!responseJson.success) {\n \t console.log(responseJson);\n\t\t\t\t\t\tif (responseJson.reason !== undefined && responseJson.reason !== null) {\n \t \talert.error(\"Failed to save: \" + responseJson.reason);\n\t\t\t\t\t\t} else {\n \t \talert.error(\"Failed to save. Please contact your support@shuffler.io or your local admin if this is unexpected.\")\n\t\t\t\t\t\t}\n \t } else {\n\n\t\t\t\t\t\tsendStreamRequest({\n\t\t\t\t\t\t\t\"item\": \"workflow\", \n\t\t\t\t\t\t\t\"type\": \"save\", \n\t\t\t\t\t\t\t\"id\": workflow.id, \n\t\t\t\t\t\t})\n\n \t if (\n \t responseJson.new_id !== undefined &&\n \t responseJson.new_id !== null\n \t ) {\n \t window.location.pathname = \"/workflows/\" + responseJson.new_id;\n \t }\n\n \t success = true;\n \t if (responseJson.errors !== undefined) {\n \t workflow.errors = responseJson.errors;\n \t if (responseJson.errors.length === 0) {\n \t workflow.isValid = true;\n \t workflow.is_valid = true;\n\n \t const cyelements = cy.elements();\n \t \n \t for (var i = 0; i < cyelements.length; i++) {\n\t\t\t\t\t\t\t\t\t//cyelements[i].removeStyle();\n \t cyelements[i].data().is_valid = true;\n \t cyelements[i].data().errors = [];\n \t }\n\n \t for (var key in workflow.actions) {\n \t workflow.actions[key].is_valid = true;\n \t workflow.actions[key].errors = [];\n \t }\n \t }\n\n \t for (var key in workflow.errors) {\n \t //alert.info(workflow.errors[key]);\n \t }\n\n \t setWorkflow(workflow);\n \t }\n\n \t setSavingState(1);\n \t setTimeout(() => {\n \t setSavingState(0);\n \t }, 1500);\n \t }\n \t })\n \t .catch((error) => {\n \t setSavingState(0);\n \t //alert.error(error.toString());\n \t console.log(\"Save workflow error: \", error.toString());\n \t });\n\n return success;\n };\n\n const monitorUpdates = () => {\n var firstnode = cy.getElementById(workflow.start);\n if (firstnode.length === 0) {\n var found = false;\n for (var key in workflow.actions) {\n if (workflow.actions[key].isStartNode) {\n console.log(\"Updating startnode\");\n workflow.start = workflow.actions[key].id;\n firstnode = cy.getElementById(workflow.actions[key].id);\n found = true;\n break;\n }\n }\n\n if (!found) {\n return false;\n }\n }\n\n cy.elements().removeClass(\n \"success-highlight failure-highlight executing-highlight\"\n );\n firstnode[0].addClass(\"executing-highlight\");\n\n return true;\n };\n\n const executeWorkflow = (executionArgument, startNode, hasSaved) => {\n\t\tReactDOM.unstable_batchedUpdates(() => {\n \tif (hasSaved === false) {\n \t setExecutionRequestStarted(true);\n \t saveWorkflow(workflow, executionArgument, startNode);\n \t console.log(\"FIXME: Might have forgotten to save before executing.\");\n \t return;\n \t}\n\n \tif (workflow.public) {\n \t alert.info(\"Save it to get a new version\");\n \t}\n\n \tvar returncheck = monitorUpdates();\n \tif (!returncheck) {\n \t alert.error(\"No startnode set.\");\n \t return;\n \t}\n\n \tsetVisited([])\n \tsetExecutionRequest({})\n \tstop()\n\n \tvar curelements = cy.elements();\n \tfor (var i = 0; i < curelements.length; i++) {\n \t curelements[i].addClass(\"not-executing-highlight\");\n \t}\n\n \tconst data = { execution_argument: executionArgument, start: startNode };\n \tfetch(\n \t globalUrl + \"/api/v1/workflows/\" + props.match.params.key + \"/execute\",\n \t {\n \t method: \"POST\",\n \t headers: {\n \t \"Content-Type\": \"application/json\",\n \t Accept: \"application/json\",\n \t },\n \t credentials: \"include\",\n \t body: JSON.stringify(data),\n \t }\n \t)\n \t .then((response) => {\n\t\t\t\t\tsetExecutionRequestStarted(false)\n \t if (response.status !== 200) {\n \t console.log(\"Status not 200 for WORKFLOW EXECUTION :O!\");\n \t }\n\n \t return response.json();\n \t })\n \t .then((responseJson) => {\n \t if (!responseJson.success) {\n \t alert.error(\"Failed to start: \" + responseJson.reason);\n \t setExecutionRunning(false);\n \t setExecutionRequestStarted(false);\n \t stop();\n\n \t for (var i = 0; i < curelements.length; i++) {\n \t curelements[i].removeClass(\"not-executing-highlight\");\n \t }\n \t return;\n \t } else {\n \t setExecutionRunning(true);\n \t setExecutionRequestStarted(false);\n \t }\n\n \t if (\n \t responseJson.execution_id === \"\" ||\n \t responseJson.execution_id === undefined ||\n \t responseJson.authorization === \"\" ||\n \t responseJson.authorization === undefined\n \t ) {\n \t alert.error(\"Something went wrong during execution startup\");\n \t console.log(\"BAD RESPONSE FOR EXECUTION: \", responseJson);\n \t setExecutionRunning(false);\n \t setExecutionRequestStarted(false);\n \t stop();\n\n \t for (var i = 0; i < curelements.length; i++) {\n \t curelements[i].removeClass(\"not-executing-highlight\");\n \t }\n \t return;\n \t }\n\n \t setExecutionRequest({\n \t execution_id: responseJson.execution_id,\n \t authorization: responseJson.authorization,\n \t });\n \t setExecutionData({});\n \t setExecutionModalOpen(true);\n \t setExecutionModalView(1);\n \t start();\n \t })\n \t .catch((error) => {\n \t //alert.error(error.toString());\n\t\t\t\t\tsetExecutionRequestStarted(false)\n \t console.log(\"Execute workflow err: \", error.toString());\n \t });\n\t\t\t})\n };\n\n // This can be used to only show prioritzed ones later\n // Right now, it can prioritize authenticated ones\n //\"Testing\",\n const internalIds = [\"Shuffle Tools\", \"http\", \"email\"];\n\n const getAppAuthentication = (reset, updateAction) => {\n fetch(globalUrl + \"/api/v1/apps/authentication\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for app auth :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success) {\n var newauth = [];\n for (var key in responseJson.data) {\n if (responseJson.data[key].defined === false) {\n continue;\n }\n\n newauth.push(responseJson.data[key]);\n }\n\n if (cy !== undefined) {\n // Remove the old listener for select, run with new one\n cy.removeListener(\"select\");\n cy.on(\"select\", \"node\", (e) => onNodeSelect(e, newauth));\n cy.on(\"select\", \"edge\", (e) => onEdgeSelect(e));\n }\n\n setAppAuthentication(newauth);\n setAuthLoaded(true);\n\n if (updateAction === true) {\n if (selectedApp.authentication.required) {\n // Setup auth here :)\n var appUpdates = false;\n const authenticationOptions = [];\n\n var tmpAuth = JSON.parse(JSON.stringify(responseJson.data));\n var latest = 0;\n for (var key in tmpAuth) {\n var item = tmpAuth[key];\n\n const newfields = {};\n for (var filterkey in item.fields) {\n newfields[item.fields[filterkey].key] =\n item.fields[filterkey].value;\n }\n\n item.fields = newfields;\n if (item.app.name === selectedApp.name) {\n authenticationOptions.push(item);\n\n // Always becoming the last one\n if (item.edited > latest) {\n latest = item.edited;\n selectedAction.selectedAuthentication = item;\n\n for (var key in workflow.actions) {\n if (workflow.actions[key].app_name === selectedApp.name) {\n workflow.actions[key].selectedAuthentication = item;\n workflow.actions[key].authentication_id = item.id;\n appUpdates = true;\n }\n }\n }\n }\n }\n\n selectedAction.authentication = authenticationOptions;\n if (\n selectedAction.selectedAuthentication === null ||\n selectedAction.selectedAuthentication === undefined ||\n selectedAction.selectedAuthentication.length === \"\"\n ) {\n selectedAction.selectedAuthentication = {};\n }\n\n if (appUpdates === true) {\n\t\t\t\t\t\t\t\tconsole.log(\"Closing auth modal: Success\")\n\n setAuthenticationModalOpen(false);\n setSelectedAction(selectedAction);\n setWorkflow(workflow);\n saveWorkflow(workflow);\n alert.info(\"Added and updated authentication!\");\n } else {\n\t\t\t\t\t\t\t\tconsole.log(\"Closing auth modal? FAIL\")\n\n alert.error(\"Failed to find new authentication. See details in Oauth2 popup window where auth was attempted.\");\n }\n } else {\n alert.info(\"No authentication to update\");\n }\n }\n } else {\n setAuthLoaded(true);\n }\n })\n .catch((error) => {\n setAuthLoaded(true);\n //alert.error(\"Auth loading error: \" + error.toString());\n console.log(\"AppAuth error: \" + error.toString());\n });\n };\n\n const getApps = () => {\n fetch(globalUrl + \"/api/v1/apps\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n\t\t\t\tsetAppsLoaded(true)\n if (response.status !== 200) {\n console.log(\"Status not 200 for apps :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\t\t\t\tif (responseJson === null) {\n\t\t\t\t\tconsole.log(\"No response\")\n\t\t\t\t\tconst pretend_apps = [{\n\t\t\t\t\t\t\"name\": \"TBD\",\n\t\t\t\t\t\t\"app_name\": \"TBD\",\n\t\t\t\t\t\t\"app_version\": \"TBD\",\n\t\t\t\t\t\t\"description\": \"TBD\",\n\t\t\t\t\t\t\"version\": \"TBD\",\n\t\t\t\t\t\t\"large_image\": \"\",\n\t\t\t\t\t}]\n\t\t\t\t\tsetApps(pretend_apps)\n\t\t\t\t\tsetFilteredApps(pretend_apps)\n setPrioritizedApps(pretend_apps);\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (responseJson.success === false) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n // FIXME - handle versions on left bar\n //handleAppVersioning(responseJson)\n //var tmpapps = []\n //tmpapps = tmpapps.concat(getExtraApps())\n //tmpapps = tmpapps.concat(responseJson)\n setApps(responseJson);\n\n if (isCloud) {\n setFilteredApps(\n responseJson.filter((app) => !internalIds.includes(app.name))\n );\n setPrioritizedApps(\n responseJson.filter((app) => internalIds.includes(app.name))\n );\n } else {\n //setFilteredApps(\n // responseJson.filter(\n // (app) =>\n // !internalIds.includes(app.name) &&\n // !(!app.activated && app.generated)\n // )\n //);\n\n\t\t\t\t\tvar tmpFiltered = responseJson.filter((app) => !internalIds.includes(app.name))\n\t\t\t\t\t//tmpFiltered = sortByKey(tmpFiltered, \"activated\")\n setFilteredApps(tmpFiltered)\n\n \t//!(!app.activated && app.generated)\n setPrioritizedApps(\n responseJson.filter((app) => internalIds.includes(app.name))\n );\n }\n })\n .catch((error) => {\n\t\t\t\tsetAppsLoaded(true)\n //alert.error(\"App loading error: \"+error.toString());\n console.log(\"App loading error: \"+error.toString());\n });\n };\n\n\t// Searhc by username, userId, workflow, appId should all work\n\tconst getUserProfile = (username, rerun) => {\n fetch(`${globalUrl}/api/v1/users/creators/${username}`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for WORKFLOW EXECUTION :O!\");\n\t\t\t}\n\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.success !== false) {\n\t\t\t\tconsole.log(\"Found creator: \", responseJson)\n\t\t\t\tsetCreatorProfile(responseJson)\n\t\t\t} else {\n\t\t\t\tconsole.log(\"Couldn't find the creator profile (rerun?): \", responseJson, rerun)\n\t\t\t\t// If the current user is any of the Shuffle Creators \n\t\t\t\t// AND the workflow doesn't have an owner: allow editing.\n\t\t\t\t// else: Allow suggestions?\n\t\t\t\t//console.log(\"User: \", userdata)\n\t\t\t\t//if (rerun !== true) {\n\t\t\t\t//\tgetUserProfile(userdata.id, true)\n\t\t\t\t//}\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.log(\"Get userprofile error: \", error);\n\t\t})\n }\n\n\tconst getFiles = () => {\n fetch(globalUrl + \"/api/v1/files\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for apps :O!\");\n return;\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.files !== undefined && responseJson.files !== null) {\n setFiles(responseJson);\n } else {\n setFiles({\"namespaces\": [\n\t\t\t\t\t\t\"default\"\n\t\t\t\t\t]});\n }\n\n if (\n responseJson.namespaces !== undefined &&\n responseJson.namespaces !== null\n ) {\n //setFileNamespaces(responseJson.namespaces);\n }\n })\n .catch((error) => {\n alert.error(error.toString());\n });\n };\n\n const getWorkflow = (workflow_id, sourcenode) => {\n fetch(globalUrl + \"/api/v1/workflows/\" + workflow_id, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for workflows :O!\");\n window.location.pathname = \"/workflows\";\n }\n\n return response.json();\n })\n .then((responseJson) => {\n // Not sure why this is necessary.\n if (responseJson.isValid === undefined) {\n responseJson.isValid = true;\n }\n\n if (responseJson.errors === undefined) {\n responseJson.errors = [];\n }\n\n if (responseJson.actions === undefined || responseJson.actions === null) {\n responseJson.actions = [];\n }\n\n if (responseJson.triggers === undefined || responseJson.triggers === null) {\n responseJson.triggers = [];\n }\n\n if (responseJson.public) {\n //alert.info(\"This workflow is public. Save the workflow to use it in your organization.\");\n\t\t\t\t\n \t\t\t\tsetAuthLoaded(true)\n\t\t\t\t\tconsole.log(\"RESP: \", responseJson)\n\t\t\t\t\tif (Object.getOwnPropertyNames(creatorProfile).length === 0) {\n\t\t\t\t\t\t//getUserProfile(\"frikky\") \n\t\t\t\t\t\tgetUserProfile(responseJson.id, false) \n\t\t\t\t\t}\n\n\t\t\t\t\t//{appGroup.map((data, index) => {\n\t\t\t\t\t//const [appGroup, setAppGroup] = React.useState([]);\n\t\t\t\t\tvar appsFound = []\n\t\t\t\t\tfor (var key in responseJson.actions) {\n\t\t\t\t\t\tconst parsedAction = responseJson.actions[key]\n\t\t\t\t\t\tif (parsedAction.large_image === undefined || parsedAction.large_image === null || parsedAction.large_image === \"\") {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (appsFound.findIndex(data => data.app_name === parsedAction.app_name) < 0){\n\t\t\t\t\t\t\tappsFound.push(parsedAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tsetAppGroup(appsFound)\n\n\t\t\t\t\tappsFound = []\n\t\t\t\t\tfor (var key in responseJson.triggers) {\n\t\t\t\t\t\tconst parsedAction = responseJson.triggers[key]\n\t\t\t\t\t\tif (appsFound.findIndex(data => data.app_name === parsedAction.app_name) < 0){\n\t\t\t\t\t\t\tappsFound.push(parsedAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTriggerGroup(appsFound)\n } else { \n\t\t\t\t\tgetAppAuthentication();\n\t\t\t\t\tgetEnvironments();\n\t\t\t\t\tgetWorkflowExecution(props.match.params.key, \"\");\n\t\t\t\t\tgetAvailableWorkflows(-1);\n\t\t\t\t\tgetSettings();\n\t\t\t\t\tgetFiles()\n\t\t\t\t}\n\n // Appends SUBFLOWS. Does NOT run during normal grabbing of workflows.\n if (sourcenode.id !== undefined) {\n console.log(\"WORKFLOW: \", responseJson);\n\n var nodefound = false;\n const target = sourcenode.parameters.find(\n (item) => item.name === \"startnode\"\n );\n console.log(sourcenode.parameters);\n console.log(target);\n const target_id = target === undefined ? \"\" : target.value;\n const actions = responseJson.actions.map((action) => {\n const node = {\n group: \"nodes\",\n };\n\n // Set it dynamically?\n node.position = {\n x: sourcenode.position.x + action.position.x,\n y: sourcenode.position.y + action.position.y,\n };\n\n node.data = action;\n\n\t\t\t\t\t\tnode.data.canConnect = false \n\t\t\t\t\t\tnode.data.is_valid = true\n\t\t\t\t\t\tnode.data.isValid = true\n node.data._id = action[\"id\"];\n node.data.type = \"ACTION\";\n node.data.source_workflow = responseJson.id;\n if (action.id === target_id) {\n nodefound = true;\n }\n\n \t\tif (responseJson.public) {\n\t\t\t\t\t\t\tnode.data.is_valid = true\n\t\t\t\t\t\t\tnode.is_valid = true\n\t\t\t\t\t\t}\n\n var example = \"\";\n if (\n action.example !== undefined &&\n action.example !== null &&\n action.example.length > 0\n ) {\n example = action.example;\n }\n\n node.data.example = example;\n return node;\n });\n\n \t\t\tvar triggers = responseJson.triggers.map((trigger) => {\n \t\t\t const node = {};\n \n\t\t\t\t\t\tconsole.log(\"Only add workflow: \", trigger.app_name)\n\t\t\t\t\t\tif (trigger.app_name !== \"Shuffle Workflow\" && trigger.app_name !== \"User Input\") {\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t}\n\n \t\t\t node.position = trigger.position;\n \t\t\t node.data = trigger;\n\n\t\t\t\t\t\tnode.data.canConnect = false \n \t\t\t node.data.id = trigger[\"id\"];\n \t\t\t node.data._id = trigger[\"id\"];\n \t\t\t node.data.type = \"TRIGGER\";\n\n \t\t\t return node;\n \t\t\t});\n\n triggers = triggers.filter((trigger) => trigger !== null);\n \t\t\tconst insertedNodes = [].concat(actions, triggers);\n var edges = responseJson.branches.map((branch, index) => {\n const edge = {};\n var conditions = responseJson.branches[index].conditions;\n if (conditions === undefined || conditions === null) {\n conditions = [];\n }\n\n var label = \"\";\n if (conditions.length === 1) {\n label = conditions.length + \" condition\";\n } else if (conditions.length > 1) {\n label = conditions.length + \" conditions\";\n }\n\n const sourceFound = insertedNodes.findIndex(\n (action) => action.data.id === branch.source_id\n );\n if (sourceFound < 0) {\n return null;\n }\n\n const destinationFound = insertedNodes.findIndex(\n (action) => action.data.id === branch.destination_id\n );\n if (destinationFound < 0) {\n return null;\n }\n\n\n edge.data = {\n id: branch.id,\n _id: branch.id,\n source: branch.source_id,\n target: branch.destination_id,\n label: label,\n conditions: conditions,\n hasErrors: branch.has_errors,\n decorator: false,\n source_workflow: responseJson.id,\n };\n\n \t\tif (responseJson.public) {\n\t\t\t\t\t\t\tedge.data.is_valid = true\n\t\t\t\t\t\t\tedge.is_valid = true\n\t\t\t\t\t\t}\n\n return edge;\n });\n\n edges = edges.filter((edge) => edge !== null);\n cy.removeListener(\"add\");\n cy.add(insertedNodes)\n cy.add(edges);\n\n if (nodefound === true) {\n const newId = uuidv4();\n cy.add({\n group: \"edges\",\n data: {\n id: newId,\n _id: newId,\n source: sourcenode.id,\n target: target_id,\n label: \"Subflow\",\n decorator: true,\n source_workflow: responseJson.id,\n },\n });\n }\n\n cy.fit(null, 100);\n cy.on(\"add\", \"node\", (e) => onNodeAdded(e));\n cy.on(\"add\", \"edge\", (e) => onEdgeAdded(e));\n } else {\n setWorkflow(responseJson);\n setWorkflowDone(true);\n\n // Add error checks\n console.log(\"Workflow: \", responseJson);\n if (!responseJson.public) {\n if (\n !responseJson.previously_saved ||\n !responseJson.is_valid ||\n responseJson.errors !== undefined ||\n responseJson.errors !== null ||\n responseJson.errors !== // what\n responseJson.errors.length > 0\n ) {\n setConfigureWorkflowModalOpen(true);\n }\n }\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Get workflows error: \", error.toString());\n });\n };\n\n const onUnselect = (event) => {\n const nodedata = event.target.data();\n console.log(\"UNSELECT: \", nodedata);\n\t\t//if (nodedata.type === \"ACTION\") {\n\t\t//\tsetLastSelected(nodedata)\n\t\t//}\n\t\t//\n\n\t\t// Wait for new node to possibly be selected\n\t\t//setTimeout(() => {\n\t\tconst typeIds = cy.elements('node:selected').jsons();\n\t\tfor (var idkey in typeIds) {\n\t\t\tconst item = typeIds[idkey]\n\t\t\tif (item.data.isButton === true) {\n\t\t\t\t//console.log(\"Reselect old node & return - or just return?\")\n\t\t\t\t\n\t\t\t\tif (item.data.buttonType === \"delete\" && item.data.attachedTo === nodedata.id) {\n\t\t\t\t\t//console.log(\"delete of same node!\")\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\t// Unselecting all\n\t\t//cy.elements().unselect()\n\n\t\t//if (nodedata.app_name === undefined && nodedata.source === undefined) {\n\t\t// return;\n\t\t//}\n\t\t//event.target.removeClass(\"selected\");\n\t\t//\n\n\n\n\n\n\t\t//// If button is clicked, select current node\n\n\t\t// Attempt at rewrite of name in other actions in following nodes.\n\t\t// Should probably be done in the onBlur for the textfield instead\n\t\t/*\n\t\tif (event.target.data().type === \"ACTION\") {\n\t\t\tconst nodeaction = event.target.data()\n\t\t\tconst curaction = workflow.actions.find(a => a.id === nodeaction.id)\n\t\t\tconsole.log(\"workflowaction: \", curaction)\n\t\t\tconsole.log(\"nodeaction: \", nodeaction)\n\t\t\tif (nodeaction.label !== curaction.label) {\n\t\t\t\tconsole.log(\"BEACH!\")\n\n\t\t\t\tvar params = []\n\t\t\t\tconst fixedName = \"$\"+curaction.label.toLowerCase().replace(\" \", \"_\")\n\t\t\t\tfor (var actionkey in workflow.actions) {\n\t\t\t\t\tif (workflow.actions[actionkey].id === curaction.id) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var paramkey in workflow.actions[actionkey].parameters) {\n\t\t\t\t\t\tconst param = workflow.actions[actionkey].parameters[paramkey]\n\t\t\t\t\t\tif (param.value === null || param.value === undefined || !param.value.includes(\"$\")) {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst innername = param.value.toLowerCase().replace(\" \", \"_\")\n\t\t\t\t\t\tif (innername.includes(fixedName)) {\n\t\t\t\t\t\t\t//workflow.actions[actionkey].parameters[paramkey].replace(\n\t\t\t\t\t\t\t//console.log(\"FOUND!: \", innername)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t*/\n\n\t\t//cy.removeListener(\"select\");\n\t\t//cy.on(\"select\", \"node\", (e) => onNodeSelect(e, appAuthentication));\n\t\t//cy.on(\"select\", \"edge\", (e) => onEdgeSelect(e));\n\n\n\t\t// FIXME - check if they have value before overriding like this for no reason.\n\t\t// Would save a lot of time (400~ ms -> 30ms)\n\t\t//console.log(\"ACTION: \", selectedAction)\n\t\t//console.log(\"APP: \", selectedApp)\n\n\t\tReactDOM.unstable_batchedUpdates(() => {\n\t\t\tsetSelectedAction({});\n\t\t\tsetSelectedApp({});\n\t\t\tsetSelectedTrigger({});\n\t\t\tsetSelectedComment({})\n\t\t\tsetSelectedEdge({});\n\n\t\t\tsetSelectedEdge({})\n\t\t\tsetSelectedActionEnvironment({})\n\t\t\tsetTriggerAuthentication({})\n\t\t\tsetSelectedTriggerIndex(-1)\n\t\t\tsetTriggerFolders([])\n\t\t\tsetSubworkflow({})\n \t\tsetLocalFirstrequest(true)\n\n\t\t\t// Can be used for right side view\n\t\t\tsetRightSideBarOpen(false);\n\t\t\tsetScrollConfig({\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tselected: \"\",\n\t\t\t});\n\t\t\t\t//console.timeEnd(\"UNSELECT\");\n\t\t})\n\n\t\tsendStreamRequest({\n\t\t\t\"item\": \"node\", \n\t\t\t\"type\": \"unselect\", \n\t\t\t\"userid\": userdata.id, \n\t\t})\n\t\t//}, 150)\n };\n\n const onEdgeSelect = (event) => {\n\t\tReactDOM.unstable_batchedUpdates(() => {\n \tsetRightSideBarOpen(true);\n \tsetLastSaved(false);\n\n \t/*\n\t\t\t // Used to not be able to edit trigger-based branches. \n\t\t\t\tconst triggercheck = workflow.triggers.find(trigger => trigger.id === event.target.data()[\"source\"])\n\t\t\t\tif (triggercheck === undefined) {\n\t\t\t*/\n \tif (\n \t event.target.data(\"type\") !== \"COMMENT\" &&\n \t event.target.data().decorator\n \t) {\n \t alert.info(\"This edge can't be edited.\");\n \t} else {\n \t //console.log(\"DATA: \", event.target.data())\n \t const destinationId = event.target.data(\"target\");\n \t //console.log(\"DATA: \", event.target.data())\n \t const curaction = workflow.actions.find((a) => a.id === destinationId);\n \t //console.log(\"ACTION: \", curaction)\n \t if (curaction !== undefined && curaction !== null) {\n \t if (\n \t curaction.app_name === \"Shuffle Tools\" &&\n \t curaction.name === \"router\"\n \t ) {\n \t alert.info(\"Router action can't have incoming conditions\");\n \t event.target.unselect();\n \t return;\n \t }\n \t }\n\n \t setSelectedEdgeIndex(\n \t workflow.branches.findIndex(\n \t (data) => data.id === event.target.data()[\"id\"]\n \t )\n \t );\n \t setSelectedEdge(event.target.data());\n \t}\n\n \tsetSelectedAction({});\n \tsetSelectedTrigger({});\n\t\t})\n };\n\n // Comparing locations between nodes and setting views\n var styledElements = [];\n var originalLocation = {\n x: 0,\n y: 0,\n };\n\n const onCtxTap = (event) => {\n const nodedata = event.target.data();\n console.log(nodedata);\n if (\n nodedata.type === \"TRIGGER\" &&\n nodedata.app_name === \"Shuffle Workflow\"\n ) {\n if (nodedata.parameters === null) {\n alert.error(\"Set a workflow first\");\n return;\n }\n\n\t\t\tif (nodedata.parameters === undefined) {\n\t\t\t\treturn \n\t\t\t}\n\n const workflow_id = nodedata.parameters.find(\n (param) => param.name === \"workflow\"\n );\n\n if (workflow.id === workflow_id.valu) {\n return;\n }\n\n cy.animation({\n zoom: 0,\n center: {\n eles: event.target,\n },\n })\n .play()\n .promise()\n .then(() => {\n console.log(\"DONE: \", workflow_id);\n getWorkflow(workflow_id.value, nodedata);\n cy.fit(null, 50);\n });\n }\n };\n\n const onNodeDragStop = (event, selectedAction) => {\n const nodedata = event.target.data();\n if (nodedata.id === selectedAction.id) {\n return;\n }\n\n if (nodedata.finished === false) {\n return;\n }\n\n\t\tconst connected = event.target.connectedEdges().jsons()\n\t\tfor (var key in connected) {\n\t\t\tconst edge = connected[key]\n\t\t\t//console.log(\"EDGE:\", edge)\n\n\t\t\t//const edge = edgeBase.json()\n\n const sourcenode = cy.getElementById(edge.data.source)\n const destinationnode = cy.getElementById(edge.data.target)\n\t\t\tif (sourcenode === undefined || sourcenode === null || destinationnode === undefined || destinationnode === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst edgeCurve = calculateEdgeCurve(sourcenode.position(), destinationnode.position()) \n const currentedge = cy.getElementById(edge.data.id)\n\t\t\tif (currentedge !== undefined && currentedge !== null) {\n\t\t\t\tcurrentedge.style('control-point-distance', edgeCurve.distance)\n\t\t\t\tcurrentedge.style('control-point-weight', edgeCurve.weight)\n\t\t\t}\n\t\t}\n\n if (styledElements.length === 1) {\n console.log(\n \"Should reset location and autofill: \",\n styledElements,\n selectedAction\n );\n if (originalLocation.x !== 0 || originalLocation.y !== 0) {\n const currentnode = cy.getElementById(nodedata.id);\n if (currentnode !== null && currentnode !== undefined) {\n currentnode.position(\"x\", originalLocation.x);\n currentnode.position(\"y\", originalLocation.y);\n }\n\n originalLocation = { x: 0, y: 0 };\n }\n\n const curElement = document.getElementById(styledElements[0]);\n if (curElement !== null && curElement !== undefined) {\n curElement.style.border = curElement.style.original_border;\n var newValue = \"$\" + nodedata.label.toLowerCase().replaceAll(\" \", \"_\");\n\t\t\t\tif (nodedata.type === \"TRIGGER\") {\n\t\t\t\t\tif (nodedata.trigger_type === \"WEBHOOK\" || nodedata.trigger_type === \"SCHEDULE\" || nodedata.trigger_type === \"EMAIL\") {\n \t\tvar newValue = \"$exec\"\n\t\t\t\t\t}\n\t\t\t\t}\n var paramname = \"\";\n var idnumber = -1;\n if (curElement.id.startsWith(\"rightside_field_\")) {\n console.log(\"FOUND FIELD WITH NUMBER: \", curElement.id);\n\n\n\t\t\t\t\t// Find exact position to put the text\n\n const idsplit = curElement.id.split(\"_\");\n console.log(idsplit);\n if (idsplit.length === 3 && !isNaN(idsplit[2])) {\n console.log(\"ADDING TO PARAM \", idsplit[2]);\n\n selectedAction.parameters[idsplit[2]].value += newValue;\n paramname = selectedAction.parameters[idsplit[2]].name;\n idnumber = idsplit[2];\n }\n }\n\n if (idnumber >= 0 && paramname.length > 0) {\n const exampledata = GetExampleResult(nodedata);\n const parsedname = paramname\n .toLowerCase()\n .trim()\n .replaceAll(\"_\", \" \");\n\n const foundresult = GetParamMatch(parsedname, exampledata, \"\");\n if (foundresult.length > 0) {\n console.log(\"FOUND RESULT: \", paramname, foundresult);\n newValue = `${newValue}${foundresult}`;\n }\n\n selectedAction.parameters[idnumber].value = newValue;\n }\n\n curElement.value = newValue;\n }\n }\n\n if (\n nodedata.app_name !== undefined &&\n ((nodedata.app_name !== \"Shuffle Tools\" &&\n nodedata.app_name !== \"Testing\" &&\n nodedata.app_name !== \"Shuffle Workflow\" &&\n nodedata.app_name !== \"User Input\" &&\n nodedata.app_name !== \"Webhook\" &&\n nodedata.app_name !== \"Schedule\" &&\n nodedata.app_name !== \"Email\") ||\n nodedata.isStartNode)\n ) {\n const allNodes = cy.nodes().jsons();\n var found = false;\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (\n currentNode.data.attachedTo === nodedata.id &&\n currentNode.data.isDescriptor\n ) {\n found = true;\n console.log(\"FOUND THE NODE!\");\n break;\n }\n }\n\n // Readding the icon after moving the node\n if (!found) {\n const iconInfo = GetIconInfo(nodedata);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n const offset = nodedata.isStartNode ? 36 : 44;\n const decoratorNode = {\n position: {\n x: event.target.position().x + offset,\n y: event.target.position().y + offset,\n },\n locked: true,\n data: {\n isDescriptor: true,\n isValid: true,\n is_valid: true,\n label: \"\",\n image: svgpin_Url,\n imageColor: iconInfo.iconBackgroundColor,\n attachedTo: nodedata.id,\n },\n };\n\n cy.add(decoratorNode).unselectify();\n } else {\n console.log(\"Node already exists - don't add descriptor node\");\n }\n }\n\n originalLocation = {\n x: 0,\n y: 0,\n };\n\n\t\tsendStreamRequest({\n\t\t\t\"item\": \"node\", \n\t\t\t\"type\": \"move\", \n\t\t\t\"id\": nodedata.id, \n\t\t\t\"location\": {\n\t\t\t\t\"x\": event.target.position(\"x\"), \n\t\t\t\t\"y\": event.target.position(\"y\"),\n\t\t\t}\n\t\t})\n };\n\n const onNodeDrag = (event, selectedAction) => {\n const nodedata = event.target.data();\n if (nodedata.finished === false) {\n\t\t\tconsole.log(\"NOT FINISHED - ADD EXAMPLE BRANCHES TO CLOSEST!!\")\n\t\t\treturn\n }\n\n if (nodedata.app_name !== undefined) {\n const allNodes = cy.nodes().jsons();\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (currentNode.data.attachedTo === nodedata.id) {\n cy.getElementById(currentNode.data.id).remove();\n }\n\n\t\t\t\t// Calculate location\n\t\t\t\t//currentNode.position.x > \n\t\t\t\t//if (nodedata.position.x > 0 && nodedata.position.y > 0) {\n\t\t\t\t//\tconsole.log(\"Positive both\")\n\t\t\t\t//}\n\n\t\t\t\t//console.log(currentNode.position)\n\t\t\t\t//console.log(nodedata.position)\n }\n } else {\n //console.log(\"No appid? \", nodedata)\n }\n\n\t\tif (nodedata.buttonType === \"edgehandler\") {\n\t\t\tconsole.log(\"Enable edgehandler!\")\n\t\t\tconsole.log(\"Find parent: \", nodedata.attachedTo)\n\t\t\tconst parentNode = cy.getElementById(nodedata.attachedTo);\n\t\t\tif (parentNode !== null && parentNode !== undefined) {\n\t\t\t\tconsole.log(\"Start parentnode tracking!\")\n\t\t\t\t//cy.edgehandles().start(parentNode)\n\t\t\t}\n\t\t}\n\n if (nodedata.id === selectedAction.id) {\n return;\n }\n\n\n\n /*\n\t\t// Tried looking for the closest node by position. aStar path not working entirely.\n\t\tconsole.log(\"NODE: \", event.target)\n\t\tconst closestNode = cy.elements().aStar({\n\t\t\troot: nodedata.id,\n\t\t\tgoal: 'node',\n\t\t\tdirected: false,\n\t\t})\n\n\t\tif (closestNode.found) {\n\t\t\tconsole.log(\"No closest node found for: \", nodedata.id)\n\t\t} else {\n\t\t\tconsole.log(\"Closest: \", closestNode)\n\t\t}\n\t\t*/\n\n if (\n originalLocation.x === 0 &&\n originalLocation.y === 0 &&\n nodedata.position !== undefined\n ) {\n originalLocation.x = nodedata.position.x;\n originalLocation.y = nodedata.position.y;\n }\n\n // Part of autocomplete. Styles elements in frontend to indicate\n // what and where we may input data for the user.\n const onMouseUpdate = (e) => {\n const x = e.pageX;\n const y = e.pageY;\n\n const elementMouseIsOver = document.elementFromPoint(x, y);\n if (elementMouseIsOver !== undefined && elementMouseIsOver !== null) {\n // Color for #f85a3e translated to rgb\n const newBorder = \"3px solid rgb(248, 90, 62)\";\n if (\n elementMouseIsOver.style.border !== newBorder &&\n elementMouseIsOver.id.includes(\"rightside\")\n ) {\n if (elementMouseIsOver.style.border !== undefined) {\n elementMouseIsOver.style.original_border =\n elementMouseIsOver.style.border;\n } else {\n elementMouseIsOver.style.original_border = \"\";\n }\n\n elementMouseIsOver.style.border = newBorder;\n console.log(\"STYLED: \", styledElements);\n for (var key in styledElements) {\n const curElement = document.getElementById(styledElements[key]);\n if (curElement !== null && curElement !== undefined) {\n curElement.style.border = curElement.style.original_border;\n }\n }\n\n styledElements = [];\n styledElements.push(elementMouseIsOver.id);\n } else if (\n elementMouseIsOver.id === \"cytoscape_view\" ||\n elementMouseIsOver.id === \"\"\n ) {\n for (var key in styledElements) {\n const curElement = document.getElementById(styledElements[key]);\n if (curElement !== null && curElement !== undefined) {\n curElement.style.border = curElement.style.original_border;\n }\n }\n\n styledElements = [];\n }\n }\n\n // Ensure it only happens once\n document.removeEventListener(\"mousemove\", onMouseUpdate, false);\n };\n\n document.addEventListener(\"mousemove\", onMouseUpdate, false);\n };\n\n\n useBeforeunload(() => {\n if (!lastSaved) {\n return unloadText;\n } else {\n\t\t\tif (workflow.public === false) {\n\t\t\t\t//document.removeEventListener(\"mousemove\", onMouseUpdate, true);\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown, true);\n\t\t\t\tdocument.removeEventListener(\"paste\", handlePaste, true);\n\t\t\t}\n\t\t}\n });\n\n // Nodeselectbatching:\n // https://stackoverflow.com/questions/16677856/cy-onselect-callback-only-once\n\t// onNodeClick\n const onNodeSelect = (event, newAppAuth) => {\n\t\t// Otherwise everything is SUPER slow\n\t\tReactDOM.unstable_batchedUpdates(() => {\n \tconst data = event.target.data();\n \tif (data.isButton) {\n \t if (data.buttonType === \"delete\") {\n \t const parentNode = cy.getElementById(data.attachedTo);\n \t if (parentNode !== null && parentNode !== undefined) {\n \t\t\t\t\tremoveNode(data.attachedTo) \n \t //parentNode.remove()\n \t }\n\n\t\t\t\t\treturn\n \t } else if (data.buttonType === \"set_startnode\" && data.type !== \"TRIGGER\") {\n \t const parentNode = cy.getElementById(data.attachedTo);\n \t if (parentNode !== null && parentNode !== undefined) {\n \t var oldstartnode = cy.getElementById(workflow.start);\n \t if (\n \t oldstartnode !== null &&\n \t oldstartnode !== undefined &&\n \t oldstartnode.length > 0\n \t ) {\n \t try {\n \t oldstartnode[0].data(\"isStartNode\", false);\n \t } catch (e) {\n \t console.log(\"Startnode error: \", e);\n \t }\n \t }\n\n \t workflow.start = parentNode.data(\"id\");\n \t setLastSaved(false);\n \t parentNode.data(\"isStartNode\", true);\n \t }\n \t\n\t\t\t\t\t//event.target.unselect();\n\t\t\t\t\tsetRightSideBarOpen(true);\n\t\t\t\t\treturn\n\n \t } else if (data.buttonType === \"copy\") {\n \t console.log(\"COPY!\");\n\n \t // 1. Find parent\n \t // 2. Find branches for parent\n \t // 3. Make a new node that's moved a little bit\n \t const parentNode = cy.getElementById(data.attachedTo);\n \t if (parentNode !== null && parentNode !== undefined) {\n \t var newNodeData = JSON.parse(JSON.stringify(parentNode.data()));\n \t newNodeData.id = uuidv4();\n \t if (newNodeData.position !== undefined) {\n \t newNodeData.position = {\n \t x: newNodeData.position.x + 100,\n \t y: newNodeData.position.y + 100,\n \t };\n \t }\n\n \t newNodeData.isStartNode = false;\n \t newNodeData.errors = [];\n \t newNodeData.is_valid = true;\n \t newNodeData.isValid = true;\n \t newNodeData.label = parentNode.data(\"label\") + \"_copy\";\n\n \t cy.add({\n \t group: \"nodes\",\n \t data: newNodeData,\n \t position: newNodeData.position,\n \t });\n\n \t // Readding the icon after moving the node\n \t if (\n \t newNodeData.app_name !== \"Testing\" ||\n \t newNodeData.app_name !== \"Shuffle Workflow\"\n \t ) {\n \t } else {\n \t const iconInfo = GetIconInfo(newNodeData);\n \t const svg_pin = ``;\n \t const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n \t const offset = newNodeData.isStartNode ? 36 : 44;\n \t const decoratorNode = {\n \t position: {\n \t x: newNodeData.position.x + offset,\n \t y: newNodeData.position.y + offset,\n \t },\n \t locked: true,\n \t data: {\n \t isDescriptor: true,\n \t isValid: true,\n \t is_valid: true,\n \t label: \"\",\n \t image: svgpin_Url,\n \t imageColor: iconInfo.iconBackgroundColor,\n \t attachedTo: newNodeData.id,\n \t },\n \t };\n\n \t cy.add(decoratorNode).unselectify();\n \t }\n\n \t workflow.actions.push(newNodeData);\n\n \t const sourcebranches = workflow.branches.filter(\n \t (foundbranch) => foundbranch.source_id === parentNode.data(\"id\")\n \t );\n \t const destinationbranches = workflow.branches.filter(\n \t (foundbranch) =>\n \t foundbranch.destination_id === parentNode.data(\"id\")\n \t );\n\n \t for (var key in sourcebranches) {\n \t var newbranch = JSON.parse(JSON.stringify(sourcebranches[key]));\n \t newbranch.id = uuidv4();\n \t newbranch.source_id = newNodeData.id;\n\n \t newbranch._id = newbranch.id;\n \t newbranch.source = newbranch.source_id;\n \t newbranch.target = newbranch.destination_id;\n \t cy.add({\n \t group: \"edges\",\n \t data: newbranch,\n \t });\n \t }\n\n \t for (var key in destinationbranches) {\n \t var newbranch = JSON.parse(\n \t JSON.stringify(destinationbranches[key])\n \t );\n \t newbranch.id = uuidv4();\n \t newbranch.destination_id = newNodeData.id;\n\n \t newbranch._id = newbranch.id;\n \t newbranch.source = newbranch.source_id;\n \t newbranch.target = newbranch.destination_id;\n \t cy.add({\n \t group: \"edges\",\n \t data: newbranch,\n \t });\n \t }\n\n \t \t\t//event.target.unselect();\n\t\t\t\t\t\treturn\n \t }\n \t }\n\n \t return;\n \t} else if (data.isDescriptor) {\n \t console.log(\"Can't select descriptor\");\n \t event.target.unselect();\n \t return;\n \t}\n\n \tif (data.type === \"ACTION\") {\n\t\t\t\tsetSelectedComment({})\n\t\t\t\t//var curaction = JSON.parse(JSON.stringify(data))\n\t\t\t\t// FIXME: Trust it to just work?\n\t\t\t\t//event.target.data()\n \t var curaction = workflow.actions.find((a) => a.id === data.id)\n \t if (!curaction || curaction === undefined) {\n\t\t\t\t\tconsole.log(\"NOT FOUND DATA: \", event.target.data())\n\t\t\t\t\tif (data.id !== undefined && data.app_name !== undefined) {\n\t\t\t\t\t\tworkflow.actions.push(data)\n\t\t\t\t\t\tsetWorkflow(workflow)\n\t\t\t\t\t\tcuraction = data\n\t\t\t\t\t} else {\n \t\t\t\tif (workflow.public !== true) {\n \t \t\talert.error(\"Action not found. Please remake it.\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tevent.target.remove();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n \t }\n\n\t\t\t\t//var newapps = JSON.parse(JSON.stringify(apps))\n\t\t\t\tvar newapps = apps\n\t\t\t\tif (apps === null || apps === undefined || apps.length === 0) {\n\t\t\t\t\tnewapps = filteredApps\n\t\t\t\t}\n\n\t\t\t\t// Check ID first, then names etc\n\t\t\t\t// That way it always selects the right IF it exists\n\t\t\t\tvar curapp = newapps.find((a) =>\n\t\t\t\t\ta.id === curaction.app_id\n\t\t\t\t)\n\n\t\t\t\tif (curapp === undefined || curapp === null) {\n\t\t\t\t\tconsole.log(\"Couldn't find ID - checking with name & version\")\n\n\t\t\t\t\tcurapp = newapps.find((a) =>\n\t\t\t\t\t\ta.name === curaction.app_name &&\n\t\t\t\t\t\t(a.app_version === curaction.app_version ||\n\t\t\t\t\t\t(a.loop_versions !== null &&\n\t\t\t\t\t\ta.loop_versions.includes(curaction.app_version)))\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif (curaction.template === true) {\n\t\t\t\t\t//newapps.\n\t\t\t\t\tconst parsedname = curaction.name.replaceAll(\" \", \"_\").toLowerCase()\n\t\t\t\t\tconsole.log(\"FIND AN ACTION AMONG THE APPS THAT MATCHES NAME: \", parsedname)\n\n\t\t\t\t\tcuraction.matching_actions = []\n\t\t\t\t\tfor (var key in newapps) {\n\t\t\t\t\t\tfor (var subkey in newapps[key].actions) {\n\t\t\t\t\t\t\tconst tmpaction = newapps[key].actions[subkey]\n\t\t\t\t\t\t\tif (tmpaction.name.replaceAll(\" \", \"_\").toLowerCase() === parsedname) {\n\t\t\t\t\t\t\t\tconsole.log(\"MATCH!: \", newapps[key])\n\t\t\t\t\t\t\t\tcuraction.matching_actions.push({\n\t\t\t\t\t\t\t\t\t\"app_name\": newapps[key].name,\n\t\t\t\t\t\t\t\t\t\"app_version\": newapps[key].app_version,\n\t\t\t\t\t\t\t\t\t\"app_id\": newapps[key].id,\n\t\t\t\t\t\t\t\t\t\"action\": tmpaction,\n\t\t\t\t\t\t\t\t\t\"large_image\": newapps[key].large_image,\n\t\t\t\t\t\t\t\t\t\"app_index\": key,\n\t\t\t\t\t\t\t\t\t\"action_index\": subkey,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n \t if (!curapp || curapp === undefined) {\n\t\t\t\t\tconsole.log(\"APPS - couldn't find it: \", newapps)\n \t //alert.error(`App ${curaction.app_name}:${curaction.app_version} not found. Is it activated?`);\n\n \t const tmpapp = {\n \t name: curaction.app_name,\n \t app_name: curaction.app_name,\n \t app_version: curaction.app_version,\n \t id: curaction.app_id,\n \t actions: [curaction],\n \t };\n\n \t setSelectedApp(tmpapp);\n \t setSelectedAction(curaction);\n \t } else {\n\t\t\t\t\t//if (curapp.id !== curaction.id) {\n\t\t\t\t\t//\tcuraction.app_id = curapp.id\n\t\t\t\t\t//\t//.valueOf()\n\t\t\t\t\t//}\n\t\t\t\t\tcuraction.app_id = curapp.id\n\n \t setAuthenticationType(\n \t curapp.authentication.type === \"oauth2\" && curapp.authentication.redirect_uri !== undefined && curapp.authentication.redirect_uri !== null ? {\n\t\t\t\t\t\t\t\ttype: \"oauth2\",\n\t\t\t\t\t\t\t\tredirect_uri: curapp.authentication.redirect_uri,\n\t\t\t\t\t\t\t\trefresh_uri: curapp.authentication.refresh_uri,\n\t\t\t\t\t\t\t\ttoken_uri: curapp.authentication.token_uri,\n\t\t\t\t\t\t\t\tscope: curapp.authentication.scope,\n\t\t\t\t\t\t\t\tclient_id: curapp.authentication.client_id,\n\t\t\t\t\t\t\t\tclient_secret: curapp.authentication.client_secret,\n \t } : {\n \t \ttype: \"\",\n \t }\n \t )\n\n \t const requiresAuth = curapp.authentication.required; //&& ((curapp.authentication.parameters !== undefined && curapp.authentication.parameters !== null) || (curapp.authentication.type === \"oauth2\" && curapp.authentication.redirect_uri !== undefined && curapp.authentication.redirect_uri !== null))\n \t setRequiresAuthentication(requiresAuth);\n \t if (curapp.authentication.required) {\n \t //console.log(\"App requires auth.\")\n \t // Setup auth here :)\n \t const authenticationOptions = [];\n \t var findAuthId = \"\";\n \t if (\n \t curaction.authentication_id !== null &&\n \t curaction.authentication_id !== undefined &&\n \t curaction.authentication_id.length > 0\n \t ) {\n \t findAuthId = curaction.authentication_id;\n \t }\n\n \t const tmpAuth = JSON.parse(JSON.stringify(newAppAuth));\n \t //var tmpAuth = newAppAuth\n\n \t for (var key in tmpAuth) {\n \t var item = tmpAuth[key];\n\n \t const newfields = {};\n \t for (var filterkey in item.fields) {\n \t newfields[item.fields[filterkey].key] = item.fields[filterkey].value;\n \t }\n\n \t item.fields = newfields;\n \t if (item.app.name === curapp.name) {\n \t authenticationOptions.push(item);\n \t if (item.id === findAuthId) {\n \t curaction.selectedAuthentication = item;\n \t }\n \t }\n \t }\n\n \t curaction.authentication = authenticationOptions;\n \t if (\n \t curaction.selectedAuthentication === null ||\n \t curaction.selectedAuthentication === undefined ||\n \t curaction.selectedAuthentication.length === \"\"\n \t ) {\n \t curaction.selectedAuthentication = {};\n \t }\n \t } else {\n \t curaction.authentication = [];\n \t curaction.authentication_id = \"\";\n \t curaction.selectedAuthentication = {};\n \t }\n\n \t if (\n \t curaction.parameters !== undefined &&\n \t curaction.parameters !== null &&\n \t curaction.parameters.length > 0\n \t ) {\n \t for (var key in curaction.parameters) {\n \t if (\n \t curaction.parameters[key].options !== undefined &&\n \t curaction.parameters[key].options !== null &&\n \t curaction.parameters[key].options.length > 0 &&\n \t curaction.parameters[key].value === \"\"\n \t ) {\n \t curaction.parameters[key].value = curaction.parameters[key].options[0];\n \t }\n \t }\n \t } else {\n\t\t\t\t\t\tconsole.log(\"Should check APP if it has the same params as ACTION\")\n\t\t\t\t\t\tfor (var key in curapp.actions) {\n\t\t\t\t\t\t\tconst tmpaction = curapp.actions[key]\n\t\t\t\t\t\t\tif (tmpaction.name === curaction.name) {\n\t\t\t\t\t\t\t\tconsole.log(\"Found action - needs change?\", tmpaction)\n\t\t\t\t\t\t\t\tif (tmpaction.parameters !== undefined && tmpaction.parameters !== null && tmpaction.parameters.length > 0) {\n\t\t\t\t\t\t\t\t\tcuraction.parameters = JSON.parse(JSON.stringify(tmpaction.parameters))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(\"ACTION CLICK: \", curaction)\n \t setSelectedApp(curapp);\n \t setSelectedAction(curaction);\n\n \t cy.removeListener(\"drag\");\n \t cy.removeListener(\"free\");\n \t cy.on(\"drag\", \"node\", (e) => onNodeDrag(e, curaction));\n \t cy.on(\"free\", \"node\", (e) => onNodeDragStop(e, curaction));\n \t }\n\n \t if (environments !== undefined && environments !== null && (typeof environments === \"array\" || typeof environments === \"object\")) {\n\t\t\t\t\tvar parsedenv = environments\n\t\t\t\t\t//if (typeof environments === \"object\") {\n\t\t\t\t\t//\tparsedenv = [environments]\n\t\t\t\t\t//}\n\n \t const envs = parsedenv.find((a) => a.Name === curaction.environment);\n \t var env = environments[defaultEnvironmentIndex]\n\t\t\t\t\tif (envs !== undefined && envs !== null) {\n\t\t\t\t\t\tenv = envs\n\t\t\t\t\t}\n\n \t setSelectedActionEnvironment(env);\n \t }\n \t} else if (data.type === \"TRIGGER\") {\n\t\t\t\tsetSelectedComment({})\n\t\t\t\tif (workflow.triggers === null) {\n\t\t\t\t\tworkflow.triggers = []\n\t\t\t\t}\n\n \t var trigger_index = workflow.triggers.findIndex(\n \t (a) => a.id === data.id\n \t );\n\n\t\t\t\t//console.log(\"Trigger: \", data, trigger_index)\n\t\t\t\tif (trigger_index === -1) {\n\t\t\t\t\tworkflow.triggers.push(data)\n\t\t\t\t\ttrigger_index = workflow.triggers.length-1\n\t\t\t\t\tsetWorkflow(workflow)\n\t\t\t\t}\n\n\t\t\t\t//console.log(\"Trigger2: \", data, trigger_index)\n\t\t\t\t//if (data.id !== undefined && data.app_name !== undefined) {\n\t\t\t\t//\t//newapps.push(data)\n\t\t\t\t//\tworkflow.actions.push(data)\n\t\t\t\t//\tcuraction = data\n\t\t\t\t//} else {\n\t\t\t\t//\talert.error(\"Action not found. Please remake it.\");\n\t\t\t\t//\tevent.target.remove();\n\t\t\t\t//\treturn;\n\t\t\t\t//}\n\n \t if (data.app_name === \"Shuffle Workflow\") {\n \t getAvailableWorkflows(trigger_index);\n \t getSettings();\n \t } else if (data.app_name === \"Webhook\") {\n \t if (workflow.triggers[trigger_index].parameters !== undefined) {\n \t workflow.triggers[trigger_index].parameters[0] = {\n \t name: \"url\",\n \t value: referenceUrl + \"webhook_\" + workflow.triggers[trigger_index].id,\n \t };\n \t }\n \t }\n\n\t\t\t\tconsole.log(\"DATA: \", data)\n \t setSelectedTriggerIndex(trigger_index);\n \t setSelectedTrigger(data);\n \t setSelectedActionEnvironment(data.env);\n \t} else if (data.type === \"COMMENT\") {\n \t setSelectedComment(data);\n \t} else {\n \t alert.error(\"Can't handle \" + data.type);\n \t return;\n \t}\n\n \tsetRightSideBarOpen(true);\n \tsetLastSaved(false);\n \tsetScrollConfig({\n \t top: 0,\n \t left: 0,\n \t selected: \"\",\n \t});\n\n\t\t\tconsole.log(\"DOne in the node update\")\n\t\t\n\t\t\tsendStreamRequest({\n\t\t\t\t\"item\": \"node\", \n\t\t\t\t\"type\": \"select\", \n\t\t\t\t\"id\": data.id, \n\t\t\t\t\"userid\": userdata.id, \n\t\t\t\t\"location\": {\n\t\t\t\t\t\"x\": event.target.position(\"x\"), \n\t\t\t\t\t\"y\": event.target.position(\"y\"),\n\t\t\t\t}\n\t\t\t})\n\n\t\t})\n }\n\n\tconst activateApp = (appid, refresh) => {\n\t\tfetch(globalUrl+\"/api/v1/apps/\"+appid+\"/activate\", {\n \t method: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t},\n\t \t\tcredentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Failed to activate\")\n\t\t\t}\n\n\t\t\treturn response.json()\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.success === false) {\n\t\t\t\talert.error(\"Failed to activate the app\")\n\t\t\t} else {\n\t\t\t\talert.success(\"App activated for your organization! Refresh the page to use the app.\")\n\n\t\t\t\tif (refresh === true) {\n \t\tgetApps()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.catch(error => {\n\t\t\t//alert.error(error.toString())\n\t\t\tconsole.log(\"Activate app error: \", error.toString())\n\t\t});\n\t}\n\n const GetExampleResult = (item) => {\n var exampledata = item.example === undefined ? \"\" : item.example;\n if (workflowExecutions.length > 0) {\n // Look for the ID\n for (var key in workflowExecutions) {\n if (\n workflowExecutions[key].results === undefined ||\n workflowExecutions[key].results === null\n ) {\n continue;\n }\n\n var foundResult = { result: \"\" };\n if (item.id === \"exec\") {\n if (\n workflowExecutions[key].execution_argument !== undefined &&\n workflowExecutions[key].execution_argument !== null &&\n workflowExecutions[key].execution_argument.length > 0\n ) {\n foundResult.result = workflowExecutions[key].execution_argument;\n } else {\n continue;\n }\n } else {\n foundResult = workflowExecutions[key].results.find(\n (result) => result.action.id === item.id\n );\n if (foundResult === undefined) {\n continue;\n }\n }\n\n foundResult.result = foundResult.result.trim();\n foundResult.result = foundResult.result.split(\" None\").join(' \"None\"');\n foundResult.result = foundResult.result.split(\" False\").join(\" false\");\n foundResult.result = foundResult.result.split(\" True\").join(\" true\");\n\n var jsonvalid = true;\n try {\n if (\n !foundResult.result.includes(\"{\") &&\n !foundResult.result.includes(\"[\")\n ) {\n jsonvalid = false;\n }\n } catch (e) {\n try {\n foundResult.result = foundResult.result.split(\"'\").join('\"');\n if (\n !foundResult.result.includes(\"{\") &&\n !foundResult.result.includes(\"[\")\n ) {\n jsonvalid = false;\n }\n } catch (e) {\n jsonvalid = false;\n }\n }\n\n // Finds the FIRST json only\n if (jsonvalid) {\n\t\t\t\t\ttry {\n \texampledata = JSON.parse(foundResult.result)\n \t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.log(\"Result: \", exampledata)\n\n\t\t\t\t\t}\n\n break;\n }\n }\n }\n\n return exampledata;\n };\n\n const GetParamMatch = (paramname, exampledata, basekey) => {\n if (typeof exampledata !== \"object\") {\n return \"\";\n }\n\n if (exampledata === null) {\n return \"\";\n }\n\n\t\t//console.log(\"NOT REPLACING ON PURPOSE!!\")\n\t\t//return \"\"\n\n // Basically just a stupid if-else :)\n const synonyms = {\n id: [\n \"id\",\n \"ref\",\n \"sourceref\",\n \"reference\",\n \"sourcereference\",\n \"alert id\",\n \"case id\",\n \"incident id\",\n \"service id\",\n \"sid\",\n \"uid\",\n \"uuid\",\n \"team id\",\n \"message id\",\n \"message_id\",\n ],\n title: [\"title\", \"name\", \"message\"],\n description: [\"description\", \"explanation\", \"story\", \"details\"],\n email: [\"mail\", \"email\", \"sender\", \"receiver\", \"recipient\"],\n data: [\n \"data\",\n \"ip\",\n \"domain\",\n \"url\",\n \"hash\",\n \"md5\",\n \"sha2\",\n \"sha256\",\n \"value\",\n \"item\",\n ],\n\t\t\ttags: [\"tags\", \"taxonomies\"],\n };\n\n // 1. Find the right synonym\n // 2. Replace with an autocomplete if it exists\n var selectedsynonyms = [paramname];\n for (const [key, value] of Object.entries(synonyms)) {\n if (key === paramname || value.includes(paramname)) {\n if (!value.includes(key)) {\n value.push(key.toLowerCase());\n }\n\n selectedsynonyms = value;\n break;\n }\n }\n\n var toreturn = \"\";\n\n for (const [key, value] of Object.entries(exampledata)) {\n // Check if loop or JSON\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n var selectedkey = \"\";\n if (isNaN(key)) {\n selectedkey = `.${key}`;\n }\n\n for (var subitem in value) {\n toreturn = GetParamMatch(\n paramname,\n value[subitem],\n `${basekey}${selectedkey}.#`\n );\n if (toreturn.length > 0) {\n break;\n }\n }\n\n if (toreturn.length > 0) {\n break;\n }\n\n } else {\n var selectedkey = \"\";\n if (isNaN(key)) {\n selectedkey = `.${key}`;\n }\n\n toreturn = GetParamMatch(\n paramname,\n value,\n `${basekey}${selectedkey}`\n );\n if (toreturn.length > 0) {\n break;\n }\n }\n } else {\n if (selectedsynonyms.includes(key.toLowerCase())) {\n toreturn = `${basekey}.${key}`\n break\n }\n }\n }\n\n return toreturn;\n };\n\n // Takes an action as input, then runs through and updates the relevant fields\n // based on previous actions'\n\t// Uses lots of synonyms \n\t// autocomplete\n const RunAutocompleter = (dstdata) => {\n // **PS: The right action should already be set here**\n // 1. Check execution argument\n // 2. Check parents in order\n var exampledata = GetExampleResult({ id: \"exec\", name: \"exec\" });\n var parentlabel = \"exec\";\n for (var paramkey in dstdata.parameters) {\n const param = dstdata.parameters[paramkey];\n // Skip authentication params\n if (param.configuration) {\n continue\n }\n\n\t\t\tif (param.options !== undefined && param.options !== null && param.options.length > 0) {\n\t\t\t\tcontinue\n\t\t\t}\n\n const paramname = param.name.toLowerCase().trim().replaceAll(\"_\", \" \");\n\n const foundresult = GetParamMatch(paramname, exampledata, \"\");\n if (foundresult.length > 0) {\n\t\t\t\tconsole.log(\"FOUND ReS for field: \", dstdata.parameters[paramkey].name, foundresult)\n if (dstdata.parameters[paramkey].value.length === 0) {\n dstdata.parameters[paramkey].value = `$${parentlabel}${foundresult}`;\n dstdata.parameters[paramkey].autocompleted = true\n }\n }\n }\n\n var parents = getParents(dstdata);\n if (parents.length > 1) {\n for (var key in parents) {\n const item = parents[key];\n if (item.label === \"Execution Argument\") {\n continue;\n }\n\n parentlabel =\n item.label === undefined\n ? \"\"\n : item.label.toLowerCase().trim().replaceAll(\" \", \"_\");\n exampledata = GetExampleResult(item);\n for (var paramkey in dstdata.parameters) {\n const param = dstdata.parameters[paramkey];\n // Skip authentication params\n if (param.configuration) {\n continue\n }\n\n\t\t\t\t\tif (param.options !== undefined && param.options !== null && param.options.length > 0) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n const paramname = param.name\n .toLowerCase()\n .trim()\n .replaceAll(\"_\", \" \");\n\n const foundresult = GetParamMatch(paramname, exampledata, \"\");\n if (foundresult.length > 0) {\n if (dstdata.parameters[paramkey].value.length === 0) {\n dstdata.parameters[paramkey].value = `$${parentlabel}${foundresult}`;\n \t\tdstdata.parameters[paramkey].autocompleted = true\n } else {\n //dstdata.parameters[paramkey].value = `$${parentlabel}${foundresult}`;\n }\n }\n }\n // Check agains every param\n }\n }\n\n return dstdata;\n };\n\n // Checks for errors in edges when they're added\n const onEdgeAdded = (event) => {\n setLastSaved(false);\n const edge = event.target.data();\n\n\t\tconsole.log(\"edge added: \", edge)\n\t\tif (edge.source === undefined && edge.target === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\tif (edge.readded === true) {\n\t\t\tconsole.log(\"Readded edge - stopping\")\n\n\t\t\tevent.target.data(\"readded\", false)\n\t\t\treturn\n\t\t}\n\n\t\tconst sourcenode = cy.getElementById(edge.source)\n\t\tconst destinationnode = cy.getElementById(edge.target)\n\t\tif (sourcenode === undefined || sourcenode === null || destinationnode === undefined || destinationnode === null) {\n\t\t} else {\n\t\t\tconsole.log(\"Edge added: Is it a trigger? If so, check if it already has a branch and remove it: \", sourcenode.data())\n\t\t\tif (sourcenode.data(\"type\") === \"TRIGGER\") {\n\t\t\t\tif (sourcenode.data(\"app_name\") !== \"Shuffle Workflow\" && sourcenode.data(\"app_name\") !== \"User Input\") {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst alledges = cy.edges().jsons()\n\t\t\t\t\t\tconsole.log(\"edges: \", alledges, edge)\n\t\t\t\t\t\tvar targetedge = alledges.findIndex(\n\t\t\t\t\t\t\t(data) => data.data.source === edge.source && data.data.id !== edge.id \n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tconsole.log(\"Node: \", targetedge)\n\t\t\t\t\t\tif (targetedge !== -1) {\n\t\t\t\t\t\t\tevent.target.remove()\n\n\t\t\t\t\t\t\t//console.log(\"Found branch already!\")\n\t\t\t\t\t\t\talert.info(\"Triggers can have exactly one target node\")\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t// name: \"Shuffle Workflow\",\n\t\t\t\t\t\t\t// name: \"User Input\",\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log(\"Node doesn't already have one\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 50)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst edgeCurve = calculateEdgeCurve(sourcenode.position(), destinationnode.position()) \n\t\t\tconst currentedge = cy.getElementById(edge.id)\n\t\t\tif (currentedge !== undefined && currentedge !== null) {\n\t\t\t\tcurrentedge.style('control-point-distance', edgeCurve.distance)\n\t\t\t\tcurrentedge.style('control-point-weight', edgeCurve.weight)\n\t\t\t}\n\n\t\t}\n\n\n var targetnode = workflow.triggers.findIndex(\n (data) => data.id === edge.target\n );\n if (targetnode !== -1) {\n console.log(\"TARGETNODE: \", targetnode);\n if (\n workflow.triggers[targetnode].app_name === \"User Input\" ||\n workflow.triggers[targetnode].app_name === \"Shuffle Workflow\"\n ) {\n } else {\n alert.error(\"Can't have triggers as target of branch\");\n event.target.remove();\n }\n }\n\n\t\tconst eventTarget = event.target.target()\n\t\tconsole.log(\"BUTTON ADDED! Find parent from: \", eventTarget)\n if (eventTarget.data(\"isButton\") === true) {\n \tconst parentNode = cy.getElementById(eventTarget.data(\"attachedTo\"))\n\t\t\tevent.target.remove()\n\t\t\tconsole.log(\"Setting it to parentnode: \", parentNode.data())\n\t\t\tif (parentNode !== undefined && parentNode !== null) {\n\t\t\t\t//event.target.data(\"target\", eventTarget.data(\"attachedTo\"))\n\n const newEdgeUuid = uuidv4()\n const newcybranch = {\n source: event.target.data(\"source\"),\n target: eventTarget.data(\"attachedTo\"),\n _id: newEdgeUuid,\n id: newEdgeUuid,\n hasErrors: event.target.data(\"hasErrors\"),\n };\n\n const edgeToBeAdded = {\n group: \"edges\",\n data: newcybranch,\n }\n\n cy.add(edgeToBeAdded);\n\t\t\t}\n\t\t}\n\n if (\n eventTarget.data(\"isDescriptor\") === true ||\n\t\t\teventTarget.data(\"type\") === \"COMMENT\" \n ) {\n\t\t\tconsole.log(\"Removing because of descriptor or comment\")\n event.target.remove();\n return;\n }\n\n targetnode = -1;\n\n // Check if:\n // dest == source && source == dest\n // dest == dest && source == source\n // backend: check all children? to stop recursion\n var found = false;\n for (var key in workflow.branches) {\n if (\n workflow.branches[key].destination_id === edge.source &&\n workflow.branches[key].source_id === edge.target\n ) {\n alert.error(\"A branch in the opposite direction already exists\");\n event.target.remove();\n found = true;\n break;\n } else if (\n workflow.branches[key].destination_id === edge.target &&\n workflow.branches[key].source_id === edge.source\n ) {\n console.log(edge.source);\n alert.error(\"That branch already exists\");\n event.target.remove();\n found = true;\n break;\n } else if (edge.target === workflow.start) {\n targetnode = workflow.triggers.findIndex(\n (data) => data.id === edge.source\n );\n if (targetnode === -1) {\n\t\t\t\t\tif (targetnode.type !== \"TRIGGER\") {\n\t\t\t\t\t\talert.error(\"Can't make arrow to starting node\");\n\t\t\t\t\t\tevent.target.remove();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\tfound = true;\n }\n } else if (edge.source === workflow.branches[key].source_id) {\n // FIXME: Verify multi-target for triggers\n // 1. Check if destination exists\n // 2. Check if source is a trigger\n // targetnode = workflow.triggers.findIndex(data => data.id === edge.source)\n // console.log(\"Destination: \", edge.target)\n // console.log(\"CHECK SOURCE IF ITS A TRIGGER: \", targetnode)\n // if (targetnode !== -1) {\n // \talert.error(\"Triggers can only target one target (startnode)\")\n // \tevent.target.remove()\n // \tfound = true\n // \tbreak\n // }\n } else {\n //console.log(\"INSIDE LAST CHECK: \", edge)\n // Find the targetnode and check if its a trigger\n // FIXME - do this for both actions and other types?\n /*\n\t\t\t\ttargetnode = workflow.triggers.findIndex(data => data.id === edge.target)\n\t\t\t\tif (targetnode !== -1) {\n\t\t\t\t\tconsole.log(\"TARGETNODE: \", targetnode)\n\t\t\t\t\tif (workflow.triggers[targetnode].app_name === \"User Input\" || workflow.triggers[targetnode].app_name === \"Shuffle Workflow\") {\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert.error(\"Can't have triggers as target of branch\")\n\t\t\t\t\t\tevent.target.remove()\n\t\t\t\t\t\tfound = true\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t\t*/\n }\n }\n\n // 1. Guess what the next node's action should be\n // 2. Get result from previous nodes (if any)\n // 3. TRY to automatically map them in based on synonyms\n const newsource = cy.getElementById(edge.source);\n const newdst = cy.getElementById(edge.target);\n if (\n newsource !== undefined &&\n newsource !== null &&\n newdst !== undefined &&\n newdst !== null\n ) {\n const dstdata = RunAutocompleter(newdst.data());\n console.log(\"AUTO DST: \", dstdata);\n }\n\n var newbranch = {\n source_id: edge.source,\n destination_id: edge.target,\n id_: edge.id,\n id: edge.id,\n hasErrors: false,\n decorator: false,\n };\n\n if (!found) {\n newbranch[\"hasErrors\"] = false;\n\n workflow.branches.push(newbranch);\n setWorkflow(workflow);\n }\n\n history.push({\n type: \"edge\",\n action: \"added\",\n data: edge,\n });\n setHistory(history);\n setHistoryIndex(history.length);\n };\n\n const onNodeAdded = (event) => {\n const node = event.target;\n const nodedata = event.target.data();\n\n\t\tif (Object.keys(nodedata).length === 1) {\n\t\t\tconsole.log(\"Check if another node actually exists before adding\")\n\t\t}\n\n if (nodedata.finished === false || (nodedata.id !== undefined && nodedata.is_valid === undefined)\n ) {\n\t\t\t//if (nodedata.app_id === undefined) {\n\t\t\t//console.log(\"Returning because node is not valid: \", nodedata)\n return;\n }\n\n\n\t\t// DONT MOVE THIS LINE RIGHT HERE v\n setLastSaved(false)\n\t\t// Dont move the line above. May break stuff.\n\n\n if (node.isNode() && cy.nodes().size() === 1) {\n workflow.start = node.data(\"id\");\n nodedata.isStartNode = true;\n } else {\n if (workflow.actions === null) {\n\t\t\t\tconsole.log(\"Returning because node has no value\")\n return;\n }\n\n // Remove bad startnode\n for (var key in workflow.actions) {\n const action = workflow.actions[key];\n if (action.isStartNode && workflow.start !== action.id) {\n action.isStartNode = false;\n }\n }\n }\n\n if (nodedata.type === \"ACTION\") {\n\t\t\t\t/*\n\t\t\t\tvar curaction = workflow.actions.find((a) => a.id === nodedata.id);\n\t\t\t\tif (curaction === null || curaction === undefined) {\n alert.error(\"Node not found. Please remake it.\")\n \tevent.target.remove();\n\t\t\t\t}\n\t\t\t\t*/\n if (\n workflow.actions.length === 1 &&\n workflow.actions[0].id === workflow.start\n ) {\n const newEdgeUuid = uuidv4();\n const newcybranch = {\n source: workflow.start,\n target: nodedata.id,\n _id: newEdgeUuid,\n id: newEdgeUuid,\n hasErrors: false,\n };\n\n const edgeToBeAdded = {\n group: \"edges\",\n data: newcybranch,\n };\n\n console.log(\"SHOULD STITCH WITH STARTNODE\");\n cy.add(edgeToBeAdded);\n }\n\n if (nodedata.app_name === \"Shuffle Tools\") {\n const iconInfo = GetIconInfo(nodedata);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n nodedata.large_image = svgpin_Url;\n nodedata.fillGradient = iconInfo.fillGradient;\n nodedata.fillstyle = \"solid\";\n if (\n nodedata.fillGradient !== undefined &&\n nodedata.fillGradient !== null &&\n nodedata.fillGradient.length > 0\n ) {\n nodedata.fillstyle = \"linear-gradient\";\n } else {\n nodedata.iconBackground = iconInfo.iconBackgroundColor;\n }\n }\n\n\n if (\n nodedata.parameters !== undefined &&\n nodedata.parameters !== null &&\n !nodedata.label.endsWith(\"_copy\")\n ) {\n var newparameters = [];\n\n for (var subkey in nodedata.parameters) {\n var newparam = JSON.parse(\n JSON.stringify(nodedata.parameters[subkey])\n );\n newparam.id = uuidv4();\n\n\t\t\t\t\tif (newparam.value === undefined || newparam.value === null) {\n \tnewparam.value = \"\";\n\t\t\t\t\t} else {\n \tnewparam.value = newparam.value;\n\t\t\t\t\t}\n\n newparameters.push(newparam);\n }\n\n nodedata.parameters = newparameters;\n }\n\n if (workflow.actions === undefined || workflow.actions === null) {\n workflow.actions = [nodedata];\n } else {\n workflow.actions.push(nodedata);\n }\n\n setWorkflow(workflow);\n } else if (nodedata.type === \"TRIGGER\") {\n if (nodedata.is_valid === false) {\n alert.info(\"This trigger is not available to you\");\n node.remove();\n return;\n }\n\n if (workflow.triggers === undefined) {\n workflow.triggers = [nodedata];\n } else {\n workflow.triggers.push(nodedata);\n }\n\n const newEdgeUuid = uuidv4();\n const newcybranch = {\n source: nodedata.id,\n target: workflow.start,\n source_id: nodedata.id,\n destination_id: workflow.start,\n _id: newEdgeUuid,\n id: newEdgeUuid,\n hasErrors: false,\n decorator: false,\n };\n\n const edgeToBeAdded = {\n group: \"edges\",\n data: newcybranch,\n };\n\n if (\n nodedata.name !== \"User Input\" &&\n nodedata.name !== \"Shuffle Workflow\"\n ) {\n if (\n workflow.actions !== undefined &&\n workflow.actions !== null &&\n workflow.actions.length > 0\n ) {\n cy.add(edgeToBeAdded);\n }\n }\n\n setWorkflow(workflow);\n }\n\n if (nodedata.app_name !== undefined) {\n history.push({\n type: \"node\",\n action: \"added\",\n data: nodedata,\n });\n setHistory(history);\n setHistoryIndex(history.length);\n }\n };\n\n const onEdgeRemoved = (event) => {\n setLastSaved(false);\n\n const edge = event.target;\n if (edge.data(\"decorator\") === true) {\n return;\n }\n\n\t\t// Check if the source is trigger and can start\n\t\tconsole.log(\"Removed: \", edge.data())\n const allNodes = cy.nodes().jsons()\n\t\tfor (var key in allNodes) {\n\t\t\tconst curnode = allNodes[key]\n\t\t\tif (curnode.data.type !== \"TRIGGER\") {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (curnode.data.id === edge.data(\"source\")) {\n\t\t\t\tconsole.log(\"Found matching trigger source: \", curnode)\n\t\t\t\tif (curnode.data.app_name !== \"Shuffle Workflow\" && curnode.data.app_name !== \"User Input\") {\n\t\t\t\t\t// If it's started, READD the edge\n\t\t\t\t\tif (curnode.data.status === \"running\") {\n\t\t\t\t\t\tconsole.log(\"Edge is running - readd it: \", edge.data())\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Just making sure it's not running infinitely\n\t\t\t\t\t\tvar newdata = edge.data()\n\t\t\t\t\t\tnewdata.readded = true\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcy.add({\n\t\t\t\t\t\t\t\tgroup: \"edges\",\n\t\t\t\t\t\t\t\tdata: newdata,\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\talert.error(\"You must STOP the trigger before deleting its branches\")\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.log(\"Failed re-adding edge: \", e)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n \t\t//status: \"uninitialized\",\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n workflow.branches = workflow.branches.filter(\n (a) => a.id !== edge.data().id\n );\n setWorkflow(workflow);\n event.target.remove();\n\n // trigger as source check\n const indexcheck = workflow.triggers.findIndex(\n (data) => edge.data(\"source\") === data.id\n );\n if (indexcheck !== -1) {\n console.log(\"Shouldnt remove edge from trigger? \");\n }\n\n if (edge.data().source !== undefined) {\n history.push({\n type: \"edge\",\n action: \"removed\",\n data: edge.data(),\n });\n\n setHistory(history);\n setHistoryIndex(history.length);\n }\n };\n\n const onNodeRemoved = (event) => {\n const node = event.target;\n const data = node.data();\n\n if (data.finished === false) {\n return\n }\n\n workflow.actions = workflow.actions.filter((a) => a.id !== data.id);\n workflow.triggers = workflow.triggers.filter((a) => a.id !== data.id);\n if (workflow.start === data.id && workflow.actions.length > 0) {\n // FIXME - should check branches connected to startnode, as picking random\n // is just confusing\n if (workflow.actions[0].id !== data.id) {\n const ele = cy.getElementById(workflow.actions[0].id);\n if (ele !== undefined && ele !== null) {\n ele.data(\"isStartNode\", true);\n workflow.start = ele.id();\n }\n } else {\n if (workflow.actions.length > 1) {\n const ele = cy.getElementById(workflow.actions[1].id);\n if (ele !== undefined && ele !== null) {\n ele.data(\"isStartNode\", true);\n workflow.start = ele.id();\n }\n }\n }\n }\n\n if (data.app_name !== undefined) {\n const allNodes = cy.nodes().jsons();\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (currentNode.data.attachedTo === data.id) {\n cy.getElementById(currentNode.data.id).remove();\n }\n }\n\n history.push({\n type: \"node\",\n action: \"removed\",\n data: data,\n })\n\n\t\t\t//console.log(\"REMOVED: \", data)\n setHistory(history);\n setHistoryIndex(history.length);\n }\n\n setWorkflow(workflow);\n if (data.type === \"TRIGGER\") {\n saveWorkflow(workflow);\n }\n };\n\n //var previouskey = 0\n const handleKeyDown = (event) => {\n switch (event.keyCode) {\n case 27:\n if (configureWorkflowModalOpen === true) {\n setConfigureWorkflowModalOpen(false);\n }\n break;\n case 46:\n console.log(\"DELETE\");\n break;\n case 38:\n //console.log(\"UP\");\n break;\n case 37:\n //console.log(\"LEFT\");\n break;\n case 40:\n //console.log(\"DOWN\");\n break;\n case 39:\n //console.log(\"RIGHT\");\n break;\n case 90:\n if (event.ctrlKey) {\n console.log(\"CTRL+Z\");\n }\n\n break;\n case 67:\n if (event.ctrlKey && !event.shiftKey) {\n if (\n event.path !== undefined &&\n event.path !== null &&\n event.path.length > 0\n ) {\n if (event.path[0].localName !== \"body\") {\n console.log(\"Skipping because body is not targeted\");\n return;\n }\n }\n\n\t\t\t\t\tif (\n \t\t\t event.target !== undefined &&\n \t\t\t event.target !== null\n \t\t\t) {\n \t\t\t if (event.target.localName !== \"body\") {\n \t\t\t console.log(\"Skipping because body is not targeted\")\n \t\t\t return;\n \t\t\t }\n\t\t\t\t\t}\n\n console.log(\"CTRL+C\");\n if (cy !== undefined) {\n var cydata = cy.$(\":selected\").jsons();\n if (cydata !== undefined && cydata !== null && cydata.length > 0) {\n console.log(cydata);\n\n const elementName = \"copy_element_shuffle\";\n var copyText = document.getElementById(elementName);\n if (copyText !== null && copyText !== undefined) {\n const clipboard = navigator.clipboard;\n if (clipboard === undefined) {\n alert.error(\"Can only copy over HTTPS (port 3443)\");\n return;\n }\n\n navigator.clipboard.writeText(JSON.stringify(cydata));\n copyText.select();\n copyText.setSelectionRange(0, 99999); /* For mobile devices */\n document.execCommand(\"copy\");\n alert.success(`Copied ${cydata.length} element(s)`);\n }\n }\n }\n }\n break;\n case 86:\n if (event.ctrlKey) {\n //console.log(\"CTRL+V\")\n // The below parts are handled in the function handlePaste()\n /*\n\t\t\t\t\tconst clipboard = navigator.clipboard\n\t\t\t\t\tif (clipboard === undefined || window === undefined || window === null) {\n\t\t\t\t\t\talert.error(\"Can only use cliboard over HTTPS (port 3443)\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t} \n\n\t\t\t\t\tconsole.log(\"CLIPBOARD: \", window.clipboardData)\n\t\t\t\t\tconst pastedData = window.clipboardData.getData('Text');\n\t\t\t\t\tconsole.log(\"PASTED: \", pastedData)\n\n\t\t\t\t\t\n\t\t\t\t\t//var tmpAuth = JSON.parse(JSON.stringify(appAuthentication))\n\t\t\t\t\tvar jsonvalid = true\n\t\t\t\t\tvar parsedjson = []\n\t\t\t\t\t*/\n }\n break;\n case 88:\n if (event.ctrlKey) {\n console.log(\"CTRL+X\");\n }\n break;\n case 83:\n break;\n case 70:\n break;\n case 65:\n // As a poweruser myself, I found myself hitting this a few\n // too many times to just edit text. Need a better bind, which does NOT work while inside a field\n break;\n default:\n break;\n }\n\n //previouskey = event.keyCode\n };\n\n const handlePaste = (event) => {\n //console.log(\"EV: \", event)\n if (\n event.path !== undefined &&\n event.path !== null &&\n event.path.length > 0\n ) {\n //console.log(\"PATH: \", event.path[0])\n if (event.path[0].localName !== \"body\") {\n //console.log(\"Skipping because body is not targeted\")\n return;\n }\n } \n\t\t\n\t\t//console.log(\"PATH2: \", event.target)\n\t\tif (\n event.target !== undefined &&\n event.target !== null\n ) {\n if (event.target.localName !== \"body\") {\n //console.log(\"Skipping because body is not targeted\")\n return;\n }\n\t\t}\n\n\n event.preventDefault();\n const clipboard = (event.originalEvent || event).clipboardData.getData(\n \"text/plain\"\n );\n //console.log(\"Text: \", clipboard)\n //window.document.execCommand('insertText', false, text);\n //\n try {\n const parsedjson = JSON.parse(clipboard);\n //console.log(\"Parsed: \", parsedjson)\n\n for (var key in parsedjson) {\n const item = parsedjson[key];\n console.log(\"Adding: \", item);\n \t\titem.data.id = uuidv4()\n\n cy.add({\n group: item.group,\n data: item.data,\n position: item.position,\n });\n }\n } catch (e) {\n console.log(\"Error pasting: \", e);\n //alert.info(\"Failed parsing clipboard: \", e)\n }\n };\n\n const registerKeys = () => {\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"paste\", handlePaste);\n };\n\n const getEnvironments = () => {\n fetch(globalUrl + \"/api/v1/getenvironments\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for envs :O!\");\n if (isCloud) {\n setEnvironments([{ Name: \"Cloud\", Type: \"cloud\" }]);\n } else {\n setEnvironments([{ Name: \"Onprem\", Type: \"onprem\" }]);\n }\n\n return;\n }\n\n return response.json();\n })\n .then((responseJson) => {\n var found = false;\n var showEnvCnt = 0;\n for (var key in responseJson) {\n if (responseJson[key].default && !found) {\n setDefaultEnvironmentIndex(key);\n found = true;\n }\n\n if (responseJson[key].archived === false) {\n showEnvCnt += 1;\n }\n }\n\n if (showEnvCnt > 1) {\n setShowEnvironment(true);\n }\n\n if (!found) {\n for (var key in responseJson) {\n if (!responseJson[key].archived) {\n setDefaultEnvironmentIndex(key);\n break;\n }\n }\n }\n\n\t\t\t\t// FIXME: Don't allow multiple in cloud yet. Cloud -> Onprem isn't stable.\n\t\t\t\tif (isCloud) {\n\t\t\t\t\tif (responseJson !== undefined && responseJson !== null && responseJson.length > 0) {\n \t\tsetEnvironments(responseJson);\n\t\t\t\t\t} else {\n \tsetEnvironments([{ Name: \"Cloud\", Type: \"cloud\" }]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n \tsetEnvironments(responseJson);\n\t\t\t\t}\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Get environments error: \", error.toString());\n });\n };\n\n if (\n !firstrequest &&\n graphSetup &&\n established &&\n props.match.params.key !== workflow.id &&\n workflow.id !== undefined &&\n workflow.id !== null &&\n workflow.id.length > 0\n ) {\n window.location.pathname = \"/workflows/\" + props.match.params.key;\n }\n\n const animationDuration = 150;\n const onNodeHoverOut = (event) => {\n const nodedata = event.target.data();\n if (nodedata.app_name !== undefined) {\n const allNodes = cy.nodes().jsons();\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (\n currentNode.data.isButton &&\n currentNode.data.attachedTo !== nodedata.id\n ) {\n cy.getElementById(currentNode.data.id).remove();\n }\n\n }\n }\n\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"default\"\n\t\t}\n\n\t\t// Skipping node editing if it's the selected one\n\t\tif (cy !== undefined) {\n\t\t\tconst typeIds = cy.elements('node:selected').jsons();\n\t\t\tfor (var idkey in typeIds) {\n\t\t\t\tconst item = typeIds[idkey]\n\t\t\t\tif (item.data.id === nodedata.id) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//if (nodedata.id === selectedAction.id || nodedata.id === selectedTrigger.id) {\n\t\t//\treturn\n\t\t//}\n\n var parsedStyle = {\n \"border-width\": \"1px\",\n \"font-size\": \"18px\",\n\t\t\t//\"cursor\": \"default\",\n }\n\n if ((nodedata.app_name === \"Testing\" || nodedata.app_name === \"Shuffle Tools\") && !nodedata.isStartNode) {\n parsedStyle = {\n \"border-width\": \"1px\",\n \"font-size\": \"0px\",\n };\n }\n\n event.target.animate(\n {\n style: parsedStyle,\n },\n {\n duration: animationDuration,\n }\n );\n\n const outgoingEdges = event.target.outgoers(\"edge\");\n const incomingEdges = event.target.incomers(\"edge\");\n if (outgoingEdges.length > 0) {\n outgoingEdges.removeClass(\"hover-highlight\");\n }\n\n if (incomingEdges.length > 0) {\n outgoingEdges.removeClass(\"hover-highlight\");\n }\n };\n\n const buttonColor = \"rgba(255,255,255,0.9)\";\n const buttonBackgroundColor = \"#1f2023\";\n const addStartnodeButton = (event) => {\n var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n if (parentNode.data(\"isStartNode\")) {\n return;\n }\n\n const px = parentNode.position(\"x\") - 65;\n const py = parentNode.position(\"y\") - 45;\n const circleId = (newNodeId = uuidv4());\n\n parentNode.data(\"circleId\", circleId);\n\n const iconInfo = {\n icon: \"M9.4 2H15V12H8L7.6 10H2V17H0V0H9L9.4 2ZM9 10H11V8H13V6H11V4H9V6L8 4V2H6V4H4V2H2V4H4V6H2V8H4V6H6V8H8V6L9 8V10ZM6 6V4H8V6H6ZM9 6H11V8H9V6Z\",\n iconColor: buttonColor,\n iconBackgroundColor: buttonBackgroundColor,\n };\n\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n cy.add({\n group: \"nodes\",\n data: {\n weight: 30,\n id: circleId,\n name: \"TEEEXT\",\n isButton: true,\n buttonType: \"set_startnode\",\n attachedTo: event.target.data(\"id\"),\n icon: svgpin_Url,\n iconBackground: iconInfo.iconBackgroundColor,\n is_valid: true,\n },\n position: { x: px, y: py },\n locked: true,\n });\n };\n\n const addCopyButton = (event) => {\n var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n const px = parentNode.position(\"x\") - 65;\n const py = parentNode.position(\"y\") - 5;\n const circleId = (newNodeId = uuidv4());\n\n parentNode.data(\"circleId\", circleId);\n\n const iconInfo = {\n icon: \"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z\",\n iconColor: buttonColor,\n iconBackgroundColor: buttonBackgroundColor,\n };\n\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n cy.add({\n group: \"nodes\",\n data: {\n weight: 30,\n id: circleId,\n name: \"TEEEXT\",\n isButton: true,\n buttonType: \"copy\",\n attachedTo: event.target.data(\"id\"),\n icon: svgpin_Url,\n iconBackground: iconInfo.iconBackgroundColor,\n is_valid: true,\n },\n position: { x: px, y: py },\n locked: true,\n });\n };\n\n\tconst addSuggestionButtons = (event) => {\n var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n const px = parentNode.position(\"x\") + 300;\n const py = parentNode.position(\"y\") + 100;\n const circleId = (newNodeId = uuidv4());\n\n parentNode.data(\"circleId\", circleId);\n\n\t\tvar appid = \"1234\"\n\t\tvar suggestions = [{\n\t\t\t\tapp_name: \"TheHive\",\n\t\t\t\tapp_version: \"1.1.0\",\n\t\t\t\tapp_id: appid,\n\t\t\t\tsharing: false,\n\t\t\t\tprivate_id: false,\n\t\t\t\tisStartNode: false,\n\t\t\t\tlabel: \"Suggestion 1\",\n\t\t\t\tlarge_image: \"data:image/png;base64,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\",\n\t\t\t\tfinished: false,\n is_valid: true,\n\t\t\t\tisSuggestion: true,\n attachedTo: event.target.data(\"id\"),\n\t\t}]\n //isButton: true,\n\n cy.add({\n group: \"nodes\",\n data: suggestions[0],\n \tposition: { x: px, y: py },\n locked: true,\n });\n\n\t\t//suggestions[0].id = uuidv4()\n //cy.add({\n // group: \"nodes\",\n // data: suggestions[0],\n //\tposition: { x: parentNode.position(\"x\") + 300, y: parentNode.position(\"y\") - 100},\n // locked: true,\n //});\n }\n\n const addDeleteButton2 = (event) => {\n var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n const px = parentNode.position(\"x\") + 100;\n const py = parentNode.position(\"y\") + 35;\n const circleId = (newNodeId = uuidv4());\n\n parentNode.data(\"circleId\", circleId);\n\n const iconInfo = {\n icon: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\",\n iconColor: buttonColor,\n iconBackgroundColor: buttonBackgroundColor,\n };\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n cy.add({\n group: \"nodes\",\n data: {\n weight: 30,\n id: circleId,\n name: \"This is autocomplete\",\n buttonType: \"delete\",\n attachedTo: event.target.data(\"id\"),\n icon: svgpin_Url,\n iconBackground: iconInfo.iconBackgroundColor,\n is_valid: true,\n },\n position: { x: px, y: py },\n locked: true,\n });\n };\n\n const addDeleteButton = (event) => {\n var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n const px = parentNode.position(\"x\") - 65;\n const py = parentNode.position(\"y\") + 35;\n const circleId = (newNodeId = uuidv4());\n\n parentNode.data(\"circleId\", circleId);\n\n const iconInfo = {\n icon: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\",\n iconColor: buttonColor,\n iconBackgroundColor: buttonBackgroundColor,\n };\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n cy.add({\n group: \"nodes\",\n data: {\n weight: 30,\n id: circleId,\n name: \"TEEEXT\",\n isButton: true,\n buttonType: \"delete\",\n attachedTo: event.target.data(\"id\"),\n icon: svgpin_Url,\n iconBackground: iconInfo.iconBackgroundColor,\n is_valid: true,\n },\n position: { x: px, y: py },\n locked: true,\n });\n };\n\n const onNodeHover = (event) => {\n const nodedata = event.target.data();\n\n if (nodedata.finished === false) {\n\t\t\tconsole.log(\"NODE: \", nodedata)\n return;\n }\n\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"pointer\"\n\t\t}\n\n //var parentNode = cy.$(\"#\" + event.target.data(\"id\"));\n //if (parentNode.data(\"isButton\") || parentNode.data(\"buttonId\")) return;\n\n if (nodedata.app_name !== undefined && !workflow.public === true) {\n const allNodes = cy.nodes().jsons();\n\n var found = false;\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (\n (currentNode.data.isButton || currentNode.data.isSuggestion) &&\n currentNode.data.attachedTo !== nodedata.id\n ) {\n cy.getElementById(currentNode.data.id).remove();\n }\n\n /*if (\n currentNode.data.isSuggestion &&\n currentNode.data.attachedTo !== nodedata.id\n ) {\n cy.getElementById(currentNode.data.id).remove();\n }*/\n\n if (\n currentNode.data.isButton &&\n currentNode.data.attachedTo === nodedata.id\n ) {\n found = true;\n }\n }\n\n if (!found) {\n addDeleteButton(event);\n\n\t\t\t\tif (nodedata.type === \"TRIGGER\") {\n\t\t\t\t\tif (nodedata.trigger_type === \"SUBFLOW\" || nodedata.trigger_type === \"USERINPUT\") {\n\t\t\t\t\t\taddCopyButton(event);\n\t\t\t\t\t}\n\t\t\t\t} else { \n\t\t\t\t\taddCopyButton(event);\n\t\t\t\t\taddStartnodeButton(event);\n\t\t\t\t}\n\n\t\t\t\t// autocomplete\n\t\t\t\t// right click\n\t\t\t\t// suggestions\n //addSuggestionButtons(event);\n }\n }\n\n var parsedStyle = {\n \"border-width\": \"7px\",\n \"border-opacity\": \".7\",\n \"font-size\": \"25px\",\n\t\t\t//\"cursor\": \"pointer\",\n }\n\n\t\tconst typeIds = cy.elements('node:selected').jsons();\n\t\tfor (var idkey in typeIds) {\n\t\t\tconst item = typeIds[idkey]\n\t\t\tif (item.data.id === nodedata.id) {\n\t\t\t\t//console.log(\"items: \", item.data.id, nodedata.id)\n\t\t\t\tparsedStyle[\"border-width\"] = \"12px\"\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n if (nodedata.type !== \"COMMENT\") {\n parsedStyle.color = \"white\";\n\n \t//if (!event.target.data(\"isButton\") && !event.target.data(\"buttonId\")) {\n\t\t\t//\tconst px = event.target.position(\"x\") - 0;\n\t\t\t//\tconst py = event.target.position(\"y\") - 50;\n\t\t\t//\tconst circleId = (newNodeId = uuidv4());\n\n\t\t\t//\tconsole.log(\"Got px, py: \", px, py)\n\t\t\t//\t\n\t\t\t//\tcy.add({\n\t\t\t//\t\tgroup: \"nodes\",\n\t\t\t//\t\tdata: {\n\t\t\t//\t\t\tweight: 30,\n\t\t\t//\t\t\tid: circleId,\n\t\t\t//\t\t\tisButton: true,\n\t\t\t//\t\t\tattachedTo: event.target.data(\"id\"),\n\t\t\t//\t\t\tbuttonType: \"edgehandler\",\n\t\t\t//\t\t\tis_valid: true,\n\t\t\t//\t\t},\n\t\t\t//\t\tposition: { x: px, y: py },\n\t\t\t//\t\tlocked: true,\n\t\t\t//\t})\n\t\t\t//}\n }\n\n\t\tif (event.target !== undefined && event.target !== null) {\n\t\t\tevent.target.animate(\n\t\t\t\t{\n\t\t\t\t\tstyle: parsedStyle,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tduration: animationDuration,\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n const outgoingEdges = event.target.outgoers(\"edge\");\n const incomingEdges = event.target.incomers(\"edge\");\n if (outgoingEdges.length > 0) {\n outgoingEdges.addClass(\"hover-highlight\");\n }\n\n if (incomingEdges.length > 0) {\n outgoingEdges.addClass(\"hover-highlight\");\n }\n };\n\n const onEdgeHoverOut = (event) => {\n if (event === null || event === undefined) {\n event.target.removeStyle();\n return;\n }\n\n const edgeData = event.target.data();\n if (edgeData.decorator === true) {\n return;\n }\n\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"default\"\n\t\t}\n\n //event.target.removeStyle();\n };\n\n // This is here to have a proper transition for lines\n const onEdgeHover = (event) => {\n if (event === null || event === undefined) {\n return;\n }\n\n const edgeData = event.target.data();\n if (edgeData.decorator === true) {\n return;\n }\n\n\t\tconst cytoscapeElement = document.getElementById(\"cytoscape_view\")\n\t\tif (cytoscapeElement !== undefined && cytoscapeElement !== null) {\n\t\t\tcytoscapeElement.style.cursor = \"pointer\"\n\t\t}\n\n //const sourcecolor = cy\n // .getElementById(event.target.data(\"source\"))\n // .style(\"border-color\");\n //const targetcolor = cy\n // .getElementById(event.target.data(\"target\"))\n // .style(\"border-color\");\n\n\t\t////console.log(sourcecolor, targetcolor)\n //if (\n // sourcecolor !== null &&\n // sourcecolor !== undefined &&\n // targetcolor !== null &&\n // targetcolor !== undefined && \n\t\t//\t!sourcecolor.includes(\"rgb\") &&\n\t\t//\t!targetcolor.includes(\"rgb\") \n //) {\n\t\t//\tconsole.log(sourcecolor)\n\t\t//\tconsole.log(targetcolor)\n\n\t\t//\tif (event.target !== null && event.target.value !== null) {\n\t\t//\t\tevent.target.animate({\n\t\t//\t\t\tstyle: {\n\t\t//\t\t\t\t\"target-arrow-color\": targetcolor,\n\t\t//\t\t\t\t\"line-fill\": \"linear-gradient\",\n\t\t//\t\t\t\t\"line-gradient-stop-colors\": [sourcecolor, targetcolor],\n\t\t//\t\t\t\t\"line-gradient-stop-positions\": [0, 1],\n\t\t//\t\t\t},\n\t\t//\t\t\tduration: animationDuration,\n\t\t//\t\t})\n\t\t//\t} else {\n\t\t//\t\tevent.target.animate({\n\t\t//\t\t\tstyle: {\n\t\t//\t\t\t\t\"target-arrow-color\": targetcolor,\n\t\t//\t\t\t\t\"line-fill\": \"linear-gradient\",\n // \t\t\t\"line-gradient-stop-colors\": [\"#41dcab\", \"#41dcab\"],\n\t\t//\t\t\t\t\"line-gradient-stop-positions\": [0, 1],\n\t\t//\t\t\t},\n\t\t//\t\t\tduration: animationDuration,\n\t\t//\t\t})\n\n\t\t//\t}\n //}\n\n\t\tif (event.target !== undefined && event.target !== null) {\n\t\t\t//const targetcolor = \"#66a8b1\"\n\t\t\t//const parsedStyle = {\n //\t\"width\": \"10px\",\n\t\t\t//\t\"font-size\": \"18px\",\n //\t\"target-arrow-color\": \"#66a8b1\",\n\t\t\t//\t\"color\": \"#66a8b1\",\n\t\t\t//}\n\n\t\t\t//event.target.addClass(\"shuffle-hover-highlight\");\n\n\t\t\t//console.log(\"Style1: \", event.target)\n\t\t\t//console.log(\"Style: \", event.target.style())\n\n\t\t\t//event.target.animate(\n\t\t\t//\t{\n\t\t\t//\t\tstyle: parsedStyle,\n\t\t\t//\t},\n\t\t\t//\t{\n\t\t\t//\t\tduration: animationDuration,\n\t\t\t//\t}\n\t\t\t//)\n\t\t}\n }\n\n\t// Calculates how a trigger should curve\n\t// Thanks to:\n\t// https://codepen.io/guillaumethomas/pen/xxbbBKO\n\tconst calculateEdgeCurve = (sourcenodePosition, destinationnodePosition) => {\n\t\tconst xParsed = destinationnodePosition.x - sourcenodePosition.x\n\t\tconst yParsed = destinationnodePosition.y - sourcenodePosition.y\n\n\t\tconst z = Math.sqrt(xParsed * xParsed + yParsed * yParsed);\n\t\tconst costheta = xParsed / z;\n\t\tconst alpha = 0.25;\n\t\tvar controlPointDistance = [-alpha * yParsed * costheta, alpha * yParsed * costheta];\n\t\tvar controlPointWeight = [alpha, 1-alpha]\n\n\t\t//'control-point-weight': ['0.33', '0.66'],\n\t\t//var controlPointWeight = [\"0.33\", \"0.66\"]\n\t\t//var controlPointDistance = [\"33%\", \"-66%\"]\n\t\t//var controlPointWeight = [\"0.00\", \"1.00\"]\n\t\t/*\n\t\tif (yParsed !== 0) {\n\t\t\t//const degreeFound = Math.atan2(xParsed / yParsed)\n\t\t\tconst degreeFound = Math.atan2(xParsed, yParsed) * 180 / Math.PI\n\n\t\t\tif (degreeFound > 90 && degreeFound < 180) {\n\t\t\t\tconsole.log(\"TOPRIGHT\")\n\t\t\t} else if (degreeFound < 90 && degreeFound > 0) {\n\t\t\t\tconsole.log(\"BOTTOMRIGHT\")\n\t\t\t} else if (degreeFound < 0 && degreeFound > -90) {\n\t\t\t\tconsole.log(\"BOTTOMLEFT\")\n\t\t\t\t//controlPointWeight = [\"0.20\", \"0.80\"]\n\t\t\t\t//controlPointWeight = \"0.7\"\n\t\t\t\t//controlPointDistance = \"50%\" \n\n\t\t\t} else if (degreeFound < -90 && degreeFound > -180) {\n\t\t\t\tconsole.log(\"TOPLEFT\")\n\t\t\t} else {\n\t\t\t\tconsole.log(\"STRAIGHT!\")\n\t\t\t}\n\t\t}\n\t\t*/\n\n\t\treturn {\n\t\t\t\"distance\": controlPointDistance,\n\t\t\t\"weight\": controlPointWeight,\n\t\t}\n\t}\n\n const setupGraph = () => {\n const actions = workflow.actions.map((action) => {\n const node = {};\n\n if (!action.isStartNode && action.app_name === \"Shuffle Tools\") {\n const iconInfo = GetIconInfo(action);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n action.large_image = svgpin_Url;\n action.fillGradient = iconInfo.fillGradient;\n action.fillstyle = \"solid\";\n if (\n action.fillGradient !== undefined &&\n action.fillGradient !== null &&\n action.fillGradient.length > 0\n ) {\n action.fillstyle = \"linear-gradient\";\n } else {\n action.iconBackground = iconInfo.iconBackgroundColor;\n }\n }\n\n node.position = action.position;\n node.data = action;\n\n node.data.id = action[\"id\"];\n node.data._id = action[\"id\"];\n node.data.type = \"ACTION\";\n node.isStartNode = action[\"id\"] === workflow.start;\n\n\t\t\tif (workflow.public === true) {\n\t\t\t\tnode.data.is_valid = true\n\t\t\t\tnode.is_valid = true\n\t\t\t}\n\n var example = \"\";\n if (\n action.example !== undefined &&\n action.example !== null &&\n action.example.length > 0\n ) {\n example = action.example;\n }\n\n node.data.example = example;\n\n return node;\n });\n\n const decoratorNodes = workflow.actions.map((action) => {\n if (!action.isStartNode) {\n if (action.app_name === \"Testing\") {\n return null;\n } else if (action.app_name === \"Shuffle Tools\") {\n return null;\n }\n }\n\n const iconInfo = GetIconInfo(action);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n\n const offset = action.isStartNode ? 36 : 44;\n const decoratorNode = {\n position: {\n x: action.position.x + offset,\n y: action.position.y + offset,\n },\n locked: true,\n data: {\n isDescriptor: true,\n isValid: true,\n is_valid: true,\n label: \"\",\n image: svgpin_Url,\n imageColor: iconInfo.iconBackgroundColor,\n attachedTo: action.id,\n },\n };\n return decoratorNode;\n });\n\n const triggers = workflow.triggers.map((trigger) => {\n const node = {};\n node.position = trigger.position;\n node.data = trigger;\n\n node.data._id = trigger[\"id\"];\n node.data.id = trigger[\"id\"];\n node.data.type = \"TRIGGER\";\n\n return node;\n });\n\n var comments = [];\n if (\n workflow.comments !== undefined &&\n workflow.comments !== null &&\n workflow.comments.length > 0\n ) {\n comments = workflow.comments.map((comment) => {\n const node = {};\n node.position = comment.position;\n node.data = comment;\n\n node.data._id = comment[\"id\"];\n node.data.type = \"COMMENT\";\n\n return node;\n });\n }\n\n // FIXME - tmp branch update\n var insertedNodes = [].concat(actions, triggers, decoratorNodes, comments);\n insertedNodes = insertedNodes.filter((node) => node !== null);\n\n var edges = workflow.branches.map((branch, index) => {\n const edge = {};\n var conditions = workflow.branches[index].conditions;\n if (conditions === undefined || conditions === null) {\n conditions = [];\n }\n\n var label = \"\";\n if (conditions.length === 1) {\n label = conditions.length + \" condition\";\n } else if (conditions.length > 1) {\n label = conditions.length + \" conditions\";\n }\n\n edge.data = {\n id: branch.id,\n _id: branch.id,\n source: branch.source_id,\n target: branch.destination_id,\n label: label,\n conditions: conditions,\n hasErrors: branch.has_errors,\n decorator: false,\n };\n\n // This is an attempt at prettier edges. The numbers are weird to work with.\n\t\t\t// Bezier curves\n\t\t\t//http://manual.graphspace.org/projects/graphspace-python/en/latest/demos/edge-types.html\n\t\t\tvar sourcenode = actions.find(node => node.data._id === branch.source_id || node.data.id === branch.source_id)\n\t\t\tvar destinationnode = actions.find(node => node.data._id === branch.destination_id || node.data.id === branch.destination_id)\n\n\t\t\tif (sourcenode === undefined) {\n\t\t\t\tsourcenode = triggers.find(node => node.data._id === branch.source_id || node.data.id === branch.source_id)\n\t\t\t}\n\n\t\t\tif (destinationnode === undefined) {\n\t\t\t\tdestinationnode = triggers.find(node => node.data._id === branch.destination_id || node.data.id === branch.destination_id)\n\t\t\t}\n\n\t\t\tif (sourcenode !== undefined && destinationnode !== undefined && branch.source_id !== branch.destination_id) { \n\t\t\t\tconst edgeCurve = calculateEdgeCurve(sourcenode.position, destinationnode.position)\n\t\t\t\tedge.style = {\n\t\t\t\t\t'control-point-distance': edgeCurve.distance,\n\t\t\t\t\t'control-point-weight': edgeCurve.weight,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log(\"FAILED node curve handling\")\n\t\t\t}\n\n return edge;\n });\n\n if (\n workflow.visual_branches !== undefined &&\n workflow.visual_branches !== null &&\n workflow.visual_branches.length > 0\n ) {\n const visualedges = workflow.visual_branches.map((branch, index) => {\n const edge = {};\n\n if (workflow.branches[index] === undefined) {\n return {};\n }\n\n var conditions = workflow.branches[index].conditions;\n if (conditions === undefined || conditions === null) {\n conditions = [];\n }\n\n const label = \"Subflow\";\n edge.data = {\n id: branch.id,\n _id: branch.id,\n source: branch.source_id,\n target: branch.destination_id,\n label: label,\n decorator: true,\n };\n\n return edge;\n });\n\n edges = edges.concat(visualedges);\n }\n\n setWorkflow(workflow);\n\n // Verifies if a branch is valid and skips others\n var newedges = [];\n for (var key in edges) {\n var item = edges[key];\n if (item.data === undefined) {\n continue;\n }\n\n const sourcecheck = insertedNodes.find(\n (data) => data.data.id === item.data.source\n );\n const destcheck = insertedNodes.find(\n (data) => data.data.id === item.data.target\n );\n if (sourcecheck === undefined || destcheck === undefined) {\n continue;\n }\n\n newedges.push(item);\n }\n\n insertedNodes = insertedNodes.concat(newedges);\n setElements(insertedNodes);\n };\n\n const removeNode = (nodeId) => {\n const selectedNode = cy.getElementById(nodeId);\n if (selectedNode.data() === undefined) {\n\t\t\tconsole.log(\"No node to remove\")\n return;\n }\n\n\t\t//console.log(\"Removing node: \", selectedNode.data(\"id\"), \"Action: \", selectedAction.id)\n\n\t\t// Get selected node\n\n if (selectedNode.data().type === \"TRIGGER\") {\n console.log(\"Should remove trigger!\");\n console.log(selectedNode.data());\n const triggerindex = workflow.triggers.findIndex(\n (data) => data.id === selectedNode.data().id\n );\n setSelectedTriggerIndex(triggerindex);\n if (selectedNode.data().trigger_type === \"SCHEDULE\") {\n setSelectedTrigger(selectedNode.data());\n stopSchedule(selectedNode.data(), triggerindex);\n } else if (selectedNode.data().trigger_type === \"WEBHOOK\") {\n setSelectedTrigger(selectedNode.data());\n deleteWebhook(selectedNode.data(), triggerindex);\n } else if (selectedNode.data().trigger_type === \"EMAIL\") {\n setSelectedTrigger(selectedNode.data());\n stopMailSub(selectedTrigger, triggerindex);\n }\n }\n\n\t\t//if (selectedNode.data(\"id\") === selectedAction.id) {\n\t\t//\tsetSelectedApp({});\n\t\t//\tsetSelectedAction({});\n //setSelectedTrigger({});\n //setSelectedTriggerIndex({});\n\t\t//}\n\t\tconst parsedSelection = cy.$(\":selected\");\n if (selectedNode.data().decorator === true && selectedNode.data(\"type\") !== \"COMMENT\") {\n alert.info(\"This node can't be deleted.\");\n } else {\n selectedNode.remove();\n }\n\n\t\t// An attempt at NOT unselecting when removing\n\t\t/*\n\t\tsetTimeout(() => {\n\t\t\tif (parsedSelection.data() !== undefined) {\n\t\t\t\tif (parsedSelection.data(\"id\") !== selectedNode.data(\"id\")) {\n\t\t\t\t\tconsole.log(\"SHOULD SELECT SINCE ID IS DIFFERENT\")\n\n\t\t\t\t\tparsedSelection.select()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconsole.log(\"Parsed: \", parsedSelection.data(\"id\"), selectedNode.data(\"id\"))\n\t\t}, 2500)\n\t\t*/\n };\n\n\n\tif (isLoaded && setupSent === false) {\n \tsetSetupSent(true)\n\n\t\tsendStreamRequest({\n\t\t\t\"item\": \"workflow\", \n\t\t\t\"type\": \"enter\", \n\t\t\t\"userid\": userdata.id,\n\t\t})\n\t}\n\n const fetchUsecases = () => {\n fetch(globalUrl + \"/api/v1/workflows/usecases\", {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n\t\t.then((response) => {\n\t\t\tif (response.status !== 200) {\n\t\t\t\tconsole.log(\"Status not 200 for usecases\");\n\t\t\t}\n\n\t\t\treturn response.json();\n\t\t})\n\t\t.then((responseJson) => {\n\t\t\tif (responseJson.success !== false) {\n\t\t\t\tconsole.log(\"Usecases: \", usecases)\n\t\t\t\tsetUsecases(responseJson)\n\t\t\t} else {\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\t//alert.error(\"ERROR: \" + error.toString());\n\t\t\tconsole.log(\"ERROR getting usecases: \" + error.toString());\n\t\t})\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n //useEffect(() => {\n if (firstrequest) {\n setFirstrequest(false);\n getWorkflow(props.match.params.key, {});\n getApps();\n\t\t\tfetchUsecases()\n\n const cursearch =\n typeof window === \"undefined\" || window.location === undefined\n ? \"\"\n : window.location.search;\n\n\t\t\t// FIXME: Don't check specific one here\n\t\t\tconst tmpExec = new URLSearchParams(cursearch).get(\"execution_highlight\");\n if (\n tmpExec !== undefined &&\n tmpExec !== null &&\n tmpExec === \"executions\"\n ) {\n setExecutionModalOpen(true)\n const newitem = removeParam(\"execution_highlight\", cursearch);\n\t\t\t\tnavigate(curpath + newitem)\n //props.history.push(curpath + newitem);\n\t\t\t}\n\n const tmpView = new URLSearchParams(cursearch).get(\"view\");\n if (\n tmpView !== undefined &&\n tmpView !== null &&\n tmpView === \"executions\"\n ) {\n setExecutionModalOpen(true);\n\n const newitem = removeParam(\"view\", cursearch);\n\t\t\t\tnavigate(curpath + newitem)\n\t\t\t\t//navigate(`?execution_highlight=${parsed_url}`)\n //props.history.push(curpath + newitem);\n }\n return;\n }\n\n // App length necessary cus of cy initialization\n if (\n\t\t\t// First load - gets the workflow\n elements.length === 0 &&\n workflow.actions !== undefined &&\n !graphSetup &&\n Object.getOwnPropertyNames(workflow).length > 0\n ) {\n\n setGraphSetup(true);\n setupGraph();\n\t\t\tconsole.log(\"In graph setup\")\n\t\n\t\t// 2nd load - configures cytoscape\n } else if (!established && cy !== undefined && ((apps !== null && apps !== undefined && apps.length > 0) || workflow.public === true) && Object.getOwnPropertyNames(workflow).length > 0 && authLoaded) {\n\t\t\t\n\t\t\tconsole.log(\"In POST graph setup!\")\n\n\n //This part has to load LAST, as it's kind of not async.\n //This means we need everything else to happen first.\n\n setEstablished(true);\n // Validate if the node is just a node lol\n\n\t\t\tconsole.log(\"CY grid: \", cy.gridGuide)\n\n\t\t\t// https://www.npmjs.com/package/cytoscape-grid-guide\n\t\t\t//\n\t\t\tif (cy.gridGuide !== undefined) {\n\t\t\t\tcy.gridGuide({\n\t\t\t\t\tgridSpacing: 30,\n\t\t\t\t\tguidelinesStyle: {\n\t\t\t\t\t\tstrokeStyle: \"#8b7d6b\", \t\t\t\t\t// color of geometric guidelines\n\t\t\t\t\t\tgeometricGuidelineRange: 400, \t\t// range of geometric guidelines\n\t\t\t\t\t\trange: 100, \t\t\t\t\t\t\t\t\t\t\t// max range of distribution guidelines\n\t\t\t\t\t\tminDistRange: 10, \t\t\t\t\t\t\t\t// min range for distribution guidelines\n\t\t\t\t\t\tdistGuidelineOffset: 10, \t\t\t\t\t// shift amount of distribution guidelines\n\t\t\t\t\t\thorizontalDistColor: \"#ff0000\", \t// color of horizontal distribution alignment\n\t\t\t\t\t\tverticalDistColor: \"#00ff00\", \t\t// color of vertical distribution alignment\n\t\t\t\t\t\tinitPosAlignmentColor: \"#0000ff\", // color of alignment to initial mouse location\n\t\t\t\t\t\tlineDash: [0, 0], \t\t\t\t\t\t\t\t// line style of geometric guidelines\n\t\t\t\t\t\thorizontalDistLine: [0, 0], \t\t\t// line style of horizontal distribution guidelines\n\t\t\t\t\t\tverticalDistLine: [0, 0], \t\t\t\t// line style of vertical distribution guidelines\n\t\t\t\t\t\tinitPosAlignmentLine: [0, 0], \t\t// line style of alignment to initial mouse position\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsole.log(\"ERROR: Failed to render grid as it's unitialized\")\n\t\t\t}\n\n\t\t\tif (cy.edgehandles !== undefined) {\n\t\t\t\tconsole.log(\"Inside edgehandles\")\n\t\t\t\tcy.edgehandles({\n\t\t\t\t\thandleNodes: (el) => {\n\t\t\t\t\t\tconsole.log(\"in handlenodes\")\n\n\t\t\t\t\t\tif (el.isNode() &&\n\t\t\t\t\t\t!el.data(\"isButton\") &&\n\t\t\t\t\t\t!el.data(\"isDescriptor\") &&\n\t\t\t\t\t\t!el.data(\"isSuggestion\") &&\n\t\t\t\t\t\tel.data(\"type\") !== \"COMMENT\") {\n\t\t\t\t\t\t\t\treturn true \n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false\n\t\t\t\t\t},\n\t\t\t\t\tpreview: false,\n\t\t\t\t\ttoggleOffOnLeave: true,\n\t\t\t\t\tloopAllowed: function (node) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\t//cy.edgehandles({\n\t\t\t\t//\tpreview: false,\n\t\t\t\t//})\n\n\t\t\t\t//cy.edgehandles().enable()\n\t\t\t} else {\n\t\t\t\tconsole.log(\"ERROR: Failed to initialize edgehandler\")\n\t\t\t}\n // preview: true,\n\n cy.fit(null, 200);\n\n cy.on(\"boxselect\", \"node\", (e) => {\n if (e.target.data(\"isButton\") || e.target.data(\"isDescriptor\") || e.target.data(\"isSuggestion\")) {\n e.target.unselect();\n }\n\n e.target.addClass(\"selected\");\n });\n\n cy.on(\"boxstart\", (e) => {\n console.log(\"START\");\n cy.removeListener(\"select\");\n });\n\n cy.on(\"boxend\", (e) => {\n\t\t\t\tconsole.log(\"END: \", cy)\n\t\t\t\tvar cydata = cy.$(\":selected\").jsons();\n\t\t\t\tif (cydata !== undefined && cydata !== null && cydata.length > 0) {\n \talert.success(`Selected ${cydata.length} element(s). CTRL+C to copy them.`);\n\t\t\t\t}\n });\n\n cy.on(\"select\", \"node\", (e) => {\n \tonNodeSelect(e, appAuthentication);\n });\n cy.on(\"select\", \"edge\", (e) => onEdgeSelect(e));\n\n cy.on(\"unselect\", (e) => onUnselect(e));\n\n cy.on(\"add\", \"node\", (e) => onNodeAdded(e));\n cy.on(\"add\", \"edge\", (e) => onEdgeAdded(e));\n cy.on(\"remove\", \"node\", (e) => onNodeRemoved(e));\n cy.on(\"remove\", \"edge\", (e) => onEdgeRemoved(e));\n\n cy.on(\"mouseover\", \"edge\", (e) => onEdgeHover(e));\n cy.on(\"mouseout\", \"edge\", (e) => onEdgeHoverOut(e));\n cy.on(\"mouseover\", \"node\", (e) => onNodeHover(e));\n cy.on(\"mouseout\", \"node\", (e) => onNodeHoverOut(e));\n\n // Handles dragging\n cy.on(\"drag\", \"node\", (e) => onNodeDrag(e, selectedAction));\n cy.on(\"free\", \"node\", (e) => onNodeDragStop(e, selectedAction));\n\n cy.on(\"cxttap\", \"node\", (e) => onCtxTap(e));\n\n document.title = \"Workflow - \" + workflow.name;\n registerKeys();\n }\n //})\n\n const stopSchedule = (trigger, triggerindex) => {\n fetch(\n `${globalUrl}/api/v1/workflows/${props.match.params.key}/schedule/${trigger.id}`,\n {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for stream results :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n // No matter what, it's being stopped.\n if (!responseJson.success) {\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed to stop schedule: \" + responseJson.reason);\n }\n } else {\n alert.success(\"Successfully stopped schedule\");\n }\n\n workflow.triggers[triggerindex].status = \"stopped\";\n trigger.status = \"stopped\";\n setSelectedTrigger(trigger);\n setWorkflow(workflow);\n saveWorkflow(workflow);\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Stop schedule error: \", error.toString());\n });\n };\n\n const submitSchedule = (trigger, triggerindex) => {\n if (trigger.name.length <= 0) {\n alert.error(\"Error: name can't be empty\");\n return;\n }\n\n\t\tvar mappedStartnode = \"\"\n\t\tconst alledges = cy.edges().jsons()\n\t\tfor (var key in alledges) {\n\t\t\tconst tmp = alledges[key]\n\t\t\tconsole.log(\"TMP: \", tmp, tmp.data.source)\n\t\t\tif (tmp.data.source === trigger.id) {\n\t\t\t\tmappedStartnode = tmp.data.target\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n alert.info(\"Creating schedule with name \" + trigger.name);\n const data = {\n name: trigger.name,\n frequency: workflow.triggers[triggerindex].parameters[0].value,\n execution_argument: workflow.triggers[triggerindex].parameters[1].value,\n environment: workflow.triggers[triggerindex].environment,\n id: trigger.id,\n\t\t\tstart: mappedStartnode,\n }\n\n fetch(\n `${globalUrl}/api/v1/workflows/${props.match.params.key}/schedule`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for stream results :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n alert.error(\"Failed to set schedule: \" + responseJson.reason);\n } else {\n alert.success(\"Successfully created schedule\");\n workflow.triggers[triggerindex].status = \"running\";\n trigger.status = \"running\";\n setSelectedTrigger(trigger);\n setWorkflow(workflow);\n console.log(\"Should set the status to running and save\");\n saveWorkflow(workflow);\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Get schedule error: \", error.toString());\n });\n };\n\n const appViewStyle = {\n marginLeft: 5,\n marginRight: 5,\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: isMobile ? bodyHeight-appBarSize*4 : \"100%\",\n maxHeight: isMobile ? bodyHeight-appBarSize*4 : \"100%\",\n };\n\n const paperAppStyle = {\n borderRadius: theme.palette.borderRadius,\n minHeight: isMobile ? 50 : 100,\n maxHeight: isMobile ? 50 : 100,\n minWidth: isMobile ? 50 : \"100%\",\n maxWidth: isMobile ? 50 : \"100%\",\n marginTop: \"5px\",\n color: \"white\",\n backgroundColor: surfaceColor,\n cursor: \"pointer\",\n display: \"flex\",\n };\n\n const paperVariableStyle = {\n borderRadius: theme.palette.borderRadius,\n minHeight: 50,\n maxHeight: 50,\n minWidth: \"100%\",\n maxWidth: \"100%\",\n marginTop: \"5px\",\n color: \"white\",\n backgroundColor: surfaceColor,\n cursor: \"pointer\",\n display: \"flex\",\n };\n\n const VariablesView = () => {\n const [open, setOpen] = React.useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const menuClick = (event) => {\n setOpen(!open);\n setAnchorEl(event.currentTarget);\n };\n\n const deleteVariable = (variableIndex) => {\n //console.log(\"Delete:\", variableName);\n\t\t\tif (workflow.workflow_variables !== undefined && workflow.workflow_variables !== null && workflow.workflow_variables.length > variableIndex) {\n\t\t\t\tworkflow.workflow_variables.splice(variableIndex, 1)\n\t\t\t}\n\n //workflow.workflow_variables = workflow.workflow_variables.filter(\n // (data) => data.name !== variableName\n //);\n setWorkflow(workflow);\n };\n\n const deleteExecutionVariable = (variableIndex) => {\n\t\t\tif (workflow.execution_variables !== undefined && workflow.execution_variables !== null && workflow.execution_variables.length > variableIndex) {\n\t\t\t\tworkflow.execution_variables.splice(variableIndex, 1)\n\t\t\t}\n\n //workflow.execution_variables = workflow.execution_variables.filter(\n // (data) => data.name !== variableName\n //);\n setWorkflow(workflow);\n };\n\n const variableScrollStyle = {\n margin: 15,\n overflow: \"scroll\",\n height: isMobile ? \"100%\" : \"66vh\",\n overflowX: \"auto\",\n overflowY: \"auto\",\n flex: \"10\",\n };\n\n return (\n
\n
\n What are{\" \"}\n \n WORKFLOW variables?\n \n {workflow.workflow_variables === null\n ? null\n : workflow.workflow_variables.map((variable, index) => {\n return (\n
\n {}}>\n \n
\n {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetVariableInfo({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": variable.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"description\": variable.description,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"value\": variable.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n setVariablesModalOpen(true);\n }}\n >\n Name: {variable.name}\n
\n
\n \n \n \n {\n setOpen(false);\n setAnchorEl(null);\n }}\n >\n {\n setOpen(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetVariableInfo({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": variable.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"description\": variable.description,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"value\": variable.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n setVariablesModalOpen(true);\n }}\n key={\"Edit\"}\n >\n {\"Edit\"}\n \n {\n deleteVariable(index);\n setOpen(false);\n }}\n key={\"Delete\"}\n >\n {\"Delete\"}\n \n \n
\n
\n \n
\n );\n })}\n
\n {\n setVariablesModalOpen(true);\n setLastSaved(false);\n }}\n >\n New workflow variable\n \n
\n \n What are{\" \"}\n \n EXECUTION variables?\n \n {workflow.execution_variables === null ||\n workflow.execution_variables === undefined\n ? null\n : workflow.execution_variables.map((variable, index) => {\n return (\n
\n {}}>\n \n
\n {\n //setNewVariableName(variable.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetVariableInfo({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": variable.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"description\": variable.description,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"value\": variable.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n setExecutionVariablesModalOpen(true);\n }}\n >\n Name: {variable.name}\n
\n
\n \n \n \n {\n setOpen(false);\n setAnchorEl(null);\n }}\n >\n {\n setOpen(false);\n //setNewVariableName(variable.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetVariableInfo({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": variable.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"description\": variable.description,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"value\": variable.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n setExecutionVariablesModalOpen(true);\n }}\n key={\"Edit\"}\n >\n {\"Edit\"}\n \n {\n deleteExecutionVariable(index);\n setOpen(false);\n }}\n key={\"Delete\"}\n >\n {\"Delete\"}\n \n \n
\n
\n \n
\n );\n })}\n
\n {\n setExecutionVariablesModalOpen(true);\n setLastSaved(false);\n }}\n >\n New execution variable\n \n
\n
\n
\n );\n };\n\n const handleSetTab = (event, newValue) => {\n setCurrentView(newValue);\n };\n\n const HandleLeftView = () => {\n // Defaults to apps.\n var thisview = (\n \n );\n if (currentView === 1) {\n thisview = ;\n } else if (currentView === 2) {\n thisview = ;\n }\n\n const tabStyle = {\n maxWidth: isMobile ? leftBarSize : leftBarSize / 3,\n minWidth: isMobile ? leftBarSize : leftBarSize / 3,\n flex: 1,\n textTransform: \"none\",\n };\n\n const iconStyle = {\n marginTop: 3,\n marginRight: 5,\n };\n\n\t\tconst parsedHeight = isMobile ? bodyHeight - appBarSize*4 : bodyHeight - appBarSize - 50\n return (\n
\n \n {thisview}\n
\n \n \n \n \n \n \n {isMobile ? null : Apps}\n \n }\n style={tabStyle}\n />\n \n \n \n \n {isMobile ? null : Triggers}\n \n }\n style={tabStyle}\n />\n \n \n \n \n {isMobile ? null : Variables}\n \n }\n style={tabStyle}\n />\n \n \n );\n };\n\n const triggers = [\n {\n name: \"Webhook\",\n type: \"TRIGGER\",\n status: \"uninitialized\",\n trigger_type: \"WEBHOOK\",\n errors: null,\n large_image:\n \"data:image/png;base64,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\",\n is_valid: true,\n label: \"Webhook\",\n environment: \"onprem\",\n description: \"Custom HTTP input\",\n long_description: \"Execute a workflow with an unauthicated POST request\",\n },\n {\n name: \"Schedule\",\n type: \"TRIGGER\",\n status: \"uninitialized\",\n description: \"Specify time\",\n trigger_type: \"SCHEDULE\",\n errors: null,\n large_image:\n \"data:image/png;base64,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\",\n label: \"Schedule\",\n is_valid: true,\n environment: \"onprem\",\n long_description: \"Create a schedule based on cron\",\n },\n {\n name: \"Shuffle Workflow\",\n type: \"TRIGGER\",\n status: \"uninitialized\",\n trigger_type: \"SUBFLOW\",\n errors: null,\n large_image:\n \"data:image/png;base64,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\",\n is_valid: true,\n label: \"Subflow\",\n environment: \"onprem\",\n description: \"Control a workflow\",\n long_description: \"Execute another workflow from this workflow\",\n },\n {\n name: \"User Input\",\n type: \"TRIGGER\",\n status: \"running\",\n large_image:\n \"data:image/png;base64,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\",\n description: \"Wait for user input\",\n trigger_type: \"USERINPUT\",\n errors: null,\n is_valid: cloudSyncEnabled || isCloud ? true : false,\n label: \"User input\",\n environment: \"cloud\",\n long_description: \"Take user input to continue execution\",\n },\n {\n name: \"Office365\",\n type: \"TRIGGER\",\n status: \"uninitialized\",\n description: \"O365 email trigger\",\n trigger_type: \"EMAIL\",\n errors: null,\n is_valid: isCloud ? true : false,\n label: \"Email\",\n environment: \"cloud\",\n large_image:\n \"data:image/jpg;base64,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\",\n long_description: \"Execute a workflow when you get an email\",\n },\n {\n name: \"Gmail\",\n type: \"TRIGGER\",\n status: \"uninitialized\",\n description: \"Gmail email trigger\",\n trigger_type: \"EMAIL\",\n errors: null,\n is_valid: isCloud ? true : false,\n label: \"Email\",\n environment: \"cloud\",\n large_image:\n \"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/hAzFodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTIyMjgyMEYwMDJDMTFFQkJBOEE5OUJBM0MzMTA2RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTIyMjgyMTAwMDJDMTFFQkJBOEE5OUJBM0MzMTA2RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQTMwMDQxRTAwMEUxMUVCQkE4QTk5QkEzQzMxMDZEMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMjIyODIwRTAwMkMxMUVCQkE4QTk5QkEzQzMxMDZEMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/bAEMAAwICAwICAwMCAwMDAwMEBwUEBAQECQYHBQcKCQsL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\",\n long_description: \"Execute a workflow when you get an email\",\n },\n ];\n\n const TriggersView = () => {\n const triggersViewStyle = {\n marginLeft: \"10px\",\n marginRight: \"10px\",\n display: \"flex\",\n flexDirection: \"column\",\n };\n\n // Predefined hurr\n\n return (\n
\n
\n {triggers.map((trigger, index) => {\n var imageline =\n trigger.large_image.length === 0 ? (\n \"\"\n ) : (\n \n );\n\n const color = trigger.is_valid ? green : yellow;\n return (\n {\n handleTriggerDrag(e, trigger);\n }}\n onStop={(e) => {\n handleDragStop(e);\n }}\n dragging={false}\n position={{\n x: 0,\n y: 0,\n }}\n >\n {}}>\n
\n \n \n {imageline}\n \n\t\t\t\t\t\t\t\t\t\t{isMobile ? null : \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{trigger.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{trigger.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n \n \n );\n })}\n
\n \n );\n };\n\n var newNodeId = \"\";\n var parsedApp = {};\n const handleTriggerDrag = (e, data) => {\n const cycontainer = cy.container();\n // Chrome lol\n if (\n e.pageX > cycontainer.offsetLeft &&\n e.pageX < cycontainer.offsetLeft + cycontainer.offsetWidth &&\n e.pageY > cycontainer.offsetTop &&\n e.pageY < cycontainer.offsetTop + cycontainer.offsetHeight\n ) {\n if (newNodeId.length > 0) {\n var currentnode = cy.getElementById(newNodeId);\n if (currentnode.length === 0) {\n return;\n }\n\n currentnode[0].renderedPosition(\"x\", e.pageX - cycontainer.offsetLeft);\n currentnode[0].renderedPosition(\"y\", e.pageY - cycontainer.offsetTop);\n } else {\n if (workflow.start === \"\" || workflow.start === undefined) {\n alert.error(\"Define a starting action first.\");\n return;\n }\n\n const triggerLabel = getNextActionName(data.name);\n\n newNodeId = uuidv4();\n const newposition = {\n x: e.pageX - cycontainer.offsetLeft,\n y: e.pageY - cycontainer.offsetTop,\n };\n\n const newAppData = {\n app_name: data.name,\n app_version: \"1.0.0\",\n environment: isCloud ? \"cloud\" : data.environment,\n description: data.description,\n long_description: data.long_description,\n errors: [],\n id_: newNodeId,\n _id_: newNodeId,\n id: newNodeId,\n finished: false,\n label: triggerLabel,\n type: data.type,\n is_valid: true,\n trigger_type: data.trigger_type,\n large_image: data.large_image,\n status: \"uninitialized\",\n name: data.name,\n isStartNode: false,\n position: newposition,\n };\n\n // Can all the data be in here? hmm\n const nodeToBeAdded = {\n group: \"nodes\",\n data: newAppData,\n renderedPosition: newposition,\n };\n\n cy.add(nodeToBeAdded);\n parsedApp = nodeToBeAdded;\n return;\n }\n }\n };\n\n const handleDragStop = (e, app) => {\n var currentnode = cy.getElementById(newNodeId);\n if (\n currentnode === undefined ||\n currentnode === null ||\n currentnode.length === 0\n ) {\n return;\n }\n\n // Using remove & replace, as this triggers the function\n // onNodeAdded() with this node after it's added\n\n currentnode.remove();\n parsedApp.data.finished = true;\n parsedApp.data.position = currentnode.renderedPosition();\n parsedApp.position = currentnode.renderedPosition();\n parsedApp.renderedPosition = currentnode.renderedPosition();\n\n var newAppData = parsedApp.data;\n if (newAppData.type === \"ACTION\") {\n\t\n\t\t\t//const activateApp = (appid) => {\n\t\t\tif (newAppData.activated === false) {\n\t\t\t\tconsole.log(\"SHOULD ACTIVATE!\")\n\t\t\t\tactivateApp(newAppData.app_id, false) \n\t\t\t}\n\n // AUTHENTICATION\n if (app.authentication !== undefined && app.authentication !== null && app.authentication.required === true) {\n\t\t\t\tconsole.log(\"App auth is required!\")\n\n // Setup auth here :)\n const authenticationOptions = [];\n var findAuthId = \"\";\n if (\n newAppData.authentication_id !== null &&\n newAppData.authentication_id !== undefined &&\n newAppData.authentication_id.length > 0\n ) {\n findAuthId = newAppData.authentication_id;\n }\n\n const tmpAuth = JSON.parse(JSON.stringify(appAuthentication));\n for (var key in tmpAuth) {\n var item = tmpAuth[key];\n\n const newfields = {};\n for (var filterkey in item.fields) {\n newfields[item.fields[filterkey].key] = item.fields[filterkey].value;\n }\n\n item.fields = newfields;\n if (item.app.id === app.id || item.app.name === app.name) {\n authenticationOptions.push(item);\n\n\t\t\t\t\t\tif (item.id === findAuthId) {\n\t\t\t\t\t\t\tnewAppData.selectedAuthentication = item\n\t\t\t\t\t\t\tnewAppData.authentication_id = item.id\n\n\t\t\t\t\t\t} else if (findAuthId === \"\") {\n\t\t\t\t\t\t\t// Will always be set to the last one if one isn't found. \n\t\t\t\t\t\t\t// Last = timestamp too\n\t\t\t\t\t\t\tnewAppData.selectedAuthentication = item\n\t\t\t\t\t\t\tnewAppData.authentication_id = item.id\n\t\t\t\t\t\t}\n }\n }\n\n if (\n authenticationOptions !== undefined &&\n authenticationOptions !== null &&\n authenticationOptions.length > 0\n ) {\n for (var key in authenticationOptions) {\n const option = authenticationOptions[key];\n\n if (option.active && newAppData.authentication_id === \"\") {\n newAppData.selectedAuthentication = option;\n newAppData.authentication_id = option.id;\n break;\n }\n }\n }\n } else {\n newAppData.authentication = [];\n newAppData.authentication_id = \"\";\n newAppData.selectedAuthentication = {};\n }\n\n parsedApp.data = newAppData;\n cy.add(parsedApp);\n } else if (newAppData.type === \"TRIGGER\") {\n cy.add(parsedApp);\n }\n\n newNodeId = \"\";\n parsedApp = {};\n };\n\n const appScrollStyle = {\n overflow: \"scroll\",\n maxHeight: isMobile ? bodyHeight-appBarSize*4 : bodyHeight - appBarSize - 55 - 50,\n minHeight: isMobile ? bodyHeight-appBarSize*4 : bodyHeight - appBarSize - 55 - 50,\n marginTop: 1,\n overflowY: \"auto\",\n overflowX: \"hidden\",\n };\n\n const handleAppDrag = (e, app) => {\n const cycontainer = cy.container();\n\n\t\t//console.log(\"e: \", e)\n\t\t//console.log(\"Offset: \", cycontainer)\n\n // Chrome lol\n if (\n e.pageX > cycontainer.offsetLeft &&\n e.pageX < cycontainer.offsetLeft + cycontainer.offsetWidth &&\n e.pageY > cycontainer.offsetTop &&\n e.pageY < cycontainer.offsetTop + cycontainer.offsetHeight\n ) {\n if (newNodeId.length > 0) {\n var currentnode = cy.getElementById(newNodeId);\n if (\n currentnode === undefined ||\n currentnode === null ||\n currentnode.length === 0\n ) {\n return;\n }\n\n currentnode[0].renderedPosition(\"x\", e.pageX - cycontainer.offsetLeft);\n currentnode[0].renderedPosition(\"y\", e.pageY - cycontainer.offsetTop);\n } else {\n if (workflow.public) {\n console.log(\"workflow is public - not adding\");\n return;\n }\n\n if (\n app.actions === undefined ||\n app.actions === null ||\n app.actions.length === 0\n ) {\n alert.error(\n \"App \" +\n app.name +\n \" currently has no actions to perform. Please go to https://shuffler.io/apps to edit it.\"\n );\n return;\n }\n\n newNodeId = uuidv4();\n const actionType = \"ACTION\";\n const actionLabel = getNextActionName(app.name);\n var parameters = null;\n var example = \"\";\n\t\t\t\tvar description = \"\"\n\n if (\n app.actions[0].parameters !== undefined &&\n app.actions[0].parameters !== null &&\n app.actions[0].parameters.length > 0\n ) {\n parameters = app.actions[0].parameters;\n }\n\n if (\n\t\t\t\t\tapp.actions[0].returns !== undefined &&\n\t\t\t\t\tapp.actions[0].returns !== null &&\n app.actions[0].returns.example !== undefined &&\n app.actions[0].returns.example !== null &&\n app.actions[0].returns.example.length > 0\n ) {\n example = app.actions[0].returns.example;\n }\n\n if (\n app.actions[0].description !== undefined &&\n app.actions[0].description !== null &&\n app.actions[0].description.length > 0\n ) {\n\t\t\t\t\tdescription = app.actions[0].description\n }\n\n const parsedEnvironments =\n environments === null || environments === []\n ? \"cloud\"\n : environments[defaultEnvironmentIndex] === undefined\n ? \"cloud\"\n : environments[defaultEnvironmentIndex].Name;\n\n \t// activated: app.generated === true ? app.activated === false ? false : true : true,\n const newAppData = {\n app_name: app.name,\n app_version: app.app_version,\n app_id: app.id,\n sharing: app.sharing,\n private_id: app.private_id,\n\t\t\t\t\tdescription: description,\n environment: parsedEnvironments,\n errors: [],\n\t\t\t\t\tfinished: false,\n id_: newNodeId,\n _id_: newNodeId,\n id: newNodeId,\n is_valid: true,\n label: actionLabel,\n type: actionType,\n name: app.actions[0].name,\n parameters: parameters,\n isStartNode: false,\n large_image: app.large_image,\n\t\t\t\t\trun_magic_output: false,\n authentication: [],\n execution_variable: undefined,\n example: example,\n category:\n app.categories !== null &&\n app.categories !== undefined &&\n app.categories.length > 0\n ? app.categories[0]\n : \"\",\n authentication_id: \"\",\n finished: false,\n\t\t\t\t\ttemplate: app.template === true ? true : false, \n };\n\n // FIXME: overwrite category if the ACTION chosen has a different category\n\n // const image = \"url(\"+app.large_image+\")\"\n // FIXME - find the cytoscape offset position\n // Can this be done with zoom calculations?\n const nodeToBeAdded = {\n group: \"nodes\",\n data: newAppData,\n renderedPosition: {\n x: e.pageX - cycontainer.offsetLeft,\n y: e.pageY - cycontainer.offsetTop,\n },\n };\n\n parsedApp = nodeToBeAdded;\n cy.add(nodeToBeAdded);\n return;\n }\n }\n };\n\n const AppView = (props) => {\n const { allApps, prioritizedApps, filteredApps, extraApps } = props;\n \t//extraApps,\n const [visibleApps, setVisibleApps] = React.useState(\n\t\t\tArray.prototype.concat.apply(\n \tprioritizedApps,\n filteredApps.filter((innerapp) => !internalIds.includes(innerapp.id)),\n )\n );\n\n\t\tvar delay = -75\n\t\tvar runDelay = false\n\n const ParsedAppPaper = (props) => {\n const app = props.app;\n const [hover, setHover] = React.useState(false);\n\n const maxlen = 24;\n var newAppname = app.name;\n newAppname = newAppname.charAt(0).toUpperCase() + newAppname.substring(1);\n if (newAppname.length > maxlen) {\n newAppname = newAppname.slice(0, maxlen) + \"..\";\n }\n\n newAppname = newAppname.replaceAll(\"_\", \" \");\n\n const image = app.large_image;\n const newAppStyle = JSON.parse(JSON.stringify(paperAppStyle));\n const pixelSize = !hover ? \"2px\" : \"4px\";\n //newAppStyle.borderLeft = app.is_valid && app.actions !== null && app.actions !== undefined && app.actions.length > 0 && !(app.activated && app.generated)\n newAppStyle.borderLeft = app.is_valid && app.actions !== null && app.actions !== undefined && app.actions.length > 0 \n ? `${pixelSize} solid ${green}`\n : `${pixelSize} solid ${yellow}`;\n\n\t\t\tif (!app.activated && app.generated) {\n newAppStyle.borderLeft = `${pixelSize} solid ${yellow}`;\n\t\t\t}\n\n return (\n {\n handleAppDrag(e, app);\n }}\n onStop={(e) => {\n handleDragStop(e, app);\n }}\n key={app.id}\n dragging={false}\n position={{\n x: 0,\n y: 0,\n }}\n >\n {\n setHover(true);\n }}\n onMouseOut={() => {\n setHover(false);\n }}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isMobile) {\n \t\t\t\tnewNodeId = uuidv4();\n \t\t\t\tconst actionType = \"ACTION\";\n \t\t\t\tconst actionLabel = getNextActionName(app.name);\n \t\t\t\tvar parameters = null;\n \t\t\t\tvar example = \"\";\n\t\t\t\t\t\t\t\tvar description = \"\"\n\n \t\t\t\tif (\n \t\t\t\t app.actions[0].parameters !== null &&\n \t\t\t\t app.actions[0].parameters.length > 0\n \t\t\t\t) {\n \t\t\t\t parameters = app.actions[0].parameters;\n \t\t\t\t}\n\n \t\t\t\tif (\n \t\t\t\t app.actions[0].returns.example !== undefined &&\n \t\t\t\t app.actions[0].returns.example !== null &&\n \t\t\t\t app.actions[0].returns.example.length > 0\n \t\t\t\t) {\n \t\t\t\t example = app.actions[0].returns.example;\n \t\t\t\t}\n\n \t\t\t\tif (\n \t\t\t\t app.actions[0].description !== undefined &&\n \t\t\t\t app.actions[0].description !== null &&\n \t\t\t\t app.actions[0].description.length > 0\n \t\t\t\t) {\n\t\t\t\t\t\t\t\t\tdescription = app.actions[0].description\n \t\t\t\t}\n\n \t\t\t\tconst parsedEnvironments =\n \t\t\t\t environments === null || environments === []\n \t\t\t\t ? \"cloud\"\n \t\t\t\t : environments[defaultEnvironmentIndex] === undefined\n \t\t\t\t ? \"cloud\"\n \t\t\t\t : environments[defaultEnvironmentIndex].Name;\n\n \t\t\t\t\t// activated: app.generated === true ? app.activated === false ? false : true : true,\n \t\t\t\tconst newAppData = {\n \t\t\t\t app_name: app.name,\n \t\t\t\t app_version: app.app_version,\n \t\t\t\t app_id: app.id,\n \t\t\t\t sharing: app.sharing,\n \t\t\t\t private_id: app.private_id,\n\t\t\t\t\t\t\t\t\tdescription: description,\n \t\t\t\t environment: parsedEnvironments,\n \t\t\t\t errors: [],\n\t\t\t\t\t\t\t\t\tfinished: false,\n \t\t\t\t id_: newNodeId,\n \t\t\t\t _id_: newNodeId,\n \t\t\t\t id: newNodeId,\n \t\t\t\t is_valid: true,\n \t\t\t\t label: actionLabel,\n \t\t\t\t type: actionType,\n \t\t\t\t name: app.actions[0].name,\n \t\t\t\t parameters: parameters,\n \t\t\t\t isStartNode: false,\n \t\t\t\t large_image: app.large_image,\n\t\t\t\t\t\t\t\t\trun_magic_output: false,\n \t\t\t\t authentication: [],\n \t\t\t\t execution_variable: undefined,\n \t\t\t\t example: example,\n \t\t\t\t category:\n \t\t\t\t app.categories !== null &&\n \t\t\t\t app.categories !== undefined &&\n \t\t\t\t app.categories.length > 0\n \t\t\t\t ? app.categories[0]\n \t\t\t\t : \"\",\n \t\t\t\t authentication_id: \"\",\n \t\t\t\t finished: false,\n \t\t\t\t};\n\n\t\t\t\t\t\t\t\tconst nodeToBeAdded = {\n \t\t\t\t group: \"nodes\",\n \t\t\t\t data: newAppData,\n \t\t\t\t renderedPosition: {\n \t\t\t\t x: 100,\n \t\t\t\t y: 100,\n \t\t\t\t },\n \t\t\t\t};\n\n \t\t\t\tparsedApp = nodeToBeAdded;\n \t\t\t\tcy.add(nodeToBeAdded);\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n >\n \n \n \n \n\t\t\t\t\t\t\t{isMobile ? null : \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{newAppname}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tVersion: {app.app_version}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{app.description}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n \n
\n \n );\n };\n\n const runSearch = (value) => {\n if (value.length > 0) {\n var newApps = allApps.filter(\n (app) =>\n app.name.toLowerCase().includes(value.trim().toLowerCase())\n\t\t\t\t\t\t||\n app.description.toLowerCase().includes(value.trim().toLowerCase())\n )\n\n // Extend search\n if (newApps.length === 0) {\n const searchvalue = value.trim().toLowerCase();\n newApps = allApps.filter((app) => {\n for (var key in app.actions) {\n const inneraction = app.actions[key];\n if (inneraction.name.toLowerCase().includes(searchvalue)) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n setVisibleApps(newApps);\n } else {\n setVisibleApps(\n prioritizedApps.concat(\n filteredApps.filter(\n (innerapp) => !internalIds.includes(innerapp.id)\n )\n )\n );\n }\n };\n\n\t\tconst SearchBox = ({currentRefinement, refine, isSearchStalled, } ) => {\n\n\t\t\tuseEffect(() => {\n\t\t\t\tif (document !== undefined) {\n\t\t\t\t\tconst appsearchValue = document.getElementById(\"appsearch\")\n\t\t\t\t\tif (appsearchValue !== undefined && appsearchValue !== null) {\n\t\t\t\t\t\tconsole.log(\"Value2: \", appsearchValue.value)\n\t\t\t\t\t\tif (appsearchValue.value !== undefined && appsearchValue.value !== null && appsearchValue.value.length > 0) {\n\t\t\t\t\t\t\trefine(appsearchValue.value)\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//}\n\t\t\t\t}\n\t\t\t}, [])\n\n\t\t\treturn (\n\t\t\t
{\n\t\t\t\t}}>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tautoComplete='off'\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tplaceholder=\"Find Public Apps, Workflows, Documentation and more\"\n\t\t\t\t\t\tvalue={currentRefinement}\n\t\t\t\t\t\tid=\"shuffle_search_field\"\n\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\tconsole.log(\"Click!\")\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonBlur={(event) => {\n\t\t\t\t\t\t\t//setSearchOpen(false)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t//if (event.currentTarget.value.length > 0 && !searchOpen) {\n\t\t\t\t\t\t\t//\tsetSearchOpen(true)\n\t\t\t\t\t\t\t//}\n\n\t\t\t\t\t\t\trefine(event.currentTarget.value)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlimit={5}\n\t\t\t\t\t/>\n\t\t\t\t\t{/*isSearchStalled ? 'My search is stalled' : ''*/}\n\t\t\t\t\n\t\t\t)\n\t\t}\n\n\n\t\tconst AppHits = ({ hits }) => {\n\t\t\tconst [mouseHoverIndex, setMouseHoverIndex] = useState(0) \n\n\t\t\t//var tmp = searchOpen\n\t\t\t//if (!searchOpen) {\n\t\t\t//\treturn null\n\t\t\t//}\n\n\t\t\tconst positionInfo = document.activeElement.getBoundingClientRect()\n\t\t\tconst outerlistitemStyle = {\n\t\t\t\twidth: \"100%\",\n\t\t\t\toverflowX: \"hidden\",\n\t\t\t\toverflowY: \"hidden\",\n\t\t\t\tborderBottom: \"1px solid rgba(255,255,255,0.4)\",\n\t\t\t}\n\n\t\t\tif (hits.length > 4) {\n\t\t\t\thits = hits.slice(0, 4)\n\t\t\t}\n\t\t\t\n\t\t\tvar type = \"app\"\n\t\t\tconst baseImage = \n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{hits.length === 0 ?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t console.log(hits)}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\thits.map((hit, index) => {\n\t\t\t\t\t\t\t\tconst innerlistitemStyle = {\n\t\t\t\t\t\t\t\t\twidth: positionInfo.width+35,\n\t\t\t\t\t\t\t\t\toverflowX: \"hidden\",\n\t\t\t\t\t\t\t\t\toverflowY: \"hidden\",\n\t\t\t\t\t\t\t\t\tborderBottom: \"1px solid rgba(255,255,255,0.4)\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: mouseHoverIndex === index ? \"#1f2023\" : \"inherit\",\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tmarginLeft: 0, \n\t\t\t\t\t\t\t\t\tmarginRight: 0,\n\t\t\t\t\t\t\t\t\tmaxHeight: 75,\n\t\t\t\t\t\t\t\t\tminHeight: 75,\n\t\t\t\t\t\t\t\t\tmaxWidth: 420,\n\t\t\t\t\t\t\t\t\tminWidth: \"100%\", \n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst name = hit.name === undefined ? \n\t\t\t\t\t\t\t\t\thit.filename.charAt(0).toUpperCase() + hit.filename.slice(1).replaceAll(\"_\", \" \") + \" - \" + hit.title : \n\t\t\t\t\t\t\t\t\t(hit.name.charAt(0).toUpperCase()+hit.name.slice(1)).replaceAll(\"_\", \" \")\n\n\t\t\t\t\t\t\t\tvar secondaryText = hit.data !== undefined ? hit.data.slice(0, 40)+\"...\" : \"\"\n\t\t\t\t\t\t\t\tconst avatar = hit.image_url === undefined ? \n\t\t\t\t\t\t\t\t\tbaseImage\n\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t//console.log(hit)\n\t\t\t\t\t\t\t\tif (hit.categories !== undefined && hit.categories !== null && hit.categories.length > 0) {\n\t\t\t\t\t\t\t\t\tsecondaryText = hit.categories.slice(0,3).map((data, index) => {\n\t\t\t\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn data\n\t\t\t\t\t\t\t\t\t\t} \n\n\t\t\t\t\t\t\t\t\t\treturn \", \"+data\n\n\t\t\t\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//handleChipClick\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar parsedUrl = isCloud ? `/apps/${hit.objectID}` : `https://shuffler.io/apps/${hit.objectID}`\n\t\t\t\t\t\t\t\tparsedUrl += `?queryID=${hit.__queryID}`\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t//if (!isCloud) {\n\t\t\t\t\t\t\t\t\t\t//\talert.info(\"Since this is an on-prem instance. You will need to activate the app yourself. Opening link to download it in a new window.\")\n\t\t\t\t\t\t\t\t\t\t//\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t//\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\t\t//\t\twindow.open(parsedUrl, '_blank')\n\t\t\t\t\t\t\t\t\t\t//\t}, 2000)\n\t\t\t\t\t\t\t\t\t\t//} else {\n\t\t\t\t\t\t\t\t\t\talert.info(`Activating ${name}`)\n\t\t\t\t\t\t\t\t\t\t//}\n\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"CLICK: \", hit)\n\n\t\t\t\t\t\t\t\t\t\tconst queryID = hit.__queryID\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"QUERY: \", queryID)\n\n\t\t\t\t\t\t\t\t\t\tif (queryID !== undefined && queryID !== null) {\n\t\t\t\t\t\t\t\t\t\t\taa('init', {\n\t\t\t\t\t\t\t\t\t\t\t\t\tappId: \"JNSS5CFDZZ\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tapiKey: \"db08e40265e2941b9a7d8f644b6e5240\",\n\t\t\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\t\t\tconst timestamp = new Date().getTime()\n\t\t\t\t\t\t\t\t\t\t\taa('sendEvents', [\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\teventType: 'conversion',\n\t\t\t\t\t\t\t\t\t\t\t\t\teventName: 'Public App Activated',\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex: 'appsearch',\n\t\t\t\t\t\t\t\t\t\t\t\t\tobjectIDs: [hit.objectID],\n\t\t\t\t\t\t\t\t\t\t\t\t\ttimestamp: timestamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tqueryID: queryID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tuserToken: userdata === undefined || userdata === null || userdata.id === undefined ? \"unauthenticated\" : userdata.id,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"No query to handle when activating\")\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tactivateApp(hit.objectID, true)\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetMouseHoverIndex(index)\t\n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/*\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)})\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)\n\t\t}\n\n\t\n\t\tconst CustomSearchBox = connectSearchBox(SearchBox)\n\t\tconst CustomAppHits = connectHits(AppHits)\n\n return (\n
\n
\n \n \n \n \n \n ),\n }}\n fullWidth\n color=\"primary\"\n placeholder={\"Search Active Apps\"}\n id=\"appsearch\"\n onKeyPress={(event) => {\n if (event.key === \"Enter\") {\n event.target.blur(event);\n }\n }}\n onBlur={(event) => {\n\n\t\t\t\t\t\t\t//navigate(`?q=${event.target.value}`)\n\n runSearch(event.target.value);\n }}\n />\n {visibleApps.length > extraApps.length ? (\n
\n {visibleApps.map((app, index) => {\n if (app.invalid) {\n return null;\n }\n\n\t\t\t\t\t\t\t\tvar extraMessage = \"\"\n\t\t\t\t\t\t\t\tif (index == 2) {\n\t\t\t\t\t\t\t\t\textraMessage =
\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdelay += 75\n return (\n\t\t\t\t\t\t\t\t\trunDelay ? \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{extraMessage}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n })}\n
\n ) : apps.length > 0 ? (\n {\n\t\t\t\t\t\t\t\tconsole.log(\"Should load in extra apps?\")\n\t\t\t\t\t\t\t}}\n >\n \n Couldn't find the app you're looking for? Searching unactivated apps. Click one of the below apps to Activate it for your organization. \n \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconsole.log(\"CLICKED\")\t\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n
\n ) : (\n
\n \n \n Loading Apps\n \n
\n )}\n
\n
\n );\n };\n\n const getNextActionName = (appName) => {\n var highest = \"\";\n\n const allitems = workflow.actions.concat(workflow.triggers);\n for (var key in allitems) {\n const item = allitems[key];\n if (\n item.app_name === appName &&\n item.label !== undefined &&\n item.label !== null\n ) {\n var number = item.label.split(\"_\");\n if (\n isNaN(number[-1]) &&\n parseInt(number[number.length - 1]) > highest\n ) {\n highest = number[number.length - 1];\n }\n }\n }\n\n\t\tappName = appName.replaceAll(\" \", \"_\")\n\n if (highest) {\n return appName + \"_\" + (parseInt(highest) + 1);\n } else {\n return appName + \"_\" + 1;\n }\n };\n\n const setNewSelectedAction = (e) => {\n\t\tif (selectedApp.actions === undefined || selectedApp.actions === null) {\n\t\t\treturn\n\t\t}\n\n const newaction = selectedApp.actions.find(\n (a) => a.name === e.target.value\n );\n\n if (newaction === undefined || newaction === null) {\n alert.error(\"Failed to find the action\");\n return;\n }\n\n\t\tif (workflow.actions !== undefined && workflow.actions !== null) {\n\t\t\tconst foundInfo = workflow.actions.find(ac => ac.id === selectedAction.id)\n\t\t}\n\n\t\t// Setting an old reference just to use the same memory space elsewhere \n\t\t// for selectedAction\n\t\tconst oldaction = JSON.parse(JSON.stringify(selectedAction))\n\n // Does this one find the wrong one?\n //var newSelectedAction = JSON.parse(JSON.stringify(selectedAction))\n var newSelectedAction = selectedAction\n newSelectedAction.name = newaction.name;\n newSelectedAction.parameters = JSON.parse(JSON.stringify(newaction.parameters))\n newSelectedAction.errors = [];\n newSelectedAction.isValid = true;\n newSelectedAction.is_valid = true;\n\t\t//console.log(newSelectedAction)\n\n\t\t// Simmple action swap autocompleter\n\t\tif (oldaction.parameters !== undefined && newSelectedAction.parameters !== undefined && oldaction.id === newSelectedAction.id) {\n\t\t\tvar fileid_found = false\n\t\t\tfor (var paramkey in oldaction.parameters) {\n\t\t\t\tconst param = oldaction.parameters[paramkey];\n\t\t\t\n\t\t\t\tif (param.name === \"file_id\") {\n\t\t\t\t\tfileid_found = true\n\t\t\t\t}\n\n\t\t\t\tif (param.value === null || param.value === undefined || param.value.length === 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (param.name === \"body\") {\n\t\t\t\t\t//console.log(\"Param: \", param)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (param.name === \"headers\") {\n\t\t\t\t\tconsole.log(\"Swap header? For now, yes. File found: \", fileid_found)\n\n\t\t\t\t\tif (fileid_found) {\n\t\t\t\t\t\tnewSelectedAction.parameters[paramkey].value = \"\"\n\t\t\t\t\t\tnewSelectedAction.parameters[paramkey].autocompleted = true\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t//newSelectedAction.parameters[newParamIndex].value = param.value\n\t\t\t\t}\n\n\t\t\t\tif (newSelectedAction.parameters === undefined || newSelectedAction.parameters === null) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Not doing options fields\n\t\t\t\tconst newParamIndex = newSelectedAction.parameters.findIndex(paramdata => paramdata.name === param.name)\n\t\t\t\tif (newParamIndex < 0) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tnewSelectedAction.parameters[newParamIndex].value = param.value\n\t\t\t\tnewSelectedAction.parameters[newParamIndex].autocompleted = true\n\t\t\t\tif (param.options !== undefined && param.options !== null && param.options.length > 0) {\n\t\t\t\t\tnewSelectedAction.parameters[newParamIndex].autocompleted = false \n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n if (newSelectedAction.app_name === \"Shuffle Tools\") {\n const iconInfo = GetIconInfo(newSelectedAction);\n console.log(\"ICONINFO: \", iconInfo);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n newSelectedAction.large_image = svgpin_Url;\n newSelectedAction.fillGradient = iconInfo.fillGradient;\n newSelectedAction.fillstyle = \"solid\";\n if (\n newSelectedAction.fillGradient !== undefined &&\n newSelectedAction.fillGradient !== null &&\n newSelectedAction.fillGradient.length > 0\n ) {\n newSelectedAction.fillstyle = \"linear-gradient\";\n } else {\n newSelectedAction.iconBackground = iconInfo.iconBackgroundColor;\n }\n\n const foundnode = cy.getElementById(newSelectedAction.id);\n if (foundnode !== null && foundnode !== undefined) {\n foundnode.data(newSelectedAction);\n }\n }\n\n\n // Takes an action as input, then runs through and updates the relevant parameters based on previous actions' results (parent nodes)\n\t\t// Further checks if those fields are already set in a previously used action\n newSelectedAction = RunAutocompleter(newSelectedAction);\n\n if (\n newaction.returns.example !== undefined &&\n newaction.returns.example !== null &&\n newaction.returns.example.length > 0\n ) {\n newSelectedAction.example = newaction.returns.example;\n }\n\n if (\n newaction.description !== undefined &&\n newaction.description !== null &&\n newaction.description.length > 0\n ) {\n newSelectedAction.description = newaction.description\n }\n\n // FIXME - this is broken sometimes lol\n //var env = environments.find(a => a.Name === newaction.environment)\n //if ((!env || env === undefined) && selectedAction.environment === undefined ) {\n //\tenv = environments[defaultEnvironmentIndex]\n //}\n //setSelectedActionEnvironment(env)\n\n\n\t\tif (workflow.actions !== undefined && workflow.actions !== null && workflow.actions.length > 0) {\n\t\t\tconst foundActionIndex = workflow.actions.findIndex(actiondata => actiondata.id === newSelectedAction.id)\n\t\t\tconsole.log(\"Found action on index \", foundActionIndex)\n\t\t\tif (foundActionIndex >= 0) {\n\t\t\t\tworkflow.actions[foundActionIndex] = newSelectedAction\n\t\t\t\tsetWorkflow(workflow)\n\t\t\t}\n\t\t}\n\n console.log(\"NEW ACTION: \", newSelectedAction);\n setSelectedAction(newSelectedAction);\n setUpdate(Math.random());\n\n // FIXME - should change icon-node (descriptor) as well\n const allNodes = cy.nodes().jsons();\n for (var key in allNodes) {\n const currentNode = allNodes[key];\n if (\n currentNode.data.attachedTo === oldaction.id &&\n currentNode.data.isDescriptor\n ) {\n const foundnode = cy.getElementById(currentNode.data.id);\n if (foundnode !== null && foundnode !== undefined) {\n const iconInfo = GetIconInfo(newaction);\n const svg_pin = ``;\n const svgpin_Url = encodeURI(\"data:image/svg+xml;utf-8,\" + svg_pin);\n foundnode.data(\"image\", svgpin_Url);\n foundnode.data(\"imageColor\", iconInfo.iconBackgroundColor);\n }\n\n break;\n }\n }\n };\n\n // APPSELECT at top\n // appname & version\n // description\n // ACTION select\n const selectedNameChange = (event) => {\n event.target.value = event.target.value.replaceAll(\"(\", \"\");\n event.target.value = event.target.value.replaceAll(\")\", \"\");\n event.target.value = event.target.value.replaceAll(\"]\", \"\");\n event.target.value = event.target.value.replaceAll(\"[\", \"\");\n event.target.value = event.target.value.replaceAll(\"{\", \"\");\n event.target.value = event.target.value.replaceAll(\"}\", \"\");\n event.target.value = event.target.value.replaceAll(\"*\", \"\");\n event.target.value = event.target.value.replaceAll(\"!\", \"\");\n event.target.value = event.target.value.replaceAll(\"@\", \"\");\n event.target.value = event.target.value.replaceAll(\"#\", \"\");\n event.target.value = event.target.value.replaceAll(\"$\", \"\");\n event.target.value = event.target.value.replaceAll(\"%\", \"\");\n event.target.value = event.target.value.replaceAll(\"&\", \"\");\n event.target.value = event.target.value.replaceAll(\"#\", \"\");\n event.target.value = event.target.value.replaceAll(\".\", \"\");\n event.target.value = event.target.value.replaceAll(\",\", \"\");\n event.target.value = event.target.value.replaceAll(\" \", \"_\");\n event.target.value = event.target.value.replaceAll(\"^\", \"_\");\n event.target.value = event.target.value.replaceAll(\"'\", \"_\");\n event.target.value = event.target.value.replaceAll(\"\\\"\", \"_\");\n event.target.value = event.target.value.replaceAll(\"\\\\\", \"_\");\n event.target.value = event.target.value.replaceAll(\":\", \"_\");\n event.target.value = event.target.value.replaceAll(\";\", \"_\");\n event.target.value = event.target.value.replaceAll(\"=\", \"_\");\n event.target.value = event.target.value.replaceAll(\"+\", \"_\");\n\n selectedAction.label = event.target.value;\n setSelectedAction(selectedAction);\n };\n\n\tconst actionDelayChange = (event) => {\n\t\tif (isNaN(event.target.value)) {\n\t\t\tconsole.log(\"NAN: \", event.target.value)\n\t\t\treturn\n\t\t}\n\n\t\tconst parsedNumber = parseInt(event.target.value)\n\t\tif (parsedNumber > 86400) {\n\t\t\tconsole.log(\"Max number is 1 day (86400)\")\n\t\t\treturn\n\t\t}\n\n\t\tselectedAction.execution_delay = parsedNumber\n setSelectedAction(selectedAction)\n\t}\n\n const selectedTriggerChange = (event) => {\n selectedTrigger.label = event.target.value;\n setSelectedTrigger(selectedTrigger);\n };\n\n // Starts on current node and climbs UP the tree to the root object.\n // Sends back everything in it's path\n const getParents = (action) => {\n\t\tif (action === undefined || action === null) {\n\t\t\treturn []\n\t\t}\n\n var allkeys = [action.id];\n var handled = [];\n var results = [];\n\n // maxiter = max amount of parent nodes to loop\n // also handles breaks if there are issues\n var iterations = 0;\n var maxiter = 10;\n while (true) {\n for (var key in allkeys) {\n var currentnode = cy.getElementById(allkeys[key]);\n if (currentnode === undefined || currentnode === null) {\n continue;\n }\n\n if (currentnode.data() === undefined) {\n handled.push(allkeys[key]);\n results.push({ id: allkeys[key], type: \"TRIGGER\" });\n } else {\n if (handled.includes(currentnode.data().id)) {\n continue;\n } else {\n handled.push(currentnode.data().id);\n results.push(currentnode.data());\n }\n }\n\n // Get the name / label here too?\n if (currentnode.length === 0) {\n continue;\n }\n\n const incomingEdges = currentnode.incomers(\"edge\");\n if (incomingEdges.length === 0) {\n continue;\n }\n\n for (var i = 0; i < incomingEdges.length; i++) {\n var tmp = incomingEdges[i];\n\t\t\t\t\tif (tmp.data(\"decorator\")) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n if (!allkeys.includes(tmp.data(\"source\"))) {\n allkeys.push(tmp.data(\"source\"));\n }\n }\n }\n\n if (results.length === allkeys.length || iterations === maxiter) {\n break;\n }\n\n iterations += 1;\n }\n\n // Remove on the end as we don't want to remove everything\n results = results.filter((data) => data.id !== action.id);\n results = results.filter((data) => data.type === \"ACTION\" || data.app_name === \"Shuffle Workflow\" || data.app_name === \"User Input\");\n results.push({ label: \"Execution Argument\", type: \"INTERNAL\" });\n return results;\n };\n\n // BOLD name: type: required?\n // FORM\n // Dropdown -> static, action, local env, global env\n // VALUE (JSON)\n // {data.name}, {data.description}, {data.required}, {data.schema.type}\n\n //height: \"100%\",\n const appApiViewStyle = {\n display: \"flex\",\n flexDirection: \"column\",\n backgroundColor: \"#1F2023\",\n color: \"white\",\n paddingRight: 15,\n paddingLeft: 15,\n minHeight: \"100%\",\n zIndex: 1000,\n resize: \"vertical\",\n overflow: \"auto\",\n };\n\n var rightsidebarStyle = {\n position: \"fixed\",\n top: appBarSize + 25,\n right: 25,\n height: \"80vh\",\n width: isMobile ? \"100%\" : 365,\n minWidth: 200,\n maxWidth: 600,\n maxHeight: \"100vh\",\n border: \"1px solid rgb(91, 96, 100)\",\n zIndex: 1000,\n borderRadius: theme.palette.borderRadius,\n resize: \"both\",\n overflow: \"auto\",\n };\n\n const setTriggerFolderWrapperMulti = (event) => {\n const { options } = event.target;\n var value = [];\n for (let i = 0, l = options.length; i < l; i += 1) {\n if (options[i].selected) {\n value.push(options[i].value);\n }\n }\n\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [[]];\n workflow.triggers[selectedTriggerIndex].parameters = [[]];\n }\n\n\t\t// Max 1 folder for office for some reason. MailFolders('MAILBOX_ID') in resource \n\t\t// Can't parse URL with multiple folders.\n\t\tif (selectedTrigger.name === \"Office365\" & value !== undefined && value !== null && value.length > 1) {\n\t\t\talert.info(\"Max 1 folder at a time allowed for Office365\")\n\t\t\tconsole.log(\"VALUE: \", value)\n\t\t\tvalue = [value[0]]\n\t\t}\n\n // This is a dirty workaround for the static values in the go backend and datastore db\n const fixedValue = value.join(splitter);\n selectedTrigger.parameters[0] = {\n value: fixedValue,\n name: \"outlookfolder\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n value: fixedValue,\n name: \"outlookfolder\",\n };\n\n // This resets state for some reason (:\n setSelectedAction({});\n setSelectedTrigger({});\n setSelectedApp({});\n setSelectedEdge({});\n\n // Set value\n setSelectedTrigger(selectedTrigger);\n setWorkflow(workflow);\n };\n\n const setTriggerCronWrapper = (value) => {\n\t\tconsole.log(\"Cron Value: \", value)\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n value: value,\n name: \"cron\",\n };\n setWorkflow(workflow);\n };\n\n const setTriggerOptionsWrapper = (value) => {\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n }\n\n const splitItems =\n workflow.triggers[selectedTriggerIndex].parameters[2].value.split(\",\");\n console.log(splitItems);\n if (splitItems.includes(value)) {\n for (var i = 0; i < splitItems.length; i++) {\n if (splitItems[i] === value) {\n splitItems.splice(i, 1);\n }\n }\n } else {\n splitItems.push(value);\n }\n\n for (var i = 0; i < splitItems.length; i++) {\n if (splitItems[i] === \"\") {\n splitItems.splice(i, 1);\n }\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[2].value =\n splitItems.join(\",\");\n\n console.log(splitItems);\n setWorkflow(workflow);\n setLocalFirstrequest(!localFirstrequest);\n };\n\n const setTriggerTextInformationWrapper = (value) => {\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n value: value,\n name: \"alertinfo\",\n };\n setWorkflow(workflow);\n };\n\n const setTriggerBodyWrapper = (value) => {\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n value: value,\n name: \"cron\",\n };\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[1] = {\n value: value,\n name: \"execution_argument\",\n };\n setWorkflow(workflow);\n };\n\n const AppConditionHandler = (props) => {\n const { tmpdata, type } = props;\n const [data] = useState(tmpdata);\n const [multiline, setMultiline] = useState(false);\n const [showAutocomplete, setShowAutocomplete] = React.useState(false);\n const [actionlist, setActionlist] = React.useState([]);\n\n if (tmpdata === undefined) {\n return tmpdata;\n }\n\n if (data.variant === \"\") {\n data.variant = \"STATIC_VALUE\";\n }\n\n // Set actions based on NEXT node, since it should be able to involve those two\n if (actionlist.length === 0) {\n // FIXME: Have previous execution values in here\n actionlist.push({\n type: \"Execution Argument\",\n name: \"Execution Argument\",\n value: \"$exec\",\n highlight: \"exec\",\n autocomplete: \"exec\",\n example: \"tmp\",\n })\n actionlist.push({\n type: \"Shuffle DB\",\n name: \"Shuffle DB\",\n value: \"$shuffle_cache\",\n highlight: \"shuffle_cache\",\n autocomplete: \"shuffle_cache\",\n example: \"tmp\",\n })\n\n if (\n workflow.workflow_variables !== null &&\n workflow.workflow_variables !== undefined &&\n workflow.workflow_variables.length > 0\n ) {\n for (var key in workflow.workflow_variables) {\n const item = workflow.workflow_variables[key];\n actionlist.push({\n type: \"workflow_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: item.value,\n });\n }\n }\n\n // FIXME: Add values from previous executions if they exist\n if (\n workflow.execution_variables !== null &&\n workflow.execution_variables !== undefined &&\n workflow.execution_variables.length > 0\n ) {\n for (var key in workflow.execution_variables) {\n const item = workflow.execution_variables[key];\n actionlist.push({\n type: \"execution_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: \"\",\n });\n }\n }\n\n const destAction = cy.getElementById(selectedEdge.target);\n var parents = getParents(destAction.data());\n if (parents.length > 1) {\n for (var key in parents) {\n const item = parents[key];\n if (item.label === \"Execution Argument\") {\n continue;\n }\n\n // 1. Take\n const actionvalue = {\n type: \"action\",\n id: item.id,\n name: item.label,\n autocomplete: `${item.label.split(\" \").join(\"_\")}`,\n example: item.example === undefined ? \"\" : item.example,\n };\n actionlist.push(actionvalue);\n }\n }\n\n setActionlist(actionlist);\n }\n\n if (\n data.multiline !== undefined &&\n data.multiline !== null &&\n data.multiline === true\n ) {\n setMultiline(true);\n }\n\n var placeholder = \"Static value\";\n if (\n data.example !== undefined &&\n data.example !== null &&\n data.example.length > 0\n ) {\n placeholder = data.example;\n }\n\n var datafield = (\n \n Use \"Shuffle Tools\" app with \"Filter List\" action to handle loops\n \n ) : null\n }\n onBlur={(e) => {\n changeActionVariable(data.action_field, e.target.value);\n setUpdate(Math.random());\n }}\n />\n );\n\n const changeActionVariable = (variable, value) => {\n // set the name\n data.value = value;\n data.action_field = variable;\n\n if (type === \"source\") {\n setSourceValue(data);\n } else if (type === \"destination\") {\n setDestinationValue(data);\n }\n };\n\n return (\n
\n \n \n
\n {data.name} \n
\n
\n {datafield}\n {actionlist.length === 0 ? null : (\n \n \n Autocomplete\n \n {\n setShowAutocomplete(false);\n\n setUpdate(Math.random());\n }}\n onClick={() => {\n setShowAutocomplete(true);\n }}\n open={showAutocomplete}\n fullWidth\n style={{\n borderBottom: `1px solid #f85a3e`,\n color: \"white\",\n height: 50,\n marginTop: 2,\n }}\n onChange={(e) => {\n const autocomplete = e.target.value.autocomplete;\n const newValue = autocomplete.startsWith(\"$\")\n ? data.value + autocomplete\n : `${data.value}$${autocomplete}`;\n changeActionVariable(data.action_field, newValue);\n }}\n >\n {actionlist.map((data) => {\n const icon =\n data.type === \"action\" ? (\n \n ) : data.type === \"workflow_variable\" ||\n data.type === \"execution_variable\" ? (\n \n ) : (\n \n );\n\n const handleExecArgumentHover = (inside) => {\n var exec_text_field = document.getElementById(\n \"execution_argument_input_field\"\n );\n if (exec_text_field !== null) {\n if (inside) {\n exec_text_field.style.border = \"2px solid #f85a3e\";\n } else {\n exec_text_field.style.border = \"\";\n }\n }\n\n // Also doing arguments\n if (\n workflow.triggers !== undefined &&\n workflow.triggers !== null &&\n workflow.triggers.length > 0\n ) {\n for (var key in workflow.triggers) {\n const item = workflow.triggers[key];\n\n var node = cy.getElementById(item.id);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n }\n }\n };\n\n const handleActionHover = (inside, actionId) => {\n var node = cy.getElementById(actionId);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n };\n\n return (\n {\n if (data.type === \"Execution Argument\") {\n handleExecArgumentHover(true);\n } else if (data.type === \"action\") {\n handleActionHover(true, data.id);\n }\n }}\n onMouseOut={() => {\n if (data.type === \"Execution Argument\") {\n handleExecArgumentHover(false);\n } else if (data.type === \"action\") {\n handleActionHover(false, data.id);\n }\n }}\n >\n \n
\n {icon} {data.name}\n
\n \n \n );\n })}\n \n
\n )}\n \n );\n };\n\n const menuItemStyle = {\n color: \"white\",\n backgroundColor: inputColor,\n };\n\n const conditionsModal = (\n {\n }}\n >\n \n Conditions can't be used for loops [ .# ]{\" \"}\n \n Learn more\n \n \n \n \t\t\n Condition\n \n \n
\n \n \n {\n conditionValue.configuration =\n !conditionValue.configuration;\n setConditionValue(conditionValue);\n setUpdate(Math.random());\n }}\n >\n {conditionValue.configuration ? \"!\" : \"=\"}\n \n \n \n
\n \n
\n \n {\n setVariableAnchorEl(e.currentTarget);\n }}\n >\n {conditionValue.value}\n \n {\n setVariableAnchorEl(null);\n }}\n >\n {\n conditionValue.value = \"equals\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"equals\"}\n >\n equals\n \n {\n conditionValue.value = \"does not equal\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"does not equal\"}\n >\n does not equal\n \n {\n conditionValue.value = \"startswith\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"starts with\"}\n >\n starts with\n \n {\n conditionValue.value = \"endswith\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"ends with\"}\n >\n ends with\n \n {\n conditionValue.value = \"contains\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"contains\"}\n >\n contains\n \n {\n conditionValue.value = \"contains_any_of\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"contains_any_of\"}\n >\n contains any of\n \n {\n conditionValue.value = \"matches regex\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"matches regex\"}\n >\n matches regex\n \n {\n conditionValue.value = \"larger than\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"larger than\"}\n >\n larger than\n \n {\n conditionValue.value = \"less than\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"less than\"}\n >\n less than\n \n {\n conditionValue.value = \"is empty\";\n setConditionValue(conditionValue);\n setVariableAnchorEl(null);\n }}\n key={\"is empty\"}\n >\n\t\t\t\t\t\t\t\t\tis empty\n \n \n
\n
\n \n
\n \n
\n \n\t\t\t\t\t {\n \t\t\tsetConditionsModalOpen(false);\n \t\t\tsetSourceValue({});\n \t\t\tsetConditionValue({});\n \t\t\tsetDestinationValue({});\n }}\n color=\"secondary\"\n >\n \tCancel \n \n {\n setSelectedEdge({});\n\n var data = {\n condition: conditionValue,\n source: sourceValue,\n destination: destinationValue,\n };\n\n setConditionsModalOpen(false);\n if (selectedEdge.conditions === undefined) {\n selectedEdge.conditions = [data];\n } else {\n const curedgeindex = selectedEdge.conditions.findIndex(\n (data) => data.source.id === sourceValue.id\n );\n if (curedgeindex < 0) {\n selectedEdge.conditions.push(data);\n } else {\n selectedEdge.conditions[curedgeindex] = data;\n }\n }\n\n var label = \"\";\n if (selectedEdge.conditions.length === 1) {\n label = selectedEdge.conditions.length + \" condition\";\n } else if (selectedEdge.conditions.length > 1) {\n label = selectedEdge.conditions.length + \" conditions\";\n }\n\n var currentedge = cy.getElementById(selectedEdge.id);\n if (currentedge !== undefined && currentedge !== null && label !== undefined) {\n currentedge.data(\"label\", label)\n\t\t\t\t\t\t\t\t//.label = label;\n \t //oldstartnode[0].data(\"isStartNode\", false);\n }\n\n setSelectedEdge(selectedEdge);\n workflow.branches[selectedEdgeIndex] = selectedEdge;\n setWorkflow(workflow);\n }}\n color=\"primary\"\n >\n Submit\n \n \n
\n \n );\n\n const EdgeSidebar = () => {\n const ConditionHandler = (condition, index) => {\n const [open, setOpen] = React.useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const duplicateCondition = (conditionIndex) => {\n var newEdge = JSON.parse(\n JSON.stringify(selectedEdge.conditions[conditionIndex])\n );\n const newUuid = uuidv4();\n newEdge.condition.id = newUuid;\n newEdge.source.id = newUuid;\n newEdge.destination.id = newUuid;\n selectedEdge.conditions.push(newEdge);\n\n setUpdate(Math.random());\n };\n\n const deleteCondition = (conditionIndex) => {\n console.log(selectedEdge);\n if (selectedEdge.conditions.length === 1) {\n selectedEdge.conditions = [];\n } else {\n selectedEdge.conditions.splice(conditionIndex, 1);\n }\n\n setSelectedEdge(selectedEdge);\n setOpen(false);\n setUpdate(Math.random());\n };\n\n const paperVariableStyle = {\n minHeight: 75,\n maxHeight: 75,\n minWidth: \"100%\",\n maxWidth: \"100%\",\n marginTop: \"5px\",\n color: \"white\",\n backgroundColor: surfaceColor,\n cursor: \"pointer\",\n display: \"flex\",\n };\n\n const menuClick = (event) => {\n console.log(\"MENU CLICK\");\n setOpen(!open);\n setAnchorEl(event.currentTarget);\n };\n\n return (\n {}}\n >\n \n
\n {\n setSourceValue(condition.source);\n setConditionValue(condition.condition);\n setDestinationValue(condition.destination);\n setConditionsModalOpen(true);\n }}\n >\n \n {condition.source.value}\n
\n \n {}}\n >\n {condition.condition.value}\n \n \n \n {condition.destination.value}\n \n \n
\n \n \n \n {\n setOpen(false);\n setAnchorEl(null);\n }}\n >\n {\n duplicateCondition(index);\n }}\n key={\"Duplicate\"}\n >\n {\"Duplicate\"}\n \n {\n setOpen(false);\n deleteCondition(index);\n }}\n key={\"Delete\"}\n >\n {\"Delete\"}\n \n \n
\n \n \n );\n };\n\n var injectedData =
;\n\n if (\n selectedEdge.conditions !== undefined &&\n selectedEdge.conditions !== null &&\n selectedEdge.conditions.length > 0\n ) {\n injectedData = selectedEdge.conditions.map((condition, index) => {\n return ConditionHandler(condition, index);\n });\n }\n\n // FIXME - remove index\n const conditionId = uuidv4();\n return (\n
\n
\n
\n

\n Branch: Conditions - {selectedEdgeIndex}\n

\n \n What are conditions?\n \n
\n
\n \n
Conditions
\n {injectedData}\n\n {\n\t\t\t\t\t\tif (conditionsModalOpen) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n setSourceValue({\n name: \"source\",\n value: \"\",\n variant: \"STATIC_VALUE\",\n action_field: \"\",\n id: conditionId,\n });\n setConditionValue({\n name: \"condition\",\n value: \"equals\",\n id: conditionId,\n });\n setDestinationValue({\n name: \"destination\",\n value: \"\",\n variant: \"STATIC_VALUE\",\n action_field: \"\",\n id: conditionId,\n });\n\n setConditionsModalOpen(true);\n }}\n fullWidth\n >\n New condition\n \n
\n );\n };\n\n // 1. GET the trigger authentication data\n // 2. Parse the fields that are used (outlook & gmail)\n // 3. Parse the folders that are selected\n // 4. Start / stop\n const EmailSidebar = () => {\n if (Object.getOwnPropertyNames(selectedTrigger).length === 0) {\n return null;\n }\n\n if (workflow.triggers[selectedTriggerIndex] === undefined) {\n return null;\n }\n\n if (\n workflow.triggers[selectedTriggerIndex].parameters === undefined ||\n workflow.triggers[selectedTriggerIndex].parameters === null ||\n workflow.triggers[selectedTriggerIndex].parameters.length === 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [\n { value: \"No folders selected yet\", name: \"outlookfolder\" },\n ];\n selectedTrigger.parameters = [\n { value: \"No folders selected yet\", name: \"outlookfolder\" },\n ];\n setWorkflow(workflow);\n setSelectedTrigger(selectedTrigger);\n }\n\n const setGmailFolders = () => {\n console.log(\"In set gmail folders\");\n fetch(\n globalUrl +\n \"/api/v1/triggers/gmail/getFolders?trigger_id=\" +\n selectedTrigger.id,\n {\n method: \"GET\",\n headers: { \"content-type\": \"application/json\" },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"No folders :o!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (\n responseJson !== undefined &&\n responseJson !== null &&\n responseJson.success !== false &&\n responseJson.length > 0\n ) {\n setTriggerFolders(responseJson);\n }\n\n if (\n workflow.triggers[selectedTriggerIndex].parameters.length === 0 &&\n responseJson.length > 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [\n {\n value: responseJson[0].displayName,\n name: \"outlookfolder\",\n id: responseJson[0].id,\n },\n ];\n selectedTrigger.parameters = [\n {\n value: responseJson[0].displayName,\n name: \"outlookfolder\",\n id: responseJson[0].id,\n },\n ];\n setWorkflow(workflow);\n setSelectedTrigger(selectedTrigger);\n }\n })\n .catch((error) => {\n console.log(\"Get gmail folder error: \", error.toString());\n });\n };\n\n const setOutlookFolders = () => {\n fetch(\n globalUrl +\n \"/api/v1/triggers/outlook/getFolders?trigger_id=\" +\n selectedTrigger.id,\n {\n method: \"GET\",\n headers: { \"content-type\": \"application/json\" },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"No folders :o!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (\n responseJson !== null &&\n responseJson.success !== false &&\n responseJson.length > 0\n ) {\n\t\t\t\t\t\tconsole.log(\"Got trigger folders: \", triggerFolders)\n setTriggerFolders(responseJson);\n }\n\n if (\n workflow.triggers[selectedTriggerIndex].parameters.length === 0 &&\n responseJson.length > 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [\n {\n value: responseJson[0].displayName,\n name: \"outlookfolder\",\n id: responseJson[0].id,\n },\n ]\n selectedTrigger.parameters = [\n {\n value: responseJson[0].displayName,\n name: \"outlookfolder\",\n id: responseJson[0].id,\n },\n ];\n setWorkflow(workflow);\n setSelectedTrigger(selectedTrigger);\n }\n })\n .catch((error) => {\n console.log(\"Get outlook folders error: \", error.toString());\n });\n };\n\n const getTriggerAuth = () => {\n fetch(globalUrl + \"/api/v1/triggers/\" + selectedTrigger.id, {\n method: \"GET\",\n headers: { \"content-type\": \"application/json\" },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"No trigger info :o!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n\n setTriggerAuthentication(responseJson);\n })\n .catch((error) => {\n //console.log(error.toString());\n console.log(\"Set trigger auth error: \", error.toString());\n });\n };\n\n // Getting the triggers and the folders if they exist\n if (localFirstrequest) {\n\t\t\t//console.log(\"Trigger: \", selectedTrigger)\n\t\t\t//console.log(\"Triggername: \", selectedTrigger.name)\n\t\t\t//if (selectedTrigger.name.toLowerCase() === \"gmail\") {\n\t\t\tsetGmailFolders();\n\t\t\tsetOutlookFolders();\n\n getTriggerAuth();\n setLocalFirstrequest(false);\n }\n\n const gmailButton =\n selectedTrigger.name !== \"Gmail\" ? null : (\n {\n console.log(\"HOST: \", window.location.host);\n console.log(\"HOST: \", window.location);\n const redirectUri = isCloud\n ? window.location.host === \"localhost:3002\"\n ? \"http%3A%2F%2Flocalhost:5002%2Fapi%2Fv1%2Ftriggers%2Fgmail%2Fregister\"\n : \"https%3A%2F%2Fshuffler.io%2Fapi%2Fv1%2Ftriggers%2Fgmail%2Fregister\"\n : window.location.protocol === \"http:\" ? \n\t\t\t\t\t\t\t\t`http%3A%2F%2F${window.location.host}%2Fapi%2Fv1%2Ftriggers%2Fgmail%2Fregister`\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t`https%3A%2F%2F${window.location.host}%2Fapi%2Fv1%2Ftriggers%2Fgmail%2Fregister`\n\n const client_id =\n \"253565968129-c0a35knic7q1pdk6i6qk9gdkvr07ci49.apps.googleusercontent.com\";\n const username = userdata.id;\n console.log(redirectUri);\n console.log(\"USER: \", username, userdata);\n\n const branch = workflow.branches.find(\n (branch) => branch.source_id === selectedTrigger.id\n );\n if (branch === undefined || branch === null) {\n alert.error(\n \"No startnode connected to node. Connect it to an action.\"\n );\n return;\n }\n\n console.log(\"BRANCH: \", branch);\n const startnode = branch.destination_id;\n const scopes = \"https://www.googleapis.com/auth/gmail.readonly\";\n const url = `https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&scope=${scopes}&state=workflow_id%3D${props.match.params.key}%26trigger_id%3D${selectedTrigger.id}%26username%3D${username}%26type%3Dgmail%26start%3d${startnode}`;\n console.log(\"URL: \", url);\n\n var newwin = window.open(url, \"\", \"width=800,height=600\");\n\n // Check whether we got a callback somewhere\n var id = setInterval(function () {\n fetch(\n globalUrl + \"/api/v1/triggers/\" + selectedTrigger.id,\n {\n method: \"GET\",\n headers: { \"content-type\": \"application/json\" },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"No trigger info :o!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n //console.log(\"RESPONSE: \");\n setTriggerAuthentication(responseJson);\n clearInterval(id);\n newwin.close();\n setGmailFolders();\n })\n .catch((error) => {\n console.log(\"Set gmail trigg error: \", error.toString());\n });\n }, 2500);\n\n saveWorkflow(workflow);\n }}\n >\n \n \n Sign in with Google\n \n \n );\n\n const outlookButton =\n selectedTrigger.name !== \"Office365\" ? null : (\n {\n\t\t\t\t\t\tconsole.log(window.location)\n const redirectUri = isCloud\n ? window.location.host === \"localhost:3002\"\n ? \"http%3A%2F%2Flocalhost:5002%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister\"\n : \"https%3A%2F%2Fshuffler.io%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister\"\n : window.location.protocol === \"http:\" ? \n\t\t\t\t\t\t\t\t`http%3A%2F%2F${window.location.host}%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister`\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t`https%3A%2F%2F${window.location.host}%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister`\n\n //const client_id = \"fd55c175-aa30-4fa6-b303-09a29fb3f750\"\n //const client_id = \"bb4bff85-0d0b-4f5d-8a69-3cee8029b11a\";\n const client_id = \"efe4c3fe-84a1-4821-a84f-23a6cfe8e72d\";\n\n const username = userdata.id;\n console.log(redirectUri);\n console.log(\"USER: \", username, userdata);\n\n const branch = workflow.branches.find(\n (branch) => branch.source_id === selectedTrigger.id\n );\n if (branch === undefined || branch === null) {\n alert.error(\n \"No startnode connected to node. Connect it to an action.\"\n );\n return;\n }\n\n console.log(\"BRANCH: \", branch);\n const startnode = branch.destination_id;\n\t\t\t\t\t\t// prompt=login\n const url = `https://login.microsoftonline.com/common/oauth2/authorize?access_type=offline&client_id=${client_id}&redirect_uri=${redirectUri}&resource=https%3A%2F%2Fgraph.microsoft.com&response_type=code&scope=Mail.Read+User.Read+https%3A%2F%2Foutlook.office.com%2Fmail.read&state=workflow_id%3D${props.match.params.key}%26trigger_id%3D${selectedTrigger.id}%26username%3D${username}%26type%3Doutlook%26start%3d${startnode}`;\n //const url = `https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent&client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&scope=${scopes}&state=workflow_id%3D${props.match.params.key}%26trigger_id%3D${selectedTrigger.id}%26username%3D${username}%26type%3Dgmail%26start%3d${startnode}`\n\n //const scopes = \"https://www.googleapis.com/auth/gmail.readonly\"\n //const url = `https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent&client_id=${client_id}&redirect_uri=${redirectUri}&response_type=code&scope=${scopes}&state=workflow_id%3D${props.match.params.key}%26trigger_id%3D${selectedTrigger.id}%26username%3D${username}%26type%3Dgmail%26start%3d${startnode}`\n\n console.log(\"URL: \", url);\n\n var newwin = window.open(url, \"\", \"width=800,height=600\");\n\n // Check whether we got a callback somewhere\n var id = setInterval(function () {\n fetch(\n globalUrl + \"/api/v1/triggers/ \" + selectedTrigger.id,\n {\n method: \"GET\",\n headers: { \"content-type\": \"application/json\" },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"No trigger info :o!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n setTriggerAuthentication(responseJson);\n clearInterval(id);\n newwin.close();\n setOutlookFolders();\n })\n .catch((error) => {\n console.log(\"Set outlook trigger error: \", error.toString());\n });\n }, 2500);\n\n saveWorkflow(workflow);\n }}\n >\n \n \n \tSign in with Microsoft \n \n \n );\n\n // FIXME - set everything in here to multifolder etc\n var triggerInfo = \"SET UP BUT NO TYPE :)\";\n if (Object.getOwnPropertyNames(triggerAuthentication).length > 0) {\n // Should get the folders if they don't already exist\n\n if (\n triggerAuthentication.type === \"outlook\" ||\n triggerAuthentication.type === \"gmail\"\n ) {\n triggerInfo = (\n
\n {selectedTrigger.status === \"running\" ? null : (\n \n \n \n
\n Change auth \n
\n
\n {outlookButton}\n {gmailButton}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tIf you have trouble using this trigger, please contact us to get access\n\t\t\t\t\t\t\t\t\n \n )}\n\n {triggerFolders === undefined || triggerFolders === null ? null : (\n \n \n \n
\n Select {triggerAuthentication.type === \"gmail\" ? \"labels\" : \"a folder\"}\n
\n \n\t\t\t\t\t\t\t\t{triggerFolders.length === 0 ?\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tNo folders found. Please authenticate and make sure the user has access folders available. If this persists, contact us. \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\n \t {\n \t setTriggerFolderWrapperMulti(e)\n \t }}\n \t fullWidth\n \t input={}\n \t key={selectedTrigger}\n \t>\n\t\t\t\t\t\t\t\t\t\t{triggerFolders.map((folder) => {\n \t var folderItem = (\n \t \n \t {folder.displayName}\n \t \n \t );\n\n \t if (folder.childFolderCount > 0) {\n \t // Here to handle subfolders sometime later\n \t folderItem = (\n \t \n \t {folder.displayName}\n \t \n \t );\n \t }\n\n \t return folderItem;\n \t })}\n \t\n\t\t\t\t\t\t\t\t}\n
\n )}\n \n );\n } else if (triggerAuthentication.type === \"gmail\") {\n console.log(\"AUTH: \", triggerAuthentication);\n triggerInfo = \"SPECIAL GMAIL\";\n }\n }\n\n // Check\n const argumentView =\n Object.getOwnPropertyNames(triggerAuthentication).length > 0 ? (\n
{triggerInfo}
\n ) : (\n
\n \n \n
\n Login\n
\n
\n {outlookButton}\n {gmailButton}\n\t\t\t\t\t\n\t\t\t\t\t\tIf you have trouble using this trigger, please {\n\t\t\t\t\t\t\tif (window.drift !== undefined) {\n\t\t\t\t\t\t\t\twindow.drift.api.startInteraction({ interactionId: 340043 })\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconsole.log(\"Couldn't find drift in window.drift and not .drift-open-chat with querySelector: \", window.drift)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}>contact us to get access\n\t\t\t\t\t\n \n );\n\n return (\n
\n
\n
\n

\n {selectedTrigger.app_name}: {selectedTrigger.status}\n

\n \n What are email triggers?\n \n
\n
\n \n
Name
\n \n\n
\n Environment:\n \n
\n \n {argumentView}\n
\n
\n \n \n {\n startMailSub(selectedTrigger, selectedTriggerIndex);\n }}\n color=\"primary\"\n >\n Start\n \n {\n stopMailSub(selectedTrigger, selectedTriggerIndex);\n }}\n color=\"primary\"\n >\n Stop\n \n
\n
\n
\n \n );\n };\n\n const SubflowSidebar = () => {\n const [menuPosition, setMenuPosition] = useState(null);\n const [showDropdown, setShowDropdown] = React.useState(false);\n const [actionlist, setActionlist] = React.useState([]);\n\n if (actionlist.length === 0) {\n // FIXME: Have previous execution values in here\n actionlist.push({\n type: \"Execution Argument\",\n name: \"Execution Argument\",\n value: \"$exec\",\n highlight: \"exec\",\n autocomplete: \"exec\",\n example: \"hello\",\n })\n actionlist.push({\n type: \"Shuffle Database\",\n name: \"Shuffle Database\",\n value: \"$shuffle_cache\",\n highlight: \"shuffle_db\",\n autocomplete: \"shuffle_cache\",\n example: \"hello\",\n })\n if (\n workflow.workflow_variables !== null &&\n workflow.workflow_variables !== undefined &&\n workflow.workflow_variables.length > 0\n ) {\n for (var key in workflow.workflow_variables) {\n const item = workflow.workflow_variables[key];\n actionlist.push({\n type: \"workflow_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: item.value,\n });\n }\n }\n\n // FIXME: Add values from previous executions if they exist\n if (\n workflow.execution_variables !== null &&\n workflow.execution_variables !== undefined &&\n workflow.execution_variables.length > 0\n ) {\n for (var key in workflow.execution_variables) {\n const item = workflow.execution_variables[key];\n actionlist.push({\n type: \"execution_variable\",\n name: item.name,\n value: item.value,\n id: item.id,\n autocomplete: `${item.name.split(\" \").join(\"_\")}`,\n example: \"\",\n });\n }\n }\n\n var parents = getParents(selectedTrigger);\n if (parents.length > 1) {\n for (var key in parents) {\n const item = parents[key];\n if (item.label === \"Execution Argument\") {\n continue;\n }\n\n var exampledata = item.example === undefined ? \"\" : item.example;\n // Find previous execution and their variables\n if (workflowExecutions.length > 0) {\n // Look for the ID\n for (var key in workflowExecutions) {\n if (\n workflowExecutions[key].results === undefined ||\n workflowExecutions[key].results === null\n ) {\n continue;\n }\n\n var foundResult = workflowExecutions[key].results.find(\n (result) => result.action.id === item.id\n );\n if (foundResult === undefined) {\n continue;\n }\n\n\t\t\t\t\t\t\tconst validated = validateJson(foundResult.result) \n\t\t\t\t\t\t\tif (validated.valid) {\n\t\t\t\t\t\t\t\texampledata = validateJson.result\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n }\n }\n\n // 1. Take\n const actionvalue = {\n type: \"action\",\n id: item.id,\n name: item.label,\n autocomplete: `${item.label.split(\" \").join(\"_\")}`,\n example: exampledata,\n }\n actionlist.push(actionvalue);\n }\n }\n\n setActionlist(actionlist);\n }\n\n // Shows nested list of nodes > their JSON lists\n const ActionlistWrapper = (props) => {\n const { data } = props;\n\n const handleMenuClose = () => {\n setUpdate(Math.random());\n setMenuPosition(null);\n };\n\n const handleItemClick = (values) => {\n\t\t\t\tconsole.log(\"VALUES: \", values)\n if (values === undefined || values === null || values.length === 0) {\n return;\n }\n\n\n\t\t\t\t/*\n\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters[1].value\n .trim()\n .endsWith(\"$\")\n ? values[0].autocomplete\n : \"$\" + values[0].autocomplete;\n\n for (var key in values) {\n if (key === 0 || values[key].autocomplete.length === 0) {\n continue;\n }\n\n toComplete += values[key].autocomplete\n }\n\t\t\t\t*/\n\n\t\t\t\tconsole.log(\"SELECTED TRIGGER: \", selectedTrigger)\n\t\t\t\tif (selectedTrigger.name === \"Shuffle Workflow\") {\n \tconst toComplete = selectedTrigger.parameters[1].value + \"$\" + values[0].autocomplete\n\t\t\t\t\tselectedTrigger.parameters[1].value = toComplete\n\t\t\t\t\tsetSelectedTrigger(selectedTrigger)\n\t\t\t\t}\n\n setUpdate(Math.random());\n setShowDropdown(false);\n setMenuPosition(null);\n };\n\n const iconStyle = {\n marginRight: 15,\n };\n\n return (\n {\n handleMenuClose();\n }}\n open={!!menuPosition}\n style={{\n border: `2px solid #f85a3e`,\n color: \"white\",\n marginTop: 2,\n }}\n >\n {actionlist.map((innerdata) => {\n const icon =\n innerdata.type === \"action\" ? (\n \n ) : innerdata.type === \"workflow_variable\" ||\n innerdata.type === \"execution_variable\" ? (\n \n ) : (\n \n );\n\n const handleExecArgumentHover = (inside) => {\n var exec_text_field = document.getElementById(\n \"execution_argument_input_field\"\n );\n if (exec_text_field !== null) {\n if (inside) {\n exec_text_field.style.border = \"2px solid #f85a3e\";\n } else {\n exec_text_field.style.border = \"\";\n }\n }\n\n // Also doing arguments\n if (\n workflow.triggers !== undefined &&\n workflow.triggers !== null &&\n workflow.triggers.length > 0\n ) {\n for (var key in workflow.triggers) {\n const item = workflow.triggers[key];\n\n if (cy !== undefined) {\n var node = cy.getElementById(item.id);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n }\n }\n }\n }\n\n const handleActionHover = (inside, actionId) => {\n if (cy !== undefined) {\n var node = cy.getElementById(actionId);\n if (node.length > 0) {\n if (inside) {\n node.addClass(\"shuffle-hover-highlight\");\n } else {\n node.removeClass(\"shuffle-hover-highlight\");\n }\n }\n }\n };\n\n const handleMouseover = () => {\n if (innerdata.type === \"Execution Argument\") {\n handleExecArgumentHover(true);\n } else if (innerdata.type === \"action\") {\n handleActionHover(true, innerdata.id);\n }\n };\n\n const handleMouseOut = () => {\n if (innerdata.type === \"Execution Argument\") {\n handleExecArgumentHover(false);\n } else if (innerdata.type === \"action\") {\n handleActionHover(false, innerdata.id);\n }\n };\n\n var parsedPaths = [];\n if (typeof innerdata.example === \"object\") {\n parsedPaths = GetParsedPaths(innerdata.example, \"\");\n }\n\n return parsedPaths.length > 0 ? (\n \n {icon} {innerdata.name}\n \n }\n parentMenuOpen={!!menuPosition}\n style={{\n backgroundColor: theme.palette.inputColor,\n color: \"white\",\n minWidth: 250,\n }}\n onClick={() => {\n handleItemClick([innerdata]);\n }}\n >\n {parsedPaths.map((pathdata, index) => {\n // FIXME: Should be recursive in here\n const icon =\n pathdata.type === \"value\" ? (\n \n ) : pathdata.type === \"list\" ? (\n \n ) : (\n \n )\n\n return (\n {}}\n onClick={() => {\n handleItemClick([innerdata, pathdata]);\n }}\n >\n \n
\n {icon} {pathdata.name}\n
\n \n \n );\n })}\n \n ) : (\n handleMouseover()}\n onMouseOut={() => {\n handleMouseOut();\n }}\n onClick={() => {\n handleItemClick([innerdata]);\n }}\n >\n \n
\n {icon} {innerdata.name}\n
\n \n \n );\n })}\n \n );\n };\n\n if (Object.getOwnPropertyNames(selectedTrigger).length > 0) {\n if (workflow.triggers[selectedTriggerIndex] === undefined) {\n return null;\n }\n\n if (\n workflow.triggers[selectedTriggerIndex].parameters === undefined ||\n workflow.triggers[selectedTriggerIndex].parameters === null ||\n workflow.triggers[selectedTriggerIndex].parameters.length === 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [];\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n name: \"workflow\",\n value: \"\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[1] = {\n name: \"argument\",\n value: \"\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[2] = {\n name: \"user_apikey\",\n value: \"\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[3] = {\n name: \"startnode\",\n value: \"\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[4] = {\n name: \"check_result\",\n value: \"false\",\n };\n\n\t\t\t\t/*\n\t\t\t\t// API-key has been replaced by auth key for the execution. \n\t\t\t\t// Parents can now automatically execute children without auth from a user, as long as the subflow in question is owned by the same org and the subflow is actually referencing it during checkin.\n console.log(\"SETTINGS: \", userSettings);\n if (\n userSettings !== undefined &&\n userSettings !== null &&\n userSettings.apikey !== null &&\n userSettings.apikey !== undefined &&\n userSettings.apikey.length > 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters[2] = {\n name: \"user_apikey\",\n value: userSettings.apikey,\n };\n }\n\t\t\t\t*/\n }\n\n\t\t\tconst handleSubflowStartnodeSelection = (e) => {\n\t\t\t\tsetSubworkflowStartnode(e.target.value);\n\n\t\t\t\tif (e.target.value === null || e.target.value === undefined) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst branchId = uuidv4();\n\t\t\t\tconst newbranch = {\n\t\t\t\t\tsource_id: workflow.triggers[selectedTriggerIndex].id,\n\t\t\t\t\tdestination_id: e.target.value.id,\n\t\t\t\t\tsource: workflow.triggers[selectedTriggerIndex].id,\n\t\t\t\t\ttarget: e.target.value.id,\n\t\t\t\t\thas_errors: false,\n\t\t\t\t\tid: branchId,\n\t\t\t\t\t_id: branchId,\n\t\t\t\t\tlabel: \"Subflow\",\n\t\t\t\t\tdecorator: true,\n\t\t\t\t};\n\n\t\t\t\tif (workflow.visual_branches !== undefined) {\n\t\t\t\t\tif (workflow.visual_branches === null) {\n\t\t\t\t\t\tworkflow.visual_branches = [newbranch];\n\t\t\t\t\t} else if (workflow.visual_branches.length === 0) {\n\t\t\t\t\t\tworkflow.visual_branches.push(newbranch);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst foundIndex = workflow.visual_branches.findIndex(\n\t\t\t\t\t\t\t(branch) => branch.source_id === newbranch.source_id\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (foundIndex !== -1) {\n\t\t\t\t\t\t\tconst currentEdge = cy.getElementById(\n\t\t\t\t\t\t\t\tworkflow.visual_branches[foundIndex].id\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tcurrentEdge !== undefined &&\n\t\t\t\t\t\t\t\tcurrentEdge !== null\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tcurrentEdge.remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tworkflow.visual_branches.splice(foundIndex, 1);\n\t\t\t\t\t\tworkflow.visual_branches.push(newbranch);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (workflow.id === subworkflow.id) {\n\t\t\t\t\tconst cybranch = {\n\t\t\t\t\t\tgroup: \"edges\",\n\t\t\t\t\t\tsource: newbranch.source_id,\n\t\t\t\t\t\ttarget: newbranch.destination_id,\n\t\t\t\t\t\tid: branchId,\n\t\t\t\t\t\tdata: newbranch,\n\t\t\t\t\t};\n\n\t\t\t\t\tcy.add(cybranch);\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\"Value to be set: \", e.target.value);\n\t\t\t\ttry {\n\t\t\t\t\tworkflow.triggers[\n\t\t\t\t\t\tselectedTriggerIndex\n\t\t\t\t\t].parameters[3].value = e.target.value.id;\n\t\t\t\t} catch {\n\t\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters[3] =\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"startnode\",\n\t\t\t\t\t\t\tvalue: e.target.value.id,\n\t\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tsetWorkflow(workflow);\n\t\t\t}\n\n\t\t\tconst handleWorkflowSelectionUpdate = (e) => {\n\t\t\t\tsetUpdate(Math.random());\n\n\t\t\t\tif (e.target.value === undefined || e.target.value === null || e.target.value.id === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tworkflow.triggers[\n\t\t\t\t\tselectedTriggerIndex\n\t\t\t\t].parameters[0].value = e.target.value.id;\n\t\t\t\tsetSubworkflow(e.target.value);\n\n\t\t\t\t// Sets the startnode\n\t\t\t\tif (e.target.value.id !== workflow.id) {\n\t\t\t\t\tconsole.log(\"WORKFLOW: \", e.target.value);\n\n\t\t\t\t\tconst startnode = e.target.value.actions.find(\n\t\t\t\t\t\t(action) => action.id === e.target.value.start\n\t\t\t\t\t);\n\t\t\t\t\tif (startnode !== undefined && startnode !== null) {\n\t\t\t\t\t\tconsole.log(\"STARTNODE: \", startnode);\n\t\t\t\t\t\tsetSubworkflowStartnode(startnode);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tworkflow.triggers[\n\t\t\t\t\t\t\t\tselectedTriggerIndex\n\t\t\t\t\t\t\t].parameters[3].value = startnode.id;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tworkflow.triggers[\n\t\t\t\t\t\t\t\tselectedTriggerIndex\n\t\t\t\t\t\t\t].parameters[3] = {\n\t\t\t\t\t\t\t\tname: \"startnode\",\n\t\t\t\t\t\t\t\tvalue: startnode.id,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetWorkflow(workflow);\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(\"STARTNODE: \", startnode);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"WORKFLOW: \", workflow);\n\t\t\t\t}\n\n\t\t\t\tsetWorkflow(workflow);\n\t\t\t}\n\n return (\n
\n \n
\n

\n {selectedTrigger.app_name}\n

\n \n What are subflows?\n \n
\n
\n \n\t\t\t\t\t
\n\t\t\t\t\t\t
\n \t\tName\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tDelay\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (isNaN(event.target.value)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"NAN: \", event.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst parsedNumber = parseInt(event.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\tif (parsedNumber > 86400) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Max number is 1 day (86400)\")\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tselectedTrigger.execution_delay = parseInt(event.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedTrigger(selectedTrigger)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n {\n const newvalue =\n workflow.triggers[selectedTriggerIndex].parameters[4] ===\n undefined ||\n workflow.triggers[selectedTriggerIndex].parameters[4]\n .value === \"false\"\n ? \"true\"\n : \"false\";\n workflow.triggers[selectedTriggerIndex].parameters[4] = {\n name: \"check_result\",\n value: newvalue,\n };\n\n setWorkflow(workflow);\n setUpdate(Math.random());\n }}\n color=\"primary\"\n value=\"Wait for results\"\n />\n }\n style={{ marginTop: 10 }}\n label={
Wait for results
}\n />\n \n
\n
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tSelect a workflow to execute \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n \t\t{workflow.triggers[selectedTriggerIndex].parameters[0].value\n \t\t .length === 0 ? null : workflow.triggers[selectedTriggerIndex]\n \t\t .parameters[0].value === props.match.params.key ? null : (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n \t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{workflows === undefined ||\n\t\t\t\t\t\tworkflows === null ||\n\t\t\t\t\t\tworkflows.length === 0 ? null : (\n\t\t\t\t\t\t\t option.id === value.id}\n \t\t getOptionLabel={(option) => {\n \t\t if (\n \t\t option === undefined ||\n \t\t option === null ||\n \t\t option.name === undefined ||\n \t\t option.name === null \n \t\t ) {\n \t\t return \"No Workflow Selected\";\n \t\t }\n\n \t\t const newname = (\n \t\t option.name.charAt(0).toUpperCase() + option.name.substring(1)\n \t\t ).replaceAll(\"_\", \" \");\n \t\t return newname;\n \t\t }}\n \t\t options={workflows}\n \t\t fullWidth\n \t\t style={{\n \t\t backgroundColor: theme.palette.inputColor,\n \t\t height: 50,\n \t\t borderRadius: theme.palette.borderRadius,\n \t\t }}\n \t\t onChange={(event, newValue) => {\n\t\t\t\t\t\t\t\t\thandleWorkflowSelectionUpdate({ target: { value: newValue} })\n \t\t }}\n \t\t renderOption={(data, index) => {\n\t\t\t\t\t\t\t\t\tif (data.id === workflow.id) {\n\t\t\t\t\t\t\t\t\t\tdata = workflow;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t//key={index}\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{data.image !== undefined && data.image !== null && data.image.length > 0 ? \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{data.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tChoose {data.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t} placement=\"bottom\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n \t\t }}\n \t\trenderInput={(params) => {\n \t\t return (\n\t\t\t\t\t\t\t\t\t\t\t\n \t\t );\n \t\t }}\n \t\t/>\n )}\n\n {subworkflow === undefined ||\n subworkflow === null ||\n subworkflow.id === undefined ||\n subworkflow.actions === null ||\n subworkflow.actions === undefined ||\n subworkflow.actions.length === 0 ? null : (\n \n \n
\n Select the Startnode\n
\n
\n\t\t\t\t\t\t\t\t\t option.id === value.id}\n \t\t\t\t getOptionLabel={(option) => {\n \t\t\t\t if (\n \t\t\t\t option === undefined ||\n \t\t\t\t option === null ||\n \t\t\t\t option.label === undefined ||\n \t\t\t\t option.label === null \n \t\t\t\t ) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (option.length === 36) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n \t\t\t\t return \"TMP\";\n \t\t\t\t }\n\n \t\t\t\t const newname = (\n \t\t\t\t option.label.charAt(0).toUpperCase() + option.label.substring(1)\n \t\t\t\t ).replaceAll(\"_\", \" \");\n \t\t\t\t return newname;\n \t\t\t\t }}\n options={subworkflow.actions}\n \t\t\t\t fullWidth\n \t\t\t\t style={{\n \t\t\t\t backgroundColor: theme.palette.inputColor,\n \t\t\t\t height: 50,\n \t\t\t\t borderRadius: theme.palette.borderRadius,\n \t\t\t\t }}\n \t\t\t\t onChange={(event, newValue) => {\n\t\t\t\t\t\t\t\t\t\t\thandleSubflowStartnodeSelection({ target: { value: newValue} }) \n \t\t\t\t }}\n \t\t\t\t renderOption={(action) => {\n\t\t\t\t\t\t\t\t\t\t\tconst isParent = getParents(selectedTrigger).find(\n (parent) => parent.id === action.id\n )\n\n return (\n {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (subworkflow.id === workflow.id) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleActionHover(true, action.id) \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n \t\t onMouseOut={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (subworkflow.id === workflow.id) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleActionHover(false, action.id) \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n disabled={isCloud && isParent}\n style={{\n backgroundColor: theme.palette.inputColor,\n color: isParent ? \"red\" : \"white\",\n }}\n value={action}\n >\n {action.label}\n \n );\n \t\t\t\t }}\n \t\t\t\t renderInput={(params) => {\n \t\t\t\t return (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n \t\t\t\t );\n \t\t\t\t }}\n \t\t\t\t/>\n \n )}\n \n
\n Execution Argument\n
\n \n \n \n {\n setMenuPosition({\n top: event.pageY + 10,\n left: event.pageX + 10,\n });\n //setShowDropdownNumber(3)\n setShowDropdown(true);\n }}\n />\n \n \n ),\n }}\n rows=\"6\"\n multiline\n fullWidth\n color=\"primary\"\n placeholder=\"Some execution data\"\n defaultValue={\n workflow.triggers[selectedTriggerIndex].parameters[1].value\n }\n onBlur={(e) => {\n console.log(\"DATA: \", e.target.value);\n workflow.triggers[selectedTriggerIndex].parameters[1].value =\n e.target.value;\n setWorkflow(workflow);\n }}\n />\n {showDropdown ? (\n \n ) : null}\n\t\t\t\t\t\t\t{/*\n \n
\n API-key \n
\n \n {\n workflow.triggers[selectedTriggerIndex].parameters[2].value =\n e.target.value;\n setWorkflow(workflow);\n }}\n />\n\t\t\t\t\t\t\t*/}\n \n \n \n );\n }\n\n return null;\n };\n\n const CommentSidebar = () => {\n if (Object.getOwnPropertyNames(selectedComment).length > 0) {\n /*\n\t\t\tif (workflow.triggers[selectedTriggerIndex] === undefined) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tif (workflow.triggers[selectedTriggerIndex].parameters === undefined || workflow.triggers[selectedTriggerIndex].parameters === null || workflow.triggers[selectedTriggerIndex].parameters.length === 0) {\n\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters = []\n\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters[0] = {\"name\": \"url\", \"value\": referenceUrl+\"webhook_\"+selectedTrigger.id}\n\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters[1] = {\"name\": \"tmp\", \"value\": \"webhook_\"+selectedTrigger.id}\n\t\t\t\tworkflow.triggers[selectedTriggerIndex].parameters[2] = {\"name\": \"auth_headers\", \"value\": \"\"}\n\t\t\t\tsetWorkflow(workflow)\n\t\t\t} else {\n\t\t\t\tif (selectedTrigger.environment !== \"cloud\") {\n\t\t\t\t\tconst newUrl = referenceUrl+\"webhook_\"+selectedTrigger.id\n\t\t\t\t\tif (newUrl !== workflow.triggers[selectedTriggerIndex].parameters[0].value) {\n\t\t\t\t\t\tconsole.log(\"Url is wrong - should update. This functionality is temporarily disabled.\")\n\t\t\t\t\t\t//workflow.triggers[selectedTriggerIndex].parameters[0].value = newUrl\n\t\t\t\t\t\t//setWorkflow(workflow)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst trigger_header_auth = workflow.triggers[selectedTriggerIndex].parameters.length > 2 ? workflow.triggers[selectedTriggerIndex].parameters[2].value : \"\"\n\t\t\t*/\n\n return (\n
\n \n
\n

Comment

\n \n What are comments?\n \n
\n
\n \n
Name
\n {\n selectedComment.label = event.target.value;\n setSelectedComment(selectedComment);\n }}\n />\n
\n
\n
Height
\n {\n selectedComment.height = event.target.value;\n setSelectedComment(selectedComment);\n }}\n />\n
\n
\n
Width
\n {\n selectedComment.width = event.target.value;\n setSelectedComment(selectedComment);\n }}\n />\n
\n
\n
\n
\n
Background
\n {\n selectedComment.backgroundcolor = event.target.value;\n setSelectedComment(selectedComment);\n }}\n />\n
\n
\n
Text Color
\n {\n selectedComment.color = event.target.value;\n setSelectedComment(selectedComment);\n }}\n />\n
\n
\n\t\t\t\t\t
Background-Image
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tselectedComment.backgroundimage = event.target.value;\n\t\t\t\t\t\t\tconsole.log(\"Comment: \", selectedComment)\n\t\t\t\t\t\t\tsetSelectedComment(selectedComment);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n \n );\n }\n\n return null;\n };\n\n const WebhookSidebar = () => {\n if (Object.getOwnPropertyNames(selectedTrigger).length > 0) {\n if (workflow.triggers[selectedTriggerIndex] === undefined) {\n return null;\n }\n\n if (\n workflow.triggers[selectedTriggerIndex].parameters === undefined ||\n workflow.triggers[selectedTriggerIndex].parameters === null ||\n workflow.triggers[selectedTriggerIndex].parameters.length === 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [];\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n name: \"url\",\n value: referenceUrl + \"webhook_\" + selectedTrigger.id,\n };\n workflow.triggers[selectedTriggerIndex].parameters[1] = {\n name: \"tmp\",\n value: \"webhook_\" + selectedTrigger.id,\n };\n workflow.triggers[selectedTriggerIndex].parameters[2] = {\n name: \"auth_headers\",\n value: \"\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[3] = {\n name: \"custom_response_body\",\n value: \"\",\n };\n setWorkflow(workflow);\n } else {\n // Always update\n const newUrl = referenceUrl + \"webhook_\" + selectedTrigger.id;\n //console.log(\"Validating webhook url: \", newUrl);\n\t\t\t\tif (selectedTrigger.environment !== \"cloud\") {\n\t\t\t\t\tif (newUrl !== workflow.triggers[selectedTriggerIndex].parameters[0].value) {\n\t\t\t\t\t\tconsole.log(\"Url is wrong. NOT updating because of hybrid.\");\n\t\t\t\t\t\t//workflow.triggers[selectedTriggerIndex].parameters[0].value = newUrl;\n\t\t\t\t\t\t//setWorkflow(workflow);\n\t\t\t\t\t}\n\t\t\t\t}\n }\n\n const trigger_header_auth =\n workflow.triggers[selectedTriggerIndex].parameters.length > 2\n ? workflow.triggers[selectedTriggerIndex].parameters[2].value\n : \"\";\n\n return (\n
\n \n
\n

\n {selectedTrigger.app_name}: {selectedTrigger.status}\n

\n \n What are webhooks?\n \n
\n
\n \n
Name
\n \n\t\t\t\t\t{apps !== undefined && apps !== null && apps.length > 0 ? \n\t\t\t\t\t\t
\n \t {\n\t\t\t\t\t\t\t\t//console.log(\"Option contains?: \", inputValue, options)\n\t\t\t\t\t\t\t\tconst lowercaseValue = inputValue.toLowerCase()\n\t\t\t\t\t\t\t\toptions = options.filter(x => x.name.replaceAll(\"_\", \" \").toLowerCase().includes(lowercaseValue) || x.description.toLowerCase().includes(lowercaseValue))\n\n\t\t\t\t\t\t\t\treturn options\n\t\t\t\t\t\t\t}}\n \t getOptionLabel={(option) => {\n \t if (\n \t option === undefined ||\n \t option === null ||\n \t option.name === undefined ||\n \t option.name === null \n \t ) {\n \t return null;\n \t }\n\n \t const newname = (\n \t option.name.charAt(0).toUpperCase() + option.name.substring(1)\n \t ).replaceAll(\"_\", \" \");\n\n \t return newname;\n \t }}\n \t options={sortByKey(apps, \"name\")}\n \t fullWidth\n \t style={{\n \t backgroundColor: theme.palette.inputColor,\n \t height: 50,\n \t borderRadius: theme.palette.borderRadius,\n \t }}\n \t onChange={(event, newValue) => {\n \t // Workaround with event lol\n\t\t\t\t\t\t\t\tconsole.log(event, newValue)\n \t if (newValue !== undefined && newValue !== null) {\n\t\t\t\t\t\t\t\t\tvar parsedvalue = JSON.parse(JSON.stringify(newValue))\n\t\t\t\t\t\t\t\t\tparsedvalue.actions = []\n\t\t\t\t\t\t\t\t\tparsedvalue.authentication = {}\n\t\t\t\t\t\t\t\t\tselectedTrigger.app_association = parsedvalue \n \t setUpdate(Math.random());\n\t\t\t\t\t\t\t\t}\n \t // setNewSelectedAction({ \n\t\t\t\t\t\t\t\t//\t\ttarget: { \n\t\t\t\t\t\t\t\t//\t\t\tvalue: newValue.name \n\t\t\t\t\t\t\t\t//\t\t} \n\t\t\t\t\t\t\t\t//\t});\n \t //}\n \t }}\n \t renderOption={(app) => {\n\t\t\t\t\t\t\t\tvar appname = app.name.replaceAll(\"_\", \" \")\n\t\t\t\t\t\t\t\tappname = appname.charAt(0).toUpperCase() + appname.substring(1)\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{appname}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n \trenderInput={(params) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n \t}}\n \t/>\n\n\t\t\t\t\t\t
\n\t\t\t\t\t: null}\n\t\t\t\t\t{selectedTrigger.status === \"running\" ? null : \n \t
\n \t Environment\n \t {\n \t selectedTrigger.environment = e.target.value;\n \t if (e.target.value === \"cloud\") {\n \t const tmpvalue = workflow.triggers[selectedTriggerIndex].parameters[0].value.split(\"/\");\n \t const urlpath = tmpvalue.slice(3, tmpvalue.length);\n \t const newurl = \"https://shuffler.io/\" + urlpath.join(\"/\");\n \t workflow.triggers[selectedTriggerIndex].parameters[0].value = newurl;\n \t } else {\n \t const tmpvalue = workflow.triggers[selectedTriggerIndex].parameters[0].value.split(\"/\");\n \t const urlpath = tmpvalue.slice(3, tmpvalue.length);\n \t const newurl = window.location.origin + \"/\" + urlpath.join(\"/\");\n \t workflow.triggers[selectedTriggerIndex].parameters[0].value = newurl;\n \t }\n\n\t\t\t\t\t\t\t\t\tconsole.log(\"New value: \", workflow.triggers[selectedTriggerIndex].parameters[0])\n\t\t\t\t\t\t\t\t\tselectedTrigger.parameters[0] = workflow.triggers[selectedTriggerIndex].parameters[0]\n \t setSelectedTrigger(selectedTrigger);\n \t setWorkflow(workflow);\n \t setUpdate(Math.random());\n \t }}\n \t style={{\n \t backgroundColor: inputColor,\n \t color: \"white\",\n \t height: 50,\n \t }}\n \t >\n \t {triggerEnvironments.map((data) => {\n \t if (data.archived) {\n \t return null;\n \t }\n\n \t return (\n \t \n \t {data}\n \t \n \t );\n \t })}\n \t \n \t
\n\t\t\t\t\t}\n \n
\n
\n Parameters\n \n \n
\n Webhook URI \n
\n
\n {\n }}\n helperText={\n workflow.triggers[selectedTriggerIndex].parameters[0].value !== undefined &&\n workflow.triggers[selectedTriggerIndex].parameters[0].value !== null &&\n (workflow.triggers[\n selectedTriggerIndex\n ].parameters[0].value.includes(\"localhost\") ||\n workflow.triggers[\n selectedTriggerIndex\n ].parameters[0].value.includes(\"127.0.0.1\")) ? (\n \n PS: This does NOT work with localhost. Use your local IP\n instead.\n \n ) : null\n }\n InputProps={{\n style: {\n color: \"white\",\n height: 50,\n marginLeft: \"5px\",\n maxWidth: \"95%\",\n fontSize: \"1em\",\n },\n \t\t\tendAdornment: \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \t\t {\n \t\t\t\tvar copyText = document.getElementById(\"webhook_uri_field\");\n \t\t\t\tif (copyText !== undefined && copyText !== null) {\n \t\t\t\t console.log(\"NAVIGATOR: \", navigator);\n \t\t\t\t const clipboard = navigator.clipboard;\n \t\t\t\t if (clipboard === undefined) {\n \t\t\t\t alert.error(\"Can only copy over HTTPS (port 3443)\");\n \t\t\t\t return;\n \t\t\t\t }\n\n \t\t\t\t navigator.clipboard.writeText(copyText.value);\n \t\t\t\t copyText.select();\n \t\t\t\t copyText.setSelectionRange(\n \t\t\t\t 0,\n \t\t\t\t 99999\n \t\t\t\t ); /* For mobile devices */\n\n \t\t\t\t /* Copy the text inside the text field */\n \t\t\t\t document.execCommand(\"copy\");\n \t\t\t\t alert.success(\"Copied Webhook URL\");\n \t\t\t\t} else {\n \t\t\t\t console.log(\"Couldn't find webhook URI field: \", copyText);\n \t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tedge=\"end\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t \n \t\t\t\n\t\t\t\t\t\t\t\t\t\t\n }}\n fullWidth\n disabled\n value={\n workflow.triggers[selectedTriggerIndex].parameters[0].value\n }\n color=\"primary\"\n placeholder=\"defaultValue\"\n onBlur={(e) => {\n setTriggerCronWrapper(e.target.value);\n }}\n /> \n \n {\n newWebhook(workflow.triggers[selectedTriggerIndex]);\n }}\n color=\"primary\"\n >\n Start\n \n {\n deleteWebhook(selectedTrigger, selectedTriggerIndex);\n }}\n color=\"primary\"\n >\n Stop\n \n
\n \n\t\t\t\t\t\t\t\n \n
\n Authentication headers\n
\n \n
\n {}}\n InputProps={{\n style: {\n color: \"white\",\n marginLeft: \"5px\",\n maxWidth: \"95%\",\n fontSize: \"1em\",\n },\n }}\n fullWidth\n multiline\n rows=\"4\"\n defaultValue={trigger_header_auth}\n color=\"primary\"\n disabled={selectedTrigger.status === \"running\"}\n placeholder={\"AUTH_HEADER=AUTH_VALUE1\"}\n onBlur={(e) => {\n const value = e.target.value;\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[2] = {\n value: value,\n name: \"auth_headers\",\n };\n setWorkflow(workflow);\n }}\n />\n
\n\t\t\t\t\t\t\t\n \n
\n Custom Response\n
\n \n
\n {}}\n InputProps={{\n style: {\n color: \"white\",\n marginLeft: \"5px\",\n maxWidth: \"95%\",\n fontSize: \"1em\",\n },\n }}\n fullWidth\n multiline\n rows=\"4\"\n defaultValue={trigger_header_auth}\n color=\"primary\"\n disabled={selectedTrigger.status === \"running\"}\n placeholder={\"OK\"}\n onBlur={(e) => {\n const value = e.target.value;\n if (selectedTrigger.parameters === null) {\n selectedTrigger.parameters = [];\n }\n\n workflow.triggers[selectedTriggerIndex].parameters[3] = {\n value: value,\n name: \"custom_response_body\",\n };\n setWorkflow(workflow);\n }}\n />\n
\n \n \n \n );\n }\n\n return null;\n };\n\n const stopMailSub = (trigger, triggerindex) => {\n // DELETE\n if (trigger.id === undefined) {\n return;\n }\n\n alert.info(\"Stopping mail trigger\");\n const requesttype = triggerAuthentication.type;\n fetch(\n `${globalUrl}/api/v1/workflows/${props.match.params.key}/${requesttype}/${trigger.id}`,\n {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n throw new Error(\"Status not 200 for stream results :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (responseJson.success) {\n alert.success(\"Successfully stopped trigger\");\n // Set the status\n workflow.triggers[triggerindex].status = \"stopped\";\n trigger.status = \"stopped\";\n setWorkflow(workflow);\n setSelectedTrigger(trigger);\n saveWorkflow(workflow);\n } else {\n alert.error(\"Failed stopping trigger: \" + responseJson.reason);\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Stop mailsub error: \", error.toString());\n });\n };\n\n const startMailSub = (trigger, triggerindex) => {\n var folders = [];\n\n if (triggerFolders === null || triggerFolders === undefined) {\n return null;\n }\n\n const splitItem =\n workflow.triggers[selectedTriggerIndex].parameters[0].value.split(\n splitter\n )\n\n\t\tconsole.log(\"Starting mail sub: \", workflow.triggers[selectedTriggerIndex].parameters[0].value, splitItem);\n for (var key in splitItem) {\n const item = splitItem[key];\n const curfolder = triggerFolders.find((a) => a.displayName === item);\n if (curfolder === undefined) {\n alert.error(\"Something went wrong with folder selection: \" + item);\n return;\n }\n\n folders.push(curfolder.id);\n }\n\n const data = {\n name: trigger.name,\n folders: folders,\n id: trigger.id,\n };\n\n const requesttype = triggerAuthentication.type;\n alert.info(\n \"Creating \" + requesttype + \" subscription with name \" + trigger.name\n );\n\n fetch(\n globalUrl +\n \"/api/v1/workflows/\" +\n props.match.params.key +\n \"/\" +\n requesttype,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify(data),\n credentials: \"include\",\n }\n )\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for stream results :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (!responseJson.success) {\n alert.error(\"Failed to start trigger: \" + responseJson.reason);\n } else {\n alert.success(\n \"Successfully started folder subscription trigger. Test it by sending yoursend an email\"\n );\n\n workflow.triggers[triggerindex].status = \"running\";\n trigger.status = \"running\";\n setWorkflow(workflow);\n setSelectedTrigger(trigger);\n saveWorkflow(workflow);\n }\n })\n .catch((error) => {\n //alert.error(error.toString());\n console.log(\"Start mailsub error: \", error.toString());\n });\n };\n\n const newWebhook = (trigger) => {\n const hookname = trigger.label;\n if (hookname.length === 0) {\n alert.error(\"Missing name\");\n return;\n }\n\n if (trigger.id.length !== 36) {\n alert.error(\"Missing id\");\n return;\n }\n\n // Check the node it's connected to\n var startNode = workflow.start;\n const branch = workflow.branches.find(\n (branch) => branch.source_id === trigger.id\n );\n if (\n branch === undefined &&\n (workflow.start === undefined ||\n workflow.start === null ||\n workflow.start.length === 0)\n ) {\n alert.error(\"No webhook node defined\");\n }\n\n alert.info(\"Starting webhook\");\n if (branch !== undefined) {\n startNode = branch.destination_id;\n }\n\n const param = trigger.parameters.find(\n (param) => param.name === \"auth_headers\"\n );\n var auth = \"\";\n if (param !== undefined && param !== null) {\n auth = param.value;\n }\n\n\t\tconst customRespParam = trigger.parameters.find(\n (param) => param.name === \"custom_response_body\"\n )\n var custom_response = \"\";\n if (customRespParam !== undefined && customRespParam !== null) {\n custom_response = customRespParam.value;\n }\n\n console.log(\"TRIG: \", trigger);\n const data = {\n name: hookname,\n type: \"webhook\",\n id: trigger.id,\n workflow: workflow.id,\n start: startNode,\n environment: trigger.environment,\n auth: auth,\n\t\t\tcustom_response: custom_response,\n };\n\n fetch(globalUrl + \"/api/v1/hooks/new\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(data),\n credentials: \"include\",\n })\n .then((response) => response.json())\n .then((responseJson) => {\n if (responseJson.success) {\n // Set the status\n alert.success(\"Successfully started webhook\");\n trigger.status = \"running\";\n setSelectedTrigger(trigger);\n workflow.triggers[selectedTriggerIndex].status = \"running\";\n setWorkflow(workflow);\n saveWorkflow(workflow);\n } else {\n alert.error(\"Failed starting webhook: \" + responseJson.reason);\n }\n })\n .catch((error) => {\n //console.log(error.toString());\n console.log(\"New webhook error: \", error.toString());\n });\n };\n\n const deleteWebhook = (trigger, triggerindex) => {\n if (trigger.id === undefined) {\n return;\n }\n\n fetch(globalUrl + \"/api/v1/hooks/\" + trigger.id + \"/delete\", {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n credentials: \"include\",\n })\n .then((response) => {\n if (response.status !== 200) {\n console.log(\"Status not 200 for stream results :O!\");\n }\n\n return response.json();\n })\n .then((responseJson) => {\n if (workflow.triggers[triggerindex] !== undefined) {\n workflow.triggers[triggerindex].status = \"stopped\";\n }\n\n if (responseJson.success) {\n // Set the status\n saveWorkflow(workflow);\n } else {\n if (responseJson.reason !== undefined) {\n alert.error(\"Failed stopping webhook: \" + responseJson.reason);\n }\n }\n\n trigger.status = \"stopped\";\n setWorkflow(workflow);\n setSelectedTrigger(trigger);\n })\n .catch((error) => {\n //alert.error(error.toString());\n alert.error(\"Delete webhook error: \", error.toString());\n });\n };\n\n const UserinputSidebar = () => {\n if (\n Object.getOwnPropertyNames(selectedTrigger).length > 0 &&\n workflow.triggers[selectedTriggerIndex] !== undefined\n ) {\n if (\n workflow.triggers[selectedTriggerIndex].parameters === undefined ||\n workflow.triggers[selectedTriggerIndex].parameters === null ||\n workflow.triggers[selectedTriggerIndex].parameters.length === 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [];\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n name: \"alertinfo\",\n value: \"hello this is an alert\",\n };\n\n // boolean,\n workflow.triggers[selectedTriggerIndex].parameters[1] = {\n name: \"options\",\n value: \"boolean\",\n };\n\n // email,sms,app ...\n workflow.triggers[selectedTriggerIndex].parameters[2] = {\n name: \"type\",\n value: \"email\",\n };\n\n workflow.triggers[selectedTriggerIndex].parameters[3] = {\n name: \"email\",\n value: \"test@test.com\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[4] = {\n name: \"sms\",\n value: \"0000000\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[5] = {\n name: \"subflow\",\n value: \"\",\n };\n\n setWorkflow(workflow);\n }\n\n return (\n
\n \n
\n

\n {selectedTrigger.app_name}: {selectedTrigger.status}\n

\n \n What is the user input trigger?\n \n
\n
\n \n
Name
\n \n\n
\n Environment:\n \n
\n \n
\n Parameters\n \n \n
\n Information\n
\n
\n {\n setTriggerTextInformationWrapper(e.target.value);\n }}\n />\n \n \n
\n Contact options\n
\n \n \n {\n setTriggerOptionsWrapper(\"subflow\");\n }}\n color=\"primary\"\n value=\"subflow\"\n\t\t\t\t\t\t\t\t\t\tdisabled\n />\n }\n label={
Subflow
}\n />\n {\n setTriggerOptionsWrapper(\"email\");\n }}\n color=\"primary\"\n value=\"email\"\n />\n }\n label={
Email
}\n />\n {\n setTriggerOptionsWrapper(\"sms\");\n }}\n color=\"primary\"\n value=\"sms\"\n />\n }\n label={
SMS
}\n />\n \n {workflow.triggers[selectedTriggerIndex].parameters[2] !==\n undefined &&\n workflow.triggers[\n selectedTriggerIndex\n ].parameters[2].value.includes(\"email\") ? (\n {\n workflow.triggers[selectedTriggerIndex].parameters[3].value =\n event.target.value;\n setWorkflow(workflow);\n setUpdate(Math.random());\n }}\n />\n ) : null}\n {workflow.triggers[selectedTriggerIndex].parameters[2] !==\n undefined &&\n workflow.triggers[\n selectedTriggerIndex\n ].parameters[2].value.includes(\"sms\") ? (\n {\n workflow.triggers[selectedTriggerIndex].parameters[4].value =\n event.target.value;\n setWorkflow(workflow);\n setUpdate(Math.random());\n }}\n />\n ) : null}\n\t\t\t\t\t\t{workflow.triggers[selectedTriggerIndex].parameters[2] !==\n undefined &&\n workflow.triggers[\n selectedTriggerIndex\n ].parameters[2].value.includes(\"subflow\") ? (\n {\n workflow.triggers[selectedTriggerIndex].parameters[5].value =\n event.target.value;\n setWorkflow(workflow);\n setUpdate(Math.random());\n }}\n />\n ) : null}\n \n \n );\n }\n\n return null;\n };\n\n const ScheduleSidebar = () => {\n if (\n Object.getOwnPropertyNames(selectedTrigger).length > 0 &&\n workflow.triggers[selectedTriggerIndex] !== undefined\n ) {\n if (\n workflow.triggers[selectedTriggerIndex].parameters === undefined ||\n workflow.triggers[selectedTriggerIndex].parameters === null ||\n workflow.triggers[selectedTriggerIndex].parameters.length === 0\n ) {\n workflow.triggers[selectedTriggerIndex].parameters = [];\n workflow.triggers[selectedTriggerIndex].parameters[0] = {\n name: \"cron\",\n value: isCloud ? \"*/25 * * * *\" : \"60\",\n };\n workflow.triggers[selectedTriggerIndex].parameters[1] = {\n name: \"execution_argument\",\n value: '{\"example\": {\"json\": \"is cool\"}}',\n };\n setWorkflow(workflow);\n }\n\n return (\n
\n \n
\n

\n {selectedTrigger.app_name}: {selectedTrigger.status}\n

\n \n What are schedules?\n \n
\n
\n \n
Name
\n \n
\n Environment\n {\n selectedTrigger.environment = e.target.value;\n setSelectedTrigger(selectedTrigger);\n if (e.target.value === \"cloud\") {\n console.log(\"Set cloud config\");\n workflow.triggers[selectedTriggerIndex].parameters[0].value =\n \"*/25 * * * *\";\n } else {\n console.log(\"Set cloud config\");\n\n workflow.triggers[selectedTriggerIndex].parameters[0].value =\n \"60\";\n }\n\n setWorkflow(workflow);\n setUpdate(Math.random());\n }}\n style={{\n backgroundColor: inputColor,\n color: \"white\",\n height: 50,\n }}\n >\n {triggerEnvironments.map((data) => {\n if (data.archived) {\n return null;\n }\n\n return (\n \n {data}\n \n );\n })}\n \n
\n \n
\n
\n Parameters\n \n \n
\n Interval (UTC) \n
\n
\n {\n setTriggerCronWrapper(e.target.value);\n }}\n />\n\t\t\t\t\t\t\t{/*selectedTrigger.environment === \"cloud\" ? \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t*/}\n \n \n
\n Execution argument: \n
\n
\n {\n setTriggerBodyWrapper(e.target.value);\n }}\n />\n \n \n {\n submitSchedule(selectedTrigger, selectedTriggerIndex);\n }}\n color=\"primary\"\n >\n Start\n \n {\n stopSchedule(selectedTrigger, selectedTriggerIndex);\n }}\n color=\"primary\"\n >\n Stop\n \n \n \n \n \n );\n }\n\n return null;\n };\n\n const cytoscapeViewWidths = isMobile ? 50 : 850;\n const bottomBarStyle = {\n position: \"fixed\",\n right: isMobile ? 20 : 20,\n bottom: isMobile ? undefined : 0,\n\t\ttop: isMobile ? appBarSize + 55 : undefined,\n left: isMobile ? undefined : leftBarSize,\n minWidth: cytoscapeViewWidths,\n maxWidth: cytoscapeViewWidths,\n marginLeft: 20,\n marginBottom: 20,\n zIndex: 10,\n };\n\n const topBarStyle = {\n position: \"fixed\",\n right: 0,\n left: isMobile ? 20 : leftBarSize + 20,\n top: isMobile ? 30 : appBarSize + 20,\n };\n\n const TopCytoscapeBar = (props) => {\n\t\tif (workflow.public === true) {\n\t\t\treturn null\n\t\t}\n\n return (\n
\n
\n \n \n \n \n Workflows\n \n \n

{workflow.name}

\n \n
\n
\n );\n };\n\n const WorkflowMenu = () => {\n const [newAnchor, setNewAnchor] = React.useState(null);\n const [showShuffleMenu, setShowShuffleMenu] = React.useState(false);\n\n return (\n
\n {\n setShowShuffleMenu(false);\n }}\n >\n \n

This menu is used to control the workflow itself.

\n \n\n Skip Notifications
}\n control={\n {\n workflow.configuration.skip_notifications =\n !workflow.configuration.skip_notifications;\n setWorkflow(workflow);\n setUpdate(\n \"skip_notifications\" +\n workflow.configuration.skip_notification\n ? \"true\"\n : \"false\"\n );\n }}\n />\n }\n />\n Exit on Error}\n control={\n {\n workflow.configuration.exit_on_error =\n !workflow.configuration.exit_on_error;\n setWorkflow(workflow);\n setUpdate(\n \"exit_on_error_\" + workflow.configuration.exit_on_error\n ? \"true\"\n : \"false\"\n );\n }}\n />\n }\n />\n Start from top}\n control={\n {\n workflow.configuration.start_from_top =\n !workflow.configuration.start_from_top;\n setWorkflow(workflow);\n setUpdate(\n \"start_from_top_\" + workflow.configuration.start_from_top\n ? \"true\"\n : \"false\"\n );\n }}\n />\n }\n />\n \n \n\t\t\t\t{/*\n \n \n {\n setShowShuffleMenu(!showShuffleMenu);\n setNewAnchor(event.currentTarget);\n }}\n >\n \n \n \n \n\t\t\t\t*/}\n\t\t\t\t{isMobile ? \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconsole.log(\"Show apps!\")\n \t\t\t\t\t\t\t\tsetLeftBarSize(leftViewOpen ? 0 : 60)\n \t\t\t\t\t\t\t\tsetLeftViewOpen(!leftViewOpen)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t: null}\n\t\t\t\n );\n };\n\n\tconst handleActionHover = (inside, actionId) => {\n\t\tif (cy !== undefined) {\n\t\t\tvar node = cy.getElementById(actionId);\n\t\t\tif (node.length > 0) {\n\t\t\t\tif (inside) {\n\t\t\t\t\tnode.addClass(\"shuffle-hover-highlight\");\n\t\t\t\t} else {\n\t\t\t\t\tnode.removeClass(\"shuffle-hover-highlight\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n const handleHistoryUndo = () => {\n //console.log(\"history: \", history, \"index: \", historyIndex);\n var item = history[historyIndex - 1];\n if (historyIndex === 0) {\n item = history[historyIndex];\n }\n\n if (item === undefined) {\n console.log(\"Couldn't find the action you're looking for\");\n return;\n }\n\n //console.log(\"HANDLE: \", item);\n if (item.type === \"node\" && item.action === \"removed\") {\n // Re-add the node\n\t\t\tconsole.log(\"Item: \", item.data)\n\n \tconst edge = cy.getElementById(item.data.id).json()\n\t\t\tif (edge !== null && edge !== undefined) {\n\t\t\t\tconsole.log(\"Couldn't add node as it exists\")\n\t\t\t\treturn\n\t\t\t}\n\n cy.add({\n group: \"nodes\",\n data: item.data,\n position: item.data.position,\n });\n } else if (item.action === \"added\") {\n //console.log(\"Should remove item!\");\n const currentitem = cy.getElementById(item.data.id);\n if (currentitem !== undefined && currentitem !== null) {\n currentitem.remove();\n }\n\n } else if (item.type === \"edge\" && item.action === \"removed\") {\n \tconst sourcenode = cy.getElementById(item.data.source)\n \tconst targetnode = cy.getElementById(item.data.target)\n\t\t\tif (sourcenode === undefined || sourcenode === null || targetnode === undefined || targetnode === null) {\n\t\t\t\tconsole.log(\"Can't readd bad edge!\")\n\t\t\t\treturn\n\t\t\t}\n\n \tconst edge = cy.getElementById(item.data.id).json()\n\t\t\tif (edge !== null && edge !== undefined) {\n\t\t\t\tconsole.log(\"Couldn't add edge as it exists\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tcy.add({\n\t\t\t\tgroup: \"edges\",\n\t\t\t\tdata: item.data,\n\t\t\t});\n\n } else {\n\t\t\tconsole.log(\"UNHANDLED: \", item)\n\t\t}\n\n if (historyIndex > 0) {\n setHistoryIndex(historyIndex - 1);\n }\n };\n\n const BottomCytoscapeBar = () => {\n if (workflow.id === undefined || workflow.id === null || (!workflow.public && apps.length === 0)) {\n return null;\n }\n\n const boxSize = isMobile ? 50 : 100;\n const executionButton = executionRunning ? (\n \n \n {\n abortExecution();\n }}\n >\n \n \n \n \n ) : (\n \n \n {\n executeWorkflow(executionText, workflow.start, lastSaved);\n }}\n >\n \n \n \n \n );\n\n return (\n
\n {executionButton}\n \n {isMobile || workflow.public ? null : (\n \n {\n setExecutionText(e.target.value);\n }}\n />\n \n )}\n\t\t\t\t\t{/*userdata.avatar === creatorProfile.github_avatar ? null :*/}\n \t\n \t \n \t {\n\t\t\t\t\t\t\t\t\t\tsaveWorkflow()\n\n\t\t\t\t\t\t\t\t\t\tif (workflow.public === true) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Public!\")\n\n\t\t\t\t\t\t\t\t\t\t\tconst tmpurl = new URL(window.location.href)\n\t\t\t\t\t\t\t\t\t\t\tconst searchParams = tmpurl.searchParams\n\t\t\t\t\t\t\t\t\t\t\tconst queryID = searchParams.get('queryID')\n\n\t\t\t\t\t\t\t\t\t\t\tif (queryID !== undefined && queryID !== null) {\n\t\t\t\t\t\t\t\t\t\t\t\taa('init', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tappId: \"JNSS5CFDZZ\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tapiKey: \"db08e40265e2941b9a7d8f644b6e5240\",\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst timestamp = new Date().getTime()\n\t\t\t\t\t\t\t\t\t\t\t\taa('sendEvents', [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\teventType: 'conversion',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\teventName: 'Public Workflow Saved',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex: 'workflows',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tobjectIDs: [workflow.id],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttimestamp: timestamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tqueryID: queryID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserToken: userdata === undefined || userdata === null || userdata.id === undefined ? \"unauthenticated\" : userdata.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"No query to handle\")\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n \t >\n \t {savingState === 2 ? (\n \t \n \t ) : savingState === 1 ? (\n \t \n \t ) : (\n \t \n \t )}\n \t \n \t \n \t\n {workflow.public ? (\n \n \n {\n const data = workflow;\n let exportFileDefaultName = data.name + \".json\";\n\n let dataStr = JSON.stringify(data);\n let dataUri =\n \"data:application/json;charset=utf-8,\" +\n encodeURIComponent(dataStr);\n let linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n }}\n >\n \n \n \n \n ) : null}\n \n \n cy.fit(null, 50)}\n >\n \n \n \n \n \n \n {\n handleHistoryUndo(history);\n }}\n >\n \n \n \n \n \n \n {\n \t\t\t\t\t\t\tconst selectedNode = cy.$(\":selected\");\n \t\t\t\t\t\t\tif (selectedNode.data() === undefined) {\n \t\t\t\t\t\t\t return\n \t\t\t\t\t\t\t}\n\n removeNode(selectedNode.data(\"id\"))\n }}\n >\n \n \n \n \n \n \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetExecutionModalOpen(true);\n\t\t\t\t\t\t\t\t\tgetWorkflowExecution(props.match.params.key, \"\");\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t\t\n \n \n \n \n {\n addCommentNode();\n }}\n >\n \n \n \n \n {workflow.configuration !== null &&\n workflow.configuration !== undefined &&\n workflow.configuration.exit_on_error !== undefined ? (\n \n ) : null}\n\t\t\t\t\t\n \n {\n\t\t\t\t\t\t\t\t\tconsole.log(\"SHOW EDIT VIEW!\")\n\n\t\t\t\t\t\t\t\t\tsetEditWorkflowModalOpen(true)\n\t\t\t\t\t\t\t\t}}\n >\n\t\t\t\t\t\t\t\t\n \n \n \n
\n \n );\n };\n\n const addCommentNode = () => {\n const newId = uuidv4();\n const position = {\n x: 300,\n y: 300,\n };\n\n cy.add({\n group: \"nodes\",\n data: {\n id: newId,\n label: \"Click to write a comment\",\n type: \"COMMENT\",\n is_valid: true,\n decorator: true,\n width: 250,\n height: 150,\n position: position,\n backgroundcolor: \"#1f2023\",\n color: \"#ffffff\",\n },\n position: position,\n });\n };\n\n const RightSideBar = (props) => {\n const {\n workflow,\n setWorkflow,\n setSelectedAction,\n setUpdate,\n selectedApp,\n workflowExecutions,\n setSelectedResult,\n selectedAction,\n setSelectedApp,\n setSelectedTrigger,\n setSelectedEdge,\n setCurrentView,\n cy,\n setAuthenticationModalOpen,\n setVariablesModalOpen,\n setCodeModalOpen,\n selectedNameChange,\n rightsidebarStyle,\n showEnvironment,\n selectedActionEnvironment,\n environments,\n setNewSelectedAction,\n appApiViewStyle,\n globalUrl,\n setSelectedActionEnvironment,\n requiresAuthentication,\n scrollConfig,\n setScrollConfig,\n } = props;\n\n if (!rightSideBarOpen) {\n return null;\n }\n\n\t\tvar defaultReturn = null\n if (Object.getOwnPropertyNames(selectedAction).length > 0) {\n if (Object.getOwnPropertyNames(selectedAction).length === 0) {\n return null;\n }\n\n\t\t\tdefaultReturn = \n\n } else if (Object.getOwnPropertyNames(selectedComment).length > 0) {\n\t\t\tdefaultReturn = \n } else if (Object.getOwnPropertyNames(selectedTrigger).length > 0) {\n if (selectedTrigger.trigger_type === \"SCHEDULE\") {\n\t\t\t\tdefaultReturn = \n } else if (selectedTrigger.trigger_type === \"WEBHOOK\") {\n\t\t\t\tdefaultReturn = \n } else if (selectedTrigger.trigger_type === \"SUBFLOW\") {\n\t\t\t\tdefaultReturn = \n } else if (selectedTrigger.trigger_type === \"EMAIL\") {\n\t\t\t\tdefaultReturn = \n } else if (selectedTrigger.trigger_type === \"USERINPUT\") {\n\t\t\t\tdefaultReturn = \n } else if (selectedTrigger.trigger_type === undefined) {\n\t\t\t\t//defaultReturn = \n return null;\n } else {\n console.log(\n \"Unable to handle invalid trigger type \" +\n selectedTrigger.trigger_type\n );\n return null;\n }\n } else if (Object.getOwnPropertyNames(selectedEdge).length > 0) {\n\t\t\tdefaultReturn = \n }\n\n\t\tconst iOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent);\n\n\t\tconst drawerBleeding = 56;\n\t\tif (defaultReturn === undefined || defaultReturn === null) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn (\n\t\t\tisMobile ? \n\t\t\t\t {\n\t\t\t\t\t\tconsole.log(\"Close!\")\n\t\t\t\t\t\t//setRightSideBarOpen(false)\n\t\t\t\t\t\tcy.elements().unselect()\n\t\t\t\t\t}}\n\t\t\t\t\tdisableSwipeToOpen={false}\n\t\t\t\t\tModalProps={{\n\t\t\t\t\t\tkeepMounted: true,\n\t\t\t\t\t}}\n\t\t\t\t\tPaperProps={{\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tmaxHeight: \"70%\",\n\t\t\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{defaultReturn}\n\t\t\t\t\n\t\t\t: \n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{defaultReturn}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t);\n\n //return null;\n };\n\n // This can execute a workflow with firestore. Used for test, as datastore is old and stuff\n // Too much work to move everything over alone, so won't touch it for now\n //\n //\n\t\t\n\t// A list used for FRONTEND handling of whether a public workflow\n\t// should be change-able\n\tconst allowList = [\"frikky\", \"m1nk-code\", \"DavidtheGoliath\"]\n\t// console.log(allowList, userdata.public_username)\n\n const leftView = workflow.public === true ? \n\t\t\t
\n\t\t\t\t\n \t{workflow.name}\n \n\t\t\t\t\n\t\t\t\t\tThis workflow is public\tand {\n saveWorkflow()\n\t\t\t\t\t}}>must be saved or exported before use.\n\t\t\t\t\n\t\t\t\t{Object.getOwnPropertyNames(creatorProfile).length !== 0 && creatorProfile.github_avatar !== undefined && creatorProfile.github_avatar !== null ? \n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tShared by {creatorProfile.github_username}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t: null}\n\t\t\t
\n\t\t\t{workflow.tags !== undefined && workflow.tags !== null && workflow.tags.length > 0 ?\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tTags\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{workflow.tags.map((tag, index) => {\n\t\t\t\t\t\t\tif (index >= 3) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t: null }\n\n\t\t\t{workflow.blogpost !== undefined && workflow.blogpost !== null && workflow.blogpost.length > 0 ? \n\t\t\t\t
\n\t\t\t\t\t\n \n\t\t\t\t\t\t\tRelated blog & docs\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\n\t\t\t{appGroup.length > 0 ? \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tApps\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{appGroup.map((data, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t: null}\n\n\t\t\t{triggerGroup.length > 0 ? \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tTriggers\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{triggerGroup.map((data, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t: null}\n\n\t\t\t{/*\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tMitre Att&ck:  \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tTBD\n\t\t\t\t\n\t\t\t
\n\t\t\t*/}\n\n\t\t\t{/*\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tRelated Workflows:\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tTBD\n\t\t\t\t\n\t\t\t
\n\t\t\t*/}\n\t\t\t\n\t\t\t{workflow.video !== undefined && workflow.video !== null && workflow.video.length > 0 ? \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tVideo\t\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tworkflow.video.includes(\"loom.com/share\") && workflow.video.split(\"/\").length > 4 ? \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t