{"version":3,"sources":["explorer.js","explorer-archive.js","explorer-dashboard.js","explorer-disturbances.js","explorer-files.js","explorer-info.js","explorer-issues.js","explorer-news.js","explorer-scheduling.js","explorer-tabs.js","explorer-values.js"],"names":["global","counterDeferreds","availableMenuItems","lastMatch","currentTab","Explorer","MenuItems","$explorer","$","$explorerMessagePanel","$explorerTabMenu","$explorerMoreMenu","$explorerHeader","$optionMenu","$withChildLocations","find","$withDeactivatedElements","$changemodeTabMenu","initExplorer","isCurrentTabAvailable","ressources","users","hasOfficeUIRight","ID","Tools","contains","OID","getFirstAvailableMenuItem","CurrentTabIsAvailable","ActionType","Enums","CustomMenuItemActionType","ShowIssueReport","updateTabCounters","then","resizeTabMenu","setCurrentTabAsActive","NewTab","prepareMenuConfig","menuItems","CurrentEntity","Object","values","Array","length","locationOID","uiItems","initializedConfig","enabledMenuItems","roles","getRolesAtLocation","User","forEach","identifier","role","Roles","OfficeUIRights","walk","uiItem","IsEnabled","push","Position","Children","updateValuesCounter","deferred","Deferred","this","resolve","promise","Values","UpdateTabCounter","updateIssueCounter","Issues","updateDisturbancesCounter","Disturbances","updateSchedulingsCounter","Scheduling","ResetSchedulingCache","i","mItem","showMenuItemInOffice","menuItem","ModificationType","Deleted","IsAvailableInOffice","ShowCalendar","OpenSchedulingWindow","OpenFormWindow","ShowFloorPlan","ShowBluetoothSettings","Link","ShowIndividualData","ShowScaleSettings","Configuration","PoolFormIssues","Title","escapeHtml","CustomMenuItems","GetItemTitle","Icon","GetOfficeIconFilePath","OfficeIconOID","getFirst","ShowCheckpoints","FnUpdateCounter","bind","ShowDisturbancesFromRecordings","ShowSchedulingOverview","sort","showTab","tabIdentifier","options","disposeCurrentTab","addClass","history","pushState","navigator","title","format","changeSelectedTab","removeClass","text","i18next","t","match","DataManager","OrganizationUnitLoader","Data","Root","menuItemId","first","data","$navigation","handleSwitchTab","ResolveUrlPattern","args","ShowDashboardOffice","Dashboard","Show","ShowInformation","Info","ShowNews","News","ShowRecordedFiles","Files","ShowIssueArchive","Archive","Dispose","counterDeferred","abort","Function","cnt","len","when","apply","siblings","remainingWidth","$optionsMenu","$tabItems","children","not","maxWidth","width","outerWidth","tabItems","tabItemsWidth","moreChildIsActive","each","_idx","elem","$elem","parseInt","css","item","tabId","$moreElem","toggleClass","getCurrentTab","onShowTab","evt","DatePicker","Close","stopPropagation","onShowMoreMenu","tagName","toLowerCase","isOpen","hasClass","on","off","onShowOptionMenu","onSelectOption","event","$this","option","withChildLocations","getWithChildLocations","withDeactivatedElements","getWithDeactivatedElements","QRCode","UpdateOfficeUserSettings","Center","Enabled","location","hash","Mode","value","GetOfficeSettingValue","createOrganisationUnitLink","menuitemIdentifier","ouIdentifier","Init","Sessions","hasActiveSession","DataMap","hasOwnProperty","firstAvailableTab","newLocationOID","Rights","getRightsAtLocation","content","reset","Select","html","Tabs","Generate","newTabOID","Type","elementType","Location","ShowTab","GetFirstAvailableMenuItem","Resize","ResizeTabMenu","SetCurrentTabAsActive","GetCurrentTab","IsMenuItemAvailable","id","GetMenuItemById","GetColumnsSettingName","GetWithChildLocations","GetWithDeactivatedElements","SetTabCounterLoading","menuItemIdentifier","SetTabCounter","count","counterText","GetBadgeCounterText","attr","UpdateTabCounters","CreateOrganisationUnitPath","assignedElementOID","elementCache","parent","locationLink","locationPath","Parent","DisposeCurrentTab","Reset","ResetFilters","window","issuesLoaded","issues","tableColumnSelection","tableColumns","sorting","sortingorder","typeFilter","types","creatorFilter","userFilter","teamFilter","teams","contactFilter","contacts","contactGroupFilter","contactGroups","keywordFilter","keywords","classificationFilter","classifications","statusFilter","states","priorityFilter","priorities","formFilter","schedulingFilter","selectAll","searchTimeout","searchValue","hideNonResponsibleIssues","userCanAssignAllTeamsAndUsers","visibleTeams","selectableTeams","updateRequest","periodFilter","activeFilters","TypeFilter","CreatorFilter","UserFilter","TeamFilter","ContactFilter","KeywordFilter","ClassificationFilter","StatusFilter","PriorityFilter","FormFilter","SchedulingFilter","PeriodFilter","SearchValue","HideNonResponsibleIssues","interacts","draggable","droppable","$body","$tree","$explorerDashboard","$explorerInfo","$explorerValues","$explorerNews","$explorerIssues","$explorerDisturbances","$explorerScheduling","$explorerFiles","$explorerArchive","$properties","$explorerOptionMenu","$tableWrapper","$tableHeader","$selectAll","$tableBody","$toggleControls","$btnPrintIssues","$btnEditIssues","$resetFilters","$typeFilter","$tableColumnSelection","$creatorFilter","$userFilter","$teamFilter","$contactFilter","$contactGroupFilter","$keywordFilter","$classificationFilter","$statusFilter","$priorityFilter","$formFilter","$schedulingFilter","$search","$periodFilter","$hideNonResponsibleIssues","$cbHideNonResponsibleIssues","setFilterState","isActive","filter","initTypeFilter","$btnTitle","titles","map","type","join","initTableColumnSelection","selectedColumnsChanged","columnIds","split","oid","column","tableColumn","initFilters","hasNoRight","initCreatorFilter","initUserFilter","initTeamFilter","initContactFilter","initContactGroupFilter","initKeywordFilter","initClassificationFilter","initStatusFilter","initPriorityFilter","initFormFilter","initSchedulingFilter","val","Start","End","toLocaleString","AllRights","prop","user","team","Client","Licenses","Contacts","contact","contactGroup","keyword","classification","status","priority","form","schedulingl","initIssueDragAndDrop","$info","selectedIssues","movableIssues","unmovableIssues","views","removeDragAndDropToTreeHandlers","interact","inertia","autoScroll","listeners","move","$target","currentTarget","getSelectedIssues","issue","locationInfo","AssignedElementOID","GetIssueAbbreviation","Revision","append","x","clientX","y","clientY","top","left","end","remove","dropzone","accept","checker","InteractJs","IsBeingDraggedOverTreeNode","ondragenter","$dropZoneElement","currentOU","editIssueRight","getRightToEditIssueType","userHasRightToDropHere","hasIssueEditRight","AssignedRecorditemID","AssignedRecorditemOID","hasRightAtLocation","ondragleave","ondrop","onMoveSingleIssue","previousOrganizationUnit","newOrganizationUnitOID","Message","ok","newOrganizationUnit","prepareIssueForWebService","Spinner","show","http","put","xhr","hide","handleHttpError","HttpActionType","Write","newLocation","messageBoxOptions","locationTitle","onYes","moveIssues","a","b","assignments","preparedIssues","post","onToggleControls","$controls","$firstTableRow","$filterColumns","$lastRow","$lastRowFilters","$tableFilterSelection","resize","onBtnPrintIssuesClick","PrintPreview","onBtnEditIssuesClick","IssuesEditor","modifications","$selectedIssues","cb","issueOID","closest","resetFilters","ContactGroupFilter","onResetFilters","onShowTypeFilter","onApply","onSelectTypeFilter","checkedEntities","treeOptions","schema","opened","checkbox","fullrow","TreePicker","selectedTypes","onShowTableColumnSelection","onSelectTableColumns","selectedTableColumns","isChecked","$col","allColumnIDs","entity","selectedColumns","onShowCreatorFilter","onSelectCreatorFilter","createContentHtml","createCheckboxHtml","createTextHtml","IsLocked","selectedUsers","onShowUserFilter","onSelectUserFilter","onShowTeamFilter","onSelectTeamFilter","color","disabled","node","indexOf","RootTeam","selectedTeams","onShowContactFilter","onSelectContactFilter","selectedContacts","onShowContactGroupFilter","onSelectContactGroupFilter","onShowKeywordFilter","onSelectKeywordFilter","Keywords","selectedKeywords","onShowClassificationFilter","onSelectClassificationFilter","Classifications","selectedClassifications","onShowStatusFilter","WindowWrappers","ShowStatusSelection","selectedStatusses","selectMultiple","windowCaption","showCheckbox","onApplySelection","onSelectStatusFilter","statusState","StatusState","Closed","selectedStatus","onShowPriorityFilter","onSelectPriorityFilter","Priorities","selectedPriorities","onShowFormFilter","ShowFormSelectionForLocation","selectedForms","buttons","showAllForms","showAssignedFormsOnly","onSelectFormFilter","FormLoader","onShowSchedulingFilter","ShowSchedulingSelectionForLocation","selectedSchedulings","showAllSchedulings","showAssignedSchedulingsOnly","onSelectSchedulingFilter","SchedulingLoader","onTogglePeriodFilter","mode","withTime","noDateAllowed","offsetY","closeElement","deactivatable","titleElement","dateTypes","DatePickerTypes","Creation","Modification","Deadline","selectedType","CurrentType","beforeShow","SetDate","Date","setSeconds","onDatePickerClose","onToggleHideNonResponsibleIssues","onSearch","clearTimeout","setTimeout","trim","onScroll","wrapperHeight","innerHeight","outerHeight","scrollTop","updateTable","onToggleSorting","removeAttr","onToggleSelection","onSelectOrganisationUnit","onShowIssue","issueID","IssueViewer","onCommentsChanged","changeInfo","commentsMarkup","IssueOID","Comments","prepareCommentsForWebApp","$issue","renderComments","after","onShowImage","filename","ImageViewer","filelist","indexFilename","sTitle","sUserOID","Editor","sTimestamp","ModificationTimestamp","onShowPrintPreview","Issue","onToggleSubscription","parents","subscribe","method","Recipients","addUnique","replaceWith","renderSubscription","onShowSubscriptionsAndLikes","$tooltip","offset","abos","subscribers","subscriber","Users","Fullname","SortStringArray","slice","onHideSubscriptionsAndLikes","onShowComments","Panel","empty","createParams","menuItemConfig","Skip","Take","IncludeCounter","LoadIssues","Sorting","SortingOrder","LocationOID","IsArchived","WithChildLocations","WithDeactivatedElements","Types","extend","IssueTypes","Teams","ContactGroups","States","Statuses","Forms","Schedulings","ProcessingStatus","ProcessingStatuses","params","Creators","scheduling","IncludeTemplates","IncludeDerivations","prototype","concat","CreationPeriod","PeriodStart","dateTime","toGMTString","PeriodEnd","ModificationPeriod","DeadlinePeriod","SearchString","prepareData","prepareIssueForWebApp","titleA","titleB","CreationTimestamp","getTime","DeadlineTimestamp","State","Priority","ParameterCount","CollectedParameterCount","OpenParameterCount","RequiredParameterCount","CollectedRequiredParameterCount","naturalizedCustomIDA","NaturalizedCustomID","naturalizedCustomIDB","EstimatedEffort","appendIssues","renderIssue","editIssues","editIssueLocation","assignedUsers","abbr","icon","IsTemplate","issueType","Note","Disturbance","DisturbancesCompleted","Inspection","Investigation","Form","Survey","Resubmission","mailTokens","AdditionalData","MailToken","CustomID","Image","mailAddresses","InvestigationStatusInformation","errorText","Status","Investigations","Error","getInvestigationErrorText","ErrorCode","getInvestigationStatusText","LocationPath","image","Filename","Marks","pathRegex","paths","exec","height","svgContent","Config","BaseUri","formCoding","FormCoding","coding","element","formatElementCoding","Prefix","CodingIdent","timestamp","creator","Creator","getDifferenceString","editor","state","Color","ResponsibilityAssignments","assignedTeams","userIdentifier","teamIdentifier","renderContent","groupedTeamsAndUsers","responsible","accountable","consulted","informed","userResponsibilityEntity","IsResponsible","IsAccountable","IsConsulted","IsInformed","teamResponsibilityEntity","unitTitle","Settings","EstimatedEffortSettings","UnitOID","unitOID","unit","Properties","recipients","Read","OnImageNotFound","reject","initResult","IssueRights","AllowAssigningAllUsersToIssues","tree","Surveys","Inspections","GetSelectableUsers","SortByFullname","teamInformation","GetSelectableTeams","VisibleTeams","SelectableTeams","SortByTitle","property","propertyType","Keyword","Classification","$sortingCol","RemoveDragAndDropHandlers","unset","_result","_statusChart","_processingStatusChart","_userChart","_teamsChart","_userProcessingStatusIssueCount","_teamsProcessingStatusIssueCount","disposeCharts","unbindEvents","bindEvents","WithIssueDisturbanceCount","WithRecorditemDisturbanceCount","always","result","render","onShowIssueDisturbances","onShowRecorditemDisturbances","onShowIssues","onChartButtonClick","onCloseChartClick","showStatusTeams","processingStatusGroupings","statusGroupings","IssueDisturbanceCount","RecorditemDisturbanceCount","IssueCount","StatusGroupings","ProcessingStatusGroupings","innerWidth","showStatusUsers","getChartSettingName","showMaturityUsers","showMaturityTeams","initChartButton","initChartContainer","resizeTableHeaderControls","renderTeamsProcessingStatusBarChart","ProcessingStatusIssueCountByTeams","renderUserProcessingStatusBarChart","ProcessingStatusIssueCountByUsers","renderTeamsChart","IssueCountByTeams","renderUsersChart","IssueCountByUsers","series","seriesContext","labels","labelFontColors","colors","grouping","context","StatusOID","Identifier","unescapeHtml","GetEmptyGuid","Count","getContrastTextColor","charts","createChart","chartType","Pie","document","querySelector","chartTitle","xAxisCategories","showLegend","onDataPointClick","chartContext","dataPointContext","stopImmediatePropagation","w","config","xAxis","categories","dataPointIndex","onChartDataPointClick","IssueProcessingStatus","Warning","Overdue","processingStatus","colWidth","chartName","isHidden","upperCaseChartName","toUpperCase","$tableControl","resizableControls","eq","_","control","controlWidth","$control","reduce","acc","controlCount","divider","Math","floor","issueFilter","CustomMenuItemSystemID","IssueReport","assign","getChartUserLabel","userOID","getChartTeamLabel","teamOID","processingStatusIssueCountByUsers","usersInChart","getUsersForChart","processingStatusUsers","serie","name","userTitle","UserOID","SortByCategoryName","seriesData","u","StackedBar","getElementById","seriesIndex","processingStatusIssueCountByTeams","teamsInChart","getTeamsForChart","processingStatusTeams","singleSeries","teamTitle","TeamOID","userIssueCounters","stateOID","stateUsers","teamIssueCounters","stateTeams","usersForChart","teamsForChart","DisturbancesFromRecordings","panel","$chartContainer","destroy","GetChartSettingName","panels","currentPanel","issueRecorditemDisturbances","recorditemDisturbances","disturbanceRequest","IsFilterVisible","_cachedElements","$tableView","$action","$disturbanceAction","CreatorsFilter","disturbanceActionType","prepareUsers","prepareTeams","prepareRecipients","notificationRecipients","Unsubscribed","prepareComments","comments","comment","CreatorOID","clone","ImageOID","IssueRecorditemDisturbance","RecorditemDisturbance","IssueDisturbance","constructor","getIcon","getAbbreviation","getElementPath","getImage","files","MimeType","substr","TerminationTimestamp","EditorOID","StateOID","OrganizationUnit","NotificationRecipients","Element","getOrganizationUnit","ParentOID","recorditem","Value","Category","CategoryOID","AdditionalFiles","HasAdditionalFiles","HasComments","HasCorrectiveActions","WorkflowInformation","AdditionalText","Escape","Recorditem","SearchText","Filter","findDisturbance","hasSelectedDisturbances","hasSelectedIssueDisturbances","disturbance","IsSelected","getSelectedDisturbances","grep","onToggleDropdown","isDisabled","proxy","onHideDropdown","one","onSelectAction","me","selectedAction","disturbances","ElementOID","Timestamp","CreateAction","update","CompleteDisturbances","issueIdentifiers","onSetFilterState","that","keys","selectedContactGroups","IssueStates","onSetPeriodFilter","Period","withTimeControl","onSetHideNonResponsibleIssues","IsAllSelected","initAction","updateComments","onShowRecorditem","issueId","recorditemOID","organizationUnit","scrollLeft","RecorditemDetails","$Target","$Parent","$Container","IsReadonly","Offset","X","Y","OnChanged","OnCommentsChanged","categoryInline","suppressInfos","alignLeft","scaledDown","onShowSubscibers","onHideSubscibers","$isSubscribed","$subscribers","isSubscribed","test","noop","TotalCount","init","getDisturbances","renderRows","DisturbanceType","initControls","initTable","initEvents","$actionDropdown","initToolbars","typeId","priorityCount","_oid","userCount","teamCount","contactCount","contactGroupCount","initPeriodFilter","initHideNonResponsibleIssuesFilter","keywordCount","classificationCount","statusCount","initSearch","renderHeader","renderBody","resetControls","renderCommentsAndSubscriptions","renderImage","renderTimestamp","renderState","renderTeamsAndUsers","renderUser","renderValue","next","getParams","load","renderRow","renderEmptyRow","done","IssueRecorditemDisturbancePanel","Recorditems","$tr","onToggleDetails","isExpanded","IsExpanded","showDetails","hideDetails","call","initActions","renderDetails","LoadRequest","MenuItem","report","setTabCounter","updateTabCounter","missingElements","WithAncestors","elements","SortByPosition","loadDetails","IssueId","RevisionOID","ElementRevisionOID","cache","createHierarchyForDownloadedElements","getDetails","RecorditemDisturbancePanel","IssueID","onSwitchPanel","idx","newText","$menuItem","$dropdownItem","additionalParams","internal","jqXHR","textStatus","errorThrown","filesLoaded","fileFormatFilter","fileFormats","issueTypesFilter","issueTypes","fileElementsCache","DEFAULT_TAKE","take","FILE_SOURCE","AdditionalRecordFiles","RecordedPhotoValues","_currentSource","$listWrapper","$listBody","$lblFileFormatFilter","$fileFormatFilter","$lblIssueTypeFilter","$issueTypeFilter","$btnLoadMoreFiles","FileFormat","initTake","containerWidth","containerHeight","ceil","initFileFormatFilter","initIssueTypeFilter","fileFormat","refreshCounters","purgeFilesList","updateList","row","$row","onBtnLoadMoreFilesClick","WithChildlocations","OriginType","FileTypes","s","loadMissingElements","prepareFiles","appendFiles","onShowFileFormatFilter","onSelectFileFormatFilter","selectedFileFormats","onShowIssueTypeFilter","onSelectIssueTypeFilter","selectedIssueTypes","onShowFile","altFilename","file","IsAssignedToIssue","OriginOID","OriginID","pTitle","pUserOID","pTimestamp","audioPlayerOptions","M4AFilename","OGGFilename","Metadata","AlternativeMimeTypes","RecordInformation","OriginTitle","Popups","AudioPlayer","onShowDetails","prepareFile","tmp","Metrics","m","l","o","SizeS","SizeM","SizeL","SizeO","renderFile","before","onSelectSourceItemClick","organizationUnitElements","correctiveActionGroups","visibleMasterdataGroups","_formulaResolver","$wrapper","onPrintForm","get","onPrintMeasure","rolesAtLocation","canModifyMasterdata","checkpointOID","checkpoint","groupRolesThatMayRecordValues","AdditionalSettings","RolesThatMayRecordValues","checkpointRolesThatMayRecordValues","rolesThatMayRecordValues","roleIdentifier","some","includes","Checkpoint","CreateRecorditem","suppressCategory","onExportMasterdataOfCurrentLocationClick","OnlyActive","onExportSuccess","fail","HasMasterdata","HasMeasures","withlastrecorditem","withchildelements","withdeactivatedelements","prepareOrganizationUnitElements","Parameters","EMailAddresses","IsEMailCpEnabled","Attribute","MasterdataGroup","infoConfig","Information","ShowAddress","Address","markup","Street","StreetNumber","ZipCode","City","Phone","webAddress","WebAddress","renderTextFieldset","ShowCostCenter","costCenter","CostCenter","replace","ShowDescription","Description","AdditionalPropertiesConfiguration","ShowAdditionalProperties","additionalProperties","prepareAdditionalProperties","AdditionalProperties","applyFilter","excludeMatchedProperties","ExcludeMatchedEntities","gCnt","gLen","properties","group","groupHasKeywordIntersection","HasIntersection","child","renderFieldset","additionalPropertyType","MasterDataConfiguration","ShowMasterData","masterdataGroups","groupIdentifier","filterByUserRoles","checkpoints","LastRecorditem","ShowKeywords","renderListFieldset","ShowTeams","elemTeam","ShowFiles","SortAssignedFilesFromCatalogue","elemFile","src","cssClass","thumbnailHtml","FileType","File","getFileIconForMimeType","sanitizedFilename","getSanitizedFilename","href","URL","startsWith","Formula","containsFormulaFunctions","evaluate","e","YoutubeVideo","VideoID","VimeoPrivateVideo","VimeoPublicVideo","encodeURI","ShowInfoText","InfoText","DOMPurify","sanitize","ShowForms","forms","ShowMeasures","measures","measure","legend","innerHtml","rolesThatMaySeeThisElement","RolesThatMaySeeThisElement","functions","FormulaFunctions","GetAll","processingStatusFilter","ProcessingStatusFilter","$newIssue","$printIssues","$editIssues","$processingStatus","$processingStatusFilter","$newIssueDropdown","initProcessingStatusFilter","any","onShowProcessingStatusFilter","onSelectProcessingStatusFilter","processingStatusses","isButtonDisabled","isDropdownDisabled","onNewIssue","selection","disableEmptyForms","disableSurveys","formIdentifier","showFormIssueViewer","Map","Create","investigationForms","IsInvestigation","HasCheckpoints","formsInHierarchy","lCnt","lLen","selectable","onSelect","Incident","IsInspection","FormOID","onPrintIssues","onEditIssues","Open","onToggleProcessingStatusFilter","LicenseType","ViewRight","CheckpointPreviewImages","previewImagesFromCheckpoints","indices","previewImage","currentMenuItem","setProcessingStatus","selectedLocationProcessingStatus","SelectedLocationProcessingStatus","max","now","tomorrow","getFullYear","getMonth","getDate","cssClasses","editIssueRights","isNaN","WithProcessingStatusInformation","ShowIssueTemplatesAndDerivations","sortByPropertyHierarchy","stackA","unshift","stackB","maxDepth","min","sortResult","EnableInfoBoard","request","Parametergroups","recorditems","cachedElements","newsType","$explorerNotes","renderIssueSubscription","onShowSubscriptions","onHideSubscriptions","locationoid","withchildlocations","issuetypes","prepareNews","appendNews","news","newsItem","renderIssueComments","$parent","prepareNewsItem","renderNews","ChangeDescription","collectedCheckpointCount","checkpointCount","getProfilePicturePath","checkpointTitle","_searchRegExp","_tableColumnSelection","_tableColumns","_sorting","_sortingorder","_schedulings","_locationSchedulings","_currentSchedulings","_virtualSchedules","_userFilter","_teamFilter","_contactFilter","_contactGroupFilter","_offset","_userCanAssignAllTeamsAndUsers","_users","_visibleTeams","_selectableTeams","_effortByUserChart","_schedulingElements","tabs","SchedulingList","EffortByUser","_currentTabId","$execute","ContactGroup","loadSchedulingData","dict","sched","withVirtualSchedules","showChildlocations","schedulingMap","Parametergroup","elementScheduling","schedulings","schedulesToLoad","Schedules","schedule","FrequencySubdayType","FrequencySubdayTypes","RepeatOnStateChange","scheduleOIDs","superSchedules","j","VirtualSchedules","prepareScheduling","onTabControlItemClick","onPrint","onShowScheduling","onHideDetails","onShowSchedulingPicker","c","cg","counter","sortSchedulingList","filterSchedulingList","contactGroupText","destroyCharts","renderCurrentTab","colspan","newOffset","LocationForms","Locations","dateA","dateB","DeadlineTimestamps","parameterGroupCount","formCount","Elements","names","estimatedEffort","toFixed","unitText","rotations","Rotations","deadlineTimestampStrings","RegExp","escRegExp","schedulingOID","SchedulingOID","hasRight","changemode","active","no","activate","elementsToBeCached","checkpointGroups","groupsInfo","OrganisationUnit","ix","gInfo","executables","iy","entry","Hierarchy","schedulingData","entities","classes","HasActiveAssignments","ExecuteScheduling","aggregatedData","aggregatedEstimatedEfforts","aggregatedUsers","From","To","teamUser","yAxisLabels","effortData","createUnitTitle","valueFormatter","table","retval","schedules","today","nameA","Lastname","nameB","Firstname","contactOIDs","contactGroupOIDs","virtuals","vi","virt","IsExecuted","deadline","NextExecution","CreationOffset","getDateFromObject","EndingDate","createScheduleRotationText","PrepareScheduling","ExplorerTabs","$tabMenu","$moreMenu","$moreItems","onIconNotFoundError","$icon","$button","defaultIconFilePath","GetDefaultOfficeIconFilePath","renderMenuItem","tabIsActive","additionalListItemAttrs","renderMoreMenuItem","renderMenu","optionsSet","visibleParametergroups","onExpandCollapse","$parametergroup","$parameters","onShowAnalysis","CheckpointAnalysis","parameterOID","canModifyCheckpoint","IsModified","filterByKeywords","renderData","groups","param","category"],"mappings":"AAAA,CAAA,SAAAA,GACA,IAcAC,EAEAC,EAEAC,EAAAC,EAlBAC,EAAA,CACAC,UAAA,EACA,EAEAC,EAAAC,EAAA,WAAA,EACAC,EAAAD,EAAA,yBAAA,EACAE,EAAAF,EAAA,oBAAA,EACAG,EAAAH,EAAA,yBAAA,EACAI,EAAAJ,EAAA,2BAAA,EACAK,EAAAL,EAAA,4BAAA,EACAM,EAAAD,EAAAE,KAAA,kDAAA,EACAC,EAAAH,EAAAE,KAAA,uDAAA,EACAE,EAAAT,EAAA,uBAAA,EA4GA,SAAAU,IACA,IAAAC,EAAAf,CAAAA,CAAAA,GAAAgB,WAAAC,MAAAC,iBAAAlB,EAAAmB,EAAA,EAEA,GAAA,CAAAnB,GACA,CAAAe,GACA,CAAAK,MAAAC,SAAAvB,EAAAE,EAAAsB,IAAA,KAAA,EAAA,CAGA,GAAA,EAFAtB,EAAAuB,EAAA,GAGA,MAAA,CACAC,sBAAA,CAAA,CACA,EAGAT,EAAA,CAAA,CACA,CAQA,OANAf,EAAAyB,aAAAC,MAAAC,yBAAAC,iBACAC,EAAA,EAAAC,KAAAC,CAAA,EAGAC,EAAA,EAEA,CACAR,sBAAAT,EACAkB,OAAAjC,CACA,CACA,CAEA,SAAAkC,EAAAC,GACA,GAAA,CAAAC,eAAA,CAAAD,EACA,OAAA,KAOA,GAAA,GAHAA,EADA,UAAA,OAAAA,EACAE,OAAAC,OAAAH,CAAA,EAGAA,aAAAI,QAAA,IAAAJ,EAAAK,OACA,MAAA,GAGA,IAsHAC,EAOAC,EA7HAC,EAAA,GACAC,GAqHAH,EArHAL,cAAAd,MAsHAuB,EAAA7B,WAAAC,MAAA6B,mBAAAC,KAAAzB,IAAAmB,CAAA,IAEA,IAAAD,SAIAE,EAAA,IAYAG,GAAA,IAAAG,QAAA,SAAAC,GACAC,EAAAC,MAAAF,GAEAC,IAIAA,EAAAE,gBAAA,IAAAJ,QAAAK,CAAA,CACA,CAAA,EAEAX,EAAAF,QAAAE,EAzBA,MAKA,SAAAW,EAAAC,GACAA,EAAAC,WACAnC,CAAAA,MAAAC,SAAAqB,EAAAY,EAAAnC,GAAA,IAAA,GACAuB,EAAAc,KAAA,CAAArC,GAAAmC,EAAAnC,GAAAsC,SAAAH,EAAAG,QAAA,CAAA,GAIAH,EAAAI,UAAA,IAAAV,QAAAK,CAAA,CACA,CApIA,SAAAM,IACA,IAAAC,EAAA,IAAAxD,EAAAyD,SAEA,OAAA7D,EAAAsB,MAAAwC,KAAAxC,IACAsC,EAAAG,QAAA,EAAAC,QAAA,EAGA/D,EAAAgE,OAAAC,iBAAAJ,IAAA,CACA,CAEA,SAAAK,IACA,IAAAP,EAAA,IAAAxD,EAAAyD,SAEA,OAAA7D,EAAAsB,MAAAwC,KAAAxC,IACAsC,EAAAG,QAAA,EAAAC,QAAA,EAGA/D,EAAAmE,OAAAF,iBAAAJ,IAAA,CACA,CAEA,SAAAO,IACA,IAAAT,EAAA,IAAAxD,EAAAyD,SAEA,OAAA7D,EAAAsB,MAAAwC,KAAAxC,IACAsC,EAAAG,QAAA,EAAAC,QAAA,EAGA/D,EAAAqE,aAAAJ,iBAAAJ,IAAA,CACA,CAEA,SAAAS,IACA,IAAAX,EAAA,IAAAxD,EAAAyD,SAEA,OAAA7D,EAAAsB,MAAAwC,KAAAxC,IACAsC,EAAAG,QAAA,EAAAC,QAAA,GAGA/D,EAAAuE,WAAAC,qBAAA,EAEAxE,EAAAuE,WAAAN,iBAAAJ,IAAA,EACA,CAEA,IA1CA,IA0CAY,EAAA,EAAAA,EAAAvC,EAAAK,OAAAkC,CAAA,GAAA,CACA,IAAAC,EAAAxC,EAAAuC,GAEAE,CAiCA,SAAAC,EAAAjC,GACA,GAAA,CAAAA,EACA,OAGA,GAAAA,aAAAL,OACA,CAAAnB,MAAAC,SAAAuB,EAAAiC,EAAA1D,GAAA,IAAA,EACA,OAGA,GAAA0D,EAAAC,mBAAApD,MAAAoD,iBAAAC,QACA,OAGA,GAAA,CAAAF,EAAAG,oBACA,OAGA,GAAAH,EAAApD,aAAAC,MAAAC,yBAAAsD,cACAJ,EAAApD,aAAAC,MAAAC,yBAAAuD,sBACAL,EAAApD,aAAAC,MAAAC,yBAAAwD,gBACAN,EAAApD,aAAAC,MAAAC,yBAAAyD,eACAP,EAAApD,aAAAC,MAAAC,yBAAA0D,uBACAR,EAAApD,aAAAC,MAAAC,yBAAA2D,MACAT,EAAApD,aAAAC,MAAAC,yBAAA4D,oBACAV,EAAApD,aAAAC,MAAAC,yBAAA6D,kBACA,OAGA,GAAAX,EAAApD,aAAAC,MAAAC,yBAAAC,iBACAiD,EAAAY,eAAAZ,EAAAY,cAAAC,eACA,OAGA,OAAA,CACA,EApEAf,EAAA/B,CAAA,IAIA+B,EAAAgB,MAAAhB,EAAAgB,MACAvE,MAAAwE,WAAAjB,EAAAgB,KAAA,EACAE,gBAAAC,aAAAnB,CAAA,EAAAgB,MAEAhB,EAAAoB,KAAAF,gBAAAG,sBACArB,EAAAlD,WACAkD,EAAAsB,aACA,EAEAtB,EAAAlB,SAAArC,MAAA8E,SAAAtD,EAAA+B,EAAAxD,GAAA,IAAA,EAAAsC,SAEAkB,EAAAlD,aAAAC,MAAAC,yBAAAwE,gBACAxB,EAAAyB,gBAAAzC,EAAA0C,KAAA1B,CAAA,EACAA,EAAAlD,aAAAC,MAAAC,yBAAAC,gBACA+C,EAAAyB,gBAAAjC,EAAAkC,KAAA1B,CAAA,EACAA,EAAAlD,aAAAC,MAAAC,yBAAA2E,+BACA3B,EAAAyB,gBAAA/B,EAAAgC,KAAA1B,CAAA,EACAA,EAAAlD,aAAAC,MAAAC,yBAAA4E,yBACA5B,EAAAyB,gBAAA7B,EAAA8B,KAAA1B,CAAA,GAGAhC,EAAAa,KAAAmB,CAAA,EACA,CAIA,OAFAhC,EAAAvB,MAAAoF,KAAA7D,EAAA,UAAA,CAGA,CAuEA,SAAApB,IAKA,OAJAzB,EAAAA,GACAoC,EAAAjC,EAAAC,SAAA,GAAA,IAGAsC,OAIA1C,EAAA,GAHA,IAIA,CAEA,SAAA2G,EAAAC,EAAAC,GACAvE,eAAAsE,GAOAE,EAAA,EAEA,SAAAF,IACA1G,EAAAoB,MAAA8E,SAAApG,EAAA4G,EAAA,KAAA,EACA1E,EAAA,GAGAhC,IAIAK,EAAAwG,SAAA,MAAA,EAEAC,QAAAC,UACA,KACAC,UAAAC,MACA,oBAAAC,OAAAlH,EAAAsB,IAAAc,cAAAd,GAAA,CACA,EAEA6F,EAAA,KAAAR,CAAA,KAzBAvG,EAAA,cAAA,EAAAgH,YAAA,QAAA,EACA/G,EAAAgH,KAAAC,QAAAC,EAAA,yBAAA,CAAA,EACAlH,EAAA+G,YAAA,MAAA,EAwBA,CAEA,SAAAD,EAAAK,EAAAb,GAKA,GAJAvE,cAAAA,eACAqF,YAAAC,uBAAAC,KAAAC,KAGA,CAAA5H,EAAA,CACA,IAAA6H,EAAAzH,EAAA,6CAAA,EAAA0H,MAAA,EAAAC,KAAA,QAAA,EAIA,GAAA,EAFA/H,EAAAoB,MAAA8E,SAAApG,EAAA+H,EAAA,KAAA,GAcA,OAXA/G,EAAA,EAEAV,EAAA,kBAAA,EAAAyG,SAAA,MAAA,GAEAmB,EAAA5H,EAAA,MAAA,GACAO,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACAY,EAAArH,KAAA,qBAAA,EAAAkG,SAAA,QAAA,EAEAxG,EAAAgH,KAAAC,QAAAC,EAAA,yBAAA,CAAA,EAHAS,KAIA3H,EAAA+G,YAAA,MAAA,CAIA,CAEA,GAAAhF,cAAA,CASA6F,IAGAT,EARAA,EAAAA,GAAApG,MAAA8G,kBACA,mBAAAhB,OAAAlH,EAAAsB,IAAAc,cAAAd,GAAA,EACA,qBAAA4F,OAAAlH,EAAAsB,IAAAc,cAAAd,GAAA,CACA,EAAA6G,KAKAxB,EAHAA,EAIA,OAAA3G,EAAAyB,YACA,KAAAC,MAAAC,yBAAAyG,oBACAnI,EAAAoI,UAAAC,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAA4G,gBACAtI,EAAAuI,KAAAF,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAAwE,gBACAlG,EAAAgE,OAAAqE,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAA8G,SACAxI,EAAAyI,KAAAJ,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAAC,gBACA3B,EAAAmE,OAAAkE,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAA2E,+BACArG,EAAAqE,aAAAgE,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAA4E,uBACAtG,EAAAuE,WAAA8D,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAAgH,kBACA1I,EAAA2I,MAAAN,KAAAd,EAAAb,CAAA,EACA,MACA,KAAAjF,MAAAC,yBAAAkH,iBACA5I,EAAA6I,QAAAR,KAAAd,EAAAb,CAAA,EACA,MACA,QACA1G,EAAAoI,UAAAC,KAAAd,EAAAb,CAAA,CAEA,CA1CA,CAQA,CAqCA,SAAAC,IACA,GAAA5G,EAQA,OAJAA,EAAAyB,YAKA,KAAAC,MAAAC,yBAAAyG,oBACAnI,EAAAoI,UAAAU,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAA4G,gBACAtI,EAAAuI,KAAAO,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAAwE,gBACAlG,EAAAgE,OAAA8E,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAA8G,SACAxI,EAAAyI,KAAAK,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAAC,gBACA3B,EAAAmE,OAAA2E,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAA2E,+BACArG,EAAAqE,aAAAyE,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAA4E,uBACAtG,EAAAuE,WAAAuE,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAAgH,kBACA1I,EAAA2I,MAAAG,QAAA,EACA,MACA,KAAArH,MAAAC,yBAAAkH,iBACA5I,EAAA6I,QAAAC,QAAA,CAEA,CA/BA,CAkCA,SAAAlH,IACA,IAAAmH,EAAA,IAAA5I,EAAAyD,SAEA,GAAA,IAAA/D,EAAA0C,OACA,OAAAwG,EAAAjF,QAAA,EAAAC,QAAA,GAgXAnE,GAAA,IAAA2C,QAIA3C,EAAAmD,QAAA,SAAAY,GACAA,EAAAqF,iBAAAC,UACAtF,EAAAqF,MAAA,CAEA,CAAA,EAnXApJ,EAAA,GAEA,IAAA,IAAAsJ,EAAA,EAAAC,EAAAtJ,EAAA0C,OAAA2G,EAAAC,EAAAD,CAAA,GAAA,CACA,IAAAtE,EAAA/E,EAAAqJ,GAEAtE,EAAAuB,2BAAA8C,UACArJ,EAAA2D,KAAAqB,EAAAuB,iBAAApG,GAAA,IAAAsB,KAAAuD,EAAAvD,GAAA,CAAA,CAEA,CAIA,OAFAlB,EAAAiJ,KAAAC,MAAAxF,KAAAjE,CAAA,EAAAiC,KAAAkH,EAAAjF,OAAA,EAEAiF,EAAAhF,QAAA,CACA,CAEA,SAAAhC,IACAhC,IAIAM,EAAAK,KAAA,8BAAAX,EAAAsB,IAAA,IAAA,EACAuF,SAAA,QAAA,EACA0C,SAAA,SAAA,EACAnC,YAAA,QAAA,EAEA7G,EAAAI,KAAA,+BAAAX,EAAAsB,IAAA,IAAA,EACAuF,SAAA,QAAA,EACA0C,SAAA,SAAA,EACAnC,YAAA,QAAA,EACA,CAqCA,SAAArF,IACA,IAKAyH,EALAC,EAAArJ,EAAA,4BAAA,EACAsJ,EAAApJ,EAAAqJ,SAAA,eAAA,EAAAC,IAAA,WAAA,EAAAA,IAAArJ,CAAA,EACAsJ,EAAAvJ,EAAAwJ,MAAA,EAAAL,EAAAM,WAAA,CAAA,CAAA,EACAC,EAAA,GACAC,EAAA,EA0CAC,GAvCAR,EAAAtC,YAAA,MAAA,EAEA7G,EAAAH,EAAA,yBAAA,EAEAA,EAAA+J,KAAAT,EAAA,SAAAU,EAAAC,GACA,IAAAC,EAAAlK,EAAAiK,CAAA,EACAP,EAAAQ,EAAAP,WAAA,CAAA,CAAA,EACAQ,SAAAD,EAAAE,IAAA,cAAA,EAAA,EAAA,EACAD,SAAAD,EAAAE,IAAA,eAAA,EAAA,EAAA,EAEAR,EAAAxG,KAAA,CAAA6G,KAAAC,EAAAR,MAAAA,CAAA,CAAA,EAEAG,GAAAH,CACA,CAAA,EAEAG,EAAAJ,GACAtJ,EAAAsG,SAAA,MAAA,EACA6C,EAAAtC,YAAA,MAAA,IAEAoC,EAAAK,EAAAtJ,EAAAwJ,WAAA,CAAA,CAAA,EAEA3J,EAAA+J,KAAAH,EAAA,SAAAI,EAAAK,GACA,IAAAC,EAAAD,EAAAJ,KAAAtC,KAAA,QAAA,EACA4C,EAAApK,EAAAI,KAAA,+BAAA+J,EAAA,IAAA,GAEAlB,GAAAiB,EAAAX,QAEA,GACAW,EAAAJ,KAAAxD,SAAA,MAAA,EACA8D,EAAAvD,YAAA,MAAA,IAEAqD,EAAAJ,KAAAjD,YAAA,MAAA,EACAuD,EAAA9D,SAAA,MAAA,EAEA,CAAA,EAEAtG,EAAA6G,YAAA,cAAA,GAGA,EAAA7G,EAAAI,KAAA,kCAAA,EAAA6B,QAEAjC,EAAAqK,YAAA,SAAAV,CAAA,CACA,CAEA,SAAAW,IACA,OAAA7K,CACA,CAEA,SAAA8K,EAAAC,GACAC,WAAAC,MAAA,EACAF,EAAAG,gBAAA,EAKAzE,EAHArG,EAAA0D,IAAA,EACAiE,KAAA,QAAA,CAEA,CACA,CAEA,SAAAoD,EAAAJ,GACAC,WAAAC,MAAA,EACAxK,EAAA2G,YAAA,QAAA,EACA3G,EAAAkJ,SAAA,gBAAA,EAAAvC,YAAA,MAAA,EAEA,SAAAtD,KAAAsH,QAAAC,YAAA,EACA9K,EAAAoJ,SAAA,gBAAA,EAAAvC,YAAA,MAAA,EAEA7G,EAAAoJ,SAAA,gBAAA,EAAAiB,YAAA,MAAA,EAGA,IAAAU,EAAA/K,EAAAoJ,SAAA,gBAAA,EAAA4B,SAAA,MAAA,EAEAhL,EAAAqK,YAAA,SAAAU,CAAA,EAEAA,GACAP,EAAAG,gBAAA,EACA9K,EAAA,MAAA,EAAAoL,GAAA,+BAAAL,CAAA,IAEA/K,EAAA,MAAA,EAAAqL,IAAA,8BAAA,EAEAlL,EAAAI,KAAA,oBAAA,EAAA6B,QACAjC,EAAAsG,SAAA,QAAA,EAGA,CAEA,SAAA6E,EAAAX,GACAC,WAAAC,MAAA,EACAF,EAAAG,gBAAA,EAEA3K,EAAAoJ,SAAA,gBAAA,EAAAvC,YAAA,MAAA,EAEA3G,EAAA8K,SAAA,QAAA,GACAnL,EAAA,MAAA,EAAAqL,IAAA,6BAAA,EACAhL,EAAA2G,YAAA,QAAA,EACA3G,EAAAkJ,SAAA,gBAAA,EAAAvC,YAAA,MAAA,IAEAhH,EAAA,MAAA,EAAAoL,GAAA,8BAAAE,CAAA,EACAjL,EAAAoG,SAAA,QAAA,EACApG,EAAAkJ,SAAA,gBAAA,EAAA9C,SAAA,MAAA,EAEA,CAEA,SAAA8E,EAAAC,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EACAgI,EAAAD,EAAA9D,KAAA,QAAA,EAWAgE,GATA3L,EAAA,MAAA,EAAAqL,IAAA,6BAAA,EAEAhL,EAAA2G,YAAA,QAAA,EACA3G,EAAAkJ,SAAA,gBAAA,EAAAvC,YAAA,MAAA,EAEAyE,EAAAN,SAAA,wBAAA,GACAM,EAAAjB,YAAA,gCAAA,EAGAoB,EAAA,GACAC,EAAAC,EAAA,EAQA,OANA,CAAAH,GAAAE,EACAxL,EAAAkJ,SAAA,MAAA,EAAA9C,SAAA,gBAAA,EAEApG,EAAAkJ,SAAA,MAAA,EAAAvC,YAAA,gBAAA,EAGA0E,GACA,IAAA,aACA1J,eAIAhB,MAAA+K,OAAA7D,KAAAlG,cAAA+J,QAAA/J,cAAAd,IAAAc,cAAAuD,KAAA,EACA,MACA,IAAA,qBACAvE,MAAAgL,yBAAA,6BAAAL,CAAA,EACAjK,KAAA,WACAqF,EAAApH,CAAA,CACA,CAAA,EACA,MACA,IAAA,0BACAqC,eAIAhB,MAAAgL,yBAAA,kCAAAH,CAAA,EACAnK,KAAA,WACAuK,OAAA/D,KAAA,EAEA2D,GAAA7J,cAAAkK,QACAnF,EAAApH,CAAA,EAEAwM,SAAAC,KAAA,IAAAC,IAEA,CAAA,CAEA,CAEAb,EAAAV,gBAAA,CACA,CA8BA,SAAAc,IACA,IAIAU,EAJA,OAAAhM,EAAA8B,OACA9B,EAAA6K,SAAA,gCAAA,EAKA,WAAA,OAFAmB,EAAAtL,MAAAuL,sBAAA,4BAAA,IAEAD,CACA,CAEA,SAAAR,IACA,IAIAQ,EAJA,OAAA9L,EAAA4B,OACA5B,EAAA2K,SAAA,gCAAA,EAKA,WAAA,OAFAmB,EAAAtL,MAAAuL,sBAAA,iCAAA,IAEAD,CACA,CAEA,SAAAE,EAAAC,EAAAC,GACA,OAAAD,GAAAC,EAIA,aAAAD,EAAA,IAAAC,EAHA,IAIA,CAmGA7M,EAAA8M,KAAAjM,EACAb,EAAAqI,KA30BA,SAAAd,GACA,IAsFAyE,EAtFA7K,MAAA4L,SAAAC,iBAAA,KASA7K,eAJAA,cADAA,eAAAoF,EAIApF,cAHAqF,YAAAC,uBAAAC,KAAAC,OAGA,CAAAH,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAA/K,cAAAd,GAAA,EACA,KAGAc,iBACA,CAAAoF,GAAAA,EAAAhF,OAAA,GACA1C,EAAAoC,EAAAjC,EAAAC,SAAA,GAAA,IAEAkN,EAAA7L,EAAA,KAGAiG,EAAApG,MAAA8G,kBACA,mBAAAhB,OAAAkG,EAAA9L,IAAAc,cAAAd,GAAA,EACA,qBAAA4F,OAAAkG,EAAA9L,IAAAc,cAAAd,GAAA,CACA,EAAA6G,MAGApI,EAAAyH,GAAA,KAEAzH,EAAAyH,GAAA,GAEA6F,EAAA,IAAA7F,EAAAhF,OAAAzC,EAAA,GAAAA,EAAA,GAIAD,EAFAsC,cAAAd,MAAA+L,GAAA5F,YAAAC,uBAAAC,KAAAuF,QAAAG,IACAjL,cAAAqF,YAAAC,uBAAAC,KAAAuF,QAAAG,GACAnL,EAAAjC,EAAAC,SAAA,GAAA,IACAJ,GACAoC,EAAAjC,EAAAC,SAAA,GAAA,IAIA6C,KAAAuK,OAAAtM,WAAAC,MAAAsM,oBAAAnL,cAAAd,GAAA,GAGA,aAAAmL,MACAA,KAAA,WACAe,QAAAC,MAAA,EACApB,OAAA/D,KAAA,GAEA+D,OAAAqB,OAAAtL,aAAA,EAGAvB,EAAAgG,SAAA,MAAA,EACA1G,EAAAiH,YAAA,MAAA,EAEA,MAAApH,GACAG,EAAAQ,KAAA,OAAA,EAAAkG,SAAA,MAAA,EAGAvG,EAAA8G,YAAA,MAAA,EAEA5G,EAAAmN,KACA,iEACAzG,OACAI,QAAAC,EAAA,mBAAA,EACAD,QAAAC,EAAA,gBAAA,CAAA,CAAA,EAEAtH,EAAA2N,KAAAC,SAAA/N,CAAA,EAEAS,EAAAH,EAAA,yBAAA,EACAK,EAAAL,EAAA,4BAAA,EACAM,EAAAD,EAAAE,KAAA,kDAAA,EACAC,EAAAH,EAAAE,KAAA,uDAAA,EAEAL,EAAAK,KAAA,yDAAA,EAAA6K,GAAA,gBAAAV,CAAA,EACAvK,EAAAkL,IAAA,oBAAA,EAAAD,GAAA,qBAAAL,CAAA,EACA1K,EAAAgL,IAAA,sBAAA,EAAAD,GAAA,uBAAAE,CAAA,EACAjL,EAAAE,KAAA,gBAAA,EAAA6K,GAAA,uBAAAG,CAAA,GAEA3D,EAAA5H,EAAA,MAAA,GAEAO,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACAY,EAAArH,KAAA,qBAAA,EAAAkG,SAAA,QAAA,EAEAiH,EAAA/N,EAAAA,EAAA,GAAA,KAEAC,EAAAoB,MAAA8E,SAAApG,EAAAgO,EAAA,KAAA,EAEA7B,EAAArL,EAAA2K,SAAA,gCAAA,EAEAnJ,gBACAA,cAAA2L,OAAArM,MAAAsM,YAAApG,MACAxF,cAAA2L,OAAArM,MAAAsM,YAAAC,YACA7L,cAAAkK,SACAL,KACA7J,cAAAqF,YAAAC,uBAAAC,KAAAC,MAGAT,EAAAK,CAAA,EACA,EA0uBAvH,EAAAiO,QAAAzH,EACAxG,EAAAkO,0BAAA5M,EACAtB,EAAAmO,OAvWA,WACA,GAAApO,EAAA,CAIA,OAAAA,EAAAyB,YACA,KAAAC,MAAAC,yBAAAyG,oBACAnI,EAAAoI,UAAA+F,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAA8G,SACAxI,EAAAyI,KAAA0F,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAAC,gBACA3B,EAAAmE,OAAAgK,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAA2E,+BACArG,EAAAqE,aAAA8J,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAA4E,uBACAtG,EAAAuE,WAAA4J,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAAgH,kBACA1I,EAAA2I,MAAAwF,OAAA,EACA,MACA,KAAA1M,MAAAC,yBAAAkH,iBACA5I,EAAA6I,QAAAsF,OAAA,EACA,MACA,QACAnO,EAAAoI,UAAA+F,OAAA,CAEA,CAEArM,EAAA,CA7BA,CA8BA,EAuUA9B,EAAAoO,cAAAtM,EACA9B,EAAAqO,sBAAAtM,EACA/B,EAAAsO,cAAA1D,EACA5K,EAAAuO,oBAjKA,SAAAC,GACA,MAAAA,CAAAA,CAAAA,GAIArN,MAAAC,SAAAvB,EAAA2O,EAAA,IAAA,CACA,EA4JAxO,EAAAyO,gBA1JA,SAAAD,GACA,OAAAA,EAIArN,MAAA8E,SAAApG,EAAA2O,EAAA,IAAA,EAHA,IAIA,EAqJAxO,EAAA0O,sBAnJA,WAGA,GArIA3O,EA2IA,MAAA,WA3IAA,EAyIAsB,IAEA,WACA,EA0IArB,EAAA2O,sBAAA5C,EACA/L,EAAA4O,2BAAA3C,EACAjM,EAAA6O,qBApEA,SAAAC,GACAA,IAIAzO,EACAK,KAAA,mCAAAuG,OAAA6H,CAAA,CAAA,EACAlI,SAAA,SAAA,EAEAvG,EACAK,KAAA,oCAAAuG,OAAA6H,CAAA,CAAA,EACAlI,SAAA,SAAA,EACA,EAyDA5G,EAAA+O,cAvDA,SAAAD,EAAAE,GACA,IAAAC,EAAA9N,MAAA+N,oBAAAF,CAAA,EAEA3O,EAAAK,KAAA,mCAAAuG,OAAA6H,CAAA,CAAA,EACA3H,YAAA,SAAA,EACAwD,YAAA,qBAAA,KAAAqE,CAAA,EACAlH,KAAA,QAAAkH,CAAA,EACAG,KAAA,QAAAF,CAAA,EAEA5O,EACAK,KAAA,oCAAAuG,OAAA6H,CAAA,CAAA,EACA3H,YAAA,SAAA,EACAwD,YAAA,qBAAA,KAAAqE,CAAA,EACAlH,KAAA,QAAAkH,CAAA,EACAG,KAAA,QAAAF,CAAA,CACA,EAyCAjP,EAAAoP,kBAAAxN,EACA5B,EAAAqP,2BAjHA,SAAAC,EAAAC,GACA,GAAAD,EAAA,CAIAC,EAAAA,GAAA/H,YAAAC,uBAAAC,KAAAuF,QAEA,IAAAlN,EAAAC,EAAAsO,cAAA,EACAkB,EAAAD,EAAAD,GAEA,GAAAE,EAiBA,IAhBA,IACAC,EAOAC,EALA3P,IAEA0P,EADAD,EAAA1B,OAAArM,MAAAsM,YAAApG,MAAA6H,EAAA1B,OAAArM,MAAAsM,YAAAC,SAIAyB,EAHA9C,EAAA5M,EAAAsB,IAAAiO,CAAA,GAIA,YAAAG,EAAA,KAAAD,EAAA9J,MAAA,OAIA8J,EAAA9J,MAGAjB,EAAA,EAAA,EAAAA,IAAA+K,EAAAA,EAAAG,QAAAlL,CAAA,GAMAiL,GAHAD,EAFA1P,CAAAA,GACAyP,EAAA1B,OAAArM,MAAAsM,YAAApG,MAAA6H,EAAA1B,OAAArM,MAAAsM,YAAAC,SAIAyB,EAHA9C,EAAA5M,EAAAsB,IAAAmO,EAAAnO,GAAA,GAIA,YAAAoO,EAAA,KAAAD,EAAA9J,MAAA,iBAAAgK,EACA,mBAAAzI,OAAAuI,EAAA9J,MAAAgK,CAAA,EAIA,OAAAA,CApCA,CAqCA,EA0EA1P,EAAA4P,kBAAAjJ,EACA3G,EAAA6P,MA9BA,WAEA9P,EADAF,EAAA,KAGAG,EAAA6I,QAAAiH,aAAA,EACA9P,EAAAoI,UAAA0H,aAAA,EACA9P,EAAA2I,MAAAmH,aAAA,EACA9P,EAAAmE,OAAA2L,aAAA,EACA9P,EAAAyI,KAAAqH,aAAA,EACA9P,EAAAuE,WAAAuL,aAAA,CACA,EAsBAnQ,EAAAK,SAAAA,CACA,EAAA+P,MAAA,ECj3BA,SAAApQ,GACA,IAEAqQ,EACAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EAAAzP,EACA0P,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EACAC,EAEAC,EACAC,EAAAC,EAAAC,EAEAC,EACAC,EAAAC,EAsBAC,EA5CApJ,EAAA,GAiBAqJ,EAAA,GAMAC,EAAA,CACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACAC,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACAC,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,YAAA,CAAA,EACAC,yBAAA,CAAA,CACA,EACAC,EAAA,CACAC,UAAA,KACAC,UAAA,IACA,EAIAC,EAAAlT,EAAA,MAAA,EACAmT,GAAAnT,EAAA,cAAA,EACAoT,GAAApT,EAAA,qBAAA,EACAqT,GAAArT,EAAA,gBAAA,EACAsT,GAAAtT,EAAA,kBAAA,EACAuT,GAAAvT,EAAA,gBAAA,EACAwT,GAAAxT,EAAA,kBAAA,EACAyT,GAAAzT,EAAA,wBAAA,EACA0T,GAAA1T,EAAA,sBAAA,EACA2T,GAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,GAAA7T,EAAA,aAAA,EACAE,GAAAF,EAAA,oBAAA,EACA8T,GAAA9T,EAAA,4BAAA,EACA+T,EAAAH,EAAArT,KAAA,oBAAA,EACAyT,EAAAJ,EAAArT,KAAA,aAAA,EACA0T,EAAAD,EAAAzT,KAAA,aAAA,EACA2T,EAAAH,EAAAxT,KAAA,gBAAA,EACA4T,EAAAnU,EAAA,mCAAA,EACAoU,EAAApU,EAAA,gCAAA,EACAqU,EAAArU,EAAA,+BAAA,EACAsU,EAAAtU,EAAA,iCAAA,EACAuU,GAAAvU,EAAA,+BAAA,EACAwU,GAAAxU,EAAA,iCAAA,EACAyU,GAAAzU,EAAA,kCAAA,EACA0U,GAAA1U,EAAA,+BAAA,EACA2U,GAAA3U,EAAA,+BAAA,EACA4U,GAAA5U,EAAA,kCAAA,EACA6U,GAAA7U,EAAA,wCAAA,EACA8U,GAAA9U,EAAA,kCAAA,EACA+U,GAAA/U,EAAA,yCAAA,EACAgV,GAAAhV,EAAA,iCAAA,EACAiV,GAAAjV,EAAA,mCAAA,EACAkV,GAAAlV,EAAA,+BAAA,EACAmV,GAAAnV,EAAA,qCAAA,EACAoV,GAAApV,EAAA,0BAAA,EACAqV,EAAArV,EAAA,iCAAA,EACAsV,GAAAtV,EAAA,mDAAA,EACAuV,GAAAvV,EAAA,kDAAA,EAwDA,SAAAwV,KACA,IAAAC,EAEAC,EAAA,IAAAA,KAAA1D,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,CACA,CA4LA,SAAA2O,KACA,IACA1O,EADA2O,EAAArB,GAAAhU,KAAA,YAAA,EAGAsV,GAAA1F,GAAA,IAAA2F,IAAA,SAAAC,GACA,OAAAA,EAAAxQ,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAgO,EAAAhO,OACA8E,QAAAC,EAAA,iCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAC,WAAA,CAAA,IAEAhL,EAAAC,QAAAC,EAAA,yCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAC,WAAA,CAAA,GAGA2D,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAgP,GAAAC,GACA,IAAAN,EAAApB,GAAAjU,KAAA,YAAA,EAEA4V,EAAAnV,MAAAuL,sBAAA1M,SAAA0O,sBAAA,CAAA,EAEA4H,GAAA,CAAAD,EAGA,GAFAC,EAAAA,EAAAC,MAAA,GAAA,GAAA,IAEAhU,SACA2N,EAAA,GAEAoG,EAAAvT,QAAA,SAAAyT,GACAC,EAAAtV,MAAA8E,SAAAkK,EAAAqG,EAAA,KAAA,EAEAC,GAIAvG,EAAA3M,KAAAkT,CAAA,CACA,CAAA,IAEAvG,GAAA,IAAA3N,QAAA8T,IACAxM,EAAAkK,EAAAlK,MAAA,EAEAqG,EAAA,CACA/O,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,GAGA,IAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,IAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,GASA/I,EADA4O,EAJAA,EAAA9F,EAAA+F,IAAA,SAAAS,GACA,OAAAA,EAAAhR,KACA,CAAA,GAEAnD,QACAyT,EAAAzT,SAAA4N,EAAA5N,OAIA8E,QAAAC,EAAA,mCAAA,EAFA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAKAJ,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAuP,KA6TA,IAqBAC,EAjVAd,GAAA,EACAe,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EA2SAhC,GAAAiC,IAAA5F,CAAA,EACAO,EAAAa,YAAA,CAAA,CAAApB,EAOAM,IAAAA,EAAAuF,OAAAvF,EAAAwF,MACAlC,EAAA5O,SAAA,iBAAA,EACAuL,EAAAY,aAAA,CAAA,EAEA3L,GACA,MAAA8K,EAAAuF,MAAApQ,QAAAC,EAAA,iBAAA,EAAA,IAAA4K,EAAAuF,MAAAE,eAAA,EAAA,IACA,KACA,MAAAzF,EAAAwF,IAAArQ,QAAAC,EAAA,eAAA,EAAA,IAAA4K,EAAAwF,IAAAC,eAAA,EAAA,MAEAvQ,EAAAC,QAAAC,EAAA,wCAAA,EAEAkO,EAAArO,YAAA,iBAAA,EACAgL,EAAAY,aAAA,CAAA,GAGAyC,EAAA9H,KAAAtG,CAAA,EAIAwP,EAAAzV,CAAAA,MAAAC,SAAA0B,KAAA8U,UAAA,OAAA,IAAA,GAEA,CAAAzW,MAAAC,SAAA0B,KAAA8U,UAAA,MAAA,IAAA,EACAnC,GAAA9K,YAAA,OAAAiM,CAAA,EACAlB,GAAA/K,YAAA,OAAAiM,CAAA,EAAAiB,KAAA,UAAAhG,CAAA,EACA4D,GAAA/H,KAAArG,QAAAC,EAAA,0CAAA,CAAA,EAEA6K,EAAAc,yBAAApB,EAzUA8D,GAAA,CACA,CAEA,SAAAkB,KACA,IACAzP,EADA2O,EAAAnB,GAAAlU,KAAA,YAAA,EAGAsV,GAAAxF,GAAA,IAAAyF,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAvB,EAAAuB,OACA8E,QAAAC,EAAA,oCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAE,cAAA,CAAA,IAEAjL,EAAAC,QAAAC,EAAA,4CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAE,cAAA,CAAA,GAGA0D,EAAArI,KAAAtG,CAAA,EACAuO,GAAA,CACA,CAEA,SAAAmB,KACA,IACA1P,EADA2O,EAAAlB,GAAAnU,KAAA,YAAA,EAGAsV,GAAAvF,GAAA,IAAAwF,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAvB,EAAAuB,OACA8E,QAAAC,EAAA,iCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,yCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,EACAuO,GAAA,CACA,CAEA,SAAAoB,KACA,IACA3P,EADA2O,EAAAjB,GAAApU,KAAA,YAAA,EAGAsV,GAAAtF,GAAA,IAAAuF,IAAA,SAAA8B,GACA,OAAAA,EAAArS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAoO,EAAApO,OACA8E,QAAAC,EAAA,iCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAI,WAAA,CAAA,IAEAnL,EAAAC,QAAAC,EAAA,yCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAI,WAAA,CAAA,GAGAwD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA4P,KACA,IAAAjB,EAAAC,EAAA5O,EAEA4Q,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAhB,GAAArU,KAAA,YAAA,GAEAsV,GAAApF,GAAA,IAAAqF,IAAA,SAAAkC,GACA,OAAAA,EAAAzS,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAsO,EAAAtO,OACA8E,QAAAC,EAAA,oCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAK,cAAA,CAAA,IAEApL,EAAAC,QAAAC,EAAA,4CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAK,cAAA,CAAA,GAGAuD,EAAArI,KAAAtG,CAAA,EAEAjH,EAAA,sCAAA,EAAAgH,YAAA,MAAA,EACA4N,GAAA5N,YAAA,MAAA,IA5BAhH,EAAA,sCAAA,EAAAyG,SAAA,MAAA,EACAmO,GAAAnO,SAAA,MAAA,EA4BA,CAEA,SAAAqQ,KACA,IAAAlB,EAAAC,EAAA5O,EAEA4Q,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAf,GAAAtU,KAAA,YAAA,GAEAsV,GAAAlF,GAAA,IAAAmF,IAAA,SAAAmC,GACA,OAAAA,EAAA1S,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAwO,EAAAxO,OACA8E,QAAAC,EAAA,yCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAK,cAAA,CAAA,IAEApL,EAAAC,QAAAC,EAAA,iDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAK,cAAA,CAAA,GAGAuD,EAAArI,KAAAtG,CAAA,EAEAjH,EAAA,4CAAA,EAAAgH,YAAA,MAAA,EACA6N,GAAA7N,YAAA,MAAA,IA5BAhH,EAAA,4CAAA,EAAAyG,SAAA,MAAA,EACAoO,GAAApO,SAAA,MAAA,EA4BA,CAEA,SAAAsQ,KACA,IACA9P,EADA2O,EAAAd,GAAAvU,KAAA,YAAA,EAGAsV,GAAAhF,GAAA,IAAAiF,IAAA,SAAAoC,GACA,OAAAA,EAAA3S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA0O,EAAA1O,OACA8E,QAAAC,EAAA,oCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAM,cAAA,CAAA,IAEArL,EAAAC,QAAAC,EAAA,4CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAM,cAAA,CAAA,GAGAsD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA+P,KACA,IACA/P,EADA2O,EAAAb,GAAAxU,KAAA,YAAA,EAGAsV,GAAA9E,GAAA,IAAA+E,IAAA,SAAAqC,GACA,OAAAA,EAAA5S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA4O,EAAA5O,OACA8E,QAAAC,EAAA,2CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAO,qBAAA,CAAA,IAEAtL,EAAAC,QAAAC,EAAA,mDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAO,qBAAA,CAAA,GAGAqD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAgQ,KACA,IACAhQ,EADA2O,EAAAZ,GAAAzU,KAAA,YAAA,EAGAsV,GAAA5E,GAAA,IAAA6E,IAAA,SAAAsC,GACA,OAAAA,EAAA7S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA8O,EAAA9O,OACA8E,QAAAC,EAAA,mCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAQ,aAAA,CAAA,IAEAvL,EAAAC,QAAAC,EAAA,2CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAQ,aAAA,CAAA,GAGAoD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAiQ,KACA,IACAjQ,EADA2O,EAAAX,GAAA1U,KAAA,YAAA,EAGAsV,GAAA1E,GAAA,IAAA2E,IAAA,SAAAuC,GACA,OAAAA,EAAA9S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAgP,EAAAhP,OACA8E,QAAAC,EAAA,qCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAS,eAAA,CAAA,IAEAxL,EAAAC,QAAAC,EAAA,6CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAS,eAAA,CAAA,GAGAmD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAkQ,KACA,IACAlQ,EADA2O,EAAAV,GAAA3U,KAAA,YAAA,EAGAsV,GAAAxE,GAAA,IAAAyE,IAAA,SAAAwC,GACA,OAAAA,EAAA/S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAU,WAAA,CAAA,IAEAzL,EAAAC,QAAAC,EAAA,yCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAU,WAAA,CAAA,GAGAkD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAmQ,KACA,IACAnQ,EADA2O,EAAAT,GAAA5U,KAAA,YAAA,EAGAsV,GAAAvE,GAAA,IAAAwE,IAAA,SAAAyC,GACA,OAAAA,EAAAhT,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAW,iBAAA,CAAA,IAEA1L,EAAAC,QAAAC,EAAA,+CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAW,iBAAA,CAAA,GAGAiD,EAAArI,KAAAtG,CAAA,CACA,CAoDA,SAAAuR,KAGA,IAAAC,EACAC,EACAC,EACAC,EALAxL,QAAAyL,MAAAC,gCAAA,EAOA/F,EAAAC,UAAA+F,SAAA,6CAAA,EACA/F,UAAA,CACAgG,QAAA,CAAA,EACAC,WAAA,CAAA,EACAC,UAAA,CACAC,KAAA,SAAAxO,GACA,IAAAyO,EAAApZ,EAAA2K,EAAA0O,aAAA,EAIA,GAAA,EAFAX,EAAAY,GAAA,GAEAlX,OAAA,CACA,IAAAiU,EAAA+C,EAAAzR,KAAA,KAAA,EACA4R,EAAAzJ,EAAAuG,GAEA,GAAA,CAAAkD,EACA,OAGAb,EAAA,CAAAa,EACA,EAEAd,EAAAzY,EAAA,oBAAA,GAEAoC,SACAmL,EAgHA,SAAAuC,GACA,GAAA,EAAAA,aAAA3N,QAAA,IAAA2N,EAAA1N,OACA,OAAA,KAGA,IAAAmL,EAAA,CACA,sDACA,yBACA,2CACA,sDACA,SACA,+BAGA,CAAA,IACAgM,EACApN,EACAqN,EAHA,IAAA1J,EAAA1N,QACAmX,EAAAzJ,EAAA,GACA3D,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,oBACAD,EAAA,GAEArN,IACAqN,EAAA,CACA,6BACA,6DACArN,EAAA5G,MACA,SAIAgI,EAAAnK,KACApC,MAAA0Y,qBAAAH,CAAA,EAAAA,EAAAxY,GAAA,IAAAwY,EAAAI,SAAA,OACA,WAAA3Y,MAAAwE,WAAA+T,EAAAhU,KAAA,GAAA2B,QAAAC,EAAA,eAAA,EAAA,gBACAqS,EAAAxD,KAAA,EAAA,CACA,GAEAzI,EAAAnK,KACA,WACA0M,EAAA1N,OAAA,IAAA8E,QAAAC,EAAA,aAAA,CAAA0H,MAAAiB,EAAA1N,MAAA,CAAA,EACA,WACA,CACA,CAQA,OANAmL,EAAAnK,KACA,SACA,SACA,QACA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAhKA0C,CAAA,EACA1Y,EAAA,MAAA,EAAA4Z,OAAArM,CAAA,EACAkL,EAAAzY,EAAA,oBAAA,GAGA6Z,EAAAlP,EAAAmP,QAAA,EACAC,EAAApP,EAAAqP,QAAA,EAEAvB,EACArO,IAAA,CAAA6P,IAAAF,EAAAG,KAAAL,CAAA,CAAA,EACAlS,KAAA,CAAAkS,EAAAA,EAAAE,EAAAA,CAAA,CAAA,CACA,EACAI,IAAA,WAGAvB,EADAD,EADAD,EAAA,KAIAD,aAAAzY,GAIAyY,EAAA2B,OAAA,CACA,CACA,CACA,CAAA,EAEArH,EAAAE,UAAA8F,SAAA,iBAAA,EACAsB,SAAA,CACAC,OAAA,4BACAC,QAAAvZ,MAAAwZ,WAAAC,2BACAC,YAAA,SAAA/P,GACA,IAOAwB,EAPAwO,EAAA3a,EAAA2K,EAAA0O,aAAA,EACAhX,EAAAsY,EAAAhT,KAAA,IAAA,EAEAtF,IAIA8J,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAzK,KAMAqW,EAAAtW,SAIAuW,EAAA,GACAC,EAAA,GAEAF,EAAA9V,QAAA,SAAA2W,GACA,IAAAqB,EAAAvT,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,qBAEAmB,GAAAA,EAAA1O,UAKA2O,EAAA7Z,MAAAuY,MAAAuB,wBAAAvB,EAAA5L,IAAA,EAQAoN,EAHAA,GAJAA,EAAA5O,CAAAA,CAAAA,EAAAD,SACAtL,WAAAC,MAAAma,kBAAAH,EAAAtB,EAAApN,EAAAjL,GAAA,GACAqY,EAAAE,qBAAApX,KAGA,EAAA,CAAAkX,EAAA0B,sBAAA1B,EAAA2B,wBACAta,CAAAA,WAAAC,MAAAsa,mBAAA,YAAA5B,EAAAE,kBAAA,IAIAsB,GACApC,EAhBAC,GAgBAxV,KAAAmW,CAAA,CAIA,CAAA,EAEAd,EACAjO,YAAA,UAAA,IAAAoO,EAAAxW,MAAA,EACAoI,YAAA,oBAAAmO,EAAAvW,SAAAsW,EAAAtW,QAAA,EAAAuW,EAAAvW,MAAA,EACAoI,YAAA,cAAA,IAAAmO,EAAAvW,MAAA,EAEA,EAAAuW,EAAAvW,SACAuY,EACAlU,SAAA,gDAAA,CAEA,EACA2U,YAAA,SAAAzQ,GACAgQ,EAAA3a,EAAA2K,EAAA0O,aAAA,EAGAT,EADAD,EAAA,KAGAF,EAAAzR,YAAA,qBAAA,EACA2T,EAAA3T,YAAA,gDAAA,CACA,EACAqU,OAAA,SAAA1Q,GACA,GAAA,KAAA+N,GAAA,IAAAtW,OAAA,CAIA,IAuIAuW,EACA1L,EAxIA0N,EAAA3a,EAAA2K,EAAA0O,aAAA,EAEA,GAAA,IAAAX,EAAAtW,OAAA,CACAkZ,IA0DA/B,EA1DAb,EAAA,GA0DAiC,EA1DAA,EA2DA,GAAApB,EAAA,CAIA,IAAAgC,EAAAlU,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,oBAEA,GAAA8B,GAAAA,EAAArP,QAAA,CAUAsP,EAAAb,EAAAhT,KAAA,IAAA,EAEA,GAAA4R,EAAAE,qBAAA+B,EACAxa,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,+DAAA,EACAF,KAAAC,QAAAC,EAAA,8DAAA,EACAuU,GAAA,CAAA,CACA,CAAA,OAKA,GAAAF,EAAA,CAIA,IAAAG,EAAAtU,YAAAC,uBAAAC,KAAAuF,QAAA0O,GAEA,GAAAG,EAIA,GAAAA,EAAAzP,QAAA,CAUA,GAAAyO,EAAAxP,SAAA,uBAAA,EAkBA,OA7HAmQ,KAqHAX,EAAA3T,YAAA,gDAAA,EAEAuS,EAAAE,mBAAA+B,EAEAjC,EAAAvY,MAAAuY,MAAAqC,0BAAArC,CAAA,EAEAvY,MAAA6a,QAAAC,KAAA,EAEA9a,MAAA+a,KAAAC,IAAA,UAAAzC,EAAArY,IAAAqY,CAAA,EACA7X,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,GArBAjb,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,iDAAA,EACAF,KAAAC,QAAAC,EAAA,gDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAPA,MAPA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,mEAAA,EACAF,KAAAC,QAAAC,EAAA,kEAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAbA,CAhBA,MAPA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,+DAAA,EACAF,KAAAC,QAAAC,EAAA,8DAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CATA,CA5DA,MAAA,EAAA/C,EAAAvW,SAmIAuW,EAlIAA,EAkIAC,EAlIAA,EAmIA3L,GADA0N,EAlIAA,GAmIAhT,KAAA,IAAA,EACA2U,EAAAjV,YAAAC,uBAAAC,KAAAuF,QAAAG,MAoBA0N,EAAA3T,YAAA,gDAAA,EAEA4R,EAAAxW,QACAma,EAAA,CACA1V,MAAAK,QAAAC,EAAA,wDAAA,EACAF,KAAAC,QAAAC,EAAA,wDAAA,CAAAqV,cAAAF,EAAA/W,KAAA,CAAA,EACAsD,MAAA,CAAA,CACA,EAEA,EAAA8P,EAAAvW,SACAma,EAAAE,MAAA,WACAC,EAAA,EACAhb,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,CACA,GAGArD,EAAAxS,KAAA,SAAAuW,EAAAC,GACA,OAAAD,EAAA5b,GAAA6b,EAAA7b,EACA,CAAA,EAEAwb,EAAAM,YAAAjE,EAAA9C,IAAA,SAAAyD,GACA,MAAA,CACAvY,MAAA0Y,qBAAAH,CAAA,EACAA,EAAAxY,GAAA,MAAAwY,EAAAhU,OAAA2B,QAAAC,EAAA,cAAA,GACA6O,KAAA,EAAA,CACA,CAAA,EAEAhV,MAAAya,QAAAvT,KAAAqU,CAAA,GAEAG,EAAA,EACAhb,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,EAnMA,CAiJA,SAAAS,IACA,IAAAI,EAAA,GAUA,OARA9b,MAAA6a,QAAAC,KAAA,EAEAnD,EAAA/V,QAAA,SAAA2W,GACAA,EAAAE,mBAAAxM,EAEA6P,EAAA1Z,KAAApC,MAAAuY,MAAAqC,0BAAArC,CAAA,CAAA,CACA,CAAA,EAEAvY,MAAA+a,KAAAgB,KAAA,SAAAD,CAAA,CACA,CApJA,CACA,CAAA,CACA,CAgSA,SAAAE,KACA,IAMAC,EACAC,EACAC,EACAC,EACAC,EAVAC,EAAA1J,EAAArT,KAAA,yBAAA,EAEA,MAAA+c,IAIAL,EAAAK,EAAA/c,KAAA,wBAAA,EACA2c,EAAAI,EAAA/c,KAAA,gCAAA,EACA4c,EAAAG,EAAA/c,KAAA,qCAAA,EAEA8c,GADAD,EAAAE,EAAA/c,KAAA,iCAAA,GACAA,KAAA,iCAAA,EAEA+c,EAAAnS,SAAA,iBAAA,GAEAmS,EAAAtW,YAAA,iBAAA,EACAsW,EAAA7W,SAAA,UAAA,EACAyW,EAAAlW,YAAA,aAAA,EACAmW,EAAAnW,YAAA,QAAA,EACAqW,EAAArW,YAAA,QAAA,EACAkW,EAAAzW,SAAA,YAAA,EACA0W,EAAA5c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACA8S,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACAgT,EAAA3W,SAAA,YAAA,EACA2W,EAAApW,YAAA,OAAA,EAEAmN,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAxW,SAAA,WAAA,IAGA6W,EAAA7W,SAAA,iBAAA,EACAyW,EAAAzW,SAAA,aAAA,EACA0W,EAAA1W,SAAA,QAAA,EACA4W,EAAA5W,SAAA,QAAA,EACAyW,EAAAlW,YAAA,YAAA,EACAoW,EAAApW,YAAA,YAAA,EACAoW,EAAA3W,SAAA,OAAA,EACAyW,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EAEA+J,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAjW,YAAA,WAAA,GAGAuW,EAAA,EACA,CAEA,SAAAC,KACA,IAAA9E,EAAAY,GAAA,EAEAZ,EAAAtW,QACAqb,aAAAvV,KAAA,CAAAlE,OAAA0U,EAAA/K,KAAA,OAAA,CAAA,CAEA,CAEA,SAAA+P,KACA,IAAAhF,EAAAY,GAAA,EAEAZ,EAAAtW,QACAub,aAAAzV,KAAAwQ,EAAA,SAAAkF,GACAA,GAIAvQ,EAAA,CACA,CAAA,CAEA,CAEA,SAAAiM,KACA,IAAAuE,EAAA3J,EAAA3T,KAAA,eAAA,EAEA,OAAAP,EAAA8V,IAAA+H,EAAA,SAAAC,GAEAC,EADA/d,EAAA8d,CAAA,EAAAE,QAAA,QAAA,EACArW,KAAA,KAAA,EAEA,OAAAmI,EAAAiO,EACA,CAAA,CACA,CAEA,SAAAE,KACA3J,EAAAtN,YAAA,QAAA,EAEAgL,EAAA,CACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACAC,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,YAAA,CAAA,EACAC,yBAAA,CAAA,CACA,EAcArB,EADAH,EADAD,EADAF,EADAF,EADAF,EADAF,EADAF,EADAF,EADAF,EADAD,EADAD,EADAF,EAAA,KAcAuB,EAAA,EADAK,EAAA,GAEA,CAEA,SAAAoM,KACAF,GAAA,EACAzH,GAAA,EACA+G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA+Q,KACA,IAAA7X,EAAA,CACAM,MAAAK,QAAAC,EAAA,mCAAA,EACAkX,QAAAC,GACAC,gBAAApO,EACAqO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAkI,EAAA7J,CAAA,CACA,CAEA,SAAA+X,GAAAQ,GACA3O,GAAA2O,GAAA,IAAAhJ,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAsK,EAAAiG,EAAA,KAAA,CACA,CAAA,EAEAV,GAAA,EACA4H,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA0R,KACA,IAAAxY,EAAA,CACAM,MAAAK,QAAAC,EAAA,6CAAA,EACAkX,QAAAW,GACAT,gBAAAxO,EACAyO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA8H,EAAAzJ,CAAA,CACA,CAEA,SAAAyY,GAAAC,IACAlP,GAAAkP,GAAA,IAAAnJ,IAAA,SAAAS,GACA,OAAAvV,MAAA8E,SAAAkK,EAAAuG,EAAA,KAAA,CACA,CAAA,GAEAnU,QAAA2N,EAAA3N,SAAA4N,EAAA5N,OACA4N,EAAApN,QAAA,SAAA2T,GACA,IAAA2I,EAAAle,MAAAC,SAAA8O,EAAAwG,EAAArV,IAAA,KAAA,EACAie,EAAAvL,EAAArT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAEAge,EACAC,EAAAnY,YAAA,MAAA,EAEAmY,EAAA1Y,SAAA,MAAA,CAEA,CAAA,EAEAmN,EAAArT,KAAA,aAAA,EAAAyG,YAAA,MAAA,EAGA,IAAAoY,EAAApP,EAAA8F,IAAA,SAAAuJ,GACA,OAAAA,EAAAne,GACA,CAAA,GAAA,GAEAoe,GAAAL,GAAA,IAAAjJ,KAAA,GAAA,GAAAoJ,EAAApJ,KAAA,GAAA,EAEAhV,MAAAgL,yBAAAnM,SAAA0O,sBAAA,EAAA+Q,CAAA,EACA5d,KAAA,WACAuU,GAAA,CAAA,CAAA,EACAsH,EAAA,CACA,CAAA,CACA,CAEA,SAAAgC,KACA,IAAAhZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,sCAAA,EACAkX,QAAAmB,GACAjB,gBAAAlO,EACAmO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,CAEA,SAAAiZ,GAAAK,GACAxP,GAAAwP,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAjF,EAAAwV,EAAA,KAAA,CACA,CAAA,EAEAK,GAAA,EACA6G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyS,KACA,IAAAvZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,mCAAA,EACAkX,QAAA0B,GACAxB,gBAAAjO,EACAkO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,CAEA,SAAAwZ,GAAAF,GACAvP,GAAAuP,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAjF,EAAAwV,EAAA,KAAA,CACA,CAAA,EAEAM,GAAA,EACA4G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA2S,KACA,IAAAzZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,mCAAA,EACAkX,QAAA4B,GACA1B,gBAAAhO,EACAiO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CACAC,QAAA,CAAA,EACAuB,SAAAxO,EAAA,KAAA,SAAAyO,GACA,MAAA,CAAA,EAAAvO,GAAAuO,GAAAA,EAAAf,UAIAzH,EAAAwI,EAAAf,OAEA,CAAA,IAAAxN,EAAAwO,QAAAzI,EAAA1W,GAAA,EACA,CACA,EACAwU,OAAA/D,EAAA,KAAA,SAAAiG,GACA,MAAA,EAAAhG,CAAAA,GAAAgG,CAAAA,IAIA,CAAA,EAAAhG,EAAAyO,QAAAzI,EAAA1W,GAAA,CACA,CACA,CACA,EAEA2d,WAAA3W,KAAAoY,SAAA/Z,CAAA,CACA,CAEA,SAAA0Z,GAAAM,GACAhQ,GAAAgQ,GAAA,IAAAzK,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA0K,EAAA6F,EAAA,KAAA,CACA,CAAA,EAEAO,GAAA,EACA2G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAmT,KACA,IAAAja,EAAA,CACAM,MAAAK,QAAAC,EAAA,sCAAA,EACAkX,QAAAoC,GACAlC,gBAAA9N,EACA+N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAwI,EAAAnK,CAAA,CACA,CAEA,SAAAka,GAAAC,GACAjQ,GAAAiQ,GAAA,IAAA5K,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA4K,EAAA2F,EAAA,KAAA,CACA,CAAA,EAEAQ,GAAA,EACA0G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAsT,KACA,IAAApa,EAAA,CACAM,MAAAK,QAAAC,EAAA,2CAAA,EACAkX,QAAAuC,GACArC,gBAAA5N,EACA6N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA0I,EAAArK,CAAA,CACA,CAEA,SAAAqa,GAAAF,GACA/P,GAAA+P,GAAA,IAAA5K,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA8K,EAAAyF,EAAA,KAAA,CACA,CAAA,EAEAS,GAAA,EACAyG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAwT,KACA,IAAAta,EAAA,CACAM,MAAAK,QAAAC,EAAA,sCAAA,EACAkX,QAAAyC,GACAvC,gBAAA1N,EACA2N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA6Y,SAAAxa,CAAA,CACA,CAEA,SAAAua,GAAAE,GACAnQ,GAAAmQ,GAAA,IAAAlL,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAgL,EAAAuF,EAAA,KAAA,CACA,CAAA,EAEAU,GAAA,EACAwG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA4T,KACA,IAAA1a,EAAA,CACAM,MAAAK,QAAAC,EAAA,6CAAA,EACAkX,QAAA6C,GACA3C,gBAAAxN,EACAyN,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAiZ,gBAAA5a,CAAA,CACA,CAEA,SAAA2a,GAAAE,GACArQ,GAAAqQ,GAAA,IAAAtL,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAkL,EAAAqF,EAAA,KAAA,CACA,CAAA,EAEAW,GAAA,EACAuG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAgU,KACArgB,MAAAsgB,eAAAC,oBAAA,CACAC,kBAAAvQ,EACAwQ,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,qCAAA,EACAwa,aAAA,CAAA,EACAC,iBAAAC,GACAC,YAAAxgB,MAAAygB,YAAAC,MACA,CAAA,CACA,CAEA,SAAAH,GAAAI,GACAhR,GAAAgR,GAAA,IAAAnM,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAoL,EAAAmF,EAAA,KAAA,CACA,CAAA,EAEAY,GAAA,EACAsG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA6U,KACA,IAAA3b,EAAA,CACAM,MAAAK,QAAAC,EAAA,uCAAA,EACAkX,QAAA8D,GACA5D,gBAAApN,EACAqN,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAka,WAAA7b,CAAA,CACA,CAEA,SAAA4b,GAAAE,GACAlR,GAAAkR,GAAA,IAAAvM,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAsL,EAAAiF,EAAA,KAAA,CACA,CAAA,EAEAa,GAAA,EACAqG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAiV,KACAthB,MAAAsgB,eAAAiB,6BAAA,CACAC,cAAAnR,EACAqQ,cAAAxa,QAAAC,EAAA,mCAAA,EACAsa,eAAA,CAAA,EACAgB,QAAA,CACAC,aAAAxb,QAAAC,EAAA,0CAAA,EACAwb,sBAAAzb,QAAAC,EAAA,mDAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAAgB,EACA,CAAA,CACA,CAEA,SAAAA,GAAAJ,GACAnR,GAAAmR,GAAA,IAAA1M,IAAA,SAAAO,GACA,OAAAhP,YAAAwb,WAAAtb,KAAAuF,QAAAuJ,EACA,CAAA,EAEAc,GAAA,EACAoG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyV,KACA9hB,MAAAsgB,eAAAyB,mCAAA,CACAC,oBAAA1R,EACAmQ,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,yCAAA,EACAsb,QAAA,CACAQ,mBAAA/b,QAAAC,EAAA,sDAAA,EACA+b,4BAAAhc,QAAAC,EAAA,+DAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAAuB,EACA,CAAA,CACA,CAEA,SAAAA,GAAAH,GACA1R,GAAA0R,GAAA,IAAAlN,IAAA,SAAAO,GACA,OAAAhP,YAAA+b,iBAAA7b,KAAAuF,QAAAuJ,EACA,CAAA,EAEAe,GAAA,EACAmG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAgW,GAAA7X,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EAEA,GAAA+H,CAAAA,EAAAN,SAAA,QAAA,EAmDA,OA9CAM,EAAAhF,SAAA,QAAA,EAEAmE,WAAA1C,KAAAxE,KAAA,CACA4f,KAAA,EACAC,SAAA,CAAA,EACAC,cAAA,CAAA,EACAC,QAAA,GACAC,aAAA,OACAC,cAAA,CAAA,EACAC,aAAAnY,EACAoY,UAAA,CAAAviB,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UACAC,aAAAljB,MAAAC,SAAA,CAAAK,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UAAAlS,EAAAoS,WAAA,EACApS,EAAAoS,YACA7iB,MAAAwiB,gBAAAE,aACAI,WAAA,WACAxZ,WAAAyZ,QAAAtS,EAAAuF,MAAAvF,EAAAwF,GAAA,CACA,EACA4C,IAAA,SAAAzE,IACA3D,EAAA2D,KAEA3D,EAAAuF,OAAAvF,EAAAwF,MACAxF,EAAAuF,QACAvF,EAAAuF,MAAA,IAAAgN,KAAAvS,EAAAuF,MAAAiN,WAAA,CAAA,CAAA,GAGAxS,EAAAwF,MACAxF,EAAAwF,IAAA,IAAA+M,KAAAvS,EAAAwF,IAAAgN,WAAA,EAAA,CAAA,GAGAlP,EAAA5O,SAAA,iBAAA,EACAuL,EAAAY,aAAA,CAAA,IAEAyC,EAAArO,YAAA,iBAAA,EACAgL,EAAAY,aAAA,CAAA,GAGAhI,WAAAC,MAAA,EACA0S,EAAA,EACAlQ,EAAA,CACA,EACAmX,kBAAA,WACA/Y,EAAAzE,YAAA,QAAA,CACA,CACA,CAAA,EAEAwE,EAAAV,gBAAA,EACA,CAAA,EAlDAF,WAAAC,MAAA,CAmDA,CAEA,SAAA4Z,KACA/S,EAAA,CAAAA,EACAM,EAAAc,yBAAApB,EACArE,EAAA,CACA,CAEA,SAAAqX,KACAC,aAAAnT,CAAA,EAEAA,EAAAoT,WAAA,WACAnT,EAAA2D,GAAAiC,IAAA,EAAAwN,KAAA,EACA7S,EAAAa,YAAA,CAAA,CAAApB,EAEA8L,EAAA,EACAlQ,EAAA,CACA,EAAA,GAAA,CACA,CAEA,SAAAyX,KACA,IAAAC,EAAAhR,EAAAiR,YAAA,EACA9Q,EAAA+Q,YAAA,CAAA,CAAA,EAGAF,EAFAhR,EAAAmR,UAAA,GAEA,MACAnR,EAAA1I,IAAA,uBAAA,EAEA8Z,GAAA,EAEA,CAEA,SAAAC,KACA,IAAA3Z,EAAAzL,EAAA0D,IAAA,EAEAuM,EAAAxE,EAAAuD,KAAA,kBAAA,EAGAkB,EAAA,UAFAA,EAAAzE,EAAAuD,KAAA,cAAA,GAEA,MAAA,OACAvD,EAAAtC,SAAA,EAAAkc,WAAA,cAAA,EACA5Z,EAAAuD,KAAA,eAAAkB,CAAA,EAEA7C,EAAA,CACA,CAEA,SAAAiY,GAAA9Z,GACAxL,EAAA0D,IAAA,EAEAyH,SAAA,YAAA,GACAoG,EAAA0C,EAAAyD,KAAA,SAAA,EAEAxD,EAAA3T,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAAnG,CAAA,IAEAA,EAAA,CAAA,EACA0C,EAAAyD,KAAA,UAAA,CAAA,CAAA,GAGAxD,EAAA3T,KAAA,eAAA,EAAA6B,QACAgS,EAAAiR,WAAA,UAAA,EACAhR,EAAAgR,WAAA,UAAA,IAEAjR,EAAApF,KAAA,WAAA,UAAA,EACAqF,EAAArF,KAAA,WAAA,UAAA,GAGAxD,EAAAV,gBAAA,CACA,CAEA,SAAAya,GAAA/Z,GACAA,EAAAV,gBAAA,CACA,CAEA,SAAA0a,GAAAha,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAiE,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,EAAA,EAEAna,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA6a,GAAAC,GACA,IAoBAC,EApBAD,IAIArM,EAAAzJ,EAAA8V,EAAAE,aAMAvM,EAAAwM,SAAA/kB,MAAAuY,MAAAyM,yBAAAJ,EAAAG,QAAA,GAEAE,EAAAlS,EAAAxT,KAAA,gBAAAgZ,EAAArY,IAAA,IAAA,GAEAkB,UAIA6jB,EAAA1lB,KAAA,iBAAA,EAAA6Z,OAAA,EAEAyL,EAAAK,GAAA3M,CAAA,EACA0M,EAAA1lB,KAAA,WAAA,EAAA4lB,MAAAN,CAAA,EACA,CAEA,SAAAO,GAAA5a,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EACA2iB,EAAA5a,EAAA9D,KAAA,UAAA,EACAoW,EAAAtS,EAAA4D,OAAA,EAAA1H,KAAA,KAAA,EAcA,OAXA4R,EAAAzJ,EAAAiO,KACAuI,YAAA3Z,KAAA,CACA4Z,SAAAhN,EAAA/Q,MACAge,cAAAH,EACAI,OAAAlN,EAAAhU,OAAA,GACAmhB,SAAAnN,EAAAoN,OAAApN,EAAAoN,OAAAzlB,IAAA,KACA0lB,WAAArN,EAAAsN,qBACA,CAAA,EAGArb,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAgc,GAAAtb,GACA,IAAAuS,EAAA/d,EAAA0D,IAAA,EAAAsa,QAAA,QAAA,EAAArW,KAAA,KAAA,EACA4R,EAAAzJ,EAAAiO,GAQA,OANAN,aAAAvV,KAAA,CACA6e,MAAAxN,EACA5L,KAAA,OACA,CAAA,EAEAnC,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAkc,GAAAxb,GACA,IAIA+N,EAJA9N,EAAAzL,EAAA0D,IAAA,EAEAqa,EADAtS,EAAAwb,QAAA,IAAA,EACAtf,KAAA,KAAA,EACAuf,EAAA,CAAAzb,EAAA9D,KAAA,OAAA,EAsBA,OAnBA3H,EAAA,cAAA,EAAAyG,SAAA,MAAA,GAEA8S,EAAAzJ,EAAAiO,MACA/c,MAAA6a,QAAAC,KAAA,EAEAqL,EAAA,iBAAArgB,OAAAyS,EAAAxY,GAAAmmB,EAAA,yBAAA,0BAAA,EAEAlmB,MAAA+a,KAAAgB,KAAAoK,EAAA,KAAA,WACA5N,EAAA6N,WAAAF,EACAlmB,MAAAqmB,UAAA9N,EAAA6N,WAAAzkB,KAAAzB,GAAA,EACAF,MAAAoZ,OAAAb,EAAA6N,WAAAzkB,KAAAzB,GAAA,EAEAuK,EAAA6b,YAAAC,GAAAhO,EAAA6N,UAAA,CAAA,EAEApmB,MAAA6a,QAAAK,KAAA,CACA,EAAAlb,MAAA6a,QAAAK,IAAA,GAGA1Q,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA0c,GAAAhc,GACA,IAAAic,EAAAznB,EAAA,cAAA,EACAyL,EAAAzL,EAAA0D,IAAA,EACAgkB,EAAAjc,EAAAic,OAAA,EAGAC,GAAAlc,EAAA9D,KAAA,MAAA,GAAA,IAAAyO,MAAA,GAAA,EAEAwR,EAAA5nB,EAAA8V,IAAA6R,EAAA,SAAAtR,GACAwR,EAAAC,MAAAzR,IAAA0B,SAAA1B,GAEA,GAAAwR,EACA,OAAAA,EAAAE,QAEA,CAAA,EAEAH,EAAAxhB,KAAApF,MAAAgnB,eAAA,EAEA,GAAAJ,EAAAxlB,SACAwlB,EAAAA,EAAAK,MAAA,EAAA,EAAA,GACA7kB,KAAA,YAAA0D,OACA6gB,EAAAvlB,OAAA,GACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAGAsgB,EAAAla,KAAAqa,EAAA5R,KAAA,QAAA,CAAA,EACAyR,EAAAzgB,YAAA,MAAA,EACAygB,EAAAzY,KAAA,QAAA,CAAA,EACAyY,EAAArd,IAAA,CACA8P,KAAAwN,EAAAxN,KAAAuN,EAAA9d,WAAA,CAAA,CAAA,EAAA,EAAA,EACAsQ,IAAAyN,EAAAzN,IAAAwN,EAAAxC,YAAA,CAAA,CAAA,EAAA,CACA,CAAA,CACA,CAEA,SAAAiD,KACAloB,EAAA,cAAA,EAAAyG,SAAA,MAAA,CACA,CAEA,SAAA0hB,GAAA3c,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAujB,QAAA,IAAA,EAAAtf,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,GAAA,CAAAyC,MAAA,UAAA,CAAA,EAEA5c,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAuC,IACAwC,EAAA,EAEA0B,EAAA,EADAzB,EAAA,IAGAsE,EAAApF,KAAA,WAAA,UAAA,EACAqF,EAAArF,KAAA,WAAA,UAAA,EACAiF,EAAAyD,KAAA,UAAA,CAAA,CAAA,EAEAxD,EAAAmU,MAAA,EAEA7S,GAAA,EACA2P,GAAA,EACAzjB,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CAEA,SAAAsP,IACA,MAAArK,EAAAxJ,MAAA,EACAkK,EAAArT,KAAA,sBAAA,EAAA6J,IAAA,YAAA,OAAA,EAEAwJ,EAAArT,KAAA,+BAAA,EAAA6J,IAAA,YAAA,OAAA,EAGA2J,EAAA3J,IAAA,MAAAwJ,EAAArK,SAAA,kBAAA,EAAA0b,YAAA,EAAA,EAAA,EAEAjR,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,CACA,CAEA,SAAA4e,GAAA7jB,GAGA,OAFAA,EAAAA,GAAA5E,SAAAsO,cAAA,IAMAoa,EAAA9jB,EAAAY,eAAA,GA4BA,CA1BA,CACAmjB,KAAA3Y,GAAA,EACA4Y,KAAA,GACAC,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,QAAA3Y,EACA4Y,aAAA3Y,EACA4Y,YAAA9mB,cAAAd,IACA6nB,WAAA,CAAA,EACAC,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACAqE,yBAAApB,EACAwX,MAAAlpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAa,UAAA,EACAtB,MAAA9nB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAT,KAAA,EACAuB,MAAArpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAc,KAAA,EACAtR,SAAA/X,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAxQ,QAAA,EACAuR,cAAAtpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAe,aAAA,EACAvI,SAAA/gB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAxH,QAAA,EACAI,gBAAAnhB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAApH,eAAA,EACAoI,OAAAvpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAiB,QAAA,EACApH,WAAApiB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAnG,UAAA,EACAqH,MAAAzpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAkB,KAAA,EACAC,YAAA1pB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAmB,WAAA,EACAC,iBAAA3pB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAqB,kBAAA,CACA,EAKA,WACA,IAAAC,EAAA,CACAC,UAAAzZ,GAAA,IAAAyF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACA4mB,OAAAxX,GAAA,IAAAwF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACAmoB,OAAA9Y,GAAA,IAAAuF,IAAA,SAAA8B,GAAA,OAAAA,EAAA1W,GAAA,CAAA,EACA6W,UAAAtH,GAAA,IAAAqF,IAAA,SAAAkC,GAAA,OAAAA,EAAA9W,GAAA,CAAA,EACAooB,eAAA3Y,GAAA,IAAAmF,IAAA,SAAAmC,GAAA,OAAAA,EAAA/W,GAAA,CAAA,EACA6f,UAAAlQ,GAAA,IAAAiF,IAAA,SAAAoC,GAAA,OAAAA,EAAAhX,GAAA,CAAA,EACAigB,iBAAApQ,GAAA,IAAA+E,IAAA,SAAAqC,GAAA,OAAAA,EAAAjX,GAAA,CAAA,EACAqoB,QAAAtY,GAAA,IAAA6E,IAAA,SAAAsC,GAAA,OAAAA,EAAAlX,GAAA,CAAA,EACAkhB,YAAAjR,GAAA,IAAA2E,IAAA,SAAAuC,GAAA,OAAAA,EAAAnX,GAAA,CAAA,EACAuoB,OAAApY,GAAA,IAAAyE,IAAA,SAAAwC,GAAA,OAAAA,EAAApX,GAAA,CAAA,EACAwoB,aAAApY,GAAA,IAAAwE,IAAA,SAAAiU,GAAA,OAAAA,EAAA7oB,GAAA,CAAA,EACA8oB,iBAAA,CAAA,EACAC,mBAAA,CAAA,CACA,EAEAJ,EAAAX,MAAA/mB,MAAA+nB,UAAAC,OAAAjhB,MAAA,IAAAiH,GAAA,IAAA2F,IAAA,SAAA3F,GACA,OAAAA,EAAAjP,IACAkV,MAAA,GAAA,EACAN,IAAA,SAAAC,GACA,OAAA5L,SAAA4L,EAAA,EAAA,CACA,CAAA,CACA,CAAA,CAAA,EAEAhE,IAAAA,EAAAuF,OAAAvF,EAAAwF,OACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAC,SACA8F,EAAAO,eAAA,CACAC,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAE,aACA6F,EAAAY,mBAAA,CACAJ,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAG,WACA4F,EAAAa,eAAA,CACAL,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,IAIA9F,IACAoY,EAAAc,aAAAlZ,GAGA,OAAAoY,CACA,EApDA,IA/BA,IAgCA,CA4KA,SAAAe,GAAAjjB,GAYA,OAXAA,EAAAA,GAAA,IACA3D,OAAAhE,EAAA8V,IAAAnO,EAAA3D,QAAA,GAAAhD,MAAAuY,MAAAsR,qBAAA,EACAljB,EAAA3D,OAAAoC,KA1HA,WACA,OAAA6J,GACA,IAAA,QACA,OAAA,SAAA0M,EAAAC,GACAkO,EAAAnO,EAAApX,OAAA,GACAwlB,EAAAnO,EAAArX,OAAA,GAKA,OAAAulB,EAHAA,EAAA7f,YAAA,MAGA8f,EAFAA,EAAA9f,YAAA,GAGA,EAGA8f,EAAAD,EACA,QAAA5a,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,oBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAqO,kBAAAC,QAAA,EAAArO,EAAAoO,kBAAAC,QAAA,IACA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,wBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAkK,sBAAAoE,QAAA,EAAArO,EAAAiK,sBAAAoE,QAAA,IACA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,oBACA,OAAA,SAAAyM,EAAAC,GAIA,QAHAD,EAAAuO,kBAAAvO,EAAAuO,kBAAAD,QAAA,EAAA,IACArO,EAAAsO,kBAAAtO,EAAAsO,kBAAAD,QAAA,EAAA,KAEA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,QACA,OAAA,SAAAyM,EAAAC,GACAkO,EAAAnO,EAAAwO,MAAAxO,EAAAwO,MAAA5lB,MAAA,GACAwlB,EAAAnO,EAAAuO,MAAAvO,EAAAuO,MAAA5lB,MAAA,GAKA,OAAAulB,EAHAA,EAAA7f,YAAA,MAGA8f,EAFAA,EAAA9f,YAAA,GAGA,EAGA8f,EAAAD,EACA,QAAA5a,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,WACA,OAAA,SAAAyM,EAAAC,GACAkO,EAAAnO,EAAAyO,SAAAzO,EAAAyO,SAAA7lB,MAAA,GACAwlB,EAAAnO,EAAAwO,SAAAxO,EAAAwO,SAAA7lB,MAAA,GAKA,OAAAulB,EAHAA,EAAA7f,YAAA,MAGA8f,EAFAA,EAAA9f,YAAA,GAGA,EAGA8f,EAAAD,EACA,QAAA5a,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,kBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA0O,eAAAzO,EAAAyO,iBAAA,QAAAnb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,2BACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA2O,wBAAA1O,EAAA0O,0BAAA,QAAApb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,sBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA4O,mBAAA3O,EAAA2O,qBAAA,QAAArb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,0BACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA6O,uBAAA5O,EAAA4O,yBAAA,QAAAtb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,mCACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA8O,gCAAA7O,EAAA6O,kCAAA,QAAAvb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,YACA,OAAA,SAAAyM,EAAAC,GACA8O,EAAA/O,EAAAgP,oBAAA1gB,YAAA,EACA2gB,EAAAhP,EAAA+O,oBAAA1gB,YAAA,EAEA,OAAAygB,IAAAE,EACA,EAGAA,EAAAF,EACA,QAAAxb,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,kBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAkP,gBAAAjP,EAAAiP,kBAAA,QAAA3b,EAAA,EAAA,CAAA,EACA,EACA,QACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA5b,GAAA6b,EAAA7b,KAAA,QAAAmP,EAAA,EAAA,CAAA,EACA,CACA,CACA,EAKA,CAAA,EAEAL,GAAAA,GAAA,GAAAlI,EAAA3D,OAAA5B,OACA0N,EAAAA,GAAA,GAEA9P,EAAA+J,KAAApC,EAAA3D,OAAA,SAAAgG,EAAAuP,GACAzJ,EAAAyJ,EAAArY,KAAAqY,CACA,CAAA,EAEA5R,CACA,CA+BA,SAAAmkB,GAAAnkB,GACA,IAAA4F,EAAA,GAaA,OAXAsC,GAIAtC,EAAAvN,EAAA8V,IAAAnO,EAAA3D,QAAA,GAAA+nB,EAAA,EAEA7X,EAAA0F,OAAArM,EAAAyI,KAAA,EAAA,CAAA,GALA9B,EAAA3G,KAAA,kDACAzG,OAAAI,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAOA6M,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,EAEA/B,CACA,CAEA,SAAAokB,GAAAxS,GACA,IAAAhM,EAAA,GAEAsN,EAAA7Z,MAAAuY,MAAAuB,wBAAAvB,EAAA5L,IAAA,EACAqe,EAAAprB,WAAAC,MAAAma,kBAAAH,EAAAtB,CAAA,EAQA0S,GAHAD,EAHAA,IACA,EAAA,CAAAzS,EAAA0B,sBAAA1B,EAAA2B,wBACA,CAAAta,WAAAC,MAAAsa,mBAAA,YAAA5B,EAAAE,kBAAA,EACA,CAAA,EAGAuS,IAAAprB,WAAAC,MAAAma,kBAAA,gBAAAzB,CAAA,EAoBA2S,GAlBA3e,EAAAnK,KAAA,6EACA0D,OAAAmlB,EAAA,sBAAA,GAAA1S,EAAArY,IAAAqY,EAAAxY,GAAAwY,EAAAE,kBAAA,CAAA,EAEAlM,EAAAnK,MAyKA2a,EAzKAxE,EAAArY,IA0KA,CACA,OACA,yCAAA4F,OAAAiX,EAAAxM,EAAA,WAAA,EAAA,EACA,SAAAyE,KAAA,EAAA,EA7KA,EACAzI,EAAAnK,KA8BA,SAAAmW,GACA,IAIAuC,EAJAvO,EAAA,GACA4e,EAAAnrB,MAAA0Y,qBAAAH,CAAA,EACA6S,EAjGA,SAAA7S,GACA,GAAA,CAAAA,EACA,OAAA,KAGA,GAAAA,EAAA8S,WACA,MAAA,+BAGA,OAAA9S,EAAA5L,MACA,KAAArM,MAAAgrB,UAAAC,KACA,MAAA,kBACA,KAAAjrB,MAAAgrB,UAAAE,YACA,MAAA,iCACA,KAAAlrB,MAAAgrB,UAAAG,sBACA,MAAA,yBACA,KAAAnrB,MAAAgrB,UAAAI,WACA,MAAA,oBACA,KAAAprB,MAAAgrB,UAAAK,cACA,KAAArrB,MAAAgrB,UAAAM,KACA,KAAAtrB,MAAAgrB,UAAAO,OACA,MAAA,iBACA,KAAAvrB,MAAAgrB,UAAAQ,aACA,MAAA,sBACA,QACA,MAAA,gBACA,CACA,EAsEAvT,CAAA,EACAwT,IAAAxT,EAAAyT,gBAAA,IAAAC,WAAA,IAAA7W,MAAA,GAAA,EAGA0F,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,oEACA0D,OACAgV,EAAA,GAAA,gBACAqQ,EACA5S,EAAAxY,GACAwY,EAAAI,QAAA,CAAA,EAEApM,EAAAnK,KAAA,mCAAA0D,OAAAslB,CAAA,CAAA,EACA7e,EAAAnK,KAAA,8CAAA,EACAmK,EAAAnK,KAAA,OAAA,EAEA0Y,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,oCACA0D,OACAgV,EAAA,GAAA,gBACAvC,EAAA2T,QAAA,CAAA,EAEApR,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,6DAAA0D,OACAgV,EAAA,GAAA,gBACAvC,EAAA4T,MAAA,GAAA,eACA5T,EAAAhU,OAAA2B,QAAAC,EAAA,eAAA,CAAA,CAAA,EAEA,EAAA4lB,EAAA3qB,SACAgrB,EAAAL,EAAA9E,MAAA,CAAA,EAAAjS,KAAA,IAAA,EAEAzI,EAAAnK,KAAA,oCAAA0D,OAAAsmB,CAAA,CAAA,GAGA7T,EAAA8T,iCACAC,EAAA/T,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MACAzsB,MAAAuY,MAAAmU,0BAAAnU,EAAA8T,+BAAAM,SAAA,EACA,KAEApgB,EAAAnK,KAAA,4DACA0D,OACAyS,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MAAA,cAAA,GACAvmB,QAAAC,EAAA,mCAAA,EACAnG,MAAAuY,MAAAqU,2BAAArU,EAAA8T,+BAAAE,MAAA,EACAD,EAAA,KAAAA,EAAA,IAAA,EACA,CACA,GAGA/T,EAAAsU,cACAtgB,EAAAnK,KAAA,8BAAA0D,OAAAyS,EAAAsU,YAAA,CAAA,EAGA,OAAAtgB,EAAAyI,KAAA,EAAA,CACA,EA1FAuD,CAAA,CAAA,EACAhM,EAAAnK,KAAA8iB,GAAA3M,CAAA,CAAA,EAEAA,EAAA4T,OACA5f,EAAAnK,KA2HA,SAAA0qB,GACA,IAAAhS,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EACAxC,EAAA,CAAA,8DAAAzG,OAAAgnB,EAAAC,SAAAjS,EAAA,GAAA,OAAA,GAEA,GAAAgS,EAAAE,MAAA,CACA,IACAC,EAAA,kBACAC,EAAA,GACA9mB,EAHA,+DAGA+mB,KAAAL,EAAAE,KAAA,EAEA,GAAA,CAAA5mB,GAAA,IAAAA,EAAAhF,OACA,OAOA,IAJA,IAAAsH,EAAAS,SAAA/C,EAAA,GAAA,EAAA,EACAgnB,EAAAjkB,SAAA/C,EAAA,GAAA,EAAA,EACAinB,EAAAjnB,EAAA,IAGAA,EAAA6mB,EAAAE,KAAAL,EAAAE,KAAA,IACAE,EAAA9qB,KAAAgE,EAAA,GAAAyd,KAAA,EAAA,UAAA,EAEAzd,IAEA8mB,EAAA9rB,SACAmL,EAAAnK,KAAA,0HACA0D,OAAA4C,EAAA0kB,CAAA,CAAA,EACA7gB,EAAAnK,KAAA,gKACA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EACAxgB,EAAAnK,KAAAirB,CAAA,EACA9gB,EAAAnK,KAAA,QAAA,EAEA,MACAmK,EAAAnK,KAAA,gCAAA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EAKA,OAFAxgB,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAlKAuD,EAAA4T,KAAA,CAAA,EAGA5f,EAAAnK,MAwKAorB,EAxKAjV,EAAAkV,WAyKA3S,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EACA2e,EAAAF,EACAxtB,MAAA2tB,QAAAC,oBAAA5tB,MAAAwE,WAAAgpB,EAAAK,MAAA,EAAAL,EAAAM,WAAA,EACA,MAEA,qCAAAhoB,OACAgV,EAAA,GAAA,gBAAA4S,CACA,EAhLA,EACAnhB,EAAAnK,MAkLA2rB,EAlLAxV,EAAAyR,kBAkLAgE,EAlLAzV,EAAA0V,QAmLAnT,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,0EAAAjJ,OACAgV,EAAA,GAAA,gBACA9a,MAAAspB,SAAA4E,oBAAAH,CAAA,EACAC,EAAAA,EAAAzpB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,EAxLA,EACAoG,EAAAnK,MA0LA2rB,EA1LAxV,EAAAsN,sBA0LAsI,EA1LA5V,EAAAoN,OA2LA7K,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,6EAAAjJ,OACAgV,EAAA,GAAA,gBACA9a,MAAAspB,SAAA4E,oBAAAH,CAAA,EACAI,EAAAA,EAAA5pB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,EAhMA,EACAoG,EAAAnK,MAkMA2rB,EAlMAxV,EAAA2R,kBAmMApP,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,oCAAAjJ,OACAgV,EAAA,GAAA,gBACAiT,EAAA/tB,MAAAspB,SAAA4E,oBAAAH,CAAA,EAAA,MAAA,EAvMA,EACAxhB,EAAAnK,KAyMA,SAAAgsB,GACA,IAAAtT,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,GAAAqf,EACA,MAAA,kGACAtoB,OAAAgV,EAAA,GAAA,gBAAAsT,EAAAC,MAAAD,EAAA7pB,KAAA,EAGA,MAAA,oCAAAuB,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EAlNAvC,EAAA4R,KAAA,CAAA,EACA5d,EAAAnK,KAmNA,SAAAiV,GACA,IAAAyD,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,GAAAsI,EACA,MAAA,kGACAvR,OAAAgV,EAAA,GAAA,gBAAAzD,EAAAgX,MAAAhX,EAAA9S,KAAA,EAGA,MAAA,oCAAAuB,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EA5NAvC,EAAA6R,QAAA,CAAA,GAEA7R,EAAA+V,2BAAA,IAAAxH,OAAA,IACAyH,GAAAhW,EAAA+V,2BAAA,IAAAjG,OAAA,GAYA,OAVA9b,EAAAnK,KAyNA,SAAAvC,EAAA2P,GACA,IAUAgf,EA2BAC,EArCA3T,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EACAxC,EAAA,GACAmiB,EAAA,CAAA,EACAC,EAAA,CACAC,YAAA,GACAC,YAAA,GACAC,UAAA,GACAC,SAAA,EACA,EAEA,IAAAP,KAAA3uB,EAAA,CACA,IAAAmvB,EAAAnvB,EAAA2uB,GACA7X,EAAAmQ,MAAA0H,GAEA7X,IAIA+X,EAAA,CAAA,EAEAM,EAAAC,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAE,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAG,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAI,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,CAEA,CAEA,IAAA0H,KAAAjf,EAAA,CACA,IAAA6f,EAAA7f,EAAAif,GACA7X,EAAAyR,MAAAoG,GAEA7X,IAIA8X,EAAA,CAAA,EAEAW,EAAAJ,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAH,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAF,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAD,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,CAEA,CAOA,GALAoqB,EAAAC,YAAAxpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAE,YAAAzpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAG,UAAA1pB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAI,SAAA3pB,KAAApF,MAAAgnB,eAAA,EAEA0H,EA6CA,OA5CAniB,EAAAnK,KAAA,4BAAA0D,OAAAgV,EAAA,GAAA,eAAA,CAAA,EAEA6T,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,qCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAC,YAAA3H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAC,YAAAxtB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,qCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAE,YAAA5H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAE,YAAAztB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,qCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAG,UAAA7H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAG,UAAA1tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,qCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAI,SAAA9H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAI,SAAA3tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAoG,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,EAGA,MAAA,oCAAAlP,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EAhVAoQ,EAAAqD,CAAA,CAAA,EACAhiB,EAAAnK,MAiVAmW,EAjVAA,EAkVAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,oCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAA8R,cAAA,EAtVA,EACA9d,EAAAnK,MAwVAmW,EAxVAA,EAyVAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAA+R,uBAAA,EA7VA,EACA/d,EAAAnK,MA+VAmW,EA/VAA,EAgWAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAgS,kBAAA,EApWA,EACAhe,EAAAnK,MAsWAmW,EAtWAA,EAuWAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAiS,sBAAA,EA3WA,EACAje,EAAAnK,MA6WAmW,EA7WAA,EA8WAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAkS,+BAAA,EAlXA,EACAle,EAAAnK,KAoXA,SAAAmW,GACA,IACA+W,EADAxU,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAGA8H,QAAAA,OAAA0Y,UAAA1Y,OAAA0Y,SAAAC,yBAAA3Y,OAAA0Y,SAAAC,wBAAAC,SAAAlX,EAAAsS,kBACA6E,EAAA7Y,OAAA0Y,SAAAC,wBAAAC,QACAE,EAAAC,WAAAF,GACAJ,EAAAK,EAAAprB,OAAA,IAGA,MAAA,yCAAAuB,OACAgV,EAAA,GAAA,gBACA,IAAAvC,EAAAsS,iBAAAtS,EAAAsS,gBAAAtS,EAAAsS,gBAAA,MACAyE,GAAA,EAAA,CACA,EAlYA/W,CAAA,CAAA,EAEAhM,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CAgEA,SAAAkQ,GAAA3M,GACA,IAAAhM,EAAA,GAaA,OAXAA,EAAAnK,KAAA,4BAAA,EACAmK,EAAAnK,KAAAmkB,GAAAhO,EAAA6N,UAAA,CAAA,EACA7Z,EAAAnK,KAAA,8BAAA,GAEAmW,EAAAwM,UAAA,IAAA3jB,QACAmL,EAAAnK,KAAA,uBAAA0D,OAAAyS,EAAAwM,SAAA3jB,MAAA,CAAA,EAGAmL,EAAAnK,KAAA,kBAAA0D,OAAAI,QAAAC,EAAA,qBAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CAEA,SAAAuR,GAAAsJ,GACA,OAAA7vB,MAAAC,SAAA4vB,EAAAluB,KAAAzB,GAAA,EACA,qGACA4F,OACAI,QAAAC,EAAA,kBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,GACAyuB,GAAA,IAAAzuB,OACA,mFACA0E,OACAI,QAAAC,EAAA,gBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,EAGA,gCAAA0E,OAAAI,QAAAC,EAAA,gBAAA,CAAA,CACA,CA8RA,SAAAge,KACArT,IACAA,EAAAjJ,MAAA,EACAiJ,EAAA,MAGAiC,EAAA1I,IAAA,uBAAA,EAEArK,MAAA6a,QAAAC,KAAA,EAEA,IAAA+N,EAAAvB,GAAA,EAEA,OAAAuB,GAIA/X,EAiCA9Q,MAAA+a,KAAAgB,KAAA,iBAjCA8M,CAiCA,GAhCAnoB,KAAAkpB,GAAA,SAAA3O,GAKA,OAJAA,GACAjb,MAAA6a,QAAAK,KAAA,EAGAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAoqB,EAAA,EACApqB,KAAA,SAAAiG,GAGA,OAFAmK,EAAA,KAEAnK,GAIAuM,EAAA3T,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEAvY,GAAA,EAEA7Q,EAAA3D,OAAA5B,QAAAynB,EAAA,GAAApB,MACA1U,EAAA3I,GAAA,wBAAA0Z,EAAA,EAGA9jB,MAAA6a,QAAAK,KAAA,EAEAvU,GAfA,IAgBA,CAAA,EAhCA3H,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,CAiCA,CAUA8E,EAAAR,KA/pFA,SAAAd,GAGA,GAAA,EAAA6pB,EAFApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CASA8P,EAAA/Q,WAAAC,MAAAsa,mBACA7Z,MAAA4L,OAAAgkB,YAAAC,+BACAnvB,cAAAd,GACA,EACA2O,EAAA,EAEA0B,EAAA,EADAzB,EAAA,IAEAC,EAAA,GAEAqE,EAAApF,KAAA,WAAA,UAAA,EACAqF,EAAArF,KAAA,WAAA,UAAA,EAEAmE,GAAAie,KAAA,8BAAA,0FAAA,EAsCAhe,GAAA3M,SAAA,MAAA,EACA4M,GAAA5M,SAAA,MAAA,EACA6M,GAAA7M,SAAA,MAAA,EACA8M,GAAA9M,SAAA,MAAA,EACA+M,GAAA/M,SAAA,MAAA,EACAgN,GAAAhN,SAAA,MAAA,EACAiN,GAAAjN,SAAA,MAAA,EACAkN,GAAAlN,SAAA,MAAA,EACAmN,EAAA5M,YAAA,MAAA,EACA6M,GAAA7M,YAAA,QAAA,EAEA9G,GAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,GAAA9M,YAAA,QAAA,EAIA4M,EAAArT,KAAA,gBAAA,EAEA4K,SAAA,WAAA,EACAgJ,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EAEAgN,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EAGAiN,EAAAnN,KAAAC,QAAAC,EAAA,wBAAA,CAAA,EACAkN,EAAApN,KAAAC,QAAAC,EAAA,uBAAA,CAAA,EAEAnH,EAAA,mCAAA,EAAAiH,KAAAC,QAAAC,EAAA,mCAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EAEAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAnH,EAAA,mCAAA,EAAAiH,KAAAC,QAAAC,EAAA,mCAAA,CAAA,EACAnH,EAAA,mCAAA,EAAAiH,KAAAC,QAAAC,EAAA,mCAAA,CAAA,EACAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAnH,EAAA,4CAAA,EAAAiH,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EAEAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAnH,EAAA,6CAAA,EAAAiH,KAAAC,QAAAC,EAAA,6CAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAnH,EAAA,uCAAA,EAAAiH,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACAnH,EAAA,mCAAA,EAAAiH,KAAAC,QAAAC,EAAA,mCAAA,CAAA,EACAnH,EAAA,yCAAA,EAAAiH,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAkO,EAAA9U,KAAA,YAAA,EAAA0G,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAnH,EAAA,8BAAA,EAAAiH,KAAAC,QAAAC,EAAA,yBAAA,CAAA,EACAiO,GAAApG,KAAA,cAAA9H,QAAAC,EAAA,iBAAA,CAAA,EAEA6M,EAAAzT,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACA6M,EAAAzT,KAAA,kCAAA,EAAA0G,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,6CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAA0G,KAAAC,QAAAC,EAAA,iDAAA,CAAA,EACA6M,EAAAzT,KAAA,8CAAA,EAAA0G,KAAAC,QAAAC,EAAA,gDAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAA0G,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACA6M,EAAAzT,KAAA,iCAAA,EAAA0G,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,6CAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAA0G,KAAAC,QAAAC,EAAA,+CAAA,CAAA,EACA6M,EAAAzT,KAAA,iDAAA,EAAA0G,KAAAC,QAAAC,EAAA,wDAAA,CAAA,EACA6M,EAAAzT,KAAA,4CAAA,EAAA0G,KAAAC,QAAAC,EAAA,mDAAA,CAAA,EACA6M,EAAAzT,KAAA,gDAAA,EAAA0G,KAAAC,QAAAC,EAAA,uDAAA,CAAA,EACA6M,EAAAzT,KAAA,yDAAA,EAAA0G,KAAAC,QAAAC,EAAA,gEAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAA0G,KAAAC,QAAAC,EAAA,+CAAA,CAAA,EAEA6M,EAAAzT,KAAA,2BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,kCAAA,CAAA,EACA6M,EAAAzT,KAAA,kCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,qCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,6CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,iDAAA,CAAA,EACA6M,EAAAzT,KAAA,8CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,gDAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,sCAAA,CAAA,EACA6M,EAAAzT,KAAA,iCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,6CAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,+CAAA,CAAA,EACA6M,EAAAzT,KAAA,iDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,wDAAA,CAAA,EACA6M,EAAAzT,KAAA,4CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,mDAAA,CAAA,EACA6M,EAAAzT,KAAA,gDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,uDAAA,CAAA,EACA6M,EAAAzT,KAAA,yDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,gEAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,+CAAA,CAAA,GAIAiJ,EAAA,IAEAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,mCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAuZ,QACAjhB,EAAAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,mCAAA,CAAA,CAAA,EAEAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,mCAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,mCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAwZ,aACAlhB,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EAGA0Q,OAAAC,UAAAD,OAAAC,SAAA0V,gBACApd,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,4CAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,0CAAA,CAAA,CAAA,EACAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,mDAAA,CAAA,CAAA,EAIA6I,EAAA,CACA,CAAA9O,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,qCAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,6CAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,iDAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,gDAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,6CAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,+CAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,wDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,mDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,uDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,gEAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,+CAAA,CAAA,IAKAtG,EAAAG,MAAAuwB,mBAAAvvB,cAAAd,GAAA,GACAkF,KAAApF,MAAAwwB,cAAA,EAIAC,EAAAzwB,MAAA0wB,mBAAA1vB,cAAAd,GAAA,EAEAsP,EAAAihB,EAAApI,MACAzX,EAAA6f,EAAAE,aACA9f,EAAA4f,EAAAG,iBAIAlhB,EAAA1Q,EAAA8V,IAAAiC,UAAA,GAAA,SAAAC,GAAA,OAAAA,CAAA,CAAA,GACA5R,KAAApF,MAAAwwB,cAAA,GAIA5gB,EAAA5Q,EAAA8V,IAAAwT,eAAA,GAAA,SAAArR,GAAA,OAAAA,CAAA,CAAA,GACA7R,KAAApF,MAAA6wB,WAAA,EAIA3gB,EAAAlR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAxE,OACA,OAAAuE,CAEA,CAAA,EAIA1gB,EAAApR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAA3G,SACA,OAAA0G,CAEA,CAAA,EAIAhhB,EAAA9Q,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAC,QACA,OAAAF,CAEA,CAAA,EAIA9gB,EAAAhR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAE,eACA,OAAAH,CAEA,CAAA,EA9MA7b,GAAA,CAAA,CAAA,EACAO,GAAA,EAq/BAtC,EAAAmU,MAAA,EAEA6J,EAAAle,EAAAzT,KAAA,gBAAA,EAEA0P,EAAAiiB,EAAAvqB,KAAA,aAAA,EACAuI,EAAAgiB,EAAAvqB,KAAA,SAAA,EAEAsM,EAAAyD,KAAA,UAAA,CAAA,CAAAnG,CAAA,EAEAxB,EAAA3N,QAAA2N,EAAA3N,SAAA4N,EAAA5N,OACA4N,EAAApN,QAAA,SAAA2T,GACA,IAAA2I,EAAAle,MAAAC,SAAA8O,EAAAwG,EAAArV,IAAA,KAAA,EACAie,EAAAvL,EAAArT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAEAge,EACAC,EAAAnY,YAAA,MAAA,EAEAmY,EAAA1Y,SAAA,MAAA,CAEA,CAAA,EAEAmN,EAAArT,KAAA,aAAA,EAAAyG,YAAA,MAAA,EAKAmN,EAAA9I,IAAA,sBAAA,EACA0I,EAAA1I,IAAA,uBAAA,EACA2I,EAAA3I,IAAA,qBAAA,EACA4I,EAAA5I,IAAA,wBAAA,EACA+I,EAAA/I,IAAA,mBAAA,EACAgJ,EAAAhJ,IAAA,kBAAA,EACAiJ,EAAAjJ,IAAA,oBAAA,EACAkJ,GAAAlJ,IAAA,sBAAA,EACAmJ,GAAAnJ,IAAA,wBAAA,EACAqJ,GAAArJ,IAAA,sBAAA,EACAoJ,GAAApJ,IAAA,sBAAA,EACAsJ,GAAAtJ,IAAA,sBAAA,EACAuJ,GAAAvJ,IAAA,yBAAA,EACAwJ,GAAAxJ,IAAA,8BAAA,EACAyJ,GAAAzJ,IAAA,yBAAA,EACA0J,GAAA1J,IAAA,gCAAA,EACA2J,GAAA3J,IAAA,wBAAA,EACA4J,GAAA5J,IAAA,0BAAA,EACA6J,GAAA7J,IAAA,sBAAA,EACA8J,GAAA9J,IAAA,4BAAA,EACAgK,EAAAhK,IAAA,0BAAA,EACAkK,GAAAlK,IAAA,iCAAA,EACA+J,GAAA/J,IAAA,cAAA,EAEA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,8BAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,0BAAA,EACA6I,EAAA7I,IAAA,oBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACA6I,EAAA7I,IAAA,sCAAA,EACA6I,EAAA7I,IAAA,sCAAA,EAIA8I,EAAA/I,GAAA,uBAAA4R,EAAA,EACAhJ,EAAA5I,GAAA,sBAAA,YAAAga,EAAA,EACAnR,EAAA7I,GAAA,yBAAAka,EAAA,EACAlR,EAAAhJ,GAAA,oBAAAoS,EAAA,EACAnJ,EAAAjJ,GAAA,mBAAAsS,EAAA,EACApJ,EAAAlJ,GAAA,qBAAA+S,EAAA,EACA5J,GAAAnJ,GAAA,uBAAAgT,EAAA,EACA5J,GAAApJ,GAAA,yBAAA2T,EAAA,EACAtK,GAAArJ,GAAA,uBAAAmU,EAAA,EACA7K,GAAAtJ,GAAA,uBAAA0U,EAAA,EACAnL,GAAAvJ,GAAA,uBAAA4U,EAAA,EACApL,GAAAxJ,GAAA,0BAAAoV,EAAA,EACA3L,GAAAzJ,GAAA,+BAAAuV,EAAA,EACA7L,GAAA1J,GAAA,0BAAAyV,EAAA,EACA9L,GAAA3J,GAAA,iCAAA6V,EAAA,EACAjM,GAAA5J,GAAA,yBAAAiW,EAAA,EACApM,GAAA7J,GAAA,2BAAA8W,EAAA,EACAhN,GAAA9J,GAAA,uBAAAkX,EAAA,EACAnN,GAAA/J,GAAA,6BAAA0X,EAAA,EACAzN,EAAAjK,GAAA,2BAAAiY,EAAA,EACAjO,GAAAhK,GAAA,eAAAsZ,EAAA,EACAnP,GAAAnK,GAAA,kCAAAqZ,EAAA,EAEAvQ,EAAA9I,GAAA,wBAAA,iBAAAka,EAAA,EACApR,EAAA9I,GAAA,+BAAA,WAAAma,EAAA,EACArR,EAAA9I,GAAA,kBAAA,SAAAoa,EAAA,EACAtR,EAAA9I,GAAA,yBAAA,SAAA0b,EAAA,EACA5S,EAAA9I,GAAA,kBAAA,SAAAgb,EAAA,EACAlS,EAAA9I,GAAA,2BAAA,QAAA4b,EAAA,EACA9S,EAAA9I,GAAA,qBAAA,eAAA+c,EAAA,EACAjU,EAAA9I,GAAA,uCAAA,iBAAAoc,EAAA,EACAtT,EAAA9I,GAAA,uCAAA,iBAAA8c,EAAA,EA9kCA3K,EAAA,EAtCA4H,GAAA,EACAzjB,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,EAgpFAvF,EAAAsF,OAAAuP,EACA7U,EAAAiH,aAAAsO,GACAvV,EAAAypB,0BAx9DA,WACApf,EAAAC,YACAD,EAAAC,UAAAof,MAAA,EACArf,EAAAC,UAAA,MAGAD,EAAAE,YACAF,EAAAE,UAAAmf,MAAA,EACArf,EAAAE,UAAA,KAEA,EA+8DAvK,EAAAC,QARA,WACAuL,EAAAmU,MAAA,CACA,EAQA7oB,EAAAkJ,QAAAA,EAEAlJ,EAAAkJ,OACA,EAAAkH,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,EC/vFA,SAAAL,GACA,IAIAqB,EACA2P,EACA6hB,EAKAC,EAIAC,EAIAC,EAIAC,EAIAC,EAIAC,EACAjhB,EACAC,EACAC,EAAAC,EAlCA5J,EAAA,GACA8J,EAAA,GACAzB,EAAA,GACAC,EAAA,GAkCA4C,GADAnT,EAAA,MAAA,EACAA,EAAA,cAAA,GACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EACAsU,EAAAtU,EAAA,mCAAA,EACA0U,EAAA1U,EAAA,iCAAA,EACA2U,EAAA3U,EAAA,iCAAA,EACAqV,EAAArV,EAAA,mCAAA,EACAuV,EAAAvV,EAAA,oDAAA,EACAgS,EAAA,CACAG,WAAA,CAAA,EACAC,WAAA,CAAA,EACAU,yBAAA,CAAA,EACAF,aAAA,CAAA,CACA,EAEA,SAAAkJ,EAAA1U,GACApG,MAAA6a,QAAAC,KAAA,EAEAmV,EAAApxB,SAAA8M,KAAAvF,CAAA,EAEA,GAAA,CAAA6pB,EAAA7vB,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAcA8P,EAAA/Q,WAAAC,MAAAsa,mBACA7Z,MAAA4L,OAAAgkB,YAAAC,+BACAnvB,cAAAd,GACA,EAEAiS,EAAAie,KAAA,8BAAA,0FAAA,EAEAwB,EAAA,EAEAxf,EAAAiV,MAAA,EASAjV,EAAApM,YAAA,MAAA,EACAqM,EAAA5M,SAAA,MAAA,EACA6M,EAAA7M,SAAA,MAAA,EACA8M,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACAiN,EAAAjN,SAAA,MAAA,EACAkN,EAAAlN,SAAA,MAAA,EACAmN,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAlBA6rB,EAAA,EACAC,EAAA,EA4CAjJ,EAAA,CACAf,YAAA9mB,cAAAd,IACA8nB,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACAskB,0BAAA,CAAA,EACAC,+BAAA,CAAA,EACAlL,MAAAxX,EAAAwF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACAmoB,MAAA9Y,EAAAuF,IAAA,SAAA8B,GAAA,OAAAA,EAAA1W,GAAA,CAAA,EACAkpB,eAAArY,EAAAqY,eACAK,mBAAA1Y,EAAA0Y,mBACAC,eAAA3Y,EAAA2Y,eACA5X,yBAAApB,CACA,EAEA1Q,MAAA+a,KAAAgB,KAAA,oBAAA8M,CAAA,EAjFAoJ,OAAAjyB,MAAA6a,QAAAK,IAAA,EACAxa,KAAA,SAAAwxB,GAAAb,EAAAa,CAAA,EAAA,SAAAjX,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAyxB,CAAA,CACA,CAqCA,SAAAN,IACAzf,EAAA/H,IAAA,OAAA,EACAiJ,EAAAjJ,IAAA,oBAAA,EACAqJ,EAAArJ,IAAA,sBAAA,EACAsJ,EAAAtJ,IAAA,sBAAA,EACAgK,EAAAhK,IAAA,0BAAA,EACAkK,EAAAlK,IAAA,iCAAA,CACA,CAEA,SAAAynB,IACAxe,EAAAlJ,GAAA,qBAAA+S,CAAA,EACAzJ,EAAAtJ,GAAA,yBAAA0U,CAAA,EACAnL,EAAAvJ,GAAA,uBAAA4U,CAAA,EACA3K,EAAAjK,GAAA,2BAAAiY,EAAA,EACA9N,EAAAnK,GAAA,kCAAAqZ,EAAA,EAEArR,EAAAhI,GAAA,QAAA,yCAAAgoB,EAAA,EACAhgB,EAAAhI,GAAA,QAAA,8CAAAioB,EAAA,EACAjgB,EAAAhI,GAAA,QAAA,6BAAAkoB,EAAA,EACAlgB,EAAAhI,GAAA,QAAA,kDAAAmoB,EAAA,EACAngB,EAAAhI,GAAA,QAAA,wCAAAooB,EAAA,CACA,CAoBA,SAAAL,IACA,IAiHAM,EA4CAhC,EAuTAiC,EACAntB,EA2EAotB,EACAptB,EAjiBAgH,EAAA,GAEA8kB,IAuCA9kB,GAHAA,GADAA,GALAA,GADAA,GALAA,GADAA,GATAA,GAAA,uqBACA,mGAAAzG,OAAAI,QAAAC,EAAA,+BAAA,CAAA,EAQA,sVACA,oCAAAL,OAAAI,QAAAC,EAAA,sCAAA,CAAA,GACA,yCAAAL,OACAurB,EAAAuB,sBAAA,MAAA,QACAvB,EAAAuB,qBAAA,EAEA,8FACA,oCAAA9sB,OAAAI,QAAAC,EAAA,2CAAA,CAAA,GACA,yCAAAL,OACAurB,EAAAwB,2BAAA,MAAA,QACAxB,EAAAwB,0BAAA,EAEA,6EACA,oCAAA/sB,OAAAI,QAAAC,EAAA,2BAAA,CAAA,GACA,qCAAAL,OAAAurB,EAAAyB,UAAA,EAEA,gBAEAzB,EAAA0B,iBAAA,IAAA3xB,SACAiwB,EAAA2B,2BAAA,IAAA5xB,SACA,MAAAgR,EAAA6gB,WAAA,EAKA1mB,GAAA,kOAOAA,GAAA,iRAIA,EAAA8kB,EAAAyB,aACAvmB,IAkDA2mB,EAAA,CAAA,IAAAlzB,MAAAuL,sBAAA4nB,EAAA,aAAA,CAAA,EACAV,EAAA,CAAA,IAAAzyB,MAAAuL,sBAAA4nB,EAAA,aAAA,CAAA,EACAC,EAAA,CAAA,IAAApzB,MAAAuL,sBAAA4nB,EAAA,eAAA,CAAA,EACAE,EAAA,CAAA,IAAArzB,MAAAuL,sBAAA4nB,EAAA,eAAA,CAAA,EAEA,CACA,2CACAG,EAAA,EAAA,gBAAAF,CAAA,EACAE,EAAA,EAAA,gBAAAD,CAAA,EACAC,EAAA,EAAA,cAAAJ,CAAA,EACAI,EAAA,EAAA,cAAAb,CAAA,EACA,SACAc,EAAA,sDAAA,gBAAA,CAAAH,CAAA,EACAG,EAAA,uDAAA,gBAAA,CAAAF,CAAA,EACAE,EAAA,gCAAA,cAAA,CAAAL,CAAA,EACAK,EAAA,iCAAA,cAAA,CAAAd,CAAA,GACAzd,KAAA,EAAA,IA/DA5C,EAAA7F,KAAAA,CAAA,EAEAvN,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,uCAAA,EAAAiH,KAAAC,QAAAC,EAAA,oCAAA,CAAA,EACAnH,EAAA,qDAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EAEAmN,EAAAtU,EAAA,mCAAA,EACA0U,EAAA1U,EAAA,iCAAA,EACA2U,EAAA3U,EAAA,iCAAA,EACAqV,EAAArV,EAAA,mCAAA,EACAuV,EAAAvV,EAAA,oDAAA,GA4EAa,EAAAG,MAAAuwB,mBAAAvvB,cAAAd,GAAA,GACAkF,KAAApF,MAAAwwB,cAAA,EAIAC,EAAAzwB,MAAA0wB,mBAAA1vB,cAAAd,GAAA,EAEAsP,EAAAihB,EAAApI,MACAzX,EAAA6f,EAAAE,aACA9f,EAAA4f,EAAAG,gBAjFApb,EAAA,EACAge,GAAA,EAEA,EAAAnC,EAAAyB,aACA,CAAA,IAAA9yB,MAAAuL,sBAAA4nB,EAAA,eAAA,CAAA,GACAM,GAAApC,EAAAqC,iCAAA,EAGA,CAAA,IAAA1zB,MAAAuL,sBAAA4nB,EAAA,eAAA,CAAA,GACAQ,GAAAtC,EAAAuC,iCAAA,EAGA,CAAA,IAAA5zB,MAAAuL,sBAAA4nB,EAAA,aAAA,CAAA,GACAU,GAAAxC,EAAAyC,iBAAA,EAGA,CAAA,IAAA9zB,MAAAuL,sBAAA4nB,EAAA,aAAA,CAAA,IACAY,GAAA1C,EAAA2C,iBAAA,GAIA3C,EAAA0B,iBAAA,IAAA3xB,SACAiwB,EAAA2B,2BAAA,IAAA5xB,SA0bAuxB,EAzbAtB,EAAA0B,gBA0bAxtB,EAAA,CACA0uB,OAAA,GACAC,cAAA,GACAC,OAAA,GACAC,gBAAA,GACAC,OAAA,EACA,EAEA1B,EAAA/wB,QAAA,SAAA0yB,GACA,IAKAC,EAAAA,EAHAD,EAAAE,WACApd,EAAAwY,WAAA0E,EAAAE,WAEA,CACAC,WAAAH,EAAAE,UACAnG,MAAAjX,EAAAA,EAAAiX,MAAA,KACA9pB,MAAA6S,EAAApX,MAAA00B,aAAAtd,EAAA7S,KAAA,EAAA2B,QAAAC,EAAA,cAAA,CACA,GAEA,CACAsuB,WAAAz0B,MAAA20B,aAAA,EACAtG,MAAA,KACA9pB,MAAA2B,QAAAC,EAAA,6BAAA,CACA,EAGAZ,EAAA0uB,OAAA7xB,KAAAkyB,EAAAM,KAAA,EACArvB,EAAA2uB,cAAA9xB,KAAAmyB,CAAA,EACAhvB,EAAA4uB,OAAA/xB,KAAAmyB,EAAAhwB,MAAAvE,MAAA00B,aAAAH,EAAAhwB,KAAA,EAAA,IAAA,EACAgB,EAAA6uB,gBAAAhyB,KAAAmyB,EAAAlG,MAAA,IAAAA,MAAAkG,EAAAlG,KAAA,EAAAwG,qBAAA,EAAA,MAAA,EACAtvB,EAAA8uB,OAAAjyB,KAAAmyB,EAAAlG,OAAA,MAAA,CACA,CAAA,GAEAiD,EAAAtxB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAAC,IAAA,CACAtH,QAAAuH,SAAAC,cAAA,kCAAA,EACAC,WAAAlvB,QAAAC,EAAA,2BAAA,EACAguB,OAAA5uB,EAAA4uB,OACAC,gBAAA7uB,EAAA6uB,gBACAH,OAAA1uB,EAAA0uB,OACAoB,gBAAA9vB,EAAA2uB,cACAG,OAAA9uB,EAAA8uB,OACAiB,WAAA,CAAA,EACAC,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,IAIAA,EAAAkrB,yBAAA,EAKAnB,EAAAiB,EAAAG,EAAAC,OAAAC,MAAAC,WAAAL,EAAAM,kBAEAxB,EAAAE,aAAAz0B,MAAA20B,aAAA,GAIAqB,EAAA,CAAAthB,OAAA,CAAA0C,OAAA,CAAAmd,EAAAE,WAAA,CAAA,CAAA,CACA,CACA,CAAA,GAEAtC,OAAA,EA5IAO,EA5WArB,EAAA2B,0BA6WAztB,EAAA,CACA0uB,OAAA,GACAC,cAAA,GACAC,OAAA,GACAE,OAAA,EACA,EAEA3B,EAAA9wB,QAAA,SAAA0yB,GAMA,IAAAC,EACA,OANAhvB,EAAA0uB,OAAA7xB,KAAAkyB,EAAAM,KAAA,EAMAN,EAAA3L,kBACA,KAAAroB,MAAA21B,sBAAAC,QACA3B,EAAA,CACAE,WAAAH,EAAA3L,iBACApkB,MAAA2B,QAAAC,EAAA,6BAAA,EACAkoB,MAAA,SACA,EACA,MACA,KAAA/tB,MAAA21B,sBAAAE,QACA5B,EAAA,CACAE,WAAAH,EAAA3L,iBACApkB,MAAA2B,QAAAC,EAAA,4BAAA,EACAkoB,MAAA,MACA,EACA,MACA,QACAkG,EAAA,CACAE,WAAAH,EAAA3L,iBACApkB,MAAA2B,QAAAC,EAAA,8BAAA,EACAkoB,MAAA,SACA,CAEA,CAEA9oB,EAAA2uB,cAAA9xB,KAAAmyB,CAAA,EACAhvB,EAAA4uB,OAAA/xB,KAAAmyB,EAAAhwB,KAAA,EACAgB,EAAA8uB,OAAAjyB,KAAAmyB,EAAAlG,KAAA,CACA,CAAA,GAEAkD,EAAAvxB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAAC,IAAA,CACAtH,QAAAuH,SAAAC,cAAA,6CAAA,EACAC,WAAAlvB,QAAAC,EAAA,6BAAA,EACAguB,OAAA5uB,EAAA4uB,OACAC,gBAAA7uB,EAAA6uB,gBACAH,OAAA1uB,EAAA0uB,OACAoB,gBAAA9vB,EAAA2uB,cACAG,OAAA9uB,EAAA8uB,OACAiB,WAAA,CAAA,EACAC,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,IAIAA,EAAAkrB,yBAAA,EAKAnB,EAAAiB,EAAAG,EAAAC,OAAAC,MAAAC,WAAAL,EAAAM,kBAMAC,EAAA,CAAAthB,OAAA,CAAA0hB,iBAAA,CAAA7B,EAAAE,WAAA,CAAA,CAAA,CACA,CACA,CAAA,GAEAtC,OAAA,GAlbAN,EAAA,EACAC,EAAA,EACA,CAsBA,SAAAwB,EAAA+C,EAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAA,GAAAG,YAAA,EAAAH,EAAArP,MAAA,CAAA,EAEA,MAAA,CACA,qGACAnhB,OAAAuwB,EAAAE,EAAA,QAAA,GAAAD,CAAA,EACA,oCAAAxwB,OAAAI,QAAAC,EAAA,0BAAAqwB,CAAA,CAAA,EACA,UACAxhB,KAAA,EAAA,CACA,CAEA,SAAAue,EAAAlmB,EAAAipB,EAAAC,GACA,MAAA,CACA,+DAAAzwB,OAAAywB,EAAA,QAAA,GAAAD,CAAA,EACA,6BACA,0DAAAxwB,OAAAuH,CAAA,EACA,UACA2H,KAAA,EAAA,CACA,CAeA,SAAAQ,IAuBA,IACAvP,EADA2O,EAAAlB,EAAAnU,KAAA,YAAA,GAGAsV,GAAAvF,GAAA,IAAAwF,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAvB,EAAAuB,OACA8E,QAAAC,EAAA,gCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,EAqBA,IACAA,EAzDAwO,EAEAC,EAsDAE,EAAAjB,EAAApU,KAAA,YAAA,EAtDA,IAAAmV,KAyDAG,GAAAtF,GAAA,IAAAuF,IAAA,SAAA8B,GACA,OAAAA,EAAArS,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAoO,EAAApO,OACA8E,QAAAC,EAAA,gCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAI,WAAA,CAAA,IAEAnL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAI,WAAA,CAAA,GAGAwD,EAAArI,KAAAtG,CAAA,EAtCA8K,IAAAA,EAAAuF,OAAAvF,EAAAwF,MACAlC,EAAA5O,SAAA,iBAAA,EACA4O,EAAApO,MAAA,MAAA8K,EAAAuF,MAAApQ,QAAAC,EAAA,iBAAA,EAAA,IAAA4K,EAAAuF,MAAAE,eAAA,EAAA,IAAA,KAAA,MAAAzF,EAAAwF,IAAArQ,QAAAC,EAAA,eAAA,EAAA,IAAA4K,EAAAwF,IAAAC,eAAA,EAAA,GAAA,EACAxF,EAAAY,aAAA,CAAA,IAEAyC,EAAArO,YAAA,iBAAA,EACAqO,EAAApO,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACA6K,EAAAY,aAAA,CAAA,GAKA2C,EAAAmC,KAAA,UAAAhG,CAAA,EACAM,EAAAc,yBAAApB,EAlDAM,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,CAbA,CAmFA,SAAAiX,IACA3J,EAAAtN,YAAA,QAAA,EACAgL,EAAA,CACAG,WAAA,CAAA,EACAC,WAAA,CAAA,EACAU,yBAAA,CAAA,EACAF,aAAA,CAAA,CACA,EAEAb,EAAA,GACAzB,EAAA,GAEAoB,EAAA,EADAnB,EAAA,GAEA,CAEA,SAAA4N,IACAF,EAAA,EACAzH,EAAA,EACAsF,EAAA,CACA,CAEA,SAAAgE,IACA,IAAAvZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,kCAAA,EACAkX,QAAA0B,GACAxB,gBAAAjO,EAAAwF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACAsd,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,CAEA,SAAAyZ,IACA,IAAAzZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,kCAAA,EACAkX,QAAA4B,GACA1B,gBAAAhO,EAAAuF,IAAA,SAAA8B,GAAA,OAAAA,EAAA1W,GAAA,CAAA,EACAsd,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CACAC,QAAA,CAAA,EACAuB,SAAAxO,EAAA,KAAA,SAAAyO,GACA,MAAA,CAAA,EAAAvO,GAAAuO,GAAAA,EAAAf,UAIAzH,EAAAwI,EAAAf,OAEA,CAAA,IAAAxN,EAAAwO,QAAAzI,EAAA1W,GAAA,EACA,CACA,EACAwU,OAAA/D,EAAA,KAAA,SAAAiG,GACA,MAAA,EAAAhG,CAAAA,GAAAgG,CAAAA,IAIA,CAAA,EAAAhG,EAAAyO,QAAAzI,EAAA1W,GAAA,CACA,CACA,CACA,EAEA2d,WAAA3W,KAAAoY,SAAA/Z,CAAA,CACA,CAEA,SAAAwZ,GAAAF,GACAvP,GAAAuP,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAjF,EAAAwV,EAAA,KAAA,CACA,CAAA,EAEAyF,EAAA,CACA,CAEA,SAAAmE,GAAAM,GACAhQ,GAAAgQ,GAAA,IAAAzK,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA0K,EAAA6F,EAAA,KAAA,CACA,CAAA,EAEAyF,EAAA,CACA,CAEA,SAAA0Y,KACA,IAAAkD,EAAAtkB,EAAA7S,KAAA,gBAAA,EACA6I,EAAAsuB,EAAAhuB,MAAA,EAAA4K,EAAA3K,WAAA,CAAA,CAAA,EACAguB,EAAA,GAEA33B,EAAA+J,KAAA2tB,EAAAnuB,SAAA,EAAAquB,GAAA,CAAA,EAAAruB,SAAA,EAAA,SAAAsuB,EAAAC,GACA,IACAC,EADAC,EAAAh4B,EAAA83B,CAAA,EAGAE,EAAA7sB,SAAA,WAAA,GACA4sB,EAAAC,EAAAtuB,MAAA,EAAA,EACAN,GAAA4uB,EAAAruB,WAAA,CAAA,CAAA,EAAAouB,EAAA,EAEAJ,EAAAv0B,KAAA,CAAA40B,EAAAD,EAAA,GAEA3uB,GAAA4uB,EAAAruB,WAAA,CAAA,CAAA,CAEA,CAAA,EAEAguB,EAAAvxB,KAAA,SAAAuW,EAAAC,GAAA,OAAAD,EAAA,GAAAC,EAAA,EAAA,CAAA,EAEA5b,MAAAi3B,OAAAN,EAAA,SAAAG,EAAAI,GACA,IAAAF,EAAAF,EAAA,GACAC,EAAAD,EAAA,GACA1uB,EAAA8uB,EAAA,GACAC,EAAAD,EAAA,GACAE,EAAAC,KAAAC,MAAAlvB,EAAA+uB,CAAA,EASA,OAPAJ,GAAAK,EACAhvB,GAAA2uB,GAEAC,EAAA5tB,IAAA,YAAAguB,CAAA,EACAhvB,GAAAgvB,GAGA,CAAAhvB,EAAA+uB,EAAA,EACA,EAAA,CAAA/uB,EAAAuuB,EAAAv1B,OAAA,CACA,CAEA,SAAAihB,GAAA7X,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EAEA,GAAA+H,CAAAA,EAAAN,SAAA,QAAA,EAmEA,OA9DAM,EAAAhF,SAAA,QAAA,EAEAmE,WAAA1C,KAAAxE,KAAA,CACA4f,KAAA,EACAC,SAAA,CAAA,EACAC,cAAA,CAAA,EACAC,QAAA,GACAC,aAAA,OACAC,cAAA,CAAA,EACAC,aAAAnY,EACAoY,UAAA,CAAAviB,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UACAC,aAAAljB,MAAAC,SAAA,CAAAK,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UAAAlS,EAAAoS,WAAA,EACApS,EAAAoS,YACA7iB,MAAAwiB,gBAAAE,aACAI,WAAA,WACAxZ,WAAAyZ,QAAAtS,EAAAuF,MAAAvF,EAAAwF,GAAA,CACA,EACA4C,IAAA,SAAAzE,IACA3D,EAAA2D,KAEA3D,EAAAuF,OAAAvF,EAAAwF,MACAxF,EAAAuF,QACAvF,EAAAuF,MAAA,IAAAgN,KAAAvS,EAAAuF,MAAAiN,WAAA,CAAA,CAAA,GAGAxS,EAAAwF,MACAxF,EAAAwF,IAAA,IAAA+M,KAAAvS,EAAAwF,IAAAgN,WAAA,EAAA,CAAA,GAGAlP,EAAA5O,SAAA,gBAAA,GAEA4O,EAAArO,YAAA,gBAAA,EAGA+K,IAAAA,EAAAuF,OAAAvF,EAAAwF,OACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAC,SACAhS,EAAAqY,eAAA,CACAC,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAE,aACAjS,EAAA0Y,mBAAA,CACAJ,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAG,WACAlS,EAAA2Y,eAAA,CACAL,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,IAIA3M,WAAAC,MAAA,EACAiR,EAAA,CACA,EACA0I,kBAAA,WACA/Y,EAAAzE,YAAA,QAAA,CACA,CACA,CAAA,EAEAwE,EAAAV,gBAAA,EACA,CAAA,EAlEAF,WAAAC,MAAA,CAmEA,CAEA,SAAA4Z,KACA/S,EAAA,CAAAA,EAEAoK,EAAA,CACA,CAiJA,SAAAkb,EAAAuB,GACA,IAIAhyB,EAcA9B,EAlBA8zB,IAIAhyB,EAAA,CACAmP,OAAA,CACAoS,MAAAxX,EACA+Y,MAAA9Y,EACAqC,aAAAb,CACA,CACA,EAEAtK,EAAAnG,MAAAk3B,uBAAAC,YAEA54B,SAAAuO,oBAAA3G,CAAA,KAIAhD,EAAA5E,SAAAyO,gBAAA7G,CAAA,IAMA5H,SAAAiO,QAAArJ,EAAAvD,IAAAe,OAAAy2B,OAAAnyB,EAAAgyB,CAAA,CAAA,CACA,CAEA,SAAAI,EAAAC,GACA,OAAA9Q,MAAA/a,eAAA6rB,CAAA,EACA53B,MAAA00B,aAAA5N,MAAA8Q,GAAArzB,KAAA,EACAqzB,IAAA53B,MAAA20B,aAAA,EAAAzuB,QAAAC,EAAA,uCAAA,EAAA,IACA,CAEA,SAAA0xB,EAAAC,GACA,OAAAzP,MAAAtc,eAAA+rB,CAAA,EACA93B,MAAA00B,aAAArM,MAAAyP,GAAAvzB,KAAA,EACAuzB,IAAA93B,MAAA20B,aAAA,EAAAzuB,QAAAC,EAAA,uCAAA,EAAA,IACA,CAEA,SAAAwtB,GAAAoE,GACA,IAGA3B,EAHA4B,EAAAC,GAAA,EACAhE,EAAA,GAEA,IAAAmC,KAAA2B,EAAA,CACA,IAAAG,EAAAH,EAAA3B,GAEA+B,EAAA,GAGA,OAFAA,EAAA9qB,GAAA+oB,EAEAjtB,SAAAitB,EAAA,EAAA,GACA,KAAA91B,MAAA21B,sBAAAC,QACAiC,EAAAC,KAAAlyB,QAAAC,EAAA,6BAAA,EACAgyB,EAAAjZ,MAAA,UACA,MACA,KAAA5e,MAAA21B,sBAAAE,QACAgC,EAAAC,KAAAlyB,QAAAC,EAAA,4BAAA,EACAgyB,EAAAjZ,MAAA,OACA,MACA,QACAiZ,EAAAC,KAAAlyB,QAAAC,EAAA,8BAAA,EACAgyB,EAAAjZ,MAAA,SAEA,CAEAiZ,EAAAxxB,KAAA,GAEA,IAAA,IAAArD,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA+0B,EAFAV,EAAAC,EADAI,EAAA10B,GAAApD,GACA,IAGAi4B,EAAAxxB,KAAAvE,KAAA,CACAyW,EAAAwf,EACAtf,EAAAmf,EAAAN,IAAA,EACAU,QAAAV,EACAjP,iBAAAyN,CACA,CAAA,EAIAnC,EAAA7xB,KAAA+1B,CAAA,CACA,CAIA,GAFAlE,EAAA7uB,KAAApF,MAAAu4B,kBAAA,EAEA,CAAAtE,EAAA7yB,OAAA,CAGA,IAFA,IAGAw2B,EACAS,EAJAG,EAAA,GAEAl1B,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA+0B,EAFAV,EAAAC,EADAI,EAAA10B,GAAApD,GACA,IAGAs4B,EAAAp2B,KAAA,CACAyW,EAAAwf,EACAtf,EAAA,EACAuf,QAAAV,CACA,CAAA,EAIA,IAAAt0B,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,GACA2wB,EAAA7xB,KAAA,CACAuE,KAAA6xB,EACAJ,KAAAlyB,QAAAC,EAAA,6BAAA,CACA,CAAA,CAEA,CAEA,IAAA+tB,EAAA8D,EAAAljB,IAAA,SAAA2jB,GAAA,OAAAz4B,MAAA00B,aAAA+D,EAAAl0B,KAAA,CAAA,CAAA,GAEAmtB,EAAA1xB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAA0D,WAAA,CACA/K,QAAAuH,SAAAyD,eAAA,qDAAA,EACAvD,WAAAlvB,QAAAC,EAAA,kCAAA,EACA8tB,OAAAA,EACAoB,gBAAAnB,EACAoB,WAAA,MAAAyC,EACAxC,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,EAAAkrB,yBAAA,EAEAzB,EAAAuB,EAAAG,EAAAC,OAAA3B,OAAAwB,EAAAmD,aAEA3E,IAIAM,EAAAN,EAAAttB,KAAA8uB,EAAAM,kBAEAxB,EAAA+D,UAAAt4B,MAAA20B,aAAA,GAAAJ,EAAA5L,kBAIAqN,EAAA,CACAthB,OAAA,CACAoS,MAAA,CAAAA,MAAAyN,EAAA+D,UACAlC,iBAAA,CAAAjtB,SAAAorB,EAAA5L,iBAAA,EAAA,EACA,CACA,CAAA,CACA,CACA,CAAA,GAEAwJ,OAAA,CACA,CAEA,SAAAsB,GAAAoF,GACA,IAGAzC,EAHA0C,EAAAC,GAAA,EACA9E,EAAA,GAEA,IAAAmC,KAAAyC,EAAA,CACA,IAAAG,EAAAH,EAAAzC,GAEA6C,EAAA,GAGA,OAFAA,EAAA5rB,GAAA+oB,EAEAjtB,SAAAitB,EAAA,EAAA,GACA,KAAA91B,MAAA21B,sBAAAC,QACA+C,EAAAb,KAAAlyB,QAAAC,EAAA,6BAAA,EACA8yB,EAAA/Z,MAAA,UACA,MACA,KAAA5e,MAAA21B,sBAAAE,QACA8C,EAAAb,KAAAlyB,QAAAC,EAAA,4BAAA,EACA8yB,EAAA/Z,MAAA,OACA,MACA,QACA+Z,EAAAb,KAAAlyB,QAAAC,EAAA,8BAAA,EACA8yB,EAAA/Z,MAAA,SAEA,CAEA+Z,EAAAtyB,KAAA,GAEA,IAAA,IAAArD,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA41B,EAFArB,EAAAC,EADAgB,EAAAx1B,GAAApD,GACA,IAGA+4B,EAAAtyB,KAAAvE,KAAA,CACAyW,EAAAqgB,EACAngB,EAAAigB,EAAAlB,IAAA,EACAqB,QAAArB,EACAnP,iBAAAyN,CACA,CAAA,EAIAnC,EAAA7xB,KAAA62B,CAAA,CACA,CAIA,GAFAhF,EAAA7uB,KAAApF,MAAAu4B,kBAAA,EAEA,CAAAtE,EAAA7yB,OAAA,CAGA,IAFA,IAGA02B,EACAoB,EAJAV,EAAA,GAEAl1B,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA41B,EAFArB,EAAAC,EADAgB,EAAAx1B,GAAApD,GACA,IAGAs4B,EAAAp2B,KAAA,CACAyW,EAAAqgB,EACAngB,EAAA,EACAogB,QAAArB,CACA,CAAA,EAIA,IAAAx0B,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,GACA2wB,EAAA7xB,KAAA,CACAuE,KAAA6xB,EACAJ,KAAAlyB,QAAAC,EAAA,6BAAA,CACA,CAAA,CAEA,CAEA,IAAA+tB,EAAA4E,EAAAhkB,IAAA,SAAA3O,GAAA,OAAAnG,MAAA00B,aAAAvuB,EAAA5B,KAAA,CAAA,CAAA,GAEAotB,EAAA3xB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAA0D,WAAA,CACA/K,QAAAuH,SAAAyD,eAAA,sDAAA,EACAvD,WAAAlvB,QAAAC,EAAA,kCAAA,EACA8tB,OAAAA,EACAoB,gBAAAnB,EACAoB,WAAA,MAAAuD,EACAtD,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,EAAAkrB,yBAAA,EAEAzB,EAAAuB,EAAAG,EAAAC,OAAA3B,OAAAwB,EAAAmD,aAEA3E,IAIAM,EAAAN,EAAAttB,KAAA8uB,EAAAM,kBAEAxB,EAAA4E,UAAAn5B,MAAA20B,aAAA,GAAAJ,EAAA5L,kBAIAqN,EAAA,CACAthB,OAAA,CACA2T,MAAA,CAAAA,MAAAkM,EAAA4E,UACA/C,iBAAA,CAAAjtB,SAAAorB,EAAA5L,iBAAA,EAAA,EACA,CACA,CAAA,CACA,CACA,CAAA,GAEAwJ,OAAA,CACA,CAEA,SAAA4B,GAAAqF,GACA,IAGAC,EAHArB,EAAAC,GAAA,EACAhE,EAAA,GAEA,IAAAoF,KAAAD,EAAA,CACA,IAAAhL,EAAAwB,WAAAyJ,IAAA,GACAC,EAAAF,EAAAC,GAEAlB,EAAA,GACAA,EAAAC,KAAAiB,IAAAr5B,MAAA20B,aAAA,EACAzuB,QAAAC,EAAA,6BAAA,EACAioB,EAAA7pB,OAAA2B,QAAAC,EAAA,cAAA,EAEAgyB,EAAAjZ,MAAAkP,EAAAC,OAAA,UACA8J,EAAAxxB,KAAA,GAEA,IAAA,IAAArD,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA+0B,EAFAV,EAAAC,EADAI,EAAA10B,GAAApD,GACA,IAGAi4B,EAAAxxB,KAAAvE,KAAA,CACAyW,EAAAwf,EACAtf,EAAAugB,EAAA1B,IAAA,EACAU,QAAAV,EACApD,UAAA6E,CACA,CAAA,EAIApF,EAAA7xB,KAAA+1B,CAAA,CACA,CAIA,GAFAlE,EAAA7uB,KAAApF,MAAAu4B,kBAAA,EAEA,CAAAtE,EAAA7yB,OAAA,CAGA,IAFA,IAGAw2B,EACAS,EAJAG,EAAA,GAEAl1B,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA+0B,EAFAV,EAAAC,EADAI,EAAA10B,GAAApD,GACA,IAGAs4B,EAAAp2B,KAAA,CACAyW,EAAAwf,EACAtf,EAAAugB,EAAA1B,IAAA,EACAU,QAAAV,CACA,CAAA,EAIA,IAAAt0B,EAAA,EAAA0E,EAAAgwB,EAAA52B,OAAAkC,EAAA0E,EAAA1E,CAAA,GACA2wB,EAAA7xB,KAAA,CACAuE,KAAA6xB,EACAJ,KAAAlyB,QAAAC,EAAA,6BAAA,CACA,CAAA,CAEA,CAEA,IAAA+tB,EAAA8D,EAAAljB,IAAA,SAAA2jB,GAAA,OAAAz4B,MAAA00B,aAAA+D,EAAAl0B,KAAA,CAAA,CAAA,GAEAitB,EAAAxxB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAA0D,WAAA,CACA/K,QAAAuH,SAAAyD,eAAA,+BAAA,EACAvD,WAAAlvB,QAAAC,EAAA,gCAAA,EACA8tB,OAAAA,EACAoB,gBAAAnB,EACAoB,WAAA,MAAA8D,EACA7D,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,EAAAkrB,yBAAA,EAEAzB,EAAAuB,EAAAG,EAAAC,OAAA3B,OAAAwB,EAAAmD,aAEA3E,IAIAM,EAAAN,EAAAttB,KAAA8uB,EAAAM,kBAEAxB,EAAA+D,UAAAt4B,MAAA20B,aAAA,GAAAJ,EAAAC,WAIAwB,EAAA,CACAthB,OAAA,CACA0C,OAAA,CAAAmd,EAAAC,WACA1N,MAAA,CAAAA,MAAAyN,EAAA+D,SACA,CACA,CAAA,CACA,CACA,CAAA,GAEAnG,OAAA,CACA,CAEA,SAAA0B,GAAA0F,GACA,IAGAF,EAHAP,EAAAC,GAAA,EACA9E,EAAA,GAEA,IAAAoF,KAAAE,EAAA,CACA,IAAAnL,EAAAwB,WAAAyJ,IAAA,GACAG,EAAAD,EAAAF,GAEAlB,EAAA,GACAA,EAAAC,KAAAiB,IAAAr5B,MAAA20B,aAAA,EACAzuB,QAAAC,EAAA,6BAAA,EACAioB,EAAA7pB,OAAA2B,QAAAC,EAAA,cAAA,EAEAgyB,EAAAjZ,MAAAkP,EAAAC,OAAA,UACA8J,EAAAxxB,KAAA,GAEA,IAAA,IAAArD,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA41B,EAFArB,EAAAC,EADAgB,EAAAx1B,GAAApD,GACA,IAGAi4B,EAAAxxB,KAAAvE,KAAA,CACAyW,EAAAqgB,EACAngB,EAAAygB,EAAA1B,IAAA,EACAqB,QAAArB,EACAtD,UAAA6E,CACA,CAAA,EAIApF,EAAA7xB,KAAA+1B,CAAA,CACA,CAIA,GAFAlE,EAAA7uB,KAAApF,MAAAu4B,kBAAA,EAEA,CAAAtE,EAAA7yB,OAAA,CAGA,IAFA,IAGA02B,EACAoB,EAJAV,EAAA,GAEAl1B,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,IAIA41B,EAFArB,EAAAC,EADAgB,EAAAx1B,GAAApD,GACA,IAGAi4B,EAAAxxB,KAAAvE,KAAA,CACAyW,EAAAqgB,EACAngB,EAAA,EACAogB,QAAArB,CACA,CAAA,EAIA,IAAAx0B,EAAA,EAAA0E,EAAA8wB,EAAA13B,OAAAkC,EAAA0E,EAAA1E,CAAA,GACA2wB,EAAA7xB,KAAA,CACAuE,KAAA6xB,EACAJ,KAAAlyB,QAAAC,EAAA,6BAAA,CACA,CAAA,CAEA,CAEA,IAAA+tB,EAAA4E,EAAAhkB,IAAA,SAAA3O,GAAA,OAAAnG,MAAA00B,aAAAvuB,EAAA5B,KAAA,CAAA,CAAA,GAEAktB,EAAAzxB,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAA0D,WAAA,CACA/K,QAAAuH,SAAAyD,eAAA,gCAAA,EACAvD,WAAAlvB,QAAAC,EAAA,gCAAA,EACA8tB,OAAAA,EACAoB,gBAAAnB,EACAoB,WAAA,MAAAiE,EACAhE,iBAAA,SAAA/qB,EAAAgrB,EAAAC,GACAjrB,EAAAkrB,yBAAA,EAEAzB,EAAAuB,EAAAG,EAAAC,OAAA3B,OAAAwB,EAAAmD,aAEA3E,IAIAM,EAAAN,EAAAttB,KAAA8uB,EAAAM,kBAEAxB,EAAA4E,UAAAn5B,MAAA20B,aAAA,GAAAJ,EAAAC,WAIAwB,EAAA,CACAthB,OAAA,CACA2T,MAAA,CAAAA,MAAAkM,EAAA4E,UACA/hB,OAAA,CAAAmd,EAAAC,UACA,CACA,CAAA,CACA,CACA,CAAA,GAEArC,OAAA,CACA,CAEA,SAAA8F,KACA,IAMAwB,EANA,OAAAnqB,EAAAlO,OACAkO,EACAwF,IAAA,SAAA6B,GAAA,MAAA,CAAAzW,IAAAyW,EAAAzW,IAAAqE,MAAAoS,EAAAoQ,QAAA,CAAA,CAAA,EACA3hB,KAAApF,MAAA6wB,WAAA,IAGA4I,EAAA55B,EACAiV,IAAA,SAAA6B,GAAA,MAAA,CAAAzW,IAAAyW,EAAAzW,IAAAqE,MAAAoS,EAAAoQ,QAAA,CAAA,CAAA,EACA3hB,KAAApF,MAAA6wB,WAAA,GAEAzuB,KAAA,CAAAlC,IAAAF,MAAA20B,aAAA,EAAApwB,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,CAAA,EAEAszB,EACA,CAEA,SAAAV,KACA,IAMAW,EANA,OAAAnqB,EAAAnO,OACAmO,EACAuF,IAAA,SAAA8B,GAAA,MAAA,CAAA1W,IAAA0W,EAAA1W,IAAAqE,MAAAqS,EAAArS,KAAA,CAAA,CAAA,EACAa,KAAApF,MAAA6wB,WAAA,IAGA6I,EAAAlqB,EACAsF,IAAA,SAAA8B,GAAA,MAAA,CAAA1W,IAAA0W,EAAA1W,IAAAqE,MAAAqS,EAAArS,KAAA,CAAA,CAAA,EACAa,KAAApF,MAAA6wB,WAAA,GAEAzuB,KAAA,CAAAlC,IAAAF,MAAA20B,aAAA,EAAApwB,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,CAAA,EAEAuzB,EACA,CAQA,SAAAtH,KACA,IAAA3rB,EAAAnG,MAAAk3B,uBAAAmC,2BAEA96B,SAAAuO,oBAAA3G,CAAA,IACAhD,EAAA5E,SAAAyO,gBAAA7G,CAAA,IAMA5H,SAAAiO,QACArJ,EAAAvD,IACA,CACA05B,MAAA,oBACAllB,OAAA,CACAoS,MAAAxX,EACA+Y,MAAA9Y,EACAqC,aAAAb,CACA,CACA,CACA,CAEA,CAEA,SAAAshB,KACA,IAAA5rB,EAAAnG,MAAAk3B,uBAAAmC,2BAEA96B,SAAAuO,oBAAA3G,CAAA,IACAhD,EAAA5E,SAAAyO,gBAAA7G,CAAA,IAMA5H,SAAAiO,QACArJ,EAAAvD,IACA,CACA05B,MAAA,wBACA,CACA,CAEA,CAEA,SAAAtH,KACA,IAAA7rB,EAAAnG,MAAAk3B,uBAAAC,YAEA54B,SAAAuO,oBAAA3G,CAAA,IACAhD,EAAA5E,SAAAyO,gBAAA7G,CAAA,IAMA5H,SAAAiO,QACArJ,EAAAvD,IACA,CACAwU,OAAA,CACAoS,MAAAxX,EACA+Y,MAAA9Y,EACAqC,aAAAb,CACA,CACA,CACA,CAEA,CAEA,SAAAwhB,KACA,IAAA9nB,EAAAzL,EAAA0D,IAAA,EAIA4zB,GAFA7rB,EAAAhF,SAAA,MAAA,EAEAgF,EAAA9D,KAAA,OAAA,GAEA,OAAA2vB,GACA,IAAA,cACAt3B,EAAA,gCAAA,EAAAqP,OAAA,EAAArI,YAAA,MAAA,EACA+tB,GAAA1C,EAAA2C,iBAAA,EACA,MACA,IAAA,cACAh1B,EAAA,iCAAA,EAAAqP,OAAA,EAAArI,YAAA,MAAA,EACA6tB,GAAAxC,EAAAyC,iBAAA,EACA,MACA,IAAA,gBACA90B,EAAA,sDAAA,EAAAqP,OAAA,EAAArI,YAAA,MAAA,EACA2tB,GAAAtC,EAAAuC,iCAAA,EACA,MACA,IAAA,gBACA50B,EAAA,uDAAA,EAAAqP,OAAA,EAAArI,YAAA,MAAA,EACAytB,GAAApC,EAAAqC,iCAAA,CAEA,CAEA1zB,MAAAgL,yBAAAmoB,EAAAmD,CAAA,EAAA,CAAA,CAAA,CACA,CAEA,SAAA9D,KACA,IAAAqH,EAAA76B,EAAA0D,IAAA,EAAA2L,OAAA,EACAioB,EAAAuD,EAAAlzB,KAAA,OAAA,EAOA,OALAkzB,EAAAp0B,SAAA,MAAA,EAEA2M,EAAA7S,KAAA,wDAAAuG,OAAAwwB,CAAA,CAAA,EACAtwB,YAAA,MAAA,EAEAswB,GACA,IAAA,cACA9E,IACAA,EAAAsI,QAAA,EACAtI,EAAA,MAEA,MACA,IAAA,cACAC,IACAA,EAAAqI,QAAA,EACArI,EAAA,MAEA,MACA,IAAA,gBACAC,IACAA,EAAAoI,QAAA,EACApI,EAAA,MAEA,MACA,IAAA,gBACAC,IACAA,EAAAmI,QAAA,EACAnI,EAAA,KAGA,CAEA3xB,MAAAgL,yBAAAmoB,EAAAmD,CAAA,EAAA,CAAA,CAAA,CACA,CAEA,SAAAnD,EAAAmD,GACA,OAAAA,EAIA,2BAAAA,EAHA,IAIA,CAEA,SAAA1E,IACAN,IACAA,EAAAwI,QAAA,EACAxI,EAAA,MAGAC,IACAA,EAAAuI,QAAA,EACAvI,EAAA,MAGAC,IACAA,EAAAsI,QAAA,EACAtI,EAAA,MAGAC,IACAA,EAAAqI,QAAA,EACArI,EAAA,MAGAC,IACAA,EAAAoI,QAAA,EACApI,EAAA,MAGAC,IACAA,EAAAmI,QAAA,EACAnI,EAAA,KAEA,CAOA1qB,EAAAC,KAAA4T,EACA7T,EAAA+F,OA1LA,WACA4kB,EAAA,EACAO,EAAA,EACAqB,GAAA,CACA,EAuLAvsB,EAAA0H,aAAAsO,EACAhW,EAAA8yB,oBAAA5G,EACAlsB,EAAAU,QATA,WACAiqB,EAAA,EACAxf,EAAAiV,MAAA,CACA,EAQA7oB,EAAAyI,UAAAA,CACA,EAAA2H,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,EC95CA,SAAAL,GACA,IAEAw7B,EAAAC,EACAC,EAAAC,EACAC,EAAA1pB,EACA2pB,EACA1pB,EACA9Q,EACA+Q,EAAAC,EAEAypB,EAEAlrB,EA+DAoB,EA3EAtN,EAAA,GAcAgP,EAAAlT,EAAA,MAAA,EACAmT,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,GAAA1T,EAAA,sBAAA,EACA2T,GAAA3T,EAAA,iBAAA,EACA4T,GAAA5T,EAAA,mBAAA,EACA6T,GAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,GAAA9T,EAAA,4BAAA,EACAu7B,EAAA9nB,EAAAlT,KAAA,aAAA,EACAwT,EAAAN,EAAAlT,KAAA,oBAAA,EACAyT,EAAAP,EAAAlT,KAAA,aAAA,EACA2T,EAAAH,EAAAxT,KAAA,QAAA,EACAi7B,EAAAx7B,EAAA,+BAAA,EACAuU,GAAAvU,EAAA,oCAAA,EACAkV,GAAAlV,EAAA,oCAAA,EACAmV,GAAAnV,EAAA,0CAAA,EACAiV,GAAAjV,EAAA,wCAAA,EACAsU,EAAAtU,EAAA,sCAAA,EACAyU,EAAAzU,EAAA,uCAAA,EACA0U,EAAA1U,EAAA,oCAAA,EACA2U,EAAA3U,EAAA,oCAAA,EACA4U,EAAA5U,EAAA,uCAAA,EACA6U,EAAA7U,EAAA,6CAAA,EACA8U,EAAA9U,EAAA,uCAAA,EACA+U,EAAA/U,EAAA,8CAAA,EACAgV,EAAAhV,EAAA,sCAAA,EACAqV,EAAArV,EAAA,sCAAA,EACAoV,EAAApV,EAAA,+BAAA,EACAuV,GAAAvV,EAAA,uDAAA,EACAsV,GAAAtV,EAAA,wDAAA,EACAy7B,EAAAz7B,EAAA,4CAAA,EACAmU,EAAAnU,EAAA,wCAAA,EACAgS,EAAA,CACAC,WAAA,CAAA,EACAS,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAF,eAAA,CAAA,EACAipB,eAAA,CAAA,EACAvpB,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAI,aAAA,CAAA,EACAE,yBAAA,CAAA,CACA,EAEA6oB,GACA,EADAA,GAEA,EAFAA,GAGA,EAKAnP,GAIAA,EAAAtC,UAAA0R,aAAA,SAAA/6B,GAgBA,OAfAA,EAAAb,EAAA8V,IAAAjV,GAAA,GAAA,SAAAwV,GACA,OAAAyR,MAAAzR,EACA,CAAA,GAEAjQ,KAAA,SAAAuW,EAAAC,GACAkO,EAAAnO,EAAApX,MAAA0F,YAAA,EACA8f,EAAAnO,EAAArX,MAAA0F,YAAA,EAEA,OAAA6f,IAAAC,EACA,EAGAD,EAAAC,EAAA,CAAA,EAAA,CACA,CAAA,EAEAlqB,CACA,EAEA2rB,EAAAtC,UAAA2R,aAAA,SAAArrB,GAgBA,OAfAA,EAAAxQ,EAAA8V,IAAAtF,GAAA,GAAA,SAAA6F,GACA,OAAAgT,MAAAhT,EACA,CAAA,GAEAjQ,KAAA,SAAAuW,EAAAC,GACA,IAAAkO,EAAAnO,EAAApX,MAAA0F,YAAA,EACA8f,EAAApO,EAAApX,MAAA0F,YAAA,EAEA,OAAA6f,IAAAC,EACA,EAGAD,EAAAC,EAAA,CAAA,EAAA,CACA,CAAA,EAEAva,CACA,EAEAgc,EAAAtC,UAAA4R,kBAAA,SAAAC,GACA,IAAAlL,EAAA,GAsBA,OApBAkL,IACAlL,EAAA7wB,EAAAmpB,OAAA,GAAA4S,EAAAjU,KAAA,GAEAiU,EAAA1S,OAAA,IAAAzmB,QAAA,SAAAk2B,GACAlhB,EAAAyR,MAAAyP,GAEAlhB,IAIAA,EAAAkQ,OAAA,IAAAllB,QAAA,SAAA+U,GACAkZ,EAAA7vB,MAAAqmB,UAAAwJ,EAAAlZ,EAAAzW,GAAA,CACA,CAAA,CACA,CAAA,GAEA66B,EAAAC,cAAA,IAAAp5B,QAAA,SAAAg2B,GACA/H,EAAA7vB,MAAAoZ,OAAAyW,EAAA+H,CAAA,CACA,CAAA,GAGA/H,CACA,EAEArE,EAAAtC,UAAA+R,gBAAA,SAAAC,GAgBA,OAfAA,EAAAl8B,EAAA8V,IAAAomB,GAAA,GAAA,SAAAC,GAQA,OAPAA,EAAAnR,kBAAA,IAAA1G,KAAA6X,EAAAnR,iBAAA,EAEAlD,MAAA/a,eAAAovB,EAAAC,UAAA,IACAD,EAAAlN,QAAAjuB,MAAAq7B,MAAAvU,MAAAqU,EAAAC,WAAA,EACAD,EAAAlN,QAAA9B,MAAA3kB,MAAA2zB,EAAAlN,QAAAqN,WAGAH,CACA,CAAA,GAEA/1B,KAAA,SAAAuW,EAAAC,GACA,OAAAD,EAAAqO,kBAAAC,QAAA,EAAArO,EAAAoO,kBAAAC,QAAA,CACA,CAAA,EAEAiR,CACA,EAEA1P,EAAAtD,MAAA,CACAqT,2BAAA,EACAC,sBAAA,CACA,EAEAhQ,GA3FA,SAAAA,OAsHAiQ,EAAAvS,UAAA,IAAAsC,GAEAkQ,YAAAD,GAEAvS,UAAAyS,QAAA,WACA,OAAAj5B,KAAAiK,MACA,KAAArM,MAAAgrB,UAAAC,KACA,MAAA,kBACA,KAAAjrB,MAAAgrB,UAAAE,YACA,MAAA,iCACA,KAAAlrB,MAAAgrB,UAAAI,WACA,MAAA,oBACA,KAAAprB,MAAAgrB,UAAAK,cACA,KAAArrB,MAAAgrB,UAAAM,KACA,KAAAtrB,MAAAgrB,UAAAO,OACA,MAAA,iBACA,KAAAvrB,MAAAgrB,UAAAQ,aACA,MAAA,sBACA,QACA,MAAA,gBACA,CACA,EAEA2P,EAAAvS,UAAA0S,gBAAA,WACA,OAAAl5B,KAAAiK,MACA,KAAArM,MAAAgrB,UAAAC,KACA,OAAArlB,QAAAC,EAAA,8BAAA,EACA,KAAA7F,MAAAgrB,UAAAE,YACA,OAAAtlB,QAAAC,EAAA,qCAAA,EACA,KAAA7F,MAAAgrB,UAAAI,WACA,OAAAxlB,QAAAC,EAAA,oCAAA,EACA,KAAA7F,MAAAgrB,UAAAK,cACA,OAAAzlB,QAAAC,EAAA,uCAAA,EACA,KAAA7F,MAAAgrB,UAAAO,OACA,OAAA3lB,QAAAC,EAAA,gCAAA,EACA,QACA,OAAAD,QAAAC,EAAA,8BAAA,CACA,CACA,EAEAs1B,EAAAvS,UAAA2S,eAAA,WACA,OAAAh9B,SAAAqP,2BAAAxL,KAAA+V,kBAAA,CACA,EAEAgjB,EAAAvS,UAAA4S,SAAA,WAIA,IAHA,IAAAC,EAAAr5B,KAAA8E,OAAA,GAGAlE,EAAA,EAAA0E,EAAA+zB,EAAA36B,OAAAkC,EAAA0E,EAAA1E,CAAA,GACA,GAAAy4B,EAAAz4B,GAAA04B,UAAA,WAAAD,EAAAz4B,GAAA04B,SAAAC,OAAA,EAAA,CAAA,EACA,OAAAF,EAAAz4B,GAIA,OAAA,IACA,EA/EA,IAAAm4B,EAiFAA,EAhFA,SAAAA,EAAAljB,GACA7V,KAAAxC,IAAAqY,EAAArY,IACAwC,KAAA3C,GAAAwY,EAAAxY,GACA2C,KAAAiW,SAAAJ,EAAAI,SACAjW,KAAAiK,KAAA4L,EAAA5L,KACAjK,KAAA6B,MAAAgU,EAAAhU,MACA7B,KAAAmjB,sBAAA,IAAAvC,KAAA/K,EAAAsN,qBAAA,EACAnjB,KAAAwnB,kBAAA3R,EAAA2R,kBAAA,IAAA5G,KAAA/K,EAAA2R,iBAAA,EAAA,KACAxnB,KAAAw5B,qBAAA3jB,EAAA2jB,qBAAA,IAAA5Y,KAAA/K,EAAA2jB,oBAAA,EAAA,KACAx5B,KAAAijB,OAAAmB,MAAAvO,EAAA4jB,WACAz5B,KAAAynB,MAAAyF,WAAArX,EAAA6jB,UACA15B,KAAA+V,mBAAAF,EAAAE,mBACA/V,KAAA25B,iBAAAh2B,YAAAC,uBAAAC,KAAAuF,QAAApJ,KAAA+V,oBACA/V,KAAA8E,MAAA+Q,EAAA/Q,MACA9E,KAAA4rB,0BAAA/V,EAAA+V,0BACA5rB,KAAAqiB,SAAAriB,KAAAu4B,gBAAA1iB,EAAAwM,QAAA,EACAriB,KAAA0jB,WAAA1jB,KAAAo4B,kBAAAviB,EAAA+jB,sBAAA,EAEA/jB,EAAA8T,iCACA3pB,KAAA2pB,+BAAA9T,EAAA8T,+BAEA,GA0FAmP,GAAAtS,UAAA,IAAAsC,GAEAkQ,YAAAF,IAEAtS,UAAA2S,eAAA,WACA,OAAAh9B,SAAAqP,2BAAAxL,KAAA65B,QAAAr8B,IAAAo6B,CAAA,CACA,EAEAkB,GAAAtS,UAAAsT,oBAAA,WACA,GAAA95B,CAAAA,KAAA25B,iBAAA,CAIA,GAAA,CAAA35B,KAAA65B,QACA,OAAA,KAKA,IAFA,IAAAluB,EAAA3L,KAAA65B,QAEAluB,EAAAisB,EAAAjsB,EAAAouB,YACA,GAAApuB,EAAA1B,OAAArM,MAAAsM,YAAApG,MAAA6H,EAAA1B,OAAArM,MAAAsM,YAAAC,SAAA,CACAnK,KAAA25B,iBAAAhuB,EACA,KACA,CAZA,CAeA,OAAA3L,KAAA25B,gBACA,EAvDA,IAAAb,GAyDAA,GAxDA,SAAAA,GAAAkB,GACAh6B,KAAAxC,IAAAw8B,EAAAx8B,IACAwC,KAAA3C,GAAA28B,EAAA38B,GACA2C,KAAAiW,SAAA+jB,EAAA/jB,SACAjW,KAAAiK,KAAA+vB,EAAA/vB,KACAjK,KAAAmjB,sBAAA,IAAAvC,KAAAoZ,EAAA7W,qBAAA,EACAnjB,KAAAijB,OAAAmB,MAAA4V,EAAAP,WACAz5B,KAAAi6B,MAAAD,EAAAC,MACAj6B,KAAAk6B,SAAAhN,WAAA8M,EAAAG,aACAn6B,KAAA65B,QAAAG,EAAAH,QACA75B,KAAA8E,MAAAk1B,EAAAI,gBACAp6B,KAAAqiB,SAAAriB,KAAAu4B,gBAAAyB,EAAA3X,QAAA,EACAriB,KAAAq6B,mBAAAL,EAAAK,oBAAA,CAAA,EACAr6B,KAAAs6B,YAAAN,EAAAM,aAAA,CAAA,EACAt6B,KAAAu6B,qBAAAP,EAAAO,sBAAA,CAAA,EAEAP,EAAAQ,sBACAx6B,KAAAw6B,oBAAAl9B,MAAAwE,WAAAk4B,EAAAQ,mBAAA,GAGAR,EAAAS,iBACAz6B,KAAAy6B,eAAAn9B,MAAAwE,WAAAk4B,EAAAS,cAAA,GAGAn9B,MAAAo9B,OAAAC,WAAA36B,IAAA,CACA,CAwCA0kB,EAAA8B,UAAAjM,aAAA,WACA3J,EAAAtN,YAAA,QAAA,EAEAgL,EAAA,CACAC,WAAA,CAAA,EACAS,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAF,eAAA,CAAA,EACAN,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAI,aAAA,CAAA,EACAE,yBAAA,CAAA,EACAwrB,WAAA,CAAA,CACA,EAEA56B,KAAA66B,OAAA,CACAzV,YAAA9mB,cAAAd,IACA8nB,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACAqE,yBAAA,CAAA,CACA,CACA,EAEAsV,EAAA8B,UAAA1U,eAAA,WACA,IAAAC,EAEAC,EAAA,IAAAA,KAAA1D,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,CACA,EAEAohB,EAAA8B,UAAAsU,gBAAA,SAAAnoB,GACA,OAAArV,MAAA8E,SAAApC,KAAAQ,aAAAmS,EAAA,KAAA,CACA,EAEA+R,EAAA8B,UAAAuU,wBAAA,WACA,OAAAz9B,MAAAC,SAAAyC,KAAAQ,aAAA,CAAA,EAAA,YAAA,CACA,EAEAkkB,EAAA8B,UAAAwU,6BAAA,WACA,OAAA19B,MAAAC,SAAAyC,KAAAQ,aAAA,SAAAy6B,GACA,OAAAA,EAAAC,YAAAD,aAAAlC,CACA,CAAA,CACA,EAEArU,EAAA8B,UAAA2U,wBAAA,WACA,OAAA7+B,EAAA8+B,KAAAp7B,KAAAQ,aAAA,SAAAy6B,GACA,OAAAA,EAAAC,UACA,CAAA,CACA,EAEAxW,EAAA8B,UAAA6U,iBAAA,SAAAvzB,GACA,IACAwzB,EAAA,aADAh/B,EAAAwL,EAAA6N,aAAA,EACArK,KAAA,UAAA,EACAyG,EAAA,CAAAgmB,EAAAtwB,SAAA,QAAA,EAeA,OAbAswB,EAAAz0B,YAAA,QAAA,EACA4D,WAAAC,MAAA,EAEAm0B,IACAvpB,GACAgmB,EAAAh1B,SAAA,QAAA,EAGAyM,EAAA7H,IAAA,qBAAArL,EAAAi/B,MAAAv7B,KAAAw7B,eAAAx7B,IAAA,CAAA,EACAwP,EAAAisB,IAAA,qBAAAn/B,EAAAi/B,MAAAv7B,KAAAw7B,eAAAx7B,IAAA,CAAA,GAGA8H,EAAAV,gBAAA,EACA,CAAA,CACA,EAEAsd,EAAA8B,UAAAgV,eAAA,WACAzD,EAAAz0B,YAAA,QAAA,CACA,EAEAohB,EAAA8B,UAAAkV,eAAA,SAAA5zB,GACA,IA2BA6zB,EA3BAC,EAAAn1B,SAAAnK,EAAAwL,EAAA6N,aAAA,EAAA1R,KAAA,WAAA,EAAA,EAAA,EACA43B,EAAA77B,KAAAm7B,wBAAA,EAGAU,EAAAv+B,MAAAq7B,MAAAkD,CAAA,EACAA,EAAAv/B,EAAA8V,IAAAypB,EAAA,SAAAZ,GAcA,OAbAA,EAAAxB,UAAAwB,EAAAhY,OAAAgY,EAAAhY,OAAAzlB,IAAA,KACAy9B,EAAAa,WAAAb,EAAApB,QAAAoB,EAAApB,QAAAr8B,IAAAy9B,EAAAa,YAAAb,EAAAllB,mBACAklB,EAAApB,SAAAjC,GAAAA,EAAAvuB,eAAA4xB,EAAAa,UAAA,EACAlE,EACAj0B,YAAAC,uBAAAC,KAAAuF,SADA6xB,EAAAa,YAEAb,EAAAc,UAAAd,EAAA9X,sBACA8X,EAAAd,YAAAc,EAAAf,SAAAe,EAAAf,SAAA18B,IAAA,KACAy9B,EAAAvB,SAAAuB,EAAAxT,MAAAwT,EAAAxT,MAAAjqB,IAAA,KAEAy9B,aAAAlC,IACAkC,EAAAhxB,KAAA,GAGAgxB,CACA,CAAA,EAEAW,IAAA3D,GACAjW,YAAAga,aAAAH,EAAAv/B,EAAAi/B,MAAAv7B,KAAAi8B,OAAAj8B,IAAA,CAAA,EACA47B,IAAA3D,GACAjW,YAAAka,qBAAAL,EAAAv/B,EAAAi/B,MAAAv7B,KAAAi8B,OAAAj8B,IAAA,CAAA,EACA47B,IAAA3D,KACA0D,EAAA37B,MACAm8B,EAAAN,EACA7pB,OAAA,SAAAipB,GACA,OAAAA,aAAAlC,CACA,CAAA,EACA3mB,IAAA,SAAA6oB,GACA,OAAAA,EAAAz9B,GACA,CAAA,GAEAkB,UAIApB,MAAA6a,QAAAC,KAAA,EACA9a,MAAA+a,KAAAgB,KAAA,eAAA8iB,CAAA,EACAn+B,KAAA,SAAAoO,IACAA,GAAA,IAAAlN,QAAA5B,MAAAuY,MAAAsR,qBAAA,EAEA7pB,MAAA6a,QAAAK,KAAA,EACAyB,aAAAzV,KAAA4H,EAAA,SAAA8N,GACAA,GAIAyhB,EAAAM,OAAA,CACA,CAAA,CACA,EAAA,SAAA1jB,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EAEA,EAEAmM,EAAA8B,UAAA/L,eAAA,WACAza,KAAAua,aAAA,EACAva,KAAAi8B,OAAA,CACA,EAEAvX,EAAA8B,UAAA4V,iBAAA,WACAp8B,KAAA8R,eAAA,CACA,EAEA4S,EAAA8B,UAAA9L,iBAAA,WACA,IAAA2hB,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,wCAAA,EACAkX,QAAA,SAAAS,GACAihB,EAAAxB,OAAArV,MAAApK,EACAihB,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAArV,MACA1K,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAkI,EAAA7J,CAAA,CACA,EAEA6hB,EAAA8B,UAAA5H,iBAAA,WACA,IAAAyd,EAAAr8B,KAEA1C,MAAAsgB,eAAAiB,6BAAA,CACAC,cAAAud,EAAAxB,OAAA9U,MACAhI,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,wCAAA,EACAsb,QAAA,CACAC,aAAAxb,QAAAC,EAAA,+CAAA,EACAwb,sBAAAzb,QAAAC,EAAA,wDAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAA,SAAAY,GACAud,EAAAxB,OAAA9U,MAAAjH,EACAud,EAAAJ,OAAA,CACA,CACA,CAAA,CACA,EAEAvX,EAAA8B,UAAApH,uBAAA,WACA,IAAAid,EAAAr8B,KAEA1C,MAAAsgB,eAAAyB,mCAAA,CACAC,oBAAA+c,EAAAxB,OAAAn6B,WACAqd,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,8CAAA,EACAsb,QAAA,CACAQ,mBAAA/b,QAAAC,EAAA,2DAAA,EACA+b,4BAAAhc,QAAAC,EAAA,oEAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAA,SAAAoB,GACA+c,EAAAxB,OAAAn6B,WAAA4e,EACA+c,EAAAJ,OAAA,CACA,CACA,CAAA,CACA,EAEAvX,EAAA8B,UAAAhI,qBAAA,WACA,IAAA6d,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,4CAAA,EACAkX,QAAA,SAAAgE,GACA0d,EAAAxB,OAAAnc,WAAAC,EACA0d,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAnc,WACA5D,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAka,WAAA7b,CAAA,CACA,EAEA6hB,EAAA8B,UAAA3K,oBAAA,WACA,IAAAwgB,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,2CAAA,EACAkX,QAAA,SAAAwB,GACAkgB,EAAAxB,OAAAzU,SAAAjK,EACAkgB,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAzU,SACAtL,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,EAEA6hB,EAAA8B,UAAApK,iBAAA,WACA,IAAAigB,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,wCAAA,EACAkX,QAAA,SAAAwB,GACAkgB,EAAAxB,OAAAzW,MAAAjI,EACAkgB,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAzW,MACAtJ,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,EAEA6hB,EAAA8B,UAAAlK,iBAAA,WACA,IAAA+f,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,wCAAA,EACAkX,QAAA,SAAAkC,GACAwf,EAAAxB,OAAAlV,MAAA9I,EACAwf,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAlV,MACA7K,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CACAC,QAAA,CAAA,EACAuB,SAAAxO,EAAA,KAAA,SAAAyO,GACA,MAAA,CAAA,EAAAvO,GAAAuO,GAAAA,EAAAf,UAIAzH,EAAAwI,EAAAf,OAEA,CAAA,IAAAxN,EAAAwO,QAAAzI,EAAA1W,GAAA,EACA,CACA,EACAwU,OAAA/D,EAAA,KAAA,SAAAiG,GACA,MAAA,EAAAhG,CAAAA,GAAAgG,CAAAA,IAIA,CAAA,EAAAhG,EAAAyO,QAAAzI,EAAA1W,GAAA,CACA,CACA,CACA,EAEA2d,WAAA3W,KAAAoY,SAAA/Z,CAAA,CACA,EAEA6hB,EAAA8B,UAAA1J,oBAAA,WACA,IAAAuf,EAAAr8B,KAGAgN,EAAAzO,OACA+9B,KAAAjoB,QAAA,EACAjC,IAAA,SAAAO,GACA,OAAA0B,SAAA1B,EACA,CAAA,EACAjQ,KAAA,SAAAuW,EAAAC,GACAkO,EAAAnO,EAAApX,MAAA0F,YAAA,EACA8f,EAAAnO,EAAArX,MAAA0F,YAAA,EAEA,OAAA6f,IAAAC,EACA,EAGAA,EAAAD,EAAA,EAAA,CAAA,CACA,CAAA,EAEAvkB,EAAA,CACAM,MAAAK,QAAAC,EAAA,2CAAA,EACAkX,QAAA,SAAAqC,GACAqf,EAAAxB,OAAAxmB,SAAA2I,EACAqf,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAxmB,SACAyG,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAwI,EAAAnK,CAAA,CACA,EAEA6hB,EAAA8B,UAAAvJ,yBAAA,WACA,IAAAof,EAAAr8B,KAGAkN,EAAA3O,OACA+9B,KAAA1W,aAAA,EACAxT,IAAA,SAAAO,GAAA,OAAAiT,cAAAjT,EAAA,CAAA,EACAjQ,KAAA,SAAAuW,EAAAC,GACAkO,EAAAnO,EAAApX,MAAA0F,YAAA,EACA8f,EAAAnO,EAAArX,MAAA0F,YAAA,EAEA,OAAA6f,IAAAC,EACA,EAGAA,EAAAD,EAAA,EAAA,CAAA,CACA,CAAA,EAEAvkB,EAAA,CACAM,MAAAK,QAAAC,EAAA,gDAAA,EACAkX,QAAA,SAAA4hB,GACAF,EAAAxB,OAAAjV,cAAA2W,EACAF,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAjV,cACA9K,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA0I,EAAArK,CAAA,CACA,EAEA6hB,EAAA8B,UAAArJ,oBAAA,WACA,IAAAkf,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,2CAAA,EACAkX,QAAA,SAAA2C,GACA+e,EAAAxB,OAAAxd,SAAAC,EACA+e,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAxd,SACAvC,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA6Y,SAAAxa,CAAA,CACA,EAEA6hB,EAAA8B,UAAAjJ,2BAAA,WACA,IAAA8e,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,kDAAA,EACAkX,QAAA,SAAA+C,GACA2e,EAAAxB,OAAApd,gBAAAC,EACA2e,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAApd,gBACA3C,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAiZ,gBAAA5a,CAAA,CACA,EAEA6hB,EAAA8B,UAAA7I,mBAAA,WACA,IAAA0e,EAAAr8B,KACA6C,EAAA,CACAM,MAAAK,QAAAC,EAAA,0CAAA,EACAkX,QAAA,SAAA4D,GACA8d,EAAAxB,OAAAhV,OAAAtH,EACA8d,EAAAJ,OAAA,CACA,EACAphB,gBAAAwhB,EAAAxB,OAAAhV,OACA/K,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAg4B,YAAA35B,CAAA,CACA,EAEA6hB,EAAA8B,UAAAxF,SAAA,WACAC,aAAAnT,CAAA,EAEA,IAAAuuB,EAAAr8B,KAEA8N,EAAAoT,WAAA,WACA,IAAAnT,EAAA2D,EAAAiC,IAAA,EAAAwN,KAAA,EAEAkb,EAAAxB,OAAA1rB,YAAApB,EACAO,EAAAssB,WAAA,CAAA,CAAA7sB,EAEAsuB,EAAAJ,OAAA,CACA,EAAA,GAAA,CACA,EAEAvX,EAAA8B,UAAAiW,kBAAA,SAAA30B,GACA,IAAAuG,EAAArO,KAAA66B,OAAA6B,QAAA,GACA30B,EAAAzL,EAAAwL,EAAA6N,aAAA,EACA0mB,EAAAr8B,KAEA,GAAA+H,CAAAA,EAAAN,SAAA,QAAA,EAkDA,OA7CAM,EAAAhF,SAAA,QAAA,EACAg1B,EAAAz0B,YAAA,QAAA,EAEA4D,WAAA1C,KAAAuD,EAAA,CACA6X,KAAA,EACAC,SAAA,CAAA,EACA8c,gBAAA,CAAA,EACA7c,cAAA,CAAA,EACAC,QAAA,GACAC,aAAA,OACAC,cAAA,CAAA,EACAC,aAAAnY,EACAoY,UAAA,CAAAviB,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UACAC,aAAAljB,MAAAC,SAAA,CAAAK,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UAAAlS,EAAAoS,WAAA,EACApS,EAAAoS,YACA7iB,MAAAwiB,gBAAAE,aACAI,WAAA,WACAxZ,WAAAyZ,QAAAtS,EAAAuF,MAAAvF,EAAAwF,GAAA,CACA,EACA4C,IAAA,SAAAzE,GACAqqB,EAAAxB,OAAA6B,OAAA1qB,EAEAqqB,EAAAxB,OAAA6B,SAAAL,EAAAxB,OAAA6B,OAAA9oB,OAAAyoB,EAAAxB,OAAA6B,OAAA7oB,MACAwoB,EAAAxB,OAAA6B,OAAA9oB,QACAyoB,EAAAxB,OAAA6B,OAAA9oB,MAAA,IAAAgN,KAAAyb,EAAAxB,OAAA6B,OAAA9oB,MAAAiN,WAAA,CAAA,CAAA,GAGAwb,EAAAxB,OAAA6B,OAAA7oB,MACAwoB,EAAAxB,OAAA6B,OAAA7oB,IAAA,IAAA+M,KAAAyb,EAAAxB,OAAA6B,OAAA7oB,IAAAgN,WAAA,EAAA,CAAA,GAGAlP,EAAA5O,SAAA,iBAAA,GAEA4O,EAAArO,YAAA,iBAAA,EAGA4D,WAAAC,MAAA,EACAk1B,EAAAJ,OAAA,CACA,EACAnb,kBAAA,WACA/Y,EAAAzE,YAAA,QAAA,CACA,CACA,CAAA,EAEAwE,EAAAV,gBAAA,EACA,CAAA,EAjDAF,WAAAC,MAAA,CAkDA,EAEAud,EAAA8B,UAAAoW,8BAAA,WACA,IAAA5uB,EAAAhO,KAAA66B,OAAAzrB,yBACApP,KAEA66B,OAAAzrB,yBAAA,CAAApB,EAFAhO,KAIAi8B,OAAA,CACA,EAEAvX,EAAA8B,UAAA5E,kBAAA,SAAA9Z,GACA,IAAAC,EAAAzL,EAAAwL,EAAA6N,aAAA,EACA6F,EAAAzT,EAAAiM,KAAA,SAAA,EAEA,GAAAjM,EAAAN,SAAA,YAAA,EACAzH,KAAA68B,cAAArhB,GAEAxb,KAAAQ,cAAA,IAAAtB,QAAA,SAAA+7B,GACAA,EAAAC,WAAA1f,CACA,CAAA,EAEAhL,EAAA3T,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAAwH,CAAA,MACA,CAOA,GANAxb,KAAA68B,cAAA,CAAA,EACAvsB,EAAAzT,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAA,EAEArB,IAAA5K,EAAAuS,QAAA,IAAA,EAAArW,KAAA,KAAA,EAGA,EAFAg3B,YAAAj7B,KAAA86B,gBAAAnoB,GAAA,GAGA,OAGAsoB,YAAAC,WAAA1f,CACA,CAEAxb,KAAA88B,WAAA,CACA,EAEApY,EAAA8B,UAAApD,mBAAA,SAAAtb,GACA,IAAA6K,EAAArW,EAAAwL,EAAA6N,aAAA,EAAA2E,QAAA,QAAA,EAAArW,KAAA,KAAA,EACAg3B,EAAAj7B,KAAA86B,gBAAAnoB,CAAA,EAWA,OATAsoB,GACAlhB,aAAAvV,KAAA,CACA6e,MAAA4X,EACAhxB,KAAA,OACA,CAAA,EAIAnC,EAAAV,gBAAA,EACA,CAAA,CACA,EAEAsd,EAAA8B,UAAA3E,yBAAA,SAAA/Z,GACAA,EAAAV,gBAAA,CACA,EAEAsd,EAAA8B,UAAA1E,YAAA,SAAAha,GACAia,EAAAzlB,EAAAwL,EAAA6N,aAAA,EAAA1R,KAAA,UAAA,EAEA+d,YAAAxd,KAAAud,EAAAzlB,EAAAi/B,MAAAv7B,KAAAi8B,OAAAj8B,IAAA,EAAA1D,EAAAi/B,MAAAv7B,KAAA+8B,eAAA/8B,IAAA,CAAA,CACA,EAEA0kB,EAAA8B,UAAAwW,iBAAA,SAAAl1B,GACA,IAAAC,EAAAzL,EAAAwL,EAAA6N,aAAA,EAEAsnB,EADAl1B,EAAAwb,QAAA,UAAA,EACAtf,KAAA,UAAA,EACA4R,EAAAonB,EAAA3/B,MAAA8E,SAAApC,KAAAQ,aAAAy8B,EAAA,IAAA,EAAA,KACAC,EAAAn1B,EAAA9D,KAAA,KAAA,EACA+1B,EAAA,MAAAnkB,EAAAvY,MAAA8E,SAAApC,KAAAQ,aAAA08B,EAAA,KAAA,EAAA,KACAC,EAAAtnB,EAAAA,EAAA8jB,iBAAAK,EAAAF,oBAAA,EAEAtjB,EAAAnG,EAAA+sB,WAAA,EACA7mB,EAAAlG,EAAAmR,UAAA,EAEA6b,kBAAAjlB,KAAA,CACA5a,IAAA0/B,EACAI,QAAAv1B,EACAw1B,QAAAltB,EACAmtB,WAAAntB,EACAgT,MAAAxN,EACA4nB,WAAA,MAAAN,GAAA,CAAAA,EAAA30B,QACAk1B,OAAA,CACAC,EAAAnnB,EACAonB,EAAArnB,CACA,EACAsnB,UAAAvhC,EAAAi/B,MAAAv7B,KAAAi8B,OAAAj8B,IAAA,EACA89B,kBAAA,SAAA9D,GAQAjyB,EAAAlL,KAAA,eAAA,EAAA+mB,YAAAtmB,MAAAkB,OAAAixB,OAAAuK,EAPA,CACA+D,eAAA,CAAA,EACAC,cAAA,CAAA,EACAC,UAAA,CAAA,EACAC,WAAA,CAAA,CACA,CAEA,CAAA,CACA,CACA,CAAA,EAEAp2B,EAAAV,gBAAA,CACA,EAEAsd,EAAA8B,UAAA2X,iBAAA,SAAAr2B,GACA,IAGA+B,EAHAka,EAAAznB,EAAA,cAAA,EACAyL,EAAAzL,EAAAwL,EAAA6N,aAAA,EACAuO,GAAAnc,EAAA9D,KAAA,aAAA,GAAA,IAAAyO,MAAA,GAAA,EAGAsR,EAAAjc,EAAAic,OAAA,EAEAC,EAAA3nB,EAAA8V,IAAA8R,EAAA,SAAAvR,GACAwR,EAAAC,MAAAzR,IAAA0B,SAAA1B,GAEA,GAAAwR,EACA,OAAAA,CAEA,CAAA,EAEAF,EAAAvlB,SAIAulB,EAAAvhB,KAAApF,MAAAwwB,cAAA,EAMA,IAJAjkB,EAAAvN,EAAA8V,IAAA6R,EAAA,SAAAhQ,GACA,OAAAA,EAAAoQ,QACA,CAAA,GAEA3lB,SACAmL,EAAAA,EAAA0a,MAAA,EAAA,EAAA,GACA7kB,KAAA,YAAA0D,OACA6gB,EAAAvlB,OAAA,GACA8E,QAAAC,EAAA,WAAA,CAAA,CACA,EAGAsgB,EAAAla,KAAAA,EAAAyI,KAAA,QAAA,CAAA,EACAyR,EAAAzgB,YAAA,MAAA,EACAygB,EAAAzY,KAAA,QAAA,CAAA,EACAyY,EAAArd,IAAA,CACA8P,KAAAwN,EAAAxN,KAAAuN,EAAA9d,WAAA,CAAA,CAAA,EAAA,EAAA,EACAsQ,IAAAyN,EAAAzN,IAAAwN,EAAAxC,YAAA,CAAA,CAAA,EAAA,CACA,CAAA,EACA,EAEAmD,EAAA8B,UAAA4X,iBAAA,WACA9hC,EAAA,cAAA,EAAAyG,SAAA,MAAA,CACA,EAEA2hB,EAAA8B,UAAAlD,qBAAA,SAAAxb,GACA,IAAAC,EAAAzL,EAAAwL,EAAA6N,aAAA,EACA0oB,EAAAt2B,EAAAlC,SAAA,gBAAA,EACAy4B,EAAAv2B,EAAAlC,SAAA,cAAA,EACA04B,EAAA,QAAAC,KAAAz2B,EAAA9D,KAAA,eAAA,CAAA,EACA0O,EAAA5K,EAAAuS,QAAA,cAAA,EAAArW,KAAA,KAAA,EACAg3B,EAAAj7B,KAAA86B,gBAAAnoB,CAAA,EAEA7K,EAAAV,gBAAA,EAEA6zB,IAIAsD,GACAjhC,MAAA+a,KAAAgB,KAAA,sCAAAjW,OAAA63B,EAAA59B,EAAA,EAAAf,EAAAmiC,KAAAnhC,MAAA6a,QAAAK,IAAA,EACAyiB,EAAAvX,WAAApmB,MAAAoZ,OAAAukB,EAAAvX,WAAAzkB,KAAAzB,GAAA,EAEA6gC,EAAA96B,KAAAC,QAAAC,EAAA,gBAAA,CAAA,EACAsE,EAAA9D,KAAA,gBAAA,CAAA,CAAA,IAEA3G,MAAA+a,KAAAgB,KAAA,oCAAAjW,OAAA63B,EAAA59B,EAAA,EAAAf,EAAAmiC,KAAAnhC,MAAA6a,QAAAK,IAAA,EACAyiB,EAAAvX,WAAApmB,MAAAqmB,UAAAsX,EAAAvX,WAAAzkB,KAAAzB,GAAA,EAEA6gC,EAAA96B,KAAAC,QAAAC,EAAA,kBAAA,CAAA,EACAsE,EAAA9D,KAAA,gBAAA,CAAA,CAAA,GAGAg3B,EAAAvX,WAAAhlB,QACA4/B,EAAA/6B,KAAA,QAAAH,OAAA63B,EAAAvX,WAAAhlB,MAAA,CAAA,EACA4/B,EAAAr6B,KAAA,cAAAg3B,EAAAvX,WAAApR,KAAA,GAAA,CAAA,IAEAgsB,EAAA/6B,KAAA,EAAA,EACA+6B,EAAAr6B,KAAA,cAAA,IAAA,GAEA,EAEAygB,EAAA8B,UAAAlN,iBAAA,SAAAxR,GACAwR,GAAAxR,CAAA,CACA,EAEA4c,EAAA8B,UAAA7c,MAAA,SAAAqI,GACAhS,KAAAQ,aAAA,GACAR,KAAA0+B,WAAA,EACA1+B,KAAA68B,cAAA,CAAA,EAGA78B,KAAA66B,OAAAzV,aADApT,EAAAA,GAAA,IACAoT,YACAplB,KAAA66B,OAAAvV,mBAAAtT,EAAAsT,mBACAtlB,KAAA66B,OAAAtV,wBAAAvT,EAAAuT,wBACAvlB,KAAA66B,OAAAzrB,yBAAA4C,EAAA5C,yBAEA4C,EAAA0qB,SACA18B,KAAA66B,OAAA6B,OAAA1qB,EAAA0qB,QAGA1qB,EAAAoS,QACApkB,KAAA66B,OAAAzW,MAAApS,EAAAoS,OAGApS,EAAA2T,QACA3lB,KAAA66B,OAAAlV,MAAA3T,EAAA2T,MAEA,EAEAjB,EAAA8B,UAAAyV,OAAA,WACAj8B,KAAA2J,MAAA3J,KAAA66B,MAAA,EACA76B,KAAA2+B,KAAA,EACA3+B,KAAAo8B,iBAAA,EACAp8B,KAAA4+B,gBAAA,EACA5gC,KAAA1B,EAAAi/B,MAAAv7B,KAAA6+B,WAAA7+B,IAAA,CAAA,EACAhC,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,EAEAma,EAAA8B,UAAAmY,KAAA,WACA9G,EAAAh7B,KAAA,eAAA,EAAAyG,YAAA,UAAA,EACAu0B,EAAAh7B,KAAA,uBAAAuG,OAAApD,KAAA8+B,eAAA,CAAA,EAAA/7B,SAAA,UAAA,EAEA/C,KAAA++B,aAAA,EACA/+B,KAAAg/B,UAAA,EACAh/B,KAAAi/B,WAAA,CACA,EAEAva,EAAA8B,UAAAuY,aAAA,WACA/+B,KAAA88B,WAAA,CACA,EAEApY,EAAA8B,UAAAsW,WAAA,WACA,IAIAoC,EAJAl/B,KAAA+6B,wBAAA,GACA79B,WAAAC,MAAAsa,mBAAA,OAAAnZ,cAAAd,GAAA,GACAs6B,EAAAnW,WAAA,UAAA,EAEAud,EAAAnvB,EAAAlT,KAAA,uCAAA,EAEAmD,KAAAg7B,6BAAA,EACAkE,EAAAriC,KAAA,oDAAA,EACA8kB,WAAA,UAAA,EAEAud,EAAAriC,KAAA,oDAAA,EACAyO,KAAA,WAAA,UAAA,GAGAwsB,EAAAxsB,KAAA,WAAA,UAAA,CAEA,EAEAoZ,EAAA8B,UAAA2Y,aAAA,WACAvuB,EAAAtN,YAAA,MAAA,EACAmN,EAAAnN,YAAA,MAAA,EAEAq0B,GACAre,GAAA,CAEA,EAEAoL,EAAA8B,UAAAvU,eAAA,WACA,IAEA1O,EAFA2O,EAAArB,GAAAhU,KAAA,YAAA,EAIAsV,IAHAnS,KAAA66B,QAAA,IAAArV,OAAA,IAGApT,IAAA,SAAAgtB,GAGA,OAFA9hC,MAAA8E,SAAAsK,EAAA0yB,EAAA,KAAA,EAEAv9B,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAgO,EAAAhO,OACA8E,QAAAC,EAAA,sCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAC,WAAA,CAAA,IAEAhL,EAAAC,QAAAC,EAAA,8CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAC,WAAA,CAAA,GAGA2D,EAAArI,KAAAtG,CAAA,CACA,EAEAmhB,EAAA8B,UAAA/S,eAAA,WACA,IAEAlQ,EAFA2O,EAAAV,GAAA3U,KAAA,YAAA,EAIAsV,IAHAnS,KAAA66B,QAAA,IAAA9U,OAAA,IAGA3T,IAAA,SAAAO,GAGA,OAFAhP,YAAAwb,WAAAtb,KAAAuF,QAAAuJ,GAEA9Q,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAU,WAAA,CAAA,IAEAzL,EAAAC,QAAAC,EAAA,8CAAA,EACAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAU,WAAA,CAAA,GAGAkD,EAAArI,KAAAtG,CAAA,CACA,EAEAmhB,EAAA8B,UAAA9S,qBAAA,WACA,IAEAnQ,EAFA2O,EAAAT,GAAA5U,KAAA,YAAA,EAIAsV,IAHAnS,KAAA66B,QAAA,IAAAn6B,YAAA,IAGA0R,IAAA,SAAAO,GAGA,OAFAhP,YAAA+b,iBAAA7b,KAAAuF,QAAAuJ,GAEA9Q,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAW,iBAAA,CAAA,IAEA1L,EAAAC,QAAAC,EAAA,oDAAA,EACAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAW,iBAAA,CAAA,GAGAiD,EAAArI,KAAAtG,CAAA,CACA,EAEAmhB,EAAA8B,UAAAhT,mBAAA,WACA,IAIAjQ,EAJA2O,EAAAX,GAAA1U,KAAA,YAAA,EACA4Q,GAAAzN,KAAA66B,QAAA,IAAAnc,YAAA,GACAvM,EAAA,GACAktB,EAAA,EAGA/iC,EAAA+J,KAAA6mB,WAAA,SAAAoS,EAAAlR,GACAA,EAAAnkB,OAAArM,MAAAywB,aAAA3G,WAIA2X,CAAA,GAEA/hC,MAAAC,SAAAkQ,EAAA2gB,EAAA5wB,GAAA,IACA2U,EAAAzS,KAAA0uB,EAAAvsB,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA2gC,EACA77B,QAAAC,EAAA,0CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAQ,aAAA,CAAA,IAEAvL,EAAAC,QAAAC,EAAA,kDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAQ,aAAA,CAAA,GAGAoD,EAAArI,KAAAtG,CAAA,CACA,EAEAmhB,EAAA8B,UAAAxT,kBAAA,WACA,IAIAzP,EAJA2O,EAAAnB,EAAAlU,KAAA,YAAA,EACA+P,GAAA5M,KAAA66B,QAAA,IAAAzU,SACAjU,EAAA,GACAotB,EAAA,EAGAjjC,EAAA+J,KAAA+d,MAAA,SAAAkb,EAAArrB,GACAsrB,CAAA,GAEAjiC,MAAAC,SAAAqP,EAAAqH,EAAAzW,GAAA,GACA2U,EAAAzS,KAAAuU,EAAApS,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA6gC,EACA/7B,QAAAC,EAAA,sCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,8CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,EACAwN,EAAAzN,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAAvT,eAAA,WACA,IAIA1P,EAJA2O,EAAAlB,EAAAnU,KAAA,YAAA,EACA+P,GAAA5M,KAAA66B,QAAA,IAAAzW,MACAjS,EAAA,GACAotB,EAAA,EAGAjjC,EAAA+J,KAAA+d,MAAA,SAAAkb,EAAArrB,GACAsrB,CAAA,GAEAjiC,MAAAC,SAAAqP,EAAAqH,EAAAzW,GAAA,GACA2U,EAAAzS,KAAAuU,EAAApS,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA6gC,EACA/7B,QAAAC,EAAA,sCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,8CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,EACAyN,EAAA1N,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAAtT,eAAA,WACA,IAIA3P,EAJA2O,EAAAjB,EAAApU,KAAA,YAAA,EACAgQ,GAAA7M,KAAA66B,QAAA,IAAAlV,MACAxT,EAAA,GACAqtB,EAAA,EAGAljC,EAAA+J,KAAAsf,MAAA,SAAA2Z,EAAAprB,GACAsrB,CAAA,GAEAliC,MAAAC,SAAAsP,EAAAqH,EAAA1W,GAAA,GACA2U,EAAAzS,KAAAwU,EAAArS,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA8gC,EACAh8B,QAAAC,EAAA,sCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAI,WAAA,CAAA,IAEAnL,EAAAC,QAAAC,EAAA,8CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAI,WAAA,CAAA,GAGAwD,EAAArI,KAAAtG,CAAA,EACA0N,EAAA3N,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAArT,kBAAA,WACA,IAEAjB,EAAAnF,EAAAxJ,EAFA4O,EAAA,GACAstB,EAAA,EAGAtrB,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAhB,EAAArU,KAAA,YAAA,EACAkQ,GAAA/M,KAAA66B,QAAA,IAAAxmB,SAEA/X,EAAA+J,KAAAgO,SAAA,SAAAirB,EAAAhrB,GACAmrB,CAAA,GAEAniC,MAAAC,SAAAwP,EAAAuH,EAAA9W,GAAA,GACA2U,EAAAzS,KAAA4U,EAAAzS,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA+gC,EACAj8B,QAAAC,EAAA,yCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAK,cAAA,CAAA,IAEApL,EAAAC,QAAAC,EAAA,iDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAK,cAAA,CAAA,GAGAuD,EAAArI,KAAAtG,CAAA,EACA2N,EAAA5N,YAAA,MAAA,EAEAhH,EAAA,2CAAA,EAAAgH,YAAA,MAAA,EACA4N,EAAA5N,YAAA,MAAA,IAlCAhH,EAAA,2CAAA,EAAAyG,SAAA,MAAA,EACAmO,EAAAnO,SAAA,MAAA,EAkCA,EAEA2hB,EAAA8B,UAAApT,uBAAA,WACA,IAEAlB,EAAAjF,EAAA1J,EAFA4O,EAAA,GACAutB,EAAA,EAGAvrB,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAf,EAAAtU,KAAA,YAAA,EACAoQ,GAAAjN,KAAA66B,QAAA,IAAAjV,cAEAtpB,EAAA+J,KAAAuf,cAAA,SAAA0Z,EAAA/qB,GACAmrB,CAAA,GAEApiC,MAAAC,SAAA0P,EAAAsH,EAAA/W,GAAA,GACA2U,EAAAzS,KAAA6U,EAAA1S,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAghC,EACAl8B,QAAAC,EAAA,8CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAkM,mBAAA,CAAA,IAEAjX,EAAAC,QAAAC,EAAA,sDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAkM,mBAAA,CAAA,GAGAtI,EAAArI,KAAAtG,CAAA,EACA4N,EAAA7N,YAAA,MAAA,EAEAhH,EAAA,iDAAA,EAAAgH,YAAA,MAAA,EACA6N,EAAA7N,YAAA,MAAA,IAlCAhH,EAAA,iDAAA,EAAAyG,SAAA,MAAA,EACAoO,EAAApO,SAAA,MAAA,EAkCA,EAEA2hB,EAAA8B,UAAAmZ,iBAAA,WACA3/B,KAAA66B,SACA76B,KAAA66B,OAAA,IAGA76B,KAAA66B,OAAA6B,SACA18B,KAAA66B,OAAA6B,OAAA,IAGA,IAAAn5B,EACA8K,EAAArO,KAAA66B,OAAA6B,OAEAruB,IAAAA,EAAAuF,OAAAvF,EAAAwF,MACAlC,EAAA5O,SAAA,iBAAA,EACAuL,EAAAY,aAAA,CAAA,EACA3L,GACA,MAAA8K,EAAAuF,MAAApQ,QAAAC,EAAA,iBAAA,EAAA,IAAA4K,EAAAuF,MAAAE,eAAA,EAAA,IACA,KACA,MAAAzF,EAAAwF,IAAArQ,QAAAC,EAAA,eAAA,EAAA,IAAA4K,EAAAwF,IAAAC,eAAA,EAAA,MAEAvQ,EAAAC,QAAAC,EAAA,wCAAA,EAEAkO,EAAArO,YAAA,iBAAA,EACAgL,EAAAY,aAAA,CAAA,GAGAyC,EAAA9H,KAAAtG,CAAA,CACA,EAEAmhB,EAAA8B,UAAAoZ,mCAAA,WACA5/B,KAAA66B,SACA76B,KAAA66B,OAAA,IAGAjpB,GAAA/H,KAAArG,QAAAC,EAAA,0CAAA,CAAA,EACAoO,GAAAmC,KAAA,UAAAhU,KAAA66B,OAAAzrB,wBAAA,EACAd,EAAAc,yBAAApP,KAAA66B,OAAAzrB,wBACA,EAEAsV,EAAA8B,UAAAnT,kBAAA,WACA,IAIA9P,EAJA2O,EAAAd,EAAAvU,KAAA,YAAA,EACAsQ,GAAAnN,KAAA66B,QAAA,IAAAxd,SACAlL,EAAA,GACA0tB,EAAA,EAGAvjC,EAAA+J,KAAA6mB,WAAA,SAAAoS,EAAA9qB,GACAA,EAAAvK,OAAArM,MAAAywB,aAAAC,UAIAuR,CAAA,GAEAviC,MAAAC,SAAA4P,EAAAqH,EAAAhX,GAAA,IACA2U,EAAAzS,KAAA8U,EAAA3S,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAmhC,EACAr8B,QAAAC,EAAA,yCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAM,cAAA,CAAA,IAEArL,EAAAC,QAAAC,EAAA,iDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAM,cAAA,CAAA,GAGAsD,EAAArI,KAAAtG,CAAA,EACA6N,EAAA9N,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAAlT,yBAAA,WACA,IAIA/P,EAJA2O,EAAAb,EAAAxU,KAAA,YAAA,EACAwQ,GAAArN,KAAA66B,QAAA,IAAApd,gBACAtL,EAAA,GACA2tB,EAAA,EAGAxjC,EAAA+J,KAAA6mB,WAAA,SAAAoS,EAAA7qB,GACAA,EAAAxK,OAAArM,MAAAywB,aAAAE,iBAIAuR,CAAA,GAEAxiC,MAAAC,SAAA8P,EAAAoH,EAAAjX,GAAA,IACA2U,EAAAzS,KAAA+U,EAAA5S,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAohC,EACAt8B,QAAAC,EAAA,gDAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAO,qBAAA,CAAA,IAEAtL,EAAAC,QAAAC,EAAA,wDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAO,qBAAA,CAAA,GAGAqD,EAAArI,KAAAtG,CAAA,EACA8N,EAAA/N,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAAjT,iBAAA,WACA,IAIAhQ,EAJA2O,EAAAZ,EAAAzU,KAAA,YAAA,EACA0Q,GAAAvN,KAAA66B,QAAA,IAAAhV,OACA1T,EAAA,GACA4tB,EAAA,EAGAzjC,EAAA+J,KAAA6mB,WAAA,SAAAoS,EAAA5qB,GACAA,EAAAzK,OAAArM,MAAAywB,aAAAxE,SAIAkW,CAAA,GAEAziC,MAAAC,SAAAgQ,EAAAmH,EAAAlX,GAAA,IACA2U,EAAAzS,KAAAgV,EAAA7S,KAAA,CAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAqhC,EACAv8B,QAAAC,EAAA,wCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAQ,aAAA,CAAA,IAEAvL,EAAAC,QAAAC,EAAA,gDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAQ,aAAA,CAAA,GAGAoD,EAAArI,KAAAtG,CAAA,EACA+N,EAAAhO,YAAA,MAAA,CACA,EAEAohB,EAAA8B,UAAAwZ,WAAA,WACA1xB,EAAAssB,WAAA,CAAA,CAAA56B,KAAA66B,OAAA1rB,YAEAuC,EAAAiC,IAAArF,EAAAssB,WAAAt+B,EAAA6kB,KAAAnhB,KAAA66B,OAAA1rB,WAAA,EAAA,EAAA,EACAuC,EAAApG,KAAA,cAAA9H,QAAAC,EAAA,iBAAA,CAAA,CACA,EAEAihB,EAAA8B,UAAAwY,UAAA,WACA1uB,EAAAzG,KAAA7J,KAAAigC,aAAA,CAAA,EACAzvB,EAAA3G,KAAA7J,KAAAkgC,WAAA,CAAA,CACA,EAEAxb,EAAA8B,UAAAyY,WAAA,WACAlvB,EAAApI,IAAA,sBAAA,EACA0I,EAAA1I,IAAA,uBAAA,EACAmwB,EAAAnwB,IAAA,oBAAA,EACAiJ,EAAAjJ,IAAA,oBAAA,EACAkJ,GAAAlJ,IAAA,kBAAA,EACA6J,GAAA7J,IAAA,kBAAA,EACA8J,GAAA9J,IAAA,kBAAA,EACA4J,GAAA5J,IAAA,kBAAA,EACAoJ,EAAApJ,IAAA,kBAAA,EACAqJ,EAAArJ,IAAA,kBAAA,EACAsJ,EAAAtJ,IAAA,kBAAA,EACAuJ,EAAAvJ,IAAA,kBAAA,EACAwJ,EAAAxJ,IAAA,kBAAA,EACAyJ,EAAAzJ,IAAA,kBAAA,EACA0J,EAAA1J,IAAA,kBAAA,EACA2J,EAAA3J,IAAA,kBAAA,EACA+J,EAAA/J,IAAA,cAAA,EACAoI,EAAApI,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,gCAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,sBAAA,EACA6H,EAAA7H,IAAA,sBAAA,EACA6H,EAAA7H,IAAA,qBAAA,EACA6I,EAAA7I,IAAA,2BAAA,EACA6I,EAAA7I,IAAA,2BAAA,EACA6I,EAAA7I,IAAA,0BAAA,EACA6I,EAAA7I,IAAA,sBAAA,EACA6I,EAAA7I,IAAA,sBAAA,EACA6I,EAAA7I,IAAA,qBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACA6I,EAAA7I,IAAA,qBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACAgK,EAAAhK,IAAA,oBAAA,EACAkK,GAAAlK,IAAA,iCAAA,EACA8I,EAAA9I,IAAA,sBAAA,EACAowB,EAAApwB,IAAA,oBAAA,EAEAoI,EAAArI,GAAA,uBAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAq7B,iBAAAr7B,IAAA,CAAA,EACA+3B,EAAArwB,GAAA,qBAAA,iCAAApL,EAAAi/B,MAAAv7B,KAAA07B,eAAA17B,IAAA,CAAA,EACA4Q,EAAAlJ,GAAA,qBAAApL,EAAAi/B,MAAAv7B,KAAAya,eAAAza,IAAA,CAAA,EACA6Q,GAAAnJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAA0a,iBAAA1a,IAAA,CAAA,EACAwR,GAAA9J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAA4e,iBAAA5e,IAAA,CAAA,EACAyR,GAAA/J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAof,uBAAApf,IAAA,CAAA,EACAuR,GAAA7J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAwe,qBAAAxe,IAAA,CAAA,EACA+Q,EAAArJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAA6b,oBAAA7b,IAAA,CAAA,EACAgR,EAAAtJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAoc,iBAAApc,IAAA,CAAA,EACAiR,EAAAvJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAsc,iBAAAtc,IAAA,CAAA,EACAkR,EAAAxJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAA8c,oBAAA9c,IAAA,CAAA,EACAmR,EAAAzJ,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAid,yBAAAjd,IAAA,CAAA,EACAoR,EAAA1J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAmd,oBAAAnd,IAAA,CAAA,EACAqR,EAAA3J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAAud,2BAAAvd,IAAA,CAAA,EACAsR,EAAA5J,GAAA,mBAAApL,EAAAi/B,MAAAv7B,KAAA2d,mBAAA3d,IAAA,CAAA,EACA0R,EAAAhK,GAAA,eAAApL,EAAAi/B,MAAAv7B,KAAAghB,SAAAhhB,IAAA,CAAA,EACA+P,EAAArI,GAAA,yBAAA,iBAAApL,EAAAi/B,MAAAv7B,KAAA4hB,kBAAA5hB,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,yBAAA,SAAApL,EAAAi/B,MAAAv7B,KAAAojB,mBAAApjB,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,iCAAA,sBAAApL,EAAAi/B,MAAAv7B,KAAA6hB,yBAAA7hB,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,kBAAA,oBAAApL,EAAAi/B,MAAAv7B,KAAA8hB,YAAA9hB,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,uBAAA,yBAAApL,EAAAi/B,MAAAv7B,KAAAg9B,iBAAAh9B,IAAA,CAAA,EACAwP,EAAA9H,GAAA,uBAAA21B,kBAAA7kB,IAAA,EACAhJ,EAAA9H,GAAA,sBAAAgd,EAAAyb,aAAA,EACA3vB,EAAA9I,GAAA,4BAAA,eAAApL,EAAAi/B,MAAAv7B,KAAAm+B,iBAAAn+B,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,4BAAA,eAAApL,EAAAi/B,MAAAv7B,KAAAo+B,iBAAAp+B,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,2BAAA,iBAAApL,EAAAi/B,MAAAv7B,KAAAsjB,qBAAAtjB,IAAA,CAAA,EACAwQ,EAAA9I,GAAA,wBAAA,iBAAA,SAAAI,GACAA,EAAAV,gBAAA,CACA,CAAA,EACAuK,EAAAjK,GAAA,qBAAApL,EAAAi/B,MAAAv7B,KAAAy8B,kBAAAz8B,IAAA,CAAA,EACA6R,GAAAnK,GAAA,kCAAApL,EAAAi/B,MAAAv7B,KAAA48B,8BAAA58B,IAAA,CAAA,EACAyQ,EAAA/I,GAAA,uBAAApL,EAAAi/B,MAAAv7B,KAAAsZ,iBAAAtZ,IAAA,CAAA,CACA,EAEA0kB,EAAA8B,UAAA4Z,+BAAA,SAAAjT,EAAAqL,GACA,IAAA3uB,EAAA,GAYA,OAVAA,EAAAnK,KAAA,4BAAA,EACAmK,EAAAnK,KAAAM,KAAA6jB,mBAAAsJ,CAAA,CAAA,EACAtjB,EAAAnK,KAAA,8BAAA,GAEA84B,GAAA,IAAA95B,QACAmL,EAAAnK,KAAA,uBAAA0D,OAAAo1B,EAAA95B,MAAA,CAAA,EAGAmL,EAAAnK,KAAA,WAAA0D,OAAAI,QAAAC,EAAA,qBAAA,CAAA,CAAA,EAEAoG,EAAAyI,KAAA,EAAA,CACA,EAEAoS,EAAA8B,UAAA3C,mBAAA,SAAAsJ,GACA,OAAA7vB,MAAAC,SAAA4vB,EAAAluB,KAAAzB,GAAA,EACA,oKACA4F,OACAI,QAAAC,EAAA,kBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,GACAyuB,GAAA,IAAAzuB,OACA,0IACA0E,OACAI,QAAAC,EAAA,gBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,EAGA,8GACA0E,OAAAI,QAAAC,EAAA,gBAAA,CAAA,CACA,EAEAihB,EAAA8B,UAAA6Z,YAAA,SAAAjW,GACA,IAAAvgB,EAAA,CAAA,8DAAAzG,OAAAgnB,EAAAC,SAAA,EAAA,GAEA,GAAAD,EAAAE,MAAA,CACA,IACAC,EAAA,kBACAC,EAAA,GACA9mB,EAHA,+DAGA+mB,KAAAL,EAAAE,KAAA,EAEA,GAAA,CAAA5mB,GAAA,IAAAA,EAAAhF,OACA,OAOA,IAJA,IAAAsH,EAAAS,SAAA/C,EAAA,GAAA,EAAA,EACAgnB,EAAAjkB,SAAA/C,EAAA,GAAA,EAAA,EACAinB,EAAAjnB,EAAA,IAGAA,EAAA6mB,EAAAE,KAAAL,EAAAE,KAAA,IACAE,EAAA9qB,KAAAgE,EAAA,GAAAyd,KAAA,EAAA,UAAA,EAEAzd,IAEA8mB,EAAA9rB,SACAmL,EAAAnK,KAAA,0HACA0D,OAAA4C,EAAA0kB,CAAA,CAAA,EACA7gB,EAAAnK,KAAA,gKACA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EACAxgB,EAAAnK,KAAAirB,CAAA,EACA9gB,EAAAnK,KAAA,QAAA,EAEA,MACAmK,EAAAnK,KAAA,gCAAA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EAKA,OAFAxgB,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEAoS,EAAA8B,UAAA8Z,gBAAA,SAAAjV,GACA,MAAA,eAAAjoB,OACAioB,EAAA/tB,MAAAspB,SAAA4E,oBAAAH,CAAA,EAAA,KAAA,CACA,EAEA3G,EAAA8B,UAAA+Z,YAAA,SAAA7U,GACA,MAAA,6EACAtoB,OACAsoB,EAAAA,EAAAC,MAAA,OACAD,EAAAA,EAAA7pB,MAAA2B,QAAAC,EAAA,eAAA,CAAA,CACA,EAEAihB,EAAA8B,UAAAga,oBAAA,SAAArjC,EAAA2P,GACA,IASAgf,EA2BAC,EApCAliB,EAAA,GACAmiB,EAAA,CAAA,EACAC,EAAA,CACAC,YAAA,GACAC,YAAA,GACAC,UAAA,GACAC,SAAA,EACA,EAEA,IAAAP,KAAA3uB,EAAA,CACA,IAAAmvB,EAAAnvB,EAAA2uB,GACA7X,EAAAmQ,MAAA0H,GAEA7X,IAIA+X,EAAA,CAAA,EAEAM,EAAAC,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAE,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAG,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAI,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,CAEA,CAEA,IAAA0H,KAAAjf,EAAA,CACA,IAAA6f,EAAA7f,EAAAif,GACA7X,EAAAyR,MAAAoG,GAEA7X,IAIA8X,EAAA,CAAA,EAEAW,EAAAJ,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAH,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAF,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAD,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,CAEA,CAwDA,OAtDAoqB,EAAAC,YAAAxpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAE,YAAAzpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAG,UAAA1pB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAI,SAAA3pB,KAAApF,MAAAgnB,eAAA,EAEA0H,GACAniB,EAAAnK,KAAA,MAAA,EAEAusB,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,0CAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAC,YAAA3H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAC,YAAAxtB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,0CAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAE,YAAA5H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAE,YAAAztB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,0CAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAG,UAAA7H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAG,UAAA1tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,0CAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAI,SAAA9H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAI,SAAA3tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAoG,EAAAnK,KAAA,OAAA,GAGAmK,EAAAnK,KAAA,cAAA,EAGAmK,EAAAyI,KAAA,EAAA,CACA,EAEAoS,EAAA8B,UAAAia,WAAA,SAAAxsB,GACA,OAAAA,GAAAA,EAAAoQ,SACA,eAAAjhB,OAAA6Q,EAAAoQ,QAAA,EACA,cACA,EAEAK,EAAA8B,UAAAka,YAAA,SAAAzF,GAQA,MAAA,eAAA73B,OAAA9F,MAAAkB,OAAAixB,OAAAwL,EAPA,CACA8C,eAAA,CAAA,EACAC,cAAA,CAAA,EACAC,UAAA,CAAA,EACAC,WAAA,CAAA,CACA,CAEA,CAAA,CACA,EAEAxZ,EAAA8B,UAAAoY,gBAAA,SAAA+B,GACA,IAAAtE,EAAAr8B,KACAF,EAAAxD,EAAAyD,SAAA,EACAG,EAAAJ,EAAAI,QAAA,EACAimB,EAAAnmB,KAAA4gC,UAAA,EAmBA,MAjBA,CAAAD,GAAA3gC,KAAAQ,aAAA9B,OACAoB,EAAAG,QAAAD,KAAAQ,YAAA,GAEAlD,MAAA6a,QAAAC,KAAA,EAEApY,KAAA6gC,KAAA1a,CAAA,EAAAnoB,KAAA,WACA8B,EAAAG,QAAAo8B,EAAA77B,YAAA,EACAlD,MAAA6a,QAAAK,KAAA,CACA,EAAA,SAAAD,GACAA,GACAjb,MAAA6a,QAAAK,KAAA,EAGAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,GAGArY,CACA,EAEAwkB,EAAA8B,UAAAqY,WAAA,SAAAhD,GACA,IAAAQ,EAAAr8B,KACA6J,EAAA,GAEA,GAAA7J,KAAA0+B,WAqBA,OAbA70B,EAAAvN,EAAA8V,IAAAypB,GAAA,GAAA,SAAAZ,GACA,OAAAoB,EAAAyE,UAAA7F,CAAA,CACA,CAAA,EAEAzqB,EAAA3T,KAAA,OAAA,EAAAgN,KAAAA,EAAAyI,KAAA,EAAA,CAAA,EACA9B,EAAA3T,KAAA,KAAA,EAAA6K,GAAA,QAAApK,MAAA+vB,eAAA,EAEArtB,KAAAQ,aAAA9B,OAAAsB,KAAA0+B,YACAruB,EAAA3I,GAAA,wBAAApL,EAAAi/B,MAAAv7B,KAAAohB,SAAAphB,IAAA,CAAA,EAGAsQ,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,EAEA61B,EApBArrB,EAAA3G,KAAA7J,KAAA+gC,eAAA,CAAA,EAEAzwB,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,CAmBA,EAEA0e,EAAA8B,UAAApF,SAAA,WACA,IAAAC,EAAAhR,EAAAiR,YAAA,EACA9Q,EAAA+Q,YAAA,CAAA,CAAA,EAGAF,EAFAhR,EAAAmR,UAAA,GAEA,MACAnR,EAAA1I,IAAA,uBAAA,EACA3H,KAAA4+B,gBAAA,CAAA,CAAA,EAAAoC,KAAA1kC,EAAAi/B,MAAAv7B,KAAA6+B,WAAA7+B,IAAA,CAAA,EAEA,EAEA0kB,EAAA8B,UAAApO,KAAA,WACApY,KAAA2+B,KAAA,EAEA3+B,KAAA4+B,gBAAA,EAAA5gC,KAAA1B,EAAAi/B,MAAAv7B,KAAA6+B,WAAA7+B,IAAA,EAAA,SAAAuY,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,CACA,EAEAmM,EAAAyb,cAAA,WACAnvB,EAAAnU,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACA2N,EAAApU,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACA8N,EAAAvU,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACA+N,EAAAxU,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACAgO,EAAAzU,KAAA,SAAA,EAAAyG,YAAA,QAAA,EACAqO,EAAArO,YAAA,QAAA,CACA,EAEAohB,EAAA8B,UAAA3M,OAAA,WACA7Z,KAAAm/B,aAAA,EAEA7uB,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,CACA,EAnnDA,IAAA0e,EAqnDAA,EApnDA,SAAAA,IACA1kB,KAAA66B,OAAA,GACA76B,KAAA68B,cAAA,CAAA,CACA,GA6oDAoE,EAAAza,UAAA,IAAA9B,GAEAsU,YAAAiI,GAEAza,UAAAsU,gBAAA,SAAAnoB,GAGA,IAFA,IAAAsoB,EAEAr6B,EAAA,EAAA0E,GAAAtF,KAAAQ,cAAA,IAAA9B,OAAAkC,EAAA0E,EAAA1E,CAAA,GAAA,CAGA,IAFAq6B,EAAAj7B,KAAAQ,aAAAI,IAEApD,MAAAmV,EACA,OAAAsoB,EAKA,GAFAA,EAAA39B,MAAA8E,SAAA64B,EAAAiG,YAAAvuB,EAAA,KAAA,EAGA,OAAAsoB,CAEA,CACA,EAEAgG,EAAAza,UAAAuU,wBAAA,WACA,OAAAz9B,MAAAC,SAAAyC,KAAAQ,aAAA,SAAAqV,GACA,OAAAA,EAAAqlB,YAAA59B,MAAAC,SAAAsY,EAAAqrB,YAAA,CAAA,EAAA,YAAA,CACA,CAAA,CACA,EAEAD,EAAAza,UAAA2U,wBAAA,WACA,IAAA3L,EAAA,GAcA,OAZAxvB,KAAAQ,cAAA,IAAAtB,QAAA,SAAA2W,GACAA,EAAAqlB,WACA1L,EAAA9vB,KAAAmW,CAAA,GAEAA,EAAAqrB,aAAA,IAAAhiC,QAAA,SAAA86B,GACAA,EAAAkB,YACA1L,EAAA9vB,KAAAs6B,CAAA,CAEA,CAAA,CAEA,CAAA,EAEAxK,CACA,EAEAyR,EAAAza,UAAA5E,kBAAA,SAAA9Z,GACA,IAEAq5B,EAFAp5B,EAAAzL,EAAAwL,EAAA6N,aAAA,EACA6F,EAAAzT,EAAAiM,KAAA,SAAA,EAGA,GAAAjM,EAAAN,SAAA,YAAA,EACAzH,KAAA68B,cAAArhB,EACAhL,EAAA3T,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAAwH,CAAA,GAEAxb,KAAAQ,cAAA,IAAAtB,QAAA,SAAA2W,GACAA,EAAAqlB,WAAA1f,GAEA3F,EAAAqrB,aAAA,IAAAhiC,QAAA,SAAA86B,GACAA,EAAAkB,WAAA1f,CACA,CAAA,CACA,CAAA,MAEA,CAOA,GANAxb,KAAA68B,cAAA,CAAA,EACAvsB,EAAAzT,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAA,EAEArB,IAAA5K,EAAAuS,QAAA,IAAA,EAAArW,KAAA,KAAA,EAGA,EAFAg3B,YAAAj7B,KAAA86B,gBAAAnoB,GAAA,GAGA,OAGAsoB,YAAAC,WAAA1f,GAEA2lB,EAAAp5B,EAAAuS,QAAA,+BAAAlX,OAAAuP,GAAA,CAAA,GAAAjU,QACAyiC,EAAA17B,SAAA,2BAAArC,OAAAuP,GAAA,CAAA,EAAA9V,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAAwH,CAAA,GAEAyf,YAAAiG,aAAA,IAAAhiC,QAAA,SAAA86B,GACAA,EAAAkB,WAAA1f,CACA,CAAA,IACA2lB,EAAAp5B,EAAAuS,QAAA,oBAAA,GAAA5b,SACAiU,IAAAwuB,EAAAl9B,KAAA,KAAA,EACAuM,EAAA3T,KAAA,8CAAAuG,OAAAuP,GAAA,CAAA,EAAAqB,KAAA,UAAA,CAAA,CAAA,GAEAinB,YAAAj7B,KAAA86B,gBAAAnoB,GAAA,GACAuoB,WAAA,CAAA,EAEA,CAEAl7B,KAAA88B,WAAA,CACA,EAEAmE,EAAAza,UAAA4a,gBAAA,SAAAt5B,GACA,IAAAq5B,EAAA7kC,EAAAwL,EAAA6N,aAAA,EAAA2E,QAAA,IAAA,EACA3H,EAAAwuB,EAAAl9B,KAAA,KAAA,EACAg3B,EAAAj7B,KAAA86B,gBAAAnoB,CAAA,EACA0uB,EAAA,CAAAF,EAAA15B,SAAA,aAAA,EAEA41B,kBAAA7kB,KAAA,GAEAyiB,EAAAqG,WAAAD,IAGArhC,KAAAuhC,YAAAJ,CAAA,EACAA,EAAAp+B,SAAA,aAAA,IAEA/C,KAAAwhC,YAAAL,CAAA,EACAA,EAAA79B,YAAA,aAAA,GAGAwE,EAAAV,gBAAA,CACA,EAEA65B,EAAAza,UAAAmY,KAAA,WACAnuB,EAAA7I,IAAA,qBAAA,EACA6I,EAAA9I,GAAA,sBAAA,uBAAApL,EAAAi/B,MAAAv7B,KAAAohC,gBAAAphC,IAAA,CAAA,EAEA0kB,EAAA8B,UAAAmY,KAAA8C,KAAAzhC,IAAA,CACA,EAEAihC,EAAAza,UAAAuY,aAAA,WACAra,EAAA8B,UAAAuY,aAAA0C,KAAAzhC,IAAA,EAEA+P,EAAAlT,KAAA,+BAAA,EAAAyG,YAAA,MAAA,EAEAtD,KAAA0hC,YAAA,EACA1hC,KAAAiS,eAAA,EACAjS,KAAAyT,eAAA,EACAzT,KAAA0T,qBAAA,EACA1T,KAAAwT,mBAAA,EACAxT,KAAAgT,kBAAA,EACAhT,KAAAiT,eAAA,EACAjT,KAAAkT,eAAA,EACAlT,KAAAmT,kBAAA,EACAnT,KAAAoT,uBAAA,EACApT,KAAAqT,kBAAA,EACArT,KAAAsT,yBAAA,EACAtT,KAAAuT,iBAAA,EACAvT,KAAAm/B,aAAA,EACAn/B,KAAA2/B,iBAAA,EACA3/B,KAAA4/B,mCAAA,EACA5/B,KAAAggC,WAAA,EACAhgC,KAAA8R,eAAA,CACA,EAEAmvB,EAAAza,UAAAkb,YAAA,WACA3xB,EAAAlT,KAAA,uCAAA,EAEAA,KAAA,qCAAA,EAAAyG,YAAA,MAAA,CACA,EAEA29B,EAAAza,UAAAyZ,aAAA,WACA,IAAAp2B,EAAA,GA8BA,OA5BAA,EAAAnK,KAAA,YAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,+BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,aAAA,EACAmK,EAAAnK,KAAA,SAAA,EACAmK,EAAAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,MAAA,EAEAxC,WAAAC,MAAAsa,mBAAA,OAAAnZ,cAAAd,GAAA,GACAqM,EAAAnK,KAAA,iDAAA0D,OAAApD,KAAA68B,cAAA,UAAA,EAAA,CAAA,EAGAhzB,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,wEAAA,EACAmK,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,wEAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,2BAAA0D,OAAAI,QAAAC,EAAA,2EAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,8EAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,4EAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,mFAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,UAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEA2uB,EAAAza,UAAA0Z,WAAA,WACA,IAAAr2B,EAAA,GAcA,OAZAA,EAAAnK,KAAA,YAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,+BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,aAAA,EACAmK,EAAAnK,KAAA,iBAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEA2uB,EAAAza,UAAAua,eAAA,WACA,MAAA,iDACA39B,OAAAI,QAAAC,EAAA,uCAAA,CAAA,CACA,EAEAw9B,EAAAza,UAAAsa,UAAA,SAAAjrB,GACA,IAAAhM,EAAA,GACAgC,EAAAgK,EAAAsjB,eAAA,EACA/O,EAAAvU,EAAAujB,SAAA,EACA/P,IAAAxT,EAAAyT,gBAAA,IAAAC,WAAA,IAAA7W,MAAA,GAAA,EA2DA8V,GAxDA3e,EAAAnK,KAAA,wEAAA0D,OACAyS,EAAAyrB,WAAA,cAAA,GAAAzrB,EAAArY,IAAAqY,EAAAxY,EAAA,CAAA,EAEAwM,EAAAnK,KAAA,MAAA,EAEAxC,WAAAC,MAAAsa,mBAAA,OAAAnZ,cAAAd,GAAA,GACAqM,EAAAnK,KAAA,8BAAA0D,OAAAyS,EAAAqlB,WAAA,UAAA,EAAA,CAAA,EAGArxB,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,kDAAA,EAEAmK,EAAAnK,KAAA,+CAAA0D,OACAyS,EAAAqjB,gBAAA,EAAArjB,EAAAxY,GAAAwY,EAAAI,QAAA,CAAA,EAEApM,EAAAnK,KAAA,qCAAA0D,OAAAyS,EAAAojB,QAAA,CAAA,CAAA,EACApvB,EAAAnK,KAAA,+CAAA,EAEAmK,EAAAnK,KAAA,8CAAA0D,OACAgnB,EAAA,GAAA,cACAvU,EAAAhU,OAAA2B,QAAAC,EAAA,eAAA,CAAA,CAAA,EAEA,EAAA4lB,EAAA3qB,SACAgrB,EAAAL,EAAA9E,MAAA,CAAA,EAAAjS,KAAA,IAAA,EAEAzI,EAAAnK,KAAA,oCAAA0D,OAAAsmB,CAAA,CAAA,GAGA7T,EAAA8T,iCACAC,EAAA/T,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MACAzsB,MAAAuY,MAAAmU,0BAAAnU,EAAA8T,+BAAAM,SAAA,EACA,KAEApgB,EAAAnK,KAAA,4DACA0D,OACAyS,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MAAA,cAAA,GACAvmB,QAAAC,EAAA,mCAAA,EACAnG,MAAAuY,MAAAqU,2BAAArU,EAAA8T,+BAAAE,MAAA,EACAD,EAAA,KAAAA,EAAA,IAAA,EACA,CACA,GAGA/d,GACAhC,EAAAnK,KAAA,8BAAA0D,OAAAyI,CAAA,CAAA,EAGAhC,EAAAnK,KAAAM,KAAAogC,+BAAAvqB,EAAA6N,WAAA7N,EAAAwM,QAAA,CAAA,EAEA+H,GACAvgB,EAAAnK,KAAAM,KAAAqgC,YAAAjW,CAAA,CAAA,EAGAvgB,EAAAnK,KAAAM,KAAAsgC,gBAAAzqB,EAAA2R,iBAAA,CAAA,EACA3d,EAAAnK,KAAAM,KAAAugC,YAAA1qB,EAAA4R,KAAA,CAAA,GAEA5R,EAAA+V,2BAAA,IAAAxH,OAAA,IACAyH,GAAAhW,EAAA+V,2BAAA,IAAAjG,OAAA,GAUA,OARA9b,EAAAnK,KAAAM,KAAAwgC,oBAAAhY,EAAAqD,CAAA,CAAA,EAEAhiB,EAAAnK,KAAA,OAAA,EAEAmW,EAAAyrB,YACAz3B,EAAAnK,KAAAM,KAAA2hC,cAAA9rB,CAAA,CAAA,EAGAhM,EAAAyI,KAAA,EAAA,CACA,EAEA2uB,EAAAza,UAAAoa,UAAA,WACA,IAAA5uB,EAAAhS,KAAA66B,QAAA,GAEA1U,EAAA,CACArB,KAAA9kB,KAAAQ,aAAA9B,OACAqmB,KAAA,GACAG,QAAA,KACAC,aAAA,OACAC,YAAApT,EAAAoT,YACAE,mBAAAtT,EAAAsT,mBACAC,wBAAAvT,EAAAuT,wBACAa,SAAApU,EAAAoU,SACAhC,MAAApS,EAAAoS,MACAuB,MAAA3T,EAAA2T,MACAtR,SAAArC,EAAAqC,SACAuR,cAAA5T,EAAA4T,cACAvI,SAAArL,EAAAqL,SACA0I,MAAA/T,EAAA+T,MACArlB,WAAAsR,EAAAtR,WACAge,WAAA1M,EAAA0M,WACAjB,gBAAAzL,EAAAyL,gBACAoI,OAAA7T,EAAA6T,OACAzW,yBAAA4C,EAAA5C,yBACA6X,aAAAjV,EAAA7C,WACA,EA6BA,OA3BAgX,EAAAX,MAAA/mB,MAAA+nB,UAAAC,OAAAjhB,MAAA,IAAAwM,EAAAwT,OAAA,IAAApT,IAAA,SAAA3F,GACA,OAAAA,EACAiG,MAAA,GAAA,EACAN,IAAA,SAAAC,GACA,OAAA5L,SAAA4L,EAAA,EAAA,CACA,CAAA,CACA,CAAA,CAAA,EAEAL,EAAA0qB,SAAA1qB,EAAA0qB,OAAA9oB,OAAA5B,EAAA0qB,OAAA7oB,OACA7B,EAAA0qB,OAAAjc,cAAA7iB,MAAAwiB,gBAAAC,SACA8F,EAAAO,eAAA,CACAC,YAAA3U,EAAA0qB,OAAA9oB,MAAAtW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA9oB,KAAA,EAAA,KACAkT,UAAA9U,EAAA0qB,OAAA7oB,IAAAvW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA7oB,GAAA,EAAA,IACA,EACA7B,EAAA0qB,OAAAjc,cAAA7iB,MAAAwiB,gBAAAE,aACA6F,EAAAY,mBAAA,CACAJ,YAAA3U,EAAA0qB,OAAA9oB,MAAAtW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA9oB,KAAA,EAAA,KACAkT,UAAA9U,EAAA0qB,OAAA7oB,IAAAvW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA7oB,GAAA,EAAA,IACA,EACA7B,EAAA0qB,OAAAjc,cAAA7iB,MAAAwiB,gBAAAG,WACA4F,EAAAa,eAAA,CACAL,YAAA3U,EAAA0qB,OAAA9oB,MAAAtW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA9oB,KAAA,EAAA,KACAkT,UAAA9U,EAAA0qB,OAAA7oB,IAAAvW,MAAAspB,SAAAC,YAAA7U,EAAA0qB,OAAA7oB,GAAA,EAAA,IACA,IAIAsS,CACA,EAEA8a,EAAAza,UAAAqa,KAAA,SAAA1a,GACA,IAAAkW,EAAAr8B,KASA,OAPAA,KAAA4hC,cACA5hC,KAAA4hC,YAAAz8B,MAAA,EACAnF,KAAA4hC,YAAA,MAGAvF,EAAAwF,SAAA1lC,SAAAsO,cAAA,EAEA4xB,EAAAwF,UAIA7hC,KAAA4hC,YAAAtkC,MAAA+a,KAAAgB,KAAA,yCAAA8M,CAAA,GACAnoB,KAAA,SAAA8jC,GACAzF,EAAAuF,YAAA,KACAvF,EAAAqC,WAAAoD,EAAApD,WAEAlH,EAAA,EAAAsK,EAAApD,WACArC,EAAA0F,cAAAD,EAAApD,UAAA,EAEAsD,EAAA3F,EAAAwF,SAAA,KAAA,CAAA,CAAA,EAEA,IAAAI,EAAA,GAyBA,OAvBAH,EAAAj+B,MAAAi+B,EAAAj+B,MAAA,IAAAuO,IAAA,SAAAyD,GACAlS,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAAwM,EAAAE,kBAAA,GACAksB,EAAAviC,KAAA,CACAlC,IAAAqY,EAAAE,mBACAmsB,cAAA,CAAA,CACA,CAAA,EAGAjH,EAAA,IAAAlC,EAAAz7B,MAAAo9B,OAAArX,MAAAxN,CAAA,CAAA,EAIA,OAFAolB,EAAAC,WAAAmB,EAAAQ,cAEA5B,CACA,CAAA,EAEA6G,EAAAj+B,KAAAnB,KAAA,SAAAuW,EAAAC,GACA,OAAAA,EAAA7b,GAAA4b,EAAA5b,EACA,CAAA,EAEAykC,EAAAj+B,KAAA3E,QAAA,SAAA2W,GACAwmB,EAAA77B,aAAAlD,MAAAqmB,UAAA0Y,EAAA77B,aAAAqV,EAAA,KAAA,CACA,CAAA,EAEAosB,CACA,EAAA,SAAA1pB,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA,SAAAikC,GACA,GAAAA,aAAAxjC,OAAAwjC,EAAAvjC,OAIA,OAAApB,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,CACA,CAAA,EACAjkC,KAAA,SAAAmkC,GACAA,aAAA1jC,OAAA0jC,EAAAzjC,SAIAyjC,EAAAjjC,QAAA,SAAA+rB,GACAtnB,YAAAC,uBAAAC,KAAAuF,QAAA6hB,EAAAztB,KAAAytB,CACA,CAAA,EAEAkX,EAAAjjC,QAAA,SAAA+rB,GACA,IAIAtf,EAJAsf,EAAA8O,YAIApuB,EAAAhI,YAAAC,uBAAAC,KAAAuF,QAAA6hB,EAAA8O,cAMApuB,EAAA/L,SAAA+L,EAAA/L,UAAA,GACA+L,EAAA/L,SAAAF,KAAAurB,CAAA,EACAtf,EAAA/L,SAAA8C,KAAApF,MAAA8kC,cAAA,EAEAnX,EAAAnf,OAAAH,EACA,CAAA,EACA,EAAA,SAAA4M,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EA7EAjc,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,CA8EA,EAEA+gC,EAAAza,UAAA6b,YAAA,SAAAxsB,GACA,IAAAsQ,EAAA,CACAmc,QAAAzsB,EAAAxY,GACAynB,KAAA,EACAC,KAAA,GACA,EAEA,OAAAznB,MAAA+a,KAAAgB,KAAA,8CAAA8M,CAAA,EACAnoB,KAAA,SAAA8jC,GACA,IAAAG,EAAA,GAuBA,OArBApsB,EAAAqrB,YAAA5kC,EAAA8V,IAAA0vB,EAAAj+B,KAAA,SAAAm2B,GACAr2B,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAA2wB,EAAA8B,UAAA,GACAmG,EAAAviC,KAAA,CACA6iC,YAAAvI,EAAAwI,mBACAN,cAAA,CAAA,CACA,CAAA,EAGAjH,EAAA,IAAAnC,GACAx7B,MAAAo9B,OAAAC,WAAAX,EAAA,CAAA,EAAA,CAAA,CAAA,CACA,EAIA,OAFAiB,EAAAC,WAAArlB,EAAAqlB,WAEAD,CACA,CAAA,EAEAplB,EAAAqrB,YAAAx+B,KAAA,SAAAuW,EAAAC,GACA,OAAAD,EAAAkK,sBAAAoE,QAAA,EAAArO,EAAAiK,sBAAAoE,QAAA,CACA,CAAA,EAEA0a,CACA,EAAA,SAAA1pB,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA,SAAAikC,GACA,GAAAA,EAAAvjC,OAIA,OAAApB,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,CACA,CAAA,EACAjkC,KAAA,SAAAmkC,GACA,IAAAM,EAAAnlC,MAAA2tB,QAAAyX,qCAAAP,CAAA,EAEA,GAAAM,EAIA,IAAA,IAAA9vB,KAAA8vB,EAAA,CACA,GAAA,CAAA7K,EACA,MAGAA,EAAAjlB,GAAA8vB,EAAA9vB,EACA,CACA,EAAA,SAAA4F,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,CACA,EAEA0oB,EAAAza,UAAAmc,WAAA,SAAAtoB,GACA,IAAAva,EAAAxD,EAAAyD,SAAA,EACAG,EAAAJ,EAAAI,QAAA,EACA2V,EAAA7V,KAAA86B,gBAAAzgB,CAAA,EAeA,OAbAxE,GAEAA,EAAAqrB,aAAA,IAAAxiC,OACAoB,EAAAG,QAAA4V,CAAA,GAEAvY,MAAA6a,QAAAC,KAAA,EAEApY,KAAAqiC,YAAAxsB,CAAA,EAAAmrB,KAAA,WACAlhC,EAAAG,QAAA4V,CAAA,EACAvY,MAAA6a,QAAAK,KAAA,CACA,CAAA,GATA1Y,EAAAwtB,OAAA,EAYAptB,CACA,EAEA+gC,EAAAza,UAAAmb,cAAA,SAAA9rB,GACA,IAAAwmB,EAAAr8B,KACA6J,EAAA,GAqCA,OAnCAA,EAAAnK,KAAA,0DAAA0D,OAAAyS,EAAArY,IAAAqY,EAAAxY,EAAA,CAAA,EACAwM,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,kBAAA,EACAmK,EAAAnK,KAAA,SAAA,EACAmK,EAAAnK,KAAA,YAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,+BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,aAAA,EACAmK,EAAAnK,KAAA,SAAA,EACAmK,EAAAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,iBAAA,EACAmK,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,sFAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,iFAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,qFAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,mFAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAA,SAAA,GAEAmW,EAAAqrB,aAAA,IAAAxiC,QAGAmX,EAAAqrB,aAAA,IAAAhiC,QAAA,SAAA86B,GACAnwB,EAAAnK,KAAAkjC,GAAApc,UAAAsa,UAAAW,KAAApF,EAAArC,CAAA,CAAA,CACA,CAAA,EAJAnwB,EAAAnK,KAAAkjC,GAAApc,UAAAua,eAAAU,KAAAzhC,IAAA,CAAA,EAOA6J,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEA2uB,EAAAza,UAAAgb,YAAA,SAAAL,GACA,IAAAxuB,EAAAwuB,EAAAl9B,KAAA,KAAA,EAEAk9B,EAAA17B,SAAA,2BAAArC,OAAAuP,CAAA,CAAA,EAAA+D,OAAA,CACA,EAEAuqB,EAAAza,UAAA+a,YAAA,SAAAJ,GACA,IAAA9E,EAAAr8B,KACAqa,EAAA8mB,EAAAl9B,KAAA,KAAA,EAEAjE,KACA2iC,WAAAtoB,CAAA,EACA2mB,KAAA,SAAAnrB,GAIA,OAHAsrB,EAAA1e,MAAA4Z,EAAAsF,cAAA9rB,CAAA,CAAA,EACAsrB,EAAAtkC,KAAA,KAAA,EAAA6K,GAAA,QAAApK,MAAA+vB,eAAA,EAEAxX,CACA,CAAA,CACA,EAEAorB,EAAAza,UAAAub,cAAA,SAAA52B,GACA4E,EAAAlT,KAAA,2BAAA,EAAA0G,KAAA4H,GAAA,EAAA,CACA,EAEA81B,EAAAza,UAAAwb,iBAAA,WACA,IAAA3F,EAAAr8B,KACAmmB,EAAAnmB,KAAA4gC,UAAA,EAMA,OAJAza,EAAApB,KAAA,EAEAsX,EAAAwF,SAAA1lC,SAAAsO,cAAA,EAEAzK,KAAA6gC,KAAA1a,CAAA,EAAAnoB,KAAA,SAAAiG,GAQA,OAPAA,IACAuzB,EAAA,EAAAvzB,EAAAy6B,WACArC,EAAA0F,cAAA99B,EAAAy6B,UAAA,GAGAsD,EAAA3F,EAAAwF,SAAA,KAAA,CAAA,CAAA,EAEA59B,EAAAy6B,UACA,EAAA,WACArC,EAAA0F,cAAA,GAAA,CACA,CAAA,CACA,EAEAd,EAAAza,UAAAuW,eAAA,SAAA7a,GACA,IAoBAC,EApBAD,IAIArM,EAAA7V,KAAA86B,gBAAA5Y,EAAAE,QAAA,KAMAvM,EAAAwM,SAAA/kB,MAAAuY,MAAAyM,yBAAAJ,EAAAG,QAAA,GAEAE,EAAAlS,EAAAxT,KAAA,gBAAAgZ,EAAArY,IAAA,IAAA,GAEAkB,UAIA6jB,EAAA1lB,KAAA,iBAAA,EAAA6Z,OAAA,EAEAyL,EAAAniB,KAAAogC,+BAAAvqB,EAAA6N,WAAA7N,EAAAwM,QAAA,EACAE,EAAA1lB,KAAA,kBAAA,EAAA4lB,MAAAN,CAAA,EACA,EA7oBA,IAAA8e,GA+oBAA,EA9oBA,SAAAA,EAAAjvB,GACAhS,KAAA8+B,gBAAAhW,EAAAtD,MAAAqT,2BACA74B,KAAAQ,aAAA,GACAR,KAAA0+B,WAAA,EAGA1+B,KAAA66B,OAAAzV,aADApT,EAAAA,GAAA,IACAoT,YACAplB,KAAA66B,OAAAvV,mBAAAtT,EAAAsT,mBACAtlB,KAAA66B,OAAAtV,wBAAAvT,EAAAuT,wBACAvlB,KAAA66B,OAAAzrB,yBAAA4C,EAAA5C,yBAEA4C,EAAA0qB,SACA18B,KAAA66B,OAAA6B,OAAA1qB,EAAA0qB,QAGA1qB,EAAAoS,QACApkB,KAAA66B,OAAAzW,MAAApS,EAAAoS,OAGApS,EAAA2T,QACA3lB,KAAA66B,OAAAlV,MAAA3T,EAAA2T,MAEA,GAuoBAid,EAAApc,UAAA,IAAA9B,GAEAsU,YAAA4J,GAEApc,UAAAuY,aAAA,WACAra,EAAA8B,UAAAuY,aAAA0C,KAAAzhC,IAAA,EAEAA,KAAA0hC,YAAA,EACA1hC,KAAAm/B,aAAA,CACA,EAEAyD,EAAApc,UAAAkb,YAAA,WACA3xB,EAAAlT,KAAA,uCAAA,EAEAA,KAAA,oDAAA,EAAAkG,SAAA,MAAA,CACA,EAEA6/B,EAAApc,UAAA2Y,aAAA,WACAvuB,EAAA7N,SAAA,MAAA,EACA0N,EAAA1N,SAAA,MAAA,EACAgN,EAAAlT,KAAA,sBAAA,EAAAkG,SAAA,MAAA,EACAsN,EAAA3J,IAAA,MAAAmxB,EAAAtW,YAAA,EAAAxR,EAAAlK,SAAA,kBAAA,EAAA0b,YAAA,EAAA,EAAA,CACA,EAEAqhB,EAAApc,UAAAyZ,aAAA,WACA,IAAAp2B,EAAA,GA0BA,OAxBAA,EAAAnK,KAAA,YAAA,EACAmK,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,+BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,aAAA,EACAmK,EAAAnK,KAAA,SAAA,EACAmK,EAAAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,MAAA,EAEAxC,WAAAC,MAAAsa,mBAAA,OAAAnZ,cAAAd,GAAA,GACAqM,EAAAnK,KAAA,iDAAA0D,OACApD,KAAA68B,cAAA,UAAA,EAAA,CAAA,EAGAhzB,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,2EAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,sEAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,0EAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,eAAA0D,OAAAI,QAAAC,EAAA,wEAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,UAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEAswB,EAAApc,UAAA0Z,WAAA,WACA,IAAAr2B,EAAA,GAWA,OATAA,EAAAnK,KAAA,YAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,+BAAA,EACAmK,EAAAnK,KAAA,6BAAA,EACAmK,EAAAnK,KAAA,aAAA,EACAmK,EAAAnK,KAAA,iBAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEAswB,EAAApc,UAAAua,eAAA,WACA,MAAA,iDACA39B,OAAAI,QAAAC,EAAA,uCAAA,CAAA,CACA,EAEAm/B,EAAApc,UAAAsa,UAAA,SAAA9G,GACA,IAAAnwB,EAAA,GACAgC,EAAAmuB,EAAAb,eAAA,EA0BA,OAxBAtvB,EAAAnK,KAAA,+CAAA0D,OACA42B,EAAAx8B,IAAAw8B,EAAA38B,EAAA,CAAA,EAEAwM,EAAAnK,KAAA,MAAA,EAEAxC,WAAAC,MAAAsa,mBAAA,OAAAnZ,cAAAd,GAAA,GACAqM,EAAAnK,KAAA,8BAAA0D,OACA42B,EAAAkB,WAAA,UAAA,EAAA,CAAA,EAGArxB,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,qCAAA0D,OACA42B,EAAAH,QAAAh4B,OAAA2B,QAAAC,EAAA,eAAA,CAAA,CAAA,EAEAoI,GACAhC,EAAAnK,KAAA,8BAAA0D,OAAAyI,CAAA,CAAA,EAGAhC,EAAAnK,KAAAM,KAAA0gC,YAAA1G,CAAA,CAAA,EACAnwB,EAAAnK,KAAAM,KAAAsgC,gBAAAtG,EAAA7W,qBAAA,CAAA,EACAtZ,EAAAnK,KAAAM,KAAAygC,WAAAzG,EAAA/W,MAAA,CAAA,EAEApZ,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAEAswB,EAAApc,UAAAoa,UAAA,WACA,IAAA5uB,EAAAhS,KAAA66B,QAAA,GAEA,MAAA,CACA/V,KAAA9kB,KAAAQ,aAAA9B,OACAqmB,KAAA,GACAG,QAAA,wBACAC,aAAA,OACA0d,QAAA,EACAzd,YAAApT,EAAAoT,YACAE,mBAAAtT,EAAAsT,mBACAC,wBAAAvT,EAAAuT,uBACA,CACA,EAEAqd,EAAApc,UAAAqa,KAAA,SAAA1a,GACA,IAAAkW,EAAAr8B,KAIA,OAFAq8B,EAAAwF,SAAA1lC,SAAAsO,cAAA,EAEA4xB,EAAAwF,SAIAvkC,MAAA+a,KAAAgB,KAAA,8CAAA8M,CAAA,EACAnoB,KAAA,SAAA8jC,GACAzF,EAAAqC,WAAAoD,EAAApD,WAEAjH,EAAA,EAAAqK,EAAApD,WACArC,EAAA0F,cAAAD,EAAApD,UAAA,EACAsD,EAAA3F,EAAAwF,SAAA,KAAA,CAAA,CAAA,EAEA,IAAAI,EAAA,GAyBA,OAvBAH,EAAAj+B,MAAAi+B,EAAAj+B,MAAA,IAAAuO,IAAA,SAAA4nB,GACAr2B,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAA2wB,EAAA8B,UAAA,GACAmG,EAAAviC,KAAA,CACAlC,IAAAw8B,EAAA8B,WACAoG,cAAA,CAAA,CACA,CAAA,EAGAjH,EAAA,IAAAnC,GAAAx7B,MAAAo9B,OAAAC,WAAAX,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAIA,OAFAiB,EAAAC,WAAAmB,EAAAQ,cAEA5B,CACA,CAAA,EAEA6G,EAAAj+B,KAAAnB,KAAA,SAAAuW,EAAAC,GACA,OAAAD,EAAAkK,sBAAAoE,QAAA,EAAArO,EAAAiK,sBAAAoE,QAAA,CACA,CAAA,EAEAua,EAAAj+B,KAAA3E,QAAA,SAAA+7B,GACAoB,EAAA77B,aAAAlD,MAAAqmB,UAAA0Y,EAAA77B,aAAAy6B,EAAA,KAAA,CACA,CAAA,EAEAgH,CACA,EAAA,SAAA1pB,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA,SAAAikC,GACA,GAAAA,aAAAxjC,OAAAwjC,EAAAvjC,OAIA,OAAApB,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,CACA,CAAA,EACAjkC,KAAA,SAAAmkC,GACA,IAAAM,EAAAnlC,MAAA2tB,QAAAyX,qCAAAP,CAAA,EAEA,GAAAM,EAIA,IAAA,IAAA9vB,KAAA8vB,EAAA,CACA,GAAA,CAAA7K,EACA,MAGAA,EAAAjlB,GAAA8vB,EAAA9vB,EACA,CACA,EAAA,SAAA4F,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EA/DAjc,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,CAgEA,EAEA0iC,EAAApc,UAAAub,cAAA,SAAA52B,GACA4E,EACAlT,KAAA,2BAAA,EACA0G,KAAA4H,GAAA,EAAA,CACA,EAEAy3B,EAAApc,UAAAwb,iBAAA,WACA,IAAA3F,EAAAr8B,KACAmmB,EAAAnmB,KAAA4gC,UAAA,EAEAza,EAAApB,KAAA,EAEAsX,EAAAwF,SAAA1lC,SAAAsO,cAAA,EAEAzK,KAAA6gC,KAAA1a,CAAA,EAAAnoB,KAAA,SAAAiG,GAQA,OAPAA,IACAwzB,EAAA,EAAAxzB,EAAAy6B,WACArC,EAAA0F,cAAA99B,EAAAy6B,UAAA,GAGAsD,EAAA3F,EAAAwF,SAAA,KAAA,CAAA,CAAA,EAEA59B,CACA,EAAA,WACAo4B,EAAA0F,cAAA,GAAA,CACA,CAAA,CACA,EAtOA,IAAAa,GAwOAA,EAvOA,SAAAA,EAAA5wB,GACAhS,KAAA8+B,gBAAAhW,EAAAtD,MAAAsT,sBACA94B,KAAAQ,aAAA,GACAR,KAAA0+B,WAAA,EAGA1+B,KAAA66B,OAAAzV,aADApT,EAAAA,GAAA,IACAoT,YACAplB,KAAA66B,OAAAvV,mBAAAtT,EAAAsT,mBACAtlB,KAAA66B,OAAAtV,wBAAAvT,EAAAuT,uBACA,CAiOA,SAAAoZ,GAAA97B,GACA,IA0HAkrB,EA1HA/b,EAAA,CACAoT,YAAA9mB,cAAAd,IACA8nB,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACAqE,yBAAApB,CACA,EAEA4pB,EAAA,GACA3pB,EAAA/Q,WAAAC,MAAAsa,mBACA7Z,MAAA4L,OAAAgkB,YAAAC,+BACAnvB,cAAAd,GACA,EAEAiS,EAAAie,KAAA,8BAAA,0FAAA,GA4LAhhB,EAAA,IAEAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAuZ,QACAjhB,EAAAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EAEAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAwZ,aACAlhB,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,8CAAA,CAAA,CAAA,EAGA0Q,OAAAC,UAAAD,OAAAC,SAAA0V,gBACApd,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,iDAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,+CAAA,CAAA,CAAA,EACAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wDAAA,CAAA,CAAA,EA1JAiM,EAAA3M,SAAA,MAAA,EACA4M,EAAA5M,SAAA,MAAA,EACA6M,EAAA7M,SAAA,MAAA,EACA8M,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAzM,YAAA,MAAA,EACA0M,GAAAjN,SAAA,MAAA,EACAkN,GAAAlN,SAAA,MAAA,EACAmN,GAAAnN,SAAA,MAAA,EACAoN,GAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,GAAA9M,YAAA,QAAA,GAoCAnG,EAAAG,MAAAuwB,mBAAAvvB,cAAAd,GAAA,GACAkF,KAAApF,MAAAwwB,cAAA,EAIAC,EAAAzwB,MAAA0wB,mBAAA1vB,cAAAd,GAAA,EAEAuwB,EAAApI,MACAzX,EAAA6f,EAAAE,aACA9f,EAAA4f,EAAAG,gBAzCA2J,EAAAh7B,KAAA,MAAA,EAAA0G,KAAAC,QAAAC,EAAA,4BAAA,EAAA,GAAA,EACAo0B,EAAAh7B,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,8DAAA,CAAA,EACAo0B,EAAAh7B,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,yDAAA,CAAA,EAEAq0B,EAAAj7B,KAAA,YAAA,EAAA0G,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAs0B,EAAAl7B,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,uDAAA,CAAA,EACAs0B,EAAAl7B,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,iDAAA,CAAA,EACAs0B,EAAAl7B,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EAEAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACAgN,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EAEAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACAnH,EAAA,8CAAA,EAAAiH,KAAAC,QAAAC,EAAA,8CAAA,CAAA,EACAnH,EAAA,4CAAA,EAAAiH,KAAAC,QAAAC,EAAA,4CAAA,CAAA,EAEAnH,EAAA,2CAAA,EAAAiH,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EACAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACAnH,EAAA,2CAAA,EAAAiH,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EACAnH,EAAA,iDAAA,EAAAiH,KAAAC,QAAAC,EAAA,gDAAA,CAAA,EACAnH,EAAA,2CAAA,EAAAiH,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EACAnH,EAAA,kDAAA,EAAAiH,KAAAC,QAAAC,EAAA,kDAAA,CAAA,EACAnH,EAAA,0CAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EACAnH,EAAA,wDAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EAEAnH,EAAA,0CAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EACAkO,EAAA9U,KAAA,YAAA,EAAA0G,KAAAC,QAAAC,EAAA,2CAAA,CAAA,EAiBAo0B,EAAAlwB,IAAA,mBAAA,EAIAkwB,EAAAnwB,GAAA,oBAAA,sBAAAo7B,EAAA,EACAjL,EAAAh7B,KAAA,KAAA,EAAA6K,GAAA,QAAApK,MAAA+vB,eAAA,EAhHAiK,EAAAA,GAAA,GAEAz0B,GAAAA,EAAAmP,SACAnP,EAAAmP,OAAA9C,eACA8C,EAAA0qB,OAAA75B,EAAAmP,OAAA9C,cAGArM,EAAAmP,OAAAoS,iBAAA3lB,QACAuT,EAAAoS,MAAAvhB,EAAAmP,OAAAoS,MAAAhS,IAAA,SAAA6B,GACA,OAAAA,EAAAzW,GACA,CAAA,GAGAqF,EAAAmP,OAAA2T,iBAAAlnB,SACAuT,EAAA2T,MAAA9iB,EAAAmP,OAAA2T,MAAAvT,IAAA,SAAA8B,GACA,OAAAA,EAAA1W,GACA,CAAA,GAIA85B,EAAA54B,OACA44B,EAAAp4B,QAAA,SAAAg4B,GACAA,EAAAvtB,MAAAqI,CAAA,CACA,CAAA,GAEAslB,EAAA53B,KAAA,IAAAuhC,GAAAjvB,CAAA,CAAA,EACAslB,EAAA53B,KAAA,IAAAkjC,GAAA5wB,CAAA,CAAA,GAIAulB,EADA10B,GAAA,sBAAAA,EAAAq0B,MACAI,EAAA,GACAz0B,GAAA,2BAAAA,EAAAq0B,MACAI,EAAA,GAEAC,GAAAD,EAAA,GAGAA,EAAAp4B,QAAA,SAAAg4B,GACAA,IAAAK,GACAL,EAAA8K,iBAAA,CAEA,CAAA,CACA,CAyEA,SAAAc,KACA,IAAAC,EAAAt8B,SAAAnK,EAAA0D,IAAA,EAAAiE,KAAA,KAAA,EAAA,EAAA,EAAA,GAEAszB,EAAAD,EAAAyL,IACA3qB,KAAA,CACA,CAEA,SAAAkB,GAAAxR,GACAA,IACA4N,EAAApZ,EAAAwL,EAAA6N,aAAA,EACAgiB,EAAA,CAAAjiB,EAAAjO,SAAA,WAAA,GAFA,IAWA8R,EACAC,EACAC,EARAG,EAAA7J,EAAAlT,KAAA,yBAAA,EAEA,MAAA+c,IAIAL,EAAAK,EAAA/c,KAAA,wBAAA,EACA2c,EAAAI,EAAA/c,KAAA,gCAAA,EACA4c,EAAAG,EAAA/c,KAAA,qCAAA,EAEA+c,EAAAnS,SAAA,iBAAA,GAAAkwB,GACA/d,EAAAtW,YAAA,iBAAA,EACAsW,EAAA7W,SAAA,UAAA,EACAyW,EAAAlW,YAAA,aAAA,EACAmW,EAAAnW,YAAA,MAAA,EACAmW,EAAA5c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACA8S,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EAEA+J,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAxW,SAAA,WAAA,IAEA6W,EAAA7W,SAAA,iBAAA,EACAyW,EAAAzW,SAAA,aAAA,EACA0W,EAAA1W,SAAA,MAAA,EACAyW,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EAEA+J,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAjW,YAAA,WAAA,GAGA+M,EAAA3J,IAAA,MAAAmxB,EAAAtW,YAAA,EAAAxR,EAAAlK,SAAA,kBAAA,EAAA0b,YAAA,EAAA,EAAA,EACA,CAEA,SAAAnJ,GAAA1U,EAAAb,GACA0qB,EAAApxB,SAAA8M,KAAAvF,CAAA,EAEA,GAAA,CAAA6pB,EAAA7vB,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAEAwgC,GAAA97B,CAAA,EACA00B,EAAAnf,KAAA,CACA,CA2CA,SAAA2pB,GAAA92B,EAAA+3B,GACA,IAWAC,EAXA9mC,SAAAC,UAAA6O,GAEAtN,aAAAC,MAAAC,yBAAA2E,iCAKA,GAAAwgC,IACAA,EAAA,IAGAC,EAAAzmC,EACAK,KAAA,mCAAAuG,OAAA6H,CAAA,CAAA,EACAi4B,EAAA1mC,EACAK,KAAA,oCAAAuG,OAAA6H,CAAA,CAAA,EAEAg4B,EACA3/B,YAAA,SAAA,EACAgI,KAAA,QAAA03B,CAAA,EACAnmC,KAAA,QAAA,EAAAgN,KAAAm5B,CAAA,EAEAE,EACA5/B,YAAA,SAAA,EACAgI,KAAA,QAAA03B,GAAA,GAAA,EAEAC,EACAn8B,YAAA,UAAA,CAAA,CAAAk8B,CAAA,EACA,CAEA,SAAAhB,EAAAjhC,EAAAoiC,EAAAC,GACA,GAAAriC,EAIA,OAAAqiC,EACArB,KAAAA,GACAhhC,EAAAvD,IACAg6B,GAAAC,EAAA,IAAA,EACA,GAEAsK,GAAAhhC,EAAAvD,IAAA,EAAA,EAnDAyN,EAoDAlK,EAAAvD,IAnDAhB,EACAK,KAAA,mCAAAuG,OAAA6H,CAAA,CAAA,EACAlI,SAAA,SAAA,EAEAvG,EACAK,KAAA,oCAAAuG,OAAA6H,CAAA,CAAA,EACAlI,SAAA,SAAA,EA+CAojB,EAAA,CACAf,YAAA9mB,cAAAd,IACA8nB,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACA83B,QAAA,CACA,EAEAvmC,EAAAmpB,OAAA,CAAA,EAAAU,EAAAgd,CAAA,EAEAzL,GACAA,EAAAvyB,MAAA,EAGAuyB,EAAAp6B,MAAA+a,KAAAgB,KAAA,+CAAA8M,EAAA,SAAA2b,GACAC,GAAAhhC,EAAAvD,IAAAskC,EAAA,IAAA,EAAA,CACA,EAAA,SAAAuB,EAAAC,EAAAC,GACA,UAAAD,GACAvB,GAAAhhC,EAAAvD,IAAA,EAAA,CAEA,CAAA,EAIA,CAOAgD,EAAAgE,KAAA4T,GACA5X,EAAA8J,OA3FA,WACAitB,GACAA,EAAA1d,OAAA,CAEA,EAwFArZ,EAAAJ,iBAAA4hC,EACAxhC,EAAAyE,QARA,WACA2yB,EAAA,KACApnB,EAAAmU,MAAA,CACA,EAOA7oB,EAAA0E,aAAAA,EAEA1E,EAAA0E,YACA,EAAA0L,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,ECtnGA,SAAAL,GACA,IAQA0nC,EACAnK,EACAoK,EAAAC,EACAC,EAAAC,EAEAC,EAbA/+B,EAAA,GAKAg/B,EAAA,GACAC,EAAAD,EASAE,EAAA,CAIA1jC,OAAA,EAIA2jC,sBAAA,EAIAC,oBAAA,CACA,EAKAC,EAAAH,EAAA1jC,OAEAmP,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACAu7B,EAAA5nB,EAAApT,KAAA,aAAA,EACAqT,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EACA8nC,EAAAn0B,EAAApT,KAAA,eAAA,EACAwnC,EAAAD,EAAAvnC,KAAA,OAAA,EACA+T,EAAAtU,EAAA,+BAAA,EACAgoC,EAAAhoC,EAAA,wCAAA,EACAioC,EAAAjoC,EAAA,oCAAA,EACAkoC,EAAAloC,EAAA,iCAAA,EACAmoC,EAAAnoC,EAAA,6BAAA,EACAooC,EAAAz0B,EAAApT,KAAA,iBAAA,EACAyR,EAAA,CACAq2B,WAAA,CAAA,EACAjf,WAAA,CAAA,CACA,EA2CA,SAAAkf,IAIA,IAAAC,EAAA50B,EAAAhK,WAAA,CAAA,CAAA,EACA6+B,EAAA70B,EAAAsR,YAAA,CAAA,CAAA,GAMAwiB,EAAApP,KAAAoQ,KALAF,EAAAC,EACA,MAEAD,EAAA,GAEA,GAEAf,IACAC,EAAAD,EAEA,CA2DA,SAAAhxB,IACAkyB,EAAA,EACAC,EAAA,CACA,CAEA,SAAAD,IACA,IACAzhC,EADA2O,EAAAqyB,EAAA1nC,KAAA,YAAA,EAGAsV,GAAAsxB,GAAA,IAAArxB,IAAA,SAAA8yB,GACA,OAAAA,EAAArjC,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAglC,EAAAhlC,OACA8E,QAAAC,EAAA,qCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAq2B,WAAA,CAAA,IAEAphC,EAAAC,QAAAC,EAAA,6CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAq2B,WAAA,CAAA,GAGAzyB,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA0hC,IACA,IACA1hC,EADA2O,EAAAuyB,EAAA5nC,KAAA,YAAA,EAGAsV,EAAA7V,EAAA8V,IAAAwxB,EAAA,SAAAhb,GACA,GAAAtrB,MAAAC,SAAAomC,EAAA/a,EAAAprB,IAAA,KAAA,EACA,OAAAorB,EAAA/mB,KAEA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAklC,EAAAllC,OACA8E,QAAAC,EAAA,oCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAoX,WAAA,CAAA,IAEAniB,EAAAC,QAAAC,EAAA,4CAAA,EACAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAoX,WAAA,CAAA,GAGAxT,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAoG,EAAAw7B,GAjEA,IACApzB,EAiEAozB,EAAAA,GAAA,CAAA,EAEA3B,EAAA,EACAnK,EAAA,GAEAgE,kBAAA7kB,KAAA,EAEAosB,EAAA,GAxEA7yB,EAAAzD,EAAAq2B,aAEAR,IAAAH,EAAA1jC,SACAyR,EAAAA,GAAAzD,EAAAoX,YAGA9U,EAAA9J,YAAA,SAAAiL,CAAA,EAoEAqzB,EAAA,EAEAD,EACAE,EAAA,EACArnC,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,EAKA86B,EAAA,CACA,CAuBA,SAAAxrB,IACA5J,EAAApT,KAAA,2BAAA,EAAA6J,IAAA,YAAA,MAAA,EAEApK,EAAA+J,KAAA4J,EAAApT,KAAA,gBAAA,EAAA,SAAAs3B,EAAAmR,GACA,IAAAC,EAAAjpC,EAAAgpC,CAAA,EACA5/B,EAAA6/B,EAAAv/B,MAAA,EACAiuB,EAAA,GAEA33B,EAAA+J,KAAAk/B,EAAA1/B,SAAA,EAAA,SAAAsuB,EAAAC,GACA,IACAC,EADAC,EAAAh4B,EAAA83B,CAAA,EAGAE,EAAA7sB,SAAA,WAAA,GACA4sB,EAAAC,EAAAtuB,MAAA,EAAA,EACAN,GAAA4uB,EAAAruB,WAAA,CAAA,CAAA,EAAAouB,EAAA,EAEAJ,EAAAv0B,KAAA,CAAA40B,EAAAD,EAAA,GAEA3uB,GAAA4uB,EAAAruB,WAAA,CAAA,CAAA,CAEA,CAAA,EAEAguB,EAAAvxB,KAAA,SAAAuW,EAAAC,GAAA,OAAAD,EAAA,GAAAC,EAAA,EAAA,CAAA,EAEA5b,MAAAi3B,OAAAN,EAAA,SAAAG,EAAAI,GACA,IAAAF,EAAAF,EAAA,GACAC,EAAAD,EAAA,GACA1uB,EAAA8uB,EAAA,GACAC,EAAAD,EAAA,GACAE,EAAAC,KAAAC,MAAAlvB,EAAA+uB,CAAA,EASA,OAPAJ,GAAAK,EACAhvB,GAAA2uB,GAEAC,EAAA5tB,IAAA,YAAAguB,CAAA,EACAhvB,GAAAgvB,GAGA,CAAAhvB,EAAA+uB,EAAA,EACA,EAAA,CAAA/uB,EAAAuuB,EAAAv1B,OAAA,CACA,CAAA,CACA,CAEA,SAAA8mC,IACAd,EAAAj9B,SAAA,UAAA,GAIA49B,EAAA,CACA,CAEA,SAAAA,IACAjB,EAAAz8B,IAAA,uBAAA,EAEArK,MAAA6a,QAAAC,KAAA,EACAssB,EAAA3hC,SAAA,UAAA,EAEA,IAAAojB,EAoZA,WACA,IAAAA,EAAA,CACArB,KAAA0e,GAAA,EACAze,KAAAgf,EACA3e,YAAA9mB,cAAAd,IACAioC,mBAAAtpC,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACA26B,WAAAvB,CACA,EAEAhe,EAAAwf,WAAAlC,GAAA,IAAArxB,IAAA,SAAA8yB,GACA,OAAAz+B,SAAAy+B,EAAA1nC,IAAA,EAAA,CACA,CAAA,EAEA2oB,EAAAwf,UAAAjnC,QACA,OAAAynB,EAAAwf,UAGAxB,IAAAH,EAAA1jC,SACA6lB,EAAAT,WAAA,IAEAie,GAAA,IAAAzkC,QAAA,SAAA0pB,GACAA,EAAAprB,IACAkV,MAAA,GAAA,EACAxT,QAAA,SAAA0mC,GACAzf,EAAAT,WAAApoB,MAAAqmB,UAAAwC,EAAAT,WAAAjf,SAAAm/B,EAAA,EAAA,CAAA,CACA,CAAA,CACA,CAAA,EAEAzf,EAAAT,WAAAhnB,QACA,OAAAynB,EAAAT,YAIA,OAAAS,CACA,EAvbA,EAEA,OAwbA7oB,MAAA+a,KAAAgB,KAAA,gBAxbA8M,CAwbA,EAvbAnoB,KAAA6nC,EAAA,EACA7nC,KAAA8nC,GAAA,SAAAvtB,GACAmsB,EAAAphC,YAAA,UAAA,EACAhG,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA+nC,EAAA,EACA/nC,KAAA,SAAAq7B,GAGA,OAFAqL,EAAAphC,YAAA,UAAA,EAEA+1B,aAAA56B,OAIA46B,EAAA36B,SAAAqlC,EACAK,EAAA18B,GAAA,wBAAA0Z,EAAA,GAEAsjB,EAAAhuB,OAAA,EACAguB,EAAA,MAIAX,EAAAD,EAEAO,EAAAxnC,KAAA,YAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEA/vB,MAAA6a,QAAAK,KAAA,EAEA6gB,GAnBA,IAoBA,CAAA,CACA,CAEA,SAAA9e,IACA3J,EAAAtN,YAAA,QAAA,EACAmgC,EAAA,KAEAU,IAAAH,EAAA1jC,SACAqjC,EAAA,KAEA,CAEA,SAAAlpB,IACAF,EAAA,EACAzH,EAAA,EACA+G,EAAA,EACAlQ,EAAA,CAAA,CAAA,CACA,CAEA,SAAAq8B,IACA,IAAAnjC,EAAA,CACAM,MAAAK,QAAAC,EAAA,uCAAA,EACAkX,QAAAsrB,EACAprB,gBAAA4oB,EACA3oB,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAk/B,EAAA7gC,CAAA,CACA,CAEA,SAAAojC,EAAAC,GACAzC,GAAAyC,GAAA,IAAA9zB,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAshC,EAAA/wB,EAAA,KAAA,CACA,CAAA,EAEAqyB,EAAA,EACAnrB,EAAA,EACAlQ,EAAA,CAAA,CAAA,CACA,CAEA,SAAAw8B,IACA,IAAAtjC,EAAA,CACAM,MAAAK,QAAAC,EAAA,sCAAA,EACAkX,QAAAyrB,EACAvrB,gBAAA8oB,EACA7oB,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAo/B,EAAA/gC,CAAA,CACA,CAEA,SAAAujC,EAAAC,GACA1C,GAAA0C,GAAA,IAAAj0B,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAwhC,EAAAjxB,EAAA,KAAA,CACA,CAAA,EAEAsyB,EAAA,EACAprB,EAAA,EACAlQ,EAAA,CAAA,CAAA,CACA,CAEA,SAAA28B,EAAAx+B,GACA,IAGAy+B,EAFA5jB,EADArmB,EAAA0D,IAAA,EACAiE,KAAA,UAAA,EACAuiC,EAAAlpC,MAAA8E,SAAAi3B,EAAA1W,EAAA,UAAA,EAyCA,OAtCA6jB,IACA,WAAAhI,KAAAgI,EAAAlN,QAAA,EACA1W,YAAA3Z,KAAA,CACA4Z,SAAAwW,EACAvW,cAAAH,EACAP,SAAAokB,EAAAC,kBAAAD,EAAAE,UAAA,KACA7D,QAAA2D,EAAAC,kBAAAD,EAAAG,SAAA,KACAC,OAAA,cACAC,SAAA,UACAC,WAAA,MACA,CAAA,EACA,WAAAtI,KAAAgI,EAAAlN,QAAA,IAKAyN,EAAA,CACAC,YAAArkB,EACAskB,YALAV,EADAC,EAAAU,UAAA5pC,MAAAC,SAAAipC,EAAAU,SAAAC,qBAAA,WAAA,EACA,iCAAA1c,KAAA9H,CAAA,EAAA,OAKA4jB,EACA1kC,MAAA2kC,EAAA3kC,KACA,EAEA2kC,EAAAC,oBACAM,EAAAK,kBAAA,CACA/jB,MAAA,CACAhmB,GAAAmpC,EAAAG,SACA9kC,MAAA2kC,EAAAa,YACAp9B,KAAAu8B,EAAAd,UACA,CACA,GAGA,IAAApoC,MAAAgqC,OAAAC,YAAAR,CAAA,EACAviC,KAAA,IAIAsD,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAogC,EAAA1/B,GACA,IAQA6K,EARA5K,EAAAzL,EAAA0D,IAAA,EAoBA,OAnBA+H,EAAA9D,KAAA,MAAA,IAEA+/B,EAAA1jC,QACAqK,EAAA5C,EAAA9D,KAAA,IAAA,EAEA+d,YAAAxd,KAAAmG,CAAA,IAEAgI,EAAA5K,EAAA9D,KAAA,KAAA,EAEAo5B,kBAAAjlB,KAAA,CACA5a,IAAAmV,EACA2qB,QAAAv1B,EACAw1B,QAAAttB,EACAutB,WAAAvtB,EACAwtB,WAAA,CAAA,CACA,CAAA,GAGA31B,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAga,KACA,IAAAC,EAAA+iB,EAAA9iB,YAAA,EACA+iB,EAAA9iB,YAAA,CAAA,CAAA,EAGAF,EAFA+iB,EAAA5iB,UAAA,GAEA,MACA4iB,EAAAz8B,IAAA,uBAAA,EAEA09B,EAAA,EAEA,CAEA,SAAAQ,GAAAxM,GACA,IAAA4I,EAAA,GAeA,OAbA5I,GAAA,IAAAn6B,QAAA,SAAAsnC,GACAA,CAAAA,EAAAphB,aAIAzhB,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAAm9B,EAAAphB,WAAA,GACAye,EAAAx6B,eAAAm9B,EAAAphB,WAAA,GAIA6c,EAAAviC,KAAA,CAAAlC,IAAAgpC,EAAAphB,WAAA,CAAA,CACA,CAAA,EAEA6c,EAAAvjC,OAIApB,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,EACAjkC,KAAA,SAAAmkC,GAKA,OAJAA,GAAA,IAAAjjC,QAAA,SAAA+rB,GACA4Y,EAAA5Y,EAAAztB,KAAAytB,CACA,CAAA,EAEAoO,CACA,CAAA,EAVA/8B,EAAAyD,SAAA,EAAAE,QAAAo5B,CAAA,EAAAn5B,QAAA,CAWA,CAEA,SAAA4lC,GAAAzM,GAGA,OAFAmK,GAAAA,GAAA,IAAAnK,GAAA,IAAA36B,OAEApC,EAAA8V,IAAAinB,GAAA,GAAAoO,EAAA,CACA,CAEA,SAAAA,GAAAjB,GACA,IAAAkB,EAkCA,OAhCAlB,EAAAzK,UAAA,IAAAnb,KAAA4lB,EAAAzK,SAAA,EACAyK,EAAAmB,QAAA,CACA/B,EAAA,CAAA5/B,MAAA,IAAA0kB,OAAA,GAAA,EACAkd,EAAA,CAAA5hC,MAAA,IAAA0kB,OAAA,GAAA,EACAmd,EAAA,CAAA7hC,MAAA,EAAA0kB,OAAA,CAAA,EACAod,EAAA,CAAA9hC,MAAA,EAAA0kB,OAAA,CAAA,CACA,EAEA8b,EAAAU,WACA,KAAAQ,GAAAlB,EAAAU,SAAAa,OAAA,IAAAr1B,MAAA,GAAA,GAAAhU,SACA8nC,EAAAmB,QAAA/B,EAAA5/B,MAAAS,SAAAihC,EAAA,GAAA,EAAA,GAAA,IACAlB,EAAAmB,QAAA/B,EAAAlb,OAAAjkB,SAAAihC,EAAA,GAAA,EAAA,GAAA,KAGA,KAAAA,GAAAlB,EAAAU,SAAAc,OAAA,IAAAt1B,MAAA,GAAA,GAAAhU,SACA8nC,EAAAmB,QAAAC,EAAA5hC,MAAAS,SAAAihC,EAAA,GAAA,EAAA,GAAA,IACAlB,EAAAmB,QAAAC,EAAAld,OAAAjkB,SAAAihC,EAAA,GAAA,EAAA,GAAA,KAGA,KAAAA,GAAAlB,EAAAU,SAAAe,OAAA,IAAAv1B,MAAA,GAAA,GAAAhU,SACA8nC,EAAAmB,QAAAE,EAAA7hC,MAAAS,SAAAihC,EAAA,GAAA,EAAA,GAAA,EACAlB,EAAAmB,QAAAE,EAAAnd,OAAAjkB,SAAAihC,EAAA,GAAA,EAAA,GAAA,GAGA,KAAAA,GAAAlB,EAAAU,SAAAgB,OAAA,IAAAx1B,MAAA,GAAA,GAAAhU,UACA8nC,EAAAmB,QAAAG,EAAA9hC,MAAAS,SAAAihC,EAAA,GAAA,EAAA,GAAA,EACAlB,EAAAmB,QAAAG,EAAApd,OAAAjkB,SAAAihC,EAAA,GAAA,EAAA,GAAA,GAIArO,EAAA35B,KAAA8mC,CAAA,EAEAA,CACA,CAEA,SAAAT,GAAA1M,GACA,IAAAxvB,EAAA,GAmBA,OAjBA25B,GAaA35B,EAAAvN,EAAA8V,IAAAinB,GAAA,GAAA8O,EAAA,EAEA9D,EAAAxnC,KAAA,iBAAA,EAAAurC,OAAAv+B,EAAAyI,KAAA,EAAA,CAAA,IAdAzI,EAAA,CACA,kCACA,oCACA,0BAAAzG,OAAAI,QAAAC,EAAA,iCAAA,CAAA,EACA,SACA,UAGA4gC,EAAAx6B,KAAAA,EAAAyI,KAAA,EAAA,CAAA,GAQA+mB,CACA,CAEA,SAAAgP,KACA,IAAAtgC,EAAAzL,EAAA0D,IAAA,EAEA+H,EAAAN,SAAA,UAAA,IAIAM,EACAhF,SAAA,UAAA,EACA0C,SAAA,EACAnC,YAAA,UAAA,EAEA6gC,EAAAp8B,EAAA9D,KAAA,QAAA,EAEA2M,EAAA9J,YAAA,OAAAq9B,IAAAH,EAAAE,mBAAA,EACAI,EAAAx9B,YAAA,OAAAq9B,IAAAH,EAAAE,mBAAA,EACAK,EAAAz9B,YAAA,OAAAq9B,IAAAH,EAAAE,mBAAA,EAEAM,EAAA19B,YAAA,OAAAq9B,IAAAH,EAAA1jC,MAAA,EACAmkC,EAAA39B,YAAA,OAAAq9B,IAAAH,EAAA1jC,MAAA,EAEAuZ,EAAA,EACAlQ,EAAA,CAAA,CAAA,EACA,CAEA,SAAAw+B,GAAA3B,GACA,IAAA38B,EAAA,GAgBA,OAdAA,EAAAnK,KAAA,kDAAA0D,OAAAojC,EAAAnc,QAAA,CAAA,EAEA,WAAAmU,KAAAgI,EAAAlN,QAAA,EACAzvB,EAAAnK,KAeA,kCAfA,EACA8mC,EAAAlc,MACAzgB,EAAAnK,KAoBA,SAAA8mC,GACA,IAAA38B,EAAA,GAEA0gB,EAAA,kBACAC,EAAA,GAEA9mB,EAJA,+DAIA+mB,KAAA+b,EAAAlc,KAAA,EAEA,GAAA5mB,GAAA,IAAAA,EAAAhF,OAAA,CAQA,IAJA,IAAAsH,EAAAS,SAAA/C,EAAA,GAAA,EAAA,EACAgnB,EAAAjkB,SAAA/C,EAAA,GAAA,EAAA,EACAinB,EAAAjnB,EAAA,IAGAA,EAAA6mB,EAAAE,KAAA+b,EAAAlc,KAAA,IACAE,EAAA9qB,KAAAgE,EAAA,GAAAyd,KAAA,EAAA,UAAA,EAEAzd,IAWA,OATA8mB,EAAA9rB,SACAmL,EAAAnK,KAAA,qJACA0D,OAAA4C,EAAA0kB,CAAA,CAAA,EACA7gB,EAAAnK,KAAA,gKAAA0D,OAAAwnB,OAAAC,QAAA2b,EAAAnc,QAAA,CAAA,EAEAxgB,EAAAnK,KAAAirB,CAAA,EACA9gB,EAAAnK,KAAA,QAAA,GAGAmK,EAAAyI,KAAA,EAAA,CArBA,CAsBA,EApDAk0B,CAAA,CAAA,EAEA38B,EAAAnK,KAeA,gDAAA0D,OAAAwnB,OAAAC,QAAA,YAfA2b,EAeAnc,QAAA,CAfA,EAGAxgB,EAAAnK,OAiDA8mC,EAjDAA,GAkDAC,kBAKA,SAAAD,GACA,IAAA/d,EAAAnrB,MAAA0Y,qBAAA,CAAA/L,KAAAu8B,EAAAd,UAAA,CAAA,EACAviC,EAAAqjC,EAAAa,aAAA7jC,QAAAC,EAAA,eAAA,EAEA,MAAA,+FACAL,OAAAojC,EAAAE,UAAAF,EAAAG,SAAAle,EAAA+d,EAAAG,SAAArpC,MAAAwE,WAAAqB,CAAA,CAAA,CACA,EAEA,SAAAqjC,GACA,IAAAvb,EAAAtnB,YAAAC,uBAAAC,KAAAuF,QAAAo9B,EAAAphB,aAEA6F,EAAAA,GACA4Y,EAAA2C,EAAAphB,aAGA6F,EAAAA,GACA,CAAAppB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,EAGA,MAAA,2FACAL,OACAojC,EAAAE,UACAF,EAAAG,SACAnjC,QAAAC,EAAA,gBAAA,EACAnG,MAAAwE,WAAAmpB,EAAAppB,KAAA,CACA,CACA,GA9BA2kC,CAAA,CAnDA,EAEA38B,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CAuHA,SAAA8yB,IACAf,EAAA1f,MAAA,EACA0f,EAAAnuB,OAAA,0CACA9S,OAAAI,QAAAC,EAAA,8BAAA,CAAA,CAAA,EAEAihC,EAAAz0B,EAAApT,KAAA,iBAAA,CACA,CASAiI,EAAAN,KA5tBA,SAAAd,GAGA,GAAA,EAFA6pB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAkDAuR,EAAA3M,SAAA,MAAA,EACA4M,EAAA5M,SAAA,MAAA,EACA6M,EAAA7M,SAAA,MAAA,EACA8M,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACAiN,EAAAjN,SAAA,MAAA,EACAkN,EAAA3M,YAAA,MAAA,EACA4M,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAvDAshC,EAAA,EAEAf,EAAA,GACAL,EAAA,EACAnK,EAAA,GAEA5pB,EAAAie,KACA,8BACA,0FACA,EAEA0X,EAAA,EAgDAvN,EAAAh7B,KAAA,MAAA,EAAA0G,KAAAC,QAAAC,EAAA,6BAAA,CAAA,EACAo0B,EAAAh7B,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAo0B,EAAAh7B,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,oDAAA,CAAA,EACAo0B,EAAAh7B,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,kDAAA,CAAA,EAEAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACA6gC,EAAA/gC,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACA+gC,EAAAjhC,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAihC,EAAAnhC,KAAAC,QAAAC,EAAA,8BAAA,CAAA,GAIAigC,EAAA,IAEAhkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EACAigC,EAAAhkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,CAAA,GAIAmgC,EAAA,IAEAlkC,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,CAAA,EACAmgC,EAAAlkC,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,CAAA,EACAmgC,EAAAlkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,CAAA,EACAmgC,EAAAlkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,6CAAA,CAAA,CAAA,EACAmgC,EAAAlkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,4CAAA,CAAA,CAAA,EACAmgC,EAAAlkC,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,+CAAA,CAAA,CAAA,EArEAqP,EAAA,EAiKA+kB,EAAAlwB,IAAA,iBAAA,EACAy8B,EAAAz8B,IAAA,uBAAA,EACAiJ,EAAAjJ,IAAA,oBAAA,EACA48B,EAAA58B,IAAA,4BAAA,EACA88B,EAAA98B,IAAA,2BAAA,EACA08B,EAAA18B,IAAA,gBAAA,EACA08B,EAAA18B,IAAA,mBAAA,EACAsI,EAAAtI,IAAA,qBAAA,EAIAkwB,EAAAnwB,GAAA,kBAAA,oBAAA2gC,EAAA,EACAz3B,EAAAlJ,GAAA,qBAAA+S,CAAA,EACA8pB,EAAA78B,GAAA,6BAAAs+B,CAAA,EACAvB,EAAA/8B,GAAA,4BAAAy+B,CAAA,EACA9B,EAAA38B,GAAA,iBAAA,QAAA4+B,CAAA,EACAjC,EAAA38B,GAAA,oBAAA,qBAAA8/B,CAAA,EACAv3B,EAAAvI,GAAA,sBAAA,kBAAA89B,CAAA,EA9KA3rB,EAAA,EAzBAwrB,EAAA,CACA,EA+sBAvgC,EAAAwF,OAAAuP,EACA/U,EAAAmH,aAAAsO,EACAzV,EAAAG,QAVA,WACA4+B,EAAA,KAEAuB,EAAA,EACA/H,kBAAA7kB,KAAA,CACA,EAOA1c,EAAAgJ,MAAAA,CACA,EAAAoH,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,ECjyBA,SAAAL,GACA,IAEAwsC,EACAC,EACAC,EAkBAC,EAtBA/jC,EAAA,GAMA8K,EAAAlT,EAAA,MAAA,EACAmT,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAosC,EAAA/4B,EAAA9S,KAAA,wBAAA,EACAL,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EAmFA,SAAAqsC,IACA,IAAAh2B,EAAArW,EAAA0D,IAAA,EAAAiE,KAAA,KAAA,EAEA3G,MAAA+a,KAAAuwB,IAAA,YAAAj2B,CAAA,EACA3U,KAAA,SAAA4W,GACAA,EAAAtX,MAAAo9B,OAAAb,QAAAjlB,CAAA,EAEAmF,aAAAvV,KAAA,CAAAq1B,QAAAjlB,EAAA3K,KAAA,gBAAA,CAAA,CACA,CAAA,CACA,CAEA,SAAA4+B,IACA,IAAAl2B,EAAArW,EAAA0D,IAAA,EAAAiE,KAAA,KAAA,EAEA8V,aAAAvV,KAAA,CAAAq1B,QAAAyO,EAAA31B,GAAA1I,KAAA,gBAAA,CAAA,CACA,CAEA,SAAAyY,IACA,IAAAC,EAAArmB,EAAA0D,IAAA,EAAAiE,KAAA,UAAA,EAEA2e,YAAA3Z,KAAA,CAAA4Z,SAAAvkB,cAAAwG,MAAAge,cAAAH,CAAA,CAAA,CACA,CAEA,SAAAqa,EAAAl1B,GACA,IAsCAghC,EACAC,EAvCAhhC,EAAAzL,EAAA0D,IAAA,EACAk9B,EAAAn1B,EAAA9D,KAAA,gBAAA,EACA+kC,EAAAjhC,EAAA9D,KAAA,eAAA,EACAglC,EAAAX,EAAAU,GAEAC,IAYAnhC,EAAAV,gBAAA,EAEA9J,MAAAC,SAAA0B,KAAAuK,OAAA,MAAA,IAAA,IAIAy/B,EAAAh/B,OAAArM,MAAAsM,YAAAxF,OAMAwkC,GAFAD,EAAAn9B,OAEAq9B,oBAAA,IAAAC,0BAAA,GACAC,GAAAJ,EAAAE,oBAAA,IAAAC,0BAAA,GAEAE,EAAAJ,EACAziB,OAAA4iB,CAAA,EACAr3B,OAAA,SAAAu3B,GACA,OAAAlqC,MAAAgK,eAAAkgC,CAAA,CACA,CAAA,EAEAT,EAAA5rC,WAAAC,MAAA6B,mBAAAC,KAAAzB,IAAAc,cAAAd,GAAA,EACAurC,EAAAzqC,cAAAkK,UAAA,CAAA8gC,EAAA5qC,QAAA4qC,EAAAE,KAAA,SAAAD,GACA,OAAAT,EAAAW,SAAAF,CAAA,CACA,CAAA,GAEArM,GAAA6L,KAIA1L,kBAAAjlB,KAAA,CACA5a,IAAA0/B,EACAwM,WAAAT,EACAU,iBAAA,CAAAzM,EACAI,QAAAv1B,EACAw1B,QAAAmL,EACAlL,WAAA7tB,EACAkuB,UA7CA,SAAA7D,GACAjyB,EAAA9D,KAAA,iBAAA+1B,EAAAx8B,GAAA,EACAuK,EAAAlL,KAAA,mBAAA,EAAAgN,KAAAvM,MAAAkB,OAAAixB,OAAAuK,EAAA,CACA4P,iBAAA,CAAA,EACA5L,cAAA,CAAA,CACA,CAAA,CAAA,CACA,EAwCAP,WAAA,CAAA,IAAAsL,CACA,CAAA,EAEAv5B,EAAA7H,IAAA,sBAAA,EACA6H,EAAA9H,GAAA,uBAAA21B,kBAAA7kB,IAAA,EACA,CAEA,SAAAqxB,IAQA,IAAA3W,GAAAA,EAPA,CACA9N,YAAA9mB,cAAAd,IACA8nB,mBAAA,CAAA,EACAwkB,WAAA,CAAA,IAAA3tC,SAAA4O,2BAAA,CACA,KAQAzN,MAAA6a,QAAAC,KAAA,EAEA9a,MAAA+a,KAAAgB,KAAA,qBAAA6Z,CAAA,EACAl1B,KAAA+rC,CAAA,EACAC,KAAA,SAAAzxB,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,EACAjb,MAAA6a,QAAAK,KAAA,CACA,CAAA,EAdA,CAiBA,SAAAuxB,EAAApnB,GACAzW,OAAAzD,SAAA,yBAAArF,OAAAwnB,OAAAC,QAAAlI,CAAA,EACArlB,MAAA6a,QAAAK,KAAA,CACA,CAEA,SAAAqoB,IACA,IAIA1a,EAJA,OAAA7nB,cAAA2rC,eAAA3rC,cAAA4rC,aAIA/jB,EAAA,CACAgkB,mBAAA,CAAA,EACAC,kBAAA,CAAA,EACAC,wBAAAluC,SAAA4O,2BAAA,CACA,EAEAzN,MAAA+a,KAAAuwB,IAAA,YAAAtqC,cAAAd,IAAA,KAAA,KAAA2oB,CAAA,GATA7pB,EAAAyD,SAAA,EAAAE,QAAA,EAAAC,QAAA,CAUA,CAEA,SAAAoqC,EAAArmC,GACA,IAAA,IASA0O,EATAowB,EAAA,EAAAz9B,GAAArB,GAAA,IAAAvF,OAAAqkC,EAAAz9B,EAAAy9B,CAAA,GAAA,CACA,IAAAx8B,EAAAtC,EAAA8+B,IAEAx8B,EAAAjJ,MAAAo9B,OAAAb,QAAAtzB,EAAA,CAAA,CAAA,GACAgkC,WAAA,GAEAjC,EAAA/hC,EAAA/I,KAAA+I,CACA,CAEA,IAAAoM,KAAA21B,EACAA,CAAAA,EAAAj/B,eAAAsJ,CAAA,GAMApM,EAAAA,EAFA+hC,EAAA31B,IAEAnK,SAIAjC,EAAA0D,KAAA,KAIA1D,EAAA8C,eAAA,WAAA,GAIAi/B,EAAAj/B,eAAA9C,EAAAwzB,SAAA,IAIAxzB,EAAAuF,OAAAw8B,EAAA/hC,EAAAwzB,WAEAxzB,EAAA0D,OAAArM,MAAAsM,YAAAsgC,gBACAltC,CAAAA,MAAAmtC,iBAAA,IAIA,IAAAlkC,EAAAuF,OAAA4+B,UACAnC,EAAAl/B,eAAA9C,EAAAuF,OAAAtO,GAAA,IACA+qC,EAAAhiC,EAAAuF,OAAAtO,KAAA,CAAA,GAEA+I,EAAAuF,OAAA7B,OAAArM,MAAAsM,YAAAygC,iBACAnC,EAAAn/B,eAAA9C,EAAAuF,OAAAtO,GAAA,IACAgrC,EAAAjiC,EAAAuF,OAAAtO,KAAA,CAAA,GAIA+I,EAAAuF,OAAAy+B,WAAA7qC,KAAA6G,CAAA,EACAA,EAAAuF,OAAAy+B,WAAA7nC,KAAApF,MAAA8kC,cAAA,IAGA,OAAAn+B,CACA,CAEA,SAAAwrB,IACA,IA8OA5lB,EA9OAA,EAAA,GAGA+gC,GADAzuC,SAAAsO,cAAA,EACA9I,eAAA,IAAAkpC,aAAA,GAEAhhC,EAAAnK,KAuFA,4BAAApB,cAAAuD,MAAA,QAvFA,EAEA+oC,EAAAE,aACAjhC,EAAAnK,KA+FA,WACA,GAAA,CAAApB,cAAAysC,QACA,MAAA,GAGA,IAAAC,EAAA,GAEA1sC,cAAAysC,QAAAE,QAAA3sC,cAAAysC,QAAAG,cACAF,EAAAtrC,KAAApC,MAAAwE,WAAAxD,cAAAysC,QAAAE,MAAA,EAAA,IAAA3tC,MAAAwE,WAAAxD,cAAAysC,QAAAG,YAAA,EAAA,MAAA,EAGA5sC,cAAAysC,QAAAI,SAAA7sC,cAAAysC,QAAAK,MACAJ,EAAAtrC,KAAApB,cAAAysC,QAAAI,QAAA,IAAA7tC,MAAAwE,WAAAxD,cAAAysC,QAAAK,IAAA,EAAA,MAAA,EAGA9sC,cAAAysC,QAAAM,OACAL,EAAAtrC,KAAApC,MAAAwE,WAAAxD,cAAAysC,QAAAM,KAAA,EAAA,MAAA,EAGA,CAAA,IACAC,EADAhtC,cAAAysC,QAAAQ,aACAD,EAAAhuC,MAAAwE,WAAAxD,cAAAysC,QAAAQ,UAAA,EAEA,iBAAA/M,KAAA8M,CAAA,IACAA,EAAA,UAAAA,GAGAN,EAAAtrC,KAAA,YAAA4rC,EAAA,kCAAAA,EAAA,MAAA,EACA,CAEA,OAAAN,EAAAtsC,OACA8sC,EACAhoC,QAAAC,EAAA,uBAAA,EACAunC,EAAA14B,KAAA,EAAA,CAAA,EACA,EACA,EAjIA,CAAA,EAGAs4B,EAAAa,gBACA5hC,EAAAnK,KA+HA,WACA,IAAAgsC,EAAA//B,EAEAA,EAAArN,cAEA,KAAAqN,GAAA,CACA,GAAAA,EAAAggC,WAAA,CACAD,EAAA//B,EAAAggC,WACA,KACA,CAEAhgC,EAAAA,EAAAG,MACA,CAEA,OAAA4/B,EACAF,EACAhoC,QAAAC,EAAA,0BAAA,EACAioC,EAAAE,QAAA,qBAAA,MAAA,CAAA,EACA,EACA,EAlJA,CAAA,EAGAhB,EAAAiB,iBACAhiC,EAAAnK,KAgFApB,cAAAwtC,YACAN,EACAhoC,QAAAC,EAAA,2BAAA,EACAnF,cAAAwtC,YAAAF,QAAA,qBAAA,MAAA,CAAA,EACA,EApFA,EAGAhB,EAAAmB,mCACAnB,EAAAmB,kCAAAC,0BACAniC,EAAAnK,KAgPA,SAAAwzB,GACA,GAAA,CAAAA,EACA,MAAA,GAGA,IAAA+Y,EAAA3uC,MAAA2tB,QAAAihB,4BAAA5tC,cAAA6tC,oBAAA,EAEA,GAAA,CAAAF,EAAAvtC,OACA,MAAA,GAOA,IAJA,IAAAssC,EAAA,GACAoB,GAAAlZ,EAAA7V,UAAA,IAAA3e,OACA2tC,EAAAD,GAAAlZ,EAAAoZ,uBAEAC,EAAA,EAAAC,EAAAP,EAAAvtC,OAAA6tC,EAAAC,EAAAD,CAAA,GAAA,CACA,IAcAE,EAdAC,EAAAT,EAAAM,IAEAG,EAAA9sC,UAAA,IAAAlB,SAIAiuC,EAAAP,CAAAA,GACA9uC,MAAAsvC,gBAAAF,EAAArvB,SAAA6V,EAAA7V,QAAA,EAGAgvB,GAAAM,GAQA,KAJAF,EAAAE,EAAAD,EAAA9sC,SAAA8sC,EAAA9sC,SAAAoS,OACA66B,GAAAvvC,MAAAsvC,gBAAAC,EAAAxvB,SAAA6V,EAAA7V,QAAA,IAAAgvB,CACA,GAEA3tC,QAIAssC,EAAAtrC,KACAotC,EACAJ,EAAA7qC,OAAA2B,QAAAC,EAAA,eAAA,EACAgpC,EAAAr6B,IAAAgc,GACA,CACA,yBACAA,EAAAnkB,OAAArM,MAAAmvC,uBAAAroC,KACA,gCAAA0pB,EAAAvsB,OAAA2B,QAAAC,EAAA,eAAA,GAAA,SACA,GACA,+BAAA2qB,EAAA6L,MAAA,SACA,UACA3nB,KAAA,EAAA,CACA,EAAAA,KAAA,EAAA,CACA,CACA,EACA,CAEA,OAAA04B,EAAA14B,KAAA,EAAA,CACA,EAxSAs4B,EAAAmB,iCAAA,CAAA,EAGAnB,EAAAoC,yBACApC,EAAAoC,wBAAAC,gBACApjC,EAAAnK,KAqSA,SAAAwzB,GAYA,IAXA,IAAA8X,EAAA,GACAkC,EAAA3uC,OAAA+9B,KAAAkM,CAAA,EACAp2B,IAAA,SAAA+6B,GACA,OAAA7E,EAAA6E,EACA,CAAA,EACAn7B,OAAAo7B,CAAA,EACA1qC,KAAApF,MAAA8kC,cAAA,EAEAgK,GAAAlZ,EAAA7V,UAAA,IAAA3e,OACA2tC,EAAAD,GAAAlZ,EAAAoZ,uBAEAC,EAAA,EAAAC,EAAAU,EAAAxuC,OAAA6tC,EAAAC,EAAAD,CAAA,GAAA,CACA,IAAAG,EAAAQ,EAAAX,GACAI,EAAAP,CAAAA,GACA9uC,MAAAsvC,gBAAAF,EAAAxf,WAAAgG,EAAA7V,QAAA,EAGAgvB,GAAAM,GAUA,KANAU,EAAAV,EAAAD,EAAAnC,WAAAmC,EAAAnC,WAAAv4B,OACA66B,GAAAvvC,MAAAsvC,gBAAAC,EAAA3f,WAAAgG,EAAA7V,QAAA,IAAAgvB,GACAe,EAAAP,CAAA,IACAA,EAAA5iC,OAAArM,MAAAsM,YAAAsgC,gBAAAltC,MAAAmtC,iBAAA,EACA,GAEA/rC,QAIAssC,EAAAtrC,KACAotC,EACAJ,EAAA7qC,OAAA2B,QAAAC,EAAA,eAAA,EACA4pC,EAAAj7B,IAAA62B,GACA,CACA,uDAAA7lC,OAAA6lC,EAAAzrC,GAAA,EACAyrC,EAAAqE,eAAA,yBAAArE,EAAAqE,eAAA9vC,IAAA,IAAA,GACA,IACA,0BACAyrC,EAAAh/B,OAAArM,MAAAsM,YAAAxF,KAcA,SAAAukC,GACA,GAAAA,EAOA,MAAA,+CAHAA,EAAA6C,aAAA,OACAF,QAAA,qBAAA,MAAA,EAEA,QACA,EAEA,SAAA3C,GACA,IAIAp/B,EAJA,GAAAo/B,EAuBA,OAnBAp/B,EAAA,IAEAnK,KACA,8CACAupC,EAAApnC,MACA,QACA,EAEA+G,EAAAqgC,EAAAqE,eAAAhwC,MAAAkB,OAAAixB,OACAwZ,EAAAqE,eACA,CAAA1D,iBAAA,CAAA,EAAA5L,cAAA,CAAA,EAAAmE,SAAAmG,CAAA,CACA,EAAA,MAEAz+B,EAAAnK,KACA,gDACAkJ,EACA,QACA,EAEAiB,EAAAyI,KAAA,EAAA,CACA,GAjDA22B,CAAA,EAEA,SACA,UACA32B,KAAA,EAAA,CACA,EAAAA,KAAA,EAAA,CACA,CACA,CACA,CAEA,OAAA04B,EAAA14B,KAAA,EAAA,CACA,EA1VAs4B,EAAAoC,uBAAA,CAAA,EAGApC,EAAA2C,cACA1jC,EAAAnK,MAkNA0N,EAAA9Q,EAAA8V,IAAA9T,cAAA4uB,YAAA,GAAA,SAAAva,GACA,GAAAua,WAAA7jB,eAAAsJ,CAAA,GAAAua,WAAAva,GAAA1I,OAAArM,MAAAywB,aAAAC,QACA,OAAApB,WAAAva,GAAA9Q,KAEA,CAAA,GAEAnD,QAIA0O,EAAA1K,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAvN,EAAA8V,IAAAhF,EAAA,SAAAjK,GACA,MAAA,eAAAC,OAAAD,CAAA,CACA,CAAA,EAEAqqC,EACAhqC,QAAAC,EAAA,wBAAA,EACAoG,EAAAyI,KAAA,EAAA,CAAA,GAXA,EAzNA,EAGAs4B,EAAA6C,WACA5jC,EAAAnK,KA8HA,WACA,IAAAoN,EAAAxQ,EAAA8V,IAAA9T,cAAAqnB,OAAA,GAAA,SAAA+nB,GACA,GAAA/nB,MAAAtc,eAAAqkC,EAAAlwC,GAAA,EACA,OAAAmoB,MAAA+nB,EAAAlwC,KAAAqE,KAEA,CAAA,EAEA,GAAA,CAAAiL,EAAApO,OACA,MAAA,GAGAoO,EAAApK,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAvN,EAAA8V,IAAAtF,EAAA,SAAA3J,GACA,MAAA,eAAAC,OAAAD,CAAA,CACA,CAAA,EAEA,OAAAqqC,EACAhqC,QAAAC,EAAA,qBAAA,EACAoG,EAAAyI,KAAA,EAAA,CAAA,CACA,EAlJA,CAAA,EAGAs4B,EAAA+C,WACA9jC,EAAAnK,KA4YA,WACA,GAAA,EAAApB,cAAAwG,OAAA,IAAApG,OACA,MAAA,GAGAJ,cAAAwG,MAAApC,KAAA,SAAAuW,EAAAC,GACA,OAAA5b,MAAAswC,+BAAA30B,EAAAC,EAAA,CAAA,CAAA,CACA,CAAA,EAEA,IAAAmgB,EAAA/8B,EAAA8V,IAAA9T,cAAAwG,OAAA,GAAA,SAAA+oC,GACA,GAAA/oC,MAAAuE,eAAAwkC,EAAArwC,GAAA,EACA,OAAAsH,MAAA+oC,EAAArwC,IAEA,CAAA,EAEA,OAAA67B,EAAA36B,QAIAmL,EAAA,CACA,UACA,aACA,+BACA,cACA,UACAvN,EAAA8V,IAAAinB,EAAA,SAAAmN,GACA,GAAA,UAAAhI,KAAAgI,EAAAlN,QAAA,EACA+G,OAUAmG,EAVAA,EAWA38B,EAAA,GACAikC,EAAA,kBAAA1qC,OAAAwnB,OAAAC,QAAA2b,EAAAnc,QAAA,EAEAxgB,EAAAnK,KACA,8CAAA0D,OAAAojC,EAAAnc,QAAA,EACA,sBAAAjnB,OAAA0qC,CAAA,EACA,OACA,kDAAA1qC,OAAAojC,EAAA3kC,OAAA2B,QAAAC,EAAA,eAAA,CAAA,EACA,QACA,OACA,EAEAoG,EAAAyI,KAAA,EAAA,EAtBA61B,IA0BA4F,EACAC,EAlBAxH,EACA38B,EAeA28B,EAzBAA,EA6BA,GAAAA,EAAAv8B,OAAArM,MAAAqwC,SAAAC,KAAA,CAEAF,GADAxH,EAAAlN,UAAA,IAAA/7B,SAAA,KAAA,EACA,aAAAqtB,OAAAC,QAAA,YAAA2b,EAAAnc,SAAAuhB,QAAA,OAAA,MAAA,EAAA,OAGA,gCADAmC,EAAAzwC,MAAAwH,MAAAqpC,uBAAA3H,EAAAlN,QAAA,GACA,WAGA,IAAA8U,EAAA9wC,MAAAwH,MAAAupC,qBAAA7H,EAAA3kC,OAAA2kC,EAAAnc,QAAA,EAEAikB,EAAA,wCAAAlrC,OAAAwnB,OAAAC,QAAA2b,EAAAnc,SAAA+jB,CAAA,CACA,MAAA,GAAA5H,EAAAv8B,OAAArM,MAAAqwC,SAAAzsC,KAAA,CACAusC,EAAA,YAEA,IACAO,EAAA9H,EAAA+H,IAAAC,WAAA,GAAA,GAAAC,QAAAC,yBAAAlI,EAAA+H,GAAA,EACA9F,EAAAkG,SAAAnI,EAAA+H,GAAA,EACA/H,EAAA+H,GAIA,CAFA,MAAAK,GACAN,EAAA9H,EAAA+H,GACA,CAEAP,EAAA,+BAAAD,EAAA,UACA,MAAAvH,EAAAv8B,OAAArM,MAAAqwC,SAAAY,cACAd,EAAA,gBACAO,EAAA,mCAAA9H,EAAAsI,QACAd,EAAA,+BAAAD,EAAA,YACAvH,EAAAv8B,OAAArM,MAAAqwC,SAAAc,mBAAAvI,EAAAv8B,OAAArM,MAAAqwC,SAAAe,mBACAjB,EAAA,cACAO,EAAA,qBAAA9H,EAAAsI,QACAd,EAAA,+BAAAD,EAAA,YAkBA,MAfA,CACA,OACA,OACA,mDAAA3qC,OAAA6rC,UAAAX,CAAA,CAAA,EACAN,EACA,OACA,QACA,OACA,mDAAA5qC,OAAA6rC,UAAAX,CAAA,CAAA,EACA,kDAAAlrC,OAAAojC,EAAA3kC,OAAA2B,QAAAC,EAAA,eAAA,CAAA,EACA,OACA,QACA,SAGA6O,KAAA,EAAA,CA7EA,CAAA,EAAAA,KAAA,EAAA,EACA,WACA,YAGAw6B,EAAAtpC,QAAAC,EAAA,qBAAA,EAAAoG,EAAAyI,KAAA,EAAA,CAAA,GAlBA,EAmBA,EA/aA,CAAA,EAGAs4B,EAAAsE,cACArlC,EAAAnK,KA6IApB,cAAA6wC,SAIA3B,EACAhqC,QAAAC,EAAA,wBAAA,EACA2rC,UAAAC,SAAA/wC,cAAA6wC,QAAA,CACA,EANA,EA9IA,EAGAvE,EAAA0E,WACAzlC,EAAAnK,KAmJA,WACA,IAAA6vC,EAAAjzC,EAAA8V,IAAA9T,cAAAynB,OAAA,GAAA,SAAApT,GACA,GAAAhP,YAAAwb,WAAAtb,KAAAuF,QAAAC,eAAAsJ,CAAA,EACA,OAAAhP,YAAAwb,WAAAtb,KAAAuF,QAAAuJ,EAEA,CAAA,EAEA,GAAA,CAAA48B,EAAA7wC,OACA,MAAA,GAGA6wC,EAAA7sC,KAAApF,MAAA6wB,WAAA,EAEAtkB,EAAAvN,EAAA8V,IAAAm9B,EAAA,SAAA36B,GACA,MAAA,gDACAxR,OAAAwR,EAAApX,IAAAoX,EAAA/S,KAAA,CACA,CAAA,EAEA,OAAA2rC,EACAhqC,QAAAC,EAAA,qBAAA,EACAoG,EAAAyI,KAAA,EAAA,CAAA,CACA,EAxKA,CAAA,EAGAs4B,EAAA4E,cACA3lC,EAAAnK,KAsKA,WACA,IAAA+vC,EAAAlxC,OAAA+9B,KAAAiM,GAAA,EAAA,EAAAn2B,IAAA,SAAAO,GACA,OAAA21B,EAAA31B,EACA,CAAA,EAEA,GAAA,CAAA88B,EAAA/wC,OACA,MAAA,GAGA+wC,EAAA/sC,KAAApF,MAAA6wB,WAAA,EAEAtkB,EAAAvN,EAAA8V,IAAAq9B,EAAA,SAAAC,GACA,MAAA,uDACAtsC,OAAAssC,EAAAlyC,IAAAkyC,EAAA7tC,KAAA,CACA,CAAA,EAEA,OAAA2pC,EACAhoC,QAAAC,EAAA,wBAAA,EACAoG,EAAAyI,KAAA,IAAA,CAAA,CACA,EAzLA,CAAA,EAGAo2B,EACA7+B,KAAAA,EAAAyI,KAAA,EAAA,CAAA,EACAzV,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,CACA,CAEA,SAAAyf,EAAA6C,EAAAC,GACA,IAAA/lC,EAAA,CACA,kCACA,+BAiBA,OAdA8lC,GACA9lC,EAAAnK,KACA,qCACAiwC,EACA,QACA,EAGA9lC,EAAAnK,KACAkwC,EACA,SACA,QACA,EAEA/lC,EAAAyI,KAAA,EAAA,CACA,CAEA,SAAAk5B,EAAAmE,EAAApsC,GACA,OAAAupC,EAAA6C,EAAA,0BAAAvsC,OAAAG,CAAA,CAAA,CACA,CAEA,SAAAiqC,EAAAmC,EAAAC,GACA,OAAA9C,EAAA6C,EAAA,4BAAAvsC,OAAAwsC,CAAA,CAAA,CACA,CAmUA,SAAAxC,EAAA7mC,GACA,IAcAuiC,EAdA,MAAAviC,CAAAA,CAAAA,IASAspC,EALAA,IAAAtpC,EAAA4iC,oBAAA,IAAA2G,4BAAA,IACA99B,OAAA,SAAAu3B,GACA,OAAAlqC,MAAAgK,eAAAkgC,CAAA,CACA,CAAA,GAEA7qC,SAKAoqC,EAAA5rC,WAAAC,MAAA6B,mBAAAC,KAAAzB,IAAAc,cAAAd,GAAA,GAEAkB,QAAAmxC,EAAArG,KAAA,SAAAD,GACA,OAAAT,EAAAW,SAAAF,CAAA,CACA,CAAA,EACA,CAsHA7kC,EAAAF,KA/yBA,SAAAd,GAGA,GAAA,EAFA6pB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAEAb,MAAA6a,QAAAC,KAAA,EAiBAkwB,EAAA,GACAC,EAAA,GACAC,EAAA,GAEAC,EAAA,IAAAgG,QAAA,CACAsB,UAAA,IAAAzyC,MAAA0yC,iBAAA,CACAhnC,aAAA1K,cAAAd,GACA,CAAA,CACA,CAAA,EACAiS,EAAAie,KAAA,8BAAA,0FAAA,EAQAhe,EAAA3M,SAAA,MAAA,EACA4M,EAAArM,YAAA,MAAA,EACAsM,EAAA7M,SAAA,MAAA,EACA8M,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACAiN,EAAAjN,SAAA,MAAA,EACAkN,EAAAlN,SAAA,MAAA,EACAmN,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAIAqM,EAAAhI,IAAA,iBAAA,EACAgI,EAAAhI,IAAA,oBAAA,EACAgI,EAAAhI,IAAA,iBAAA,EACAgI,EAAAhI,IAAA,sBAAA,EACAgI,EAAAhI,IAAA,wBAAA,EACA6H,EAAA7H,IAAA,sBAAA,EAIAgI,EAAAjI,GAAA,kBAAA,QAAAihC,CAAA,EACAh5B,EAAAjI,GAAA,qBAAA,WAAAmhC,CAAA,EACAl5B,EAAAjI,GAAA,kBAAA,SAAAgb,CAAA,EACA/S,EAAAjI,GAAA,uBAAA,aAAAs1B,CAAA,EACArtB,EAAAjI,GAAA,yBAAA,0CAAAmiC,CAAA,EA7DAlmC,YAAAwb,WAAA8wB,OAAA,EACAjyC,KAAA6iC,EAAA,SAAAtoB,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAssC,EAAA,SAAA/xB,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAyxB,CAAA,EACAzxB,KAAAV,MAAA6a,QAAAK,IAAA,CACA,EAsxBA9T,EAAAO,QARA,WACAqjC,EAAA,GACAE,EAAA,GAEAE,EAAA/jB,MAAA,CACA,EAKA7oB,EAAA4I,KAAAA,CACA,EAAAwH,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,EC50BA,SAAAL,GACA,IAEAqQ,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EAAAzP,EACA0P,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EACAC,EACAsiC,EACAxc,EACA7lB,EAEAC,EAAAC,EAAAC,EAEAC,GACAC,GAAAC,GAwBAC,GA/CA9N,EAAA,GAmBA+N,EAAA,GAKAC,EAAA,CACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACAC,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAkhC,uBAAA,CAAA,EACAjhC,aAAA,CAAA,EACAC,YAAA,CAAA,EACAC,yBAAA,CAAA,CACA,EACAC,EAAA,CACAC,UAAA,KACAC,UAAA,IACA,EAIAC,GAAAlT,EAAA,MAAA,EACAmT,GAAAnT,EAAA,cAAA,EACAoT,GAAApT,EAAA,qBAAA,EACAqT,GAAArT,EAAA,gBAAA,EACAsT,GAAAtT,EAAA,kBAAA,EACAuT,GAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,GAAAzT,EAAA,wBAAA,EACA0T,GAAA1T,EAAA,sBAAA,EACA2T,GAAA3T,EAAA,iBAAA,EACA4T,GAAA5T,EAAA,mBAAA,EACA6T,GAAA7T,EAAA,aAAA,EACAE,GAAAF,EAAA,oBAAA,EACA8T,GAAA9T,EAAA,4BAAA,EACA+T,EAAAP,EAAAjT,KAAA,oBAAA,EACAyT,EAAAR,EAAAjT,KAAA,aAAA,EACA0T,EAAAD,EAAAzT,KAAA,aAAA,EACA2T,EAAAH,EAAAxT,KAAA,gBAAA,EACA+T,EAAAtU,EAAA,gCAAA,EACAmU,EAAAnU,EAAA,kCAAA,EACA8zC,EAAA9zC,EAAA,4BAAA,EACA+zC,EAAA/zC,EAAA,+BAAA,EACAg0C,EAAAh0C,EAAA,8BAAA,EACAuU,GAAAvU,EAAA,8BAAA,EACAwU,GAAAxU,EAAA,gCAAA,EACAyU,GAAAzU,EAAA,iCAAA,EACA0U,GAAA1U,EAAA,8BAAA,EACA2U,GAAA3U,EAAA,8BAAA,EACA4U,GAAA5U,EAAA,iCAAA,EACA6U,GAAA7U,EAAA,uCAAA,EACA8U,GAAA9U,EAAA,iCAAA,EACA+U,GAAA/U,EAAA,wCAAA,EACAgV,GAAAhV,EAAA,gCAAA,EACAiV,GAAAjV,EAAA,kCAAA,EACAkV,GAAAlV,EAAA,8BAAA,EACAmV,GAAAnV,EAAA,oCAAA,EACAoV,GAAApV,EAAA,yBAAA,EACAqV,EAAArV,EAAA,gCAAA,EACAi0C,GAAAj0C,EAAA,oCAAA,EACAk0C,GAAAl0C,EAAA,2CAAA,EACAm0C,EAAAn0C,EAAA,4BAAA,EAgFA,SAAAwW,KA6zBA,IA1BAC,EAlyBAd,GAAA,EACAe,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAg9B,GAAA,EAwyBAh/B,GAAAiC,IAAA5F,CAAA,EACA2D,GAAApG,KAAA,cAAA9H,QAAAC,EAAA,iBAAA,CAAA,EAEA6K,EAAAa,YAAA,CAAA,CAAApB,EACA+D,EAAA,EAMAzD,IAAAA,EAAAuF,OAAAvF,EAAAwF,MACAlC,EAAA5O,SAAA,iBAAA,EACAuL,EAAAY,aAAA,CAAA,EAEA3L,GACA,MAAA8K,EAAAuF,MAAApQ,QAAAC,EAAA,iBAAA,EAAA,IAAA4K,EAAAuF,MAAAE,eAAA,EAAA,IACA,KACA,MAAAzF,EAAAwF,IAAArQ,QAAAC,EAAA,eAAA,EAAA,IAAA4K,EAAAwF,IAAAC,eAAA,EAAA,MAEAvQ,EAAAC,QAAAC,EAAA,wCAAA,EAEAkO,EAAArO,YAAA,iBAAA,EACAgL,EAAAY,aAAA,CAAA,GAGAyC,EAAA9H,KAAAtG,CAAA,EACAuO,EAAA,EA5CAiB,EAAAzV,CAAAA,MAAAC,SAAA0B,KAAA8U,UAAA,OAAA,IAAA,GAEA,CAAAzW,MAAAC,SAAA0B,KAAA8U,UAAA,MAAA,IAAA,EAEAjE,EACAjT,KAAA,iDAAA,EACAiK,YAAA,OAAAiM,CAAA,EACAiB,KAAA,UAAAhG,CAAA,EAEA8B,EACAjT,KAAA,kDAAA,EACAiK,YAAA,OAAAiM,CAAA,EAEAzE,EAAAc,yBAAApB,EACA8D,EAAA,EAhyBAA,EAAA,CACA,CAEA,SAAAA,IACA,IAAAC,EAEAC,EAAA,IAAAA,KAAA1D,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,CACA,CA4QA,SAAAiX,KACA3J,EAAAtN,YAAA,QAAA,EAEAgL,EAAA,CACAC,WAAA,CAAA,EACAE,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAC,aAAA,CAAA,EACAC,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,iBAAA,CAAA,EACAkhC,uBAAA,CAAA,EACAjhC,aAAA,CAAA,EACAC,YAAA,CAAA,EACAC,yBAAA,CAAA,CACA,EAEAjD,EAAA,EAeA4B,EAFAmiC,EADAtiC,EADAD,EADAF,EADAF,EADAF,EADAF,EADAF,EADAF,EADAF,EADAD,EADAD,EADAF,EAAA,KAeAuB,EAAA,EAFAK,EAAA,GAGA,CA0BA,SAAA4D,KACA,IACA1O,EADA2O,EAAArB,GAAAhU,KAAA,YAAA,EAGAsV,GAAA1F,GAAA,IAAA2F,IAAA,SAAAC,GACA,OAAAA,EAAAxQ,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAgO,EAAAhO,OACA8E,QAAAC,EAAA,gCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAC,WAAA,CAAA,IAEAhL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAC,WAAA,CAAA,GAGA2D,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAS,GAAAC,GACA,IAAAN,EAAApB,GAAAjU,KAAA,YAAA,EAGA4V,EAAAnV,MAAAuL,sBAAA1M,SAAA0O,sBAAA,CAAA,EAEA4H,GAAA,CAAAD,EAGA,GAFAC,EAAAA,EAAAC,MAAA,GAAA,GAAA,IAEAhU,SACA2N,EAAA,GAEAoG,EAAAvT,QAAA,SAAAyT,GACAC,EAAAtV,MAAA8E,SAAAkK,EAAAqG,EAAA,KAAA,EAEAC,GAIAvG,EAAA3M,KAAAkT,CAAA,CACA,CAAA,IAEAvG,GAAA,IAAA3N,QAAA8T,IACAxM,EAAA8J,EAAA9J,MAAA,EAEAqG,EAAA,CACA/O,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,EACAhP,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,GAGA,IAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,IAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,IAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,EAGA,KAAAtG,GACAqG,EAAA3M,KAAApC,MAAA8E,SAAAkK,EAAA,KAAA,KAAA,CAAA,GAQA/I,GAJA4O,EAAA7V,EAAA8V,IAAA/F,EAAA,SAAAwG,GACA,OAAAA,EAAAhR,KACA,CAAA,GAEAnD,QAAAyT,EAAAzT,SAAA4N,EAAA5N,OAEAyT,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EADA9O,QAAAC,EAAA,kCAAA,EAGAyO,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAAyP,KACA,IACAzP,EADA2O,EAAAnB,GAAAlU,KAAA,YAAA,EAGAsV,GAAAxF,GAAA,IAAAyF,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAvB,EAAAuB,OACA8E,QAAAC,EAAA,mCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAE,cAAA,CAAA,IAEAjL,EAAAC,QAAAC,EAAA,2CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAE,cAAA,CAAA,GAGA0D,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAmB,KACA,IACA1P,EADA2O,EAAAlB,GAAAnU,KAAA,YAAA,EAGAsV,GAAAvF,GAAA,IAAAwF,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAvB,EAAAuB,OACA8E,QAAAC,EAAA,gCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAoB,KACA,IACA3P,EADA2O,EAAAjB,GAAApU,KAAA,YAAA,EAGAsV,GAAAtF,GAAA,IAAAuF,IAAA,SAAA8B,GACA,OAAAA,EAAArS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAoO,EAAApO,OACA8E,QAAAC,EAAA,gCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAI,WAAA,CAAA,IAEAnL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAI,WAAA,CAAA,GAGAwD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAqB,KACA,IAAAjB,EAAAC,EAAA5O,EAEA4Q,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAhB,GAAArU,KAAA,YAAA,GAEAsV,GAAApF,GAAA,IAAAqF,IAAA,SAAAkC,GACA,OAAAA,EAAAzS,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAsO,EAAAtO,OACA8E,QAAAC,EAAA,mCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAK,cAAA,CAAA,IAEApL,EAAAC,QAAAC,EAAA,2CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAK,cAAA,CAAA,GAGAuD,EAAArI,KAAAtG,CAAA,EAEAjH,EAAA,qCAAA,EAAAgH,YAAA,MAAA,EACA4N,GAAA5N,YAAA,MAAA,EAEAwO,EAAA,IA9BAxV,EAAA,qCAAA,EAAAyG,SAAA,MAAA,EACAmO,GAAAnO,SAAA,MAAA,EA8BA,CAEA,SAAAqQ,KACA,IAAAlB,EAAAC,EAAA5O,EAEA4Q,OAAAC,UAAAD,OAAAC,SAAAC,UAMAnC,EAAAf,GAAAtU,KAAA,YAAA,GAEAsV,GAAAlF,GAAA,IAAAmF,IAAA,SAAAmC,GACA,OAAAA,EAAA1S,KACA,CAAA,GAEAnD,QACA6E,EAAA4O,EAAAzT,SAAAwO,EAAAxO,OACA8E,QAAAC,EAAA,wCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAkM,mBAAA,CAAA,IAEAjX,EAAAC,QAAAC,EAAA,gDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAkM,mBAAA,CAAA,GAGAtI,EAAArI,KAAAtG,CAAA,EAEAjH,EAAA,2CAAA,EAAAgH,YAAA,MAAA,EACA6N,GAAA7N,YAAA,MAAA,EAEAwO,EAAA,IA9BAxV,EAAA,2CAAA,EAAAyG,SAAA,MAAA,EACAoO,GAAApO,SAAA,MAAA,EA8BA,CAEA,SAAAsQ,KACA,IACA9P,EADA2O,EAAAd,GAAAvU,KAAA,YAAA,EAGAsV,GAAAhF,GAAA,IAAAiF,IAAA,SAAAoC,GACA,OAAAA,EAAA3S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA0O,EAAA1O,OACA8E,QAAAC,EAAA,mCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAM,cAAA,CAAA,IAEArL,EAAAC,QAAAC,EAAA,2CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAM,cAAA,CAAA,GAGAsD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAwB,KACA,IACA/P,EADA2O,EAAAb,GAAAxU,KAAA,YAAA,EAGAsV,GAAA9E,GAAA,IAAA+E,IAAA,SAAAqC,GACA,OAAAA,EAAA5S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA4O,EAAA5O,OACA8E,QAAAC,EAAA,0CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAO,qBAAA,CAAA,IAEAtL,EAAAC,QAAAC,EAAA,kDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAO,qBAAA,CAAA,GAGAqD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAAyB,KACA,IACAhQ,EADA2O,EAAAZ,GAAAzU,KAAA,YAAA,EAGAsV,GAAA5E,GAAA,IAAA6E,IAAA,SAAAsC,GACA,OAAAA,EAAA7S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAA8O,EAAA9O,OACA8E,QAAAC,EAAA,kCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAQ,aAAA,CAAA,IAEAvL,EAAAC,QAAAC,EAAA,0CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAQ,aAAA,CAAA,GAGAoD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAA0B,KACA,IACAjQ,EADA2O,EAAAX,GAAA1U,KAAA,YAAA,EAGAsV,GAAA1E,GAAA,IAAA2E,IAAA,SAAAuC,GACA,OAAAA,EAAA9S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAgP,EAAAhP,OACA8E,QAAAC,EAAA,oCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAS,eAAA,CAAA,IAEAxL,EAAAC,QAAAC,EAAA,4CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAS,eAAA,CAAA,GAGAmD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAA2B,KACA,IACAlQ,EADA2O,EAAAV,GAAA3U,KAAA,YAAA,EAGAsV,GAAAxE,GAAA,IAAAyE,IAAA,SAAAwC,GACA,OAAAA,EAAA/S,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAU,WAAA,CAAA,IAEAzL,EAAAC,QAAAC,EAAA,wCAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAU,WAAA,CAAA,GAGAkD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAA4B,KACA,IACAnQ,EADA2O,EAAAT,GAAA5U,KAAA,YAAA,EAGAsV,GAAAvE,GAAA,IAAAwE,IAAA,SAAAiU,GACA,OAAAA,EAAAxkB,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EACAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAW,iBAAA,CAAA,IAEA1L,EAAAC,QAAAC,EAAA,8CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAW,iBAAA,CAAA,GAGAiD,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CAEA,SAAA4+B,KACA,IACAntC,EADA2O,EAAAs+B,GAAA3zC,KAAA,YAAA,EAGAsV,GAAA+9B,GAAA,IAAA99B,IAAA,SAAAzH,GACA,OAAArN,MAAA8E,SAAAsxB,EAAA/oB,EAAA,IAAA,GAAA,IAAA9I,KACA,CAAA,EAEAsQ,EAAAzT,QACA6E,EAAA4O,EAAAzT,SAAAg1B,EAAAh1B,OACA8E,QAAAC,EAAA,4CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAA6hC,uBAAA,CAAA,IAEA5sC,EAAAC,QAAAC,EAAA,oDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAA6hC,uBAAA,CAAA,GAGAj+B,EAAArI,KAAAtG,CAAA,EACAuO,EAAA,CACA,CA8DA,SAAAgD,KAGA,IAAAC,EACAC,EACAC,EACAC,EALAxL,QAAAyL,MAAAC,gCAAA,EAOA/F,EAAAC,UAAA+F,SAAA,4CAAA,EACA/F,UAAA,CACAgG,QAAA,CAAA,EACAC,WAAA,CAAA,EACAC,UAAA,CACAC,KAAA,SAAAxO,GACA,IAAAyO,EAAApZ,EAAA2K,EAAA0O,aAAA,EAIA,GAAA,EAFAX,EAAAY,GAAA,GAEAlX,OAAA,CACA,IAAAiU,EAAA+C,EAAAzR,KAAA,KAAA,EACA4R,EAAAzJ,EAAAuG,GAEA,GAAA,CAAAkD,EACA,OAGAb,EAAA,CAAAa,EACA,EAEAd,EAAAzY,EAAA,oBAAA,GAEAoC,SACAmL,EAgHA,SAAAuC,GACA,GAAA,EAAAA,aAAA3N,QAAA,IAAA2N,EAAA1N,OACA,OAAA,KAGA,IAAAmL,EAAA,CACA,sDACA,yBACA,2CACA,sDACA,SACA,+BAGA,CAAA,IACAgM,EACApN,EACAqN,EAHA,IAAA1J,EAAA1N,QACAmX,EAAAzJ,EAAA,GACA3D,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,oBACAD,EAAA,GAEArN,IACAqN,EAAA,CACA,6BACA,6DACArN,EAAA5G,MACA,SAIAgI,EAAAnK,KACApC,MAAA0Y,qBAAAH,CAAA,EAAAA,EAAAxY,GAAA,IAAAwY,EAAAI,SAAA,OACA,WAAA3Y,MAAAwE,WAAA+T,EAAAhU,KAAA,GAAA2B,QAAAC,EAAA,eAAA,EAAA,gBACAqS,EAAAxD,KAAA,EAAA,CACA,GAEAzI,EAAAnK,KACA,WACA0M,EAAA1N,OAAA,IAAA8E,QAAAC,EAAA,aAAA,CAAA0H,MAAAiB,EAAA1N,MAAA,CAAA,EACA,WACA,CACA,CAQA,OANAmL,EAAAnK,KACA,SACA,SACA,QACA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAhKA0C,CAAA,EACA1Y,EAAA,MAAA,EAAA4Z,OAAArM,CAAA,EACAkL,EAAAzY,EAAA,oBAAA,GAGA6Z,EAAAlP,EAAAmP,QAAA,EACAC,EAAApP,EAAAqP,QAAA,EAEAvB,EACArO,IAAA,CAAA6P,IAAAF,EAAAG,KAAAL,CAAA,CAAA,EACAlS,KAAA,CAAAkS,EAAAA,EAAAE,EAAAA,CAAA,CAAA,CACA,EACAI,IAAA,WAGAvB,EADAD,EADAD,EAAA,KAIAD,aAAAzY,GAIAyY,EAAA2B,OAAA,CACA,CACA,CACA,CAAA,EAEArH,EAAAE,UAAA8F,SAAA,iBAAA,EACAsB,SAAA,CACAC,OAAA,4BACAC,QAAAvZ,MAAAwZ,WAAAC,2BACAC,YAAA,SAAA/P,GACA,IAOAwB,EAPAwO,EAAA3a,EAAA2K,EAAA0O,aAAA,EACAhX,EAAAsY,EAAAhT,KAAA,IAAA,EAEAtF,IAIA8J,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAzK,KAMAqW,EAAAtW,SAIAuW,EAAA,GACAC,EAAA,GAEAF,EAAA9V,QAAA,SAAA2W,GACA,IAAAqB,EAAAvT,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,qBAEAmB,GAAAA,EAAA1O,UAKA2O,EAAA7Z,MAAAuY,MAAAuB,wBAAAvB,EAAA5L,IAAA,EAQAoN,EAHAA,GAJAA,EAAA5O,CAAAA,CAAAA,EAAAD,SACAtL,WAAAC,MAAAma,kBAAAH,EAAAtB,EAAApN,EAAAjL,GAAA,GACAqY,EAAAE,qBAAApX,KAGA,EAAA,CAAAkX,EAAA0B,sBAAA1B,EAAA2B,wBACAta,CAAAA,WAAAC,MAAAsa,mBAAA,YAAA5B,EAAAE,kBAAA,IAIAsB,GACApC,EAhBAC,GAgBAxV,KAAAmW,CAAA,CAIA,CAAA,EAEAd,EACAjO,YAAA,UAAA,IAAAoO,EAAAxW,MAAA,EACAoI,YAAA,oBAAAmO,EAAAvW,SAAAsW,EAAAtW,QAAA,EAAAuW,EAAAvW,MAAA,EACAoI,YAAA,cAAA,IAAAmO,EAAAvW,MAAA,EAEA,EAAAuW,EAAAvW,SACAuY,EACAlU,SAAA,gDAAA,CAEA,EACA2U,YAAA,SAAAzQ,GACAgQ,EAAA3a,EAAA2K,EAAA0O,aAAA,EAGAT,EADAD,EAAA,KAGAF,EAAAzR,YAAA,qBAAA,EACA2T,EAAA3T,YAAA,gDAAA,CACA,EACAqU,OAAA,SAAA1Q,GACA,GAAA,KAAA+N,GAAA,IAAAtW,OAAA,CAIA,IAuIAuW,EACA1L,EAxIA0N,EAAA3a,EAAA2K,EAAA0O,aAAA,EAEA,GAAA,IAAAX,EAAAtW,OAAA,CACAkZ,IA0DA/B,EA1DAb,EAAA,GA0DAiC,EA1DAA,EA2DA,GAAApB,EAAA,CAIA,IAAAgC,EAAAlU,YAAAC,uBAAAC,KAAAuF,QAAAyM,EAAAE,oBAEA,GAAA8B,GAAAA,EAAArP,QAAA,CAUAsP,EAAAb,EAAAhT,KAAA,IAAA,EAEA,GAAA4R,EAAAE,qBAAA+B,EACAxa,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,8DAAA,EACAF,KAAAC,QAAAC,EAAA,6DAAA,EACAuU,GAAA,CAAA,CACA,CAAA,OAKA,GAAAF,EAAA,CAIA,IAAAG,EAAAtU,YAAAC,uBAAAC,KAAAuF,QAAA0O,GAEA,GAAAG,EAIA,GAAAA,EAAAzP,QAAA,CAUA,GAAAyO,EAAAxP,SAAA,uBAAA,EAkBA,OA7HAmQ,KAqHAX,EAAA3T,YAAA,gDAAA,EAEAuS,EAAAE,mBAAA+B,EAEAjC,EAAAvY,MAAAuY,MAAAqC,0BAAArC,CAAA,EAEAvY,MAAA6a,QAAAC,KAAA,EAEA9a,MAAA+a,KAAAC,IAAA,UAAAzC,EAAArY,IAAAqY,CAAA,EACA7X,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,GArBAjb,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,gDAAA,EACAF,KAAAC,QAAAC,EAAA,+CAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAPA,MAPA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,kEAAA,EACAF,KAAAC,QAAAC,EAAA,iEAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAbA,CAhBA,MAPA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,8DAAA,EACAF,KAAAC,QAAAC,EAAA,6DAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CATA,CA5DA,MAAA,EAAA/C,EAAAvW,SAmIAuW,EAlIAA,EAkIAC,EAlIAA,EAmIA3L,GADA0N,EAlIAA,GAmIAhT,KAAA,IAAA,EACA2U,EAAAjV,YAAAC,uBAAAC,KAAAuF,QAAAG,MAoBA0N,EAAA3T,YAAA,gDAAA,EAEA4R,EAAAxW,QACAma,EAAA,CACA1V,MAAAK,QAAAC,EAAA,uDAAA,EACAF,KAAAC,QAAAC,EAAA,uDAAA,CAAAqV,cAAAF,EAAA/W,KAAA,CAAA,EACAsD,MAAA,CAAA,CACA,EAEA,EAAA8P,EAAAvW,SACAma,EAAAE,MAAA,WACAC,EAAA,EACAhb,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,CACA,GAGArD,EAAAxS,KAAA,SAAAuW,EAAAC,GACA,OAAAD,EAAA5b,GAAA6b,EAAA7b,EACA,CAAA,EAEAwb,EAAAM,YAAAjE,EAAA9C,IAAA,SAAAyD,GACA,MAAA,CACAvY,MAAA0Y,qBAAAH,CAAA,EACAA,EAAAxY,GAAA,MAAAwY,EAAAhU,OAAA2B,QAAAC,EAAA,cAAA,GACA6O,KAAA,EAAA,CACA,CAAA,EAEAhV,MAAAya,QAAAvT,KAAAqU,CAAA,GAEAG,EAAA,EACAhb,KAAA2L,EAAA,SAAA4O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAAC,MAAAJ,CAAA,CACA,CAAA,EAnMA,CAiJA,SAAAS,IACA,IAAAI,EAAA,GAUA,OARA9b,MAAA6a,QAAAC,KAAA,EAEAnD,EAAA/V,QAAA,SAAA2W,GACAA,EAAAE,mBAAAxM,EAEA6P,EAAA1Z,KAAApC,MAAAuY,MAAAqC,0BAAArC,CAAA,CAAA,CACA,CAAA,EAEAvY,MAAA+a,KAAAgB,KAAA,SAAAD,CAAA,CACA,CApJA,CACA,CAAA,CACA,CA4LA,SAAAS,IACA,MAAArK,GAAAxJ,MAAA,EACA8J,EAAAjT,KAAA,sBAAA,EAAA6J,IAAA,YAAA,OAAA,EAEAoJ,EAAAjT,KAAA,+BAAA,EAAA6J,IAAA,YAAA,OAAA,EAGA2J,EAAA3J,IAAA,MAAAoJ,EAAAjK,SAAA,kBAAA,EAAA0b,YAAA,EAAA,EAAA,EAEAkvB,EAAAntC,YAAA,QAAA,EACAgN,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,CACA,CAEA,SAAAg5B,KACA,IAAAxQ,EAEAhe,EAAAmU,MAAA,EAEA6J,EAAAle,EAAAzT,KAAA,gBAAA,EAEA0P,EAAAiiB,EAAAvqB,KAAA,aAAA,EACAuI,EAAAgiB,EAAAvqB,KAAA,SAAA,EAEAsM,EAAAyD,KAAA,UAAA,CAAA,CAAAnG,CAAA,EAEAxB,EAAA3N,QAAA2N,EAAA3N,SAAA4N,EAAA5N,OACA4N,EAAApN,QAAA,SAAA2T,GACA,IAAA2I,EAAAle,MAAAC,SAAA8O,EAAAwG,EAAArV,IAAA,KAAA,EACAie,EAAA3L,EAAAjT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAEAge,EACAC,EAAAnY,YAAA,MAAA,EAEAmY,EAAA1Y,SAAA,MAAA,CAEA,CAAA,EAEA+M,EAAAjT,KAAA,aAAA,EAAAyG,YAAA,MAAA,CAEA,CAEA,SAAAqG,IACAwC,EAAA,EAEA0B,EAAA,EADAzB,EAAA,IAGA9O,MAAAC,SAAA0B,KAAAuK,OAAA,OAAA,IAAA,IACAlM,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,aAAA,aAAA,aAAA,oBACA,eAAA,eAAA,eAAA,sBACA,gBAAA,gBAAA,gBAAA,wBAAA,IAAA,GACA2K,OAAAC,UACAD,OAAAC,SAAA0V,gBACAxsB,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,sBAAA,wBAAA,0BAAA,IAAA,GACA4mC,EAAAzuB,WAAA,UAAA,EAKAyuB,EAAA9kC,KAAA,WAAA,UAAA,EAGA+kC,EAAA/kC,KAAA,WAAA,UAAA,EACAglC,EAAAhlC,KAAA,WAAA,UAAA,EACAiF,EAAAyD,KAAA,UAAA,CAAA,CAAA,EACAxD,EAAAmU,MAAA,EAEAsX,GAAA,EACAj+B,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CAsFA,SAAAqmC,KACA,IAAA/tC,EAAA,CACAM,MAAAK,QAAAC,EAAA,8CAAA,EACAkX,QAAAk2B,GACAh2B,gBAAAq1B,EACAp1B,YAAA,CACAC,OAAA,CAAAxX,KAAA,QAAAoH,GAAA,IAAA,EACAqQ,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAkvB,EAAA7wB,CAAA,CACA,CAEA,SAAAguC,GAAAC,GACAZ,GAAAY,GAAA,IAAA1+B,IAAA,SAAAzH,GACA,OAAAA,CACA,CAAA,EAEA+lC,GAAA,EACA72B,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA0xB,GAAAvzB,GACA,IAAAipC,EAAA,aAAAX,EAAA9kC,KAAA,UAAA,EACA0lC,EAAA,aAAAP,EAAAnlC,KAAA,UAAA,EACAyG,EAAA,CAAA0+B,EAAAhpC,SAAA,QAAA,EAEA,GAAAspC,CAAAA,EAiBA,OAbAN,EAAAntC,YAAA,QAAA,EACA4D,WAAAC,MAAA,EAEA6pC,IACAj/B,GACA0+B,EAAA1tC,SAAA,QAAA,EAGAyM,GAAA7H,IAAA,qBAAA6zB,EAAA,EACAhsB,GAAAisB,IAAA,qBAAAD,EAAA,GAGA1zB,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAo0B,KACAiV,EAAAntC,YAAA,QAAA,CACA,CAEA,SAAAmX,KACAF,GAAA,EACAzH,GAAA,EACAksB,GAAA,EAEA/C,GAAA,EACAj+B,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CAEA,SAAA+O,KACA,IAMAC,EACAC,EACAC,EACAC,EACAC,EAVAC,EAAA9J,EAAAjT,KAAA,yBAAA,EAEA,MAAA+c,IAIAL,EAAAK,EAAA/c,KAAA,wBAAA,EACA2c,EAAAI,EAAA/c,KAAA,gCAAA,EACA4c,EAAAG,EAAA/c,KAAA,qCAAA,EAEA8c,GADAD,EAAAE,EAAA/c,KAAA,iCAAA,GACAA,KAAA,iCAAA,EAEA+c,EAAAnS,SAAA,iBAAA,GAEAmS,EAAAtW,YAAA,iBAAA,EACAsW,EAAA7W,SAAA,UAAA,EACAyW,EAAAlW,YAAA,aAAA,EACAmW,EAAAnW,YAAA,QAAA,EACAqW,EAAArW,YAAA,QAAA,EACAkW,EAAAzW,SAAA,YAAA,EACA0W,EAAA5c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACA8S,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACAgT,EAAA3W,SAAA,YAAA,EACA2W,EAAApW,YAAA,OAAA,EAEAmN,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAxW,SAAA,WAAA,EACA0tC,EAAA/pC,IAAA,MAAA,EAAA,IAGAkT,EAAA7W,SAAA,iBAAA,EACAyW,EAAAzW,SAAA,aAAA,EACA0W,EAAA1W,SAAA,QAAA,EACA4W,EAAA5W,SAAA,QAAA,EACAyW,EAAAlW,YAAA,YAAA,EACAoW,EAAApW,YAAA,YAAA,EACAoW,EAAA3W,SAAA,OAAA,EACAyW,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EAEA+J,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EACA8V,EAAAjW,YAAA,WAAA,EACAmtC,EAAA/pC,IAAA,MAAA,EAAA,GAGAmT,EAAA,EACA,CAEA,SAAAo3B,GAAAnpC,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EACAkxC,EAAAnpC,EAAA9D,KAAA,WAAA,EAEA,GAAA,aAAA8D,EAAAuD,KAAA,UAAA,EAIA,OAAA4lC,GACA,KAAAtzC,MAAAgrB,UAAAM,KAoDA1b,EAAA9O,OAUAgP,EAAAhP,QAUApB,MAAA6a,QAAAC,KAAA,EACA9a,MAAAqG,YAAAwb,WACA8wB,OAAA,EACAjyC,KAAA,SAAAiG,GACAA,IAIAA,EAAAJ,KAAAnF,OAUApB,MAAAsgB,eAAAiB,6BAAA,CACAd,eAAA,CAAA,EACAozB,kBAAA,CAAA,EACAC,eAAA,CAAA,EACApzB,cAAAxa,QAAAC,EAAA,0CAAA,EACAsb,QAAA,CACAC,aAAAxb,QAAAC,EAAA,yCAAA,EACAwb,sBAAAzb,QAAAC,EAAA,kDAAA,CACA,EACAya,iBAAA,SAAAmzB,GACAC,GAAArtC,EAAAstC,IAAAF,EAAA,CACA,CACA,CAAA,EArBA/zC,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,gDAAA,EACAF,KAAAC,QAAAC,EAAA,+CAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EAkBA,CAAA,GAxCA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,oDAAA,EACAF,KAAAC,QAAAC,EAAA,mDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EAdA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,kDAAA,EACAF,KAAAC,QAAAC,EAAA,iDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EAtDAy4B,EAAAntC,YAAA,QAAA,EACAwE,EAAAV,gBAAA,EACA,MACA,KAAAxJ,MAAAgrB,UAAAC,KAqGA7G,YAAAwvB,OAAA5zC,MAAAgrB,UAAAC,KAAAlf,CAAA,EAnGA,MACA,KAAA/L,MAAAgrB,UAAAE,YAsGA9G,YAAAwvB,OAAA5zC,MAAAgrB,UAAAE,YAAAnf,CAAA,EApGA,MACA,KAAA/L,MAAAgrB,UAAAK,cA2GAzb,EAAA9O,OAUAgP,EAAAhP,QAUApB,MAAA6a,QAAAC,KAAA,EACA9a,MAAAqG,YAAAwb,WACA8wB,OAAA,EACAjyC,KAAA,SAAAiG,GAGA,GAFA3G,MAAA6a,QAAAK,KAAA,EAEAvU,EAAA,CAIA,IAAAwtC,GAAAxtC,EAAAJ,MAAA,IAAAmO,OAAA,SAAA4C,GACA,OAAAA,EAAA88B,iBAAA98B,EAAA+8B,cACA,CAAA,EAEA,GAAAF,EAAA/yC,OAUA,GAAA,EAAA+yC,EAAA/yC,OAAA,CACA,IAAAkzC,EAAA,GAEA,IAAAH,GAAA,IAAA/yC,OACA,IAAA,IAAAmzC,EAAA,EAAAC,EAAAL,EAAA/yC,OAAAmzC,EAAAC,EAAAD,CAAA,GAAA,CACA,IAAAj9B,EAAA68B,EAAAI,GAEA,GAAAj9B,EACA,KACAtX,MAAAC,SAAAq0C,EAAAh9B,EAAApX,GAAA,GAAAoX,EAAA3K,OAAArM,MAAAsM,YAAAgf,MACA0oB,EAAAlyC,KAAAkV,EAAApX,GAAA,EAEAoX,EAAAA,EAAA9I,SAEA,CAGA,IAAAjJ,EAAA,CACAM,MAAAK,QAAAC,EAAA,yCAAA,EACAsa,eAAA,CAAA,EACAjD,YAAA,CACAE,OAAA,CAAA,EACA+2B,WAAA,SAAAp2B,GACA,OAAAre,MAAAC,SAAAk0C,EAAA91B,EAAAne,IAAA,KAAA,CACA,EACAud,OAAA,SAAAY,GACA,MAAA,CACAhR,GAAAgR,EAAAne,IACA+F,KAAAoY,EAAA9Z,MACA2a,MAAAb,EAAAgQ,MACA9lB,SAAA8V,EAAA/b,QACA,CACA,EACAoS,OAAA,SAAA2J,GACA,OAAAA,EAAA1R,OAAArM,MAAAsM,YAAAgf,MAAA5rB,MAAAC,SAAAq0C,EAAAj2B,EAAAne,GAAA,CACA,CACA,EACAw0C,SAAA,SAAAX,GACAC,GAAArtC,EAAAstC,IAAAF,EAAA,CACA,CACA,EAEAl2B,WAAA3W,KAAAP,EAAAH,KAAAjB,CAAA,CACA,MACAyuC,GAAArtC,EAAAstC,IAAAE,EAAA,GAAAj0C,IAAA,OArDAF,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,gDAAA,EACAF,KAAAC,QAAAC,EAAA,+CAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAXA,CA8DA,CAAA,GA/EA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,oDAAA,EACAF,KAAAC,QAAAC,EAAA,mDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EAdA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,kDAAA,EACAF,KAAAC,QAAAC,EAAA,iDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EA7GAy4B,EAAAntC,YAAA,QAAA,EACAwE,EAAAV,gBAAA,EACA,MACA,KAAA,GAiGA4a,YAAAwvB,OAAA5zC,MAAAgrB,UAAAqpB,SAAAtoC,EAAA,CAAAgf,WAAA,CAAA,CAAA,CAAA,EA/FA,MACA,QAOAnb,EAAA9O,OAUAgP,EAAAhP,OAUAsjB,YAAAwvB,OAAA5zC,MAAAgrB,UAAAqpB,SAAAtoC,CAAA,EATArM,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,oDAAA,EACAF,KAAAC,QAAAC,EAAA,mDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,EAdA1a,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,kDAAA,EACAF,KAAAC,QAAAC,EAAA,iDAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CATA,CACA,CA2LA,SAAAs5B,GAAA18B,GAGA,IAIAgU,EANAtrB,MAAA6a,QAAAK,KAAA,EAEA5D,IAIAgU,EAAAhU,EAAAs9B,aACAt0C,MAAAgrB,UAAAI,WACApU,EAAA88B,gBAAA9zC,MAAAgrB,UAAAK,cACArrB,MAAAgrB,UAAAM,KAEAlH,YAAAwvB,OAAA5oB,EAAAjf,EAAA,CAAAwoC,QAAAv9B,EAAApX,GAAA,CAAA,EACA,CAEA,SAAA40C,KACA,IAAAp9B,EAAAY,GAAA,EAEAZ,EAAAtW,QACAqb,aAAAvV,KAAA,CACAlE,OAAA0U,EACA/K,KAAA,OACA,CAAA,CAEA,CAEA,SAAAooC,KACA,IAAAr9B,EAAAY,GAAA,EAEAZ,EAAAtW,QACAub,aAAAzV,KAAAwQ,EAAA,SAAAkF,GACAA,GAIAvQ,EAAA,CACA,CAAA,CAEA,CAEA,SAAAiM,KACA,IAAAuE,EAAA3J,EAAA3T,KAAA,eAAA,EAEA,OAAAP,EAAA8V,IAAA+H,EAAA,SAAAC,GAEAC,EADA/d,EAAA8d,CAAA,EAAAE,QAAA,QAAA,EACArW,KAAA,KAAA,EAEA,OAAAmI,EAAAiO,EACA,CAAA,CACA,CAEA,SAAAK,KACA,IAAA7X,EAAA,CACAM,MAAAK,QAAAC,EAAA,kCAAA,EACAkX,QAAAC,GACAC,gBAAApO,EACAqO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAkI,EAAA7J,CAAA,CACA,CAEA,SAAA+X,GAAAQ,GACA3O,GAAA2O,GAAA,IAAAhJ,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAsK,EAAAiG,EAAA,KAAA,CACA,CAAA,EAEAV,GAAA,EACA4H,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA0R,KACA,IAAAxY,EAAA,CACAM,MAAAK,QAAAC,EAAA,4CAAA,EACAkX,QAAAW,GACAT,gBAAAxO,EACAyO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA8H,EAAAzJ,CAAA,CACA,CAEA,SAAAyY,GAAAC,IACAlP,EAAA/P,EAAA8V,IAAAmJ,GAAA,GAAA,SAAA5I,GACA,OAAArV,MAAA8E,SAAAkK,EAAAqG,EAAA,KAAA,CACA,CAAA,GAEAjU,QAAA2N,EAAA3N,SAAA4N,EAAA5N,OACA4N,EAAApN,QAAA,SAAA2T,GACA,IAAA2I,EAAAle,MAAAC,SAAA8O,EAAAwG,EAAArV,IAAA,KAAA,EACAie,EAAA3L,EAAAjT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAEAge,EACAC,EAAAnY,YAAA,MAAA,EAEAmY,EAAA1Y,SAAA,MAAA,CAEA,CAAA,EAEA+M,EAAAjT,KAAA,aAAA,EAAAyG,YAAA,MAAA,EAGA,IAAAoY,EAAApP,EAAA8F,IAAA,SAAAuJ,GACA,OAAAA,EAAAne,GACA,CAAA,GAAA,GAEAoe,GAAAL,GAAA,IAAAjJ,KAAA,GAAA,GAAAoJ,EAAApJ,KAAA,GAAA,EAEAhV,MAAAgL,yBAAAnM,SAAA0O,sBAAA,EAAA+Q,CAAA,EACA5d,KAAA,WACAuU,GAAA,CAAA,CAAA,EACAsH,EAAA,CACA,CAAA,CACA,CAEA,SAAAgC,KACA,IAAAhZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,qCAAA,EACAkX,QAAAmB,GACAjB,gBAAAlO,EACAmO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,CAEA,SAAAiZ,GAAAK,GACAxP,GAAAwP,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAjF,EAAAwV,EAAA,KAAA,CACA,CAAA,EAEAK,GAAA,EACA6G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyS,KACA,IAAAvZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,kCAAA,EACAkX,QAAA0B,GACAxB,gBAAAjO,EACAkO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAArH,EAAA0F,CAAA,CACA,CAEA,SAAAwZ,GAAAF,GACAvP,GAAAuP,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAjF,EAAAwV,EAAA,KAAA,CACA,CAAA,EAEAM,GAAA,EACA4G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA2S,KACA,IAAAzZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,kCAAA,EACAkX,QAAA4B,GACA1B,gBAAAhO,EACAiO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CACAC,QAAA,CAAA,EACAuB,SAAAxO,GAAA,KAAA,SAAAyO,GACA,MAAA,CAAA,EAAAvO,IAAAuO,GAAAA,EAAAf,UAIAzH,EAAAwI,EAAAf,OAEA,CAAA,IAAAxN,GAAAwO,QAAAzI,EAAA1W,GAAA,EACA,CACA,EACAwU,OAAA/D,GAAA,KAAA,SAAAiG,GACA,MAAA,EAAAhG,CAAAA,IAAAgG,CAAAA,IAIA,CAAA,EAAAhG,GAAAyO,QAAAzI,EAAA1W,GAAA,CACA,CACA,CACA,EAEA2d,WAAA3W,KAAAoY,SAAA/Z,CAAA,CACA,CAEA,SAAA0Z,GAAAM,GACAhQ,GAAAgQ,GAAA,IAAAzK,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA0K,EAAA6F,EAAA,KAAA,CACA,CAAA,EAEAO,GAAA,EACA2G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAmT,KACA,IAAAja,EAAA,CACAM,MAAAK,QAAAC,EAAA,qCAAA,EACAkX,QAAAoC,GACAlC,gBAAA9N,EACA+N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAwI,EAAAnK,CAAA,CACA,CAEA,SAAAka,GAAAC,GACAjQ,GAAAiQ,GAAA,IAAA5K,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA4K,EAAA2F,EAAA,KAAA,CACA,CAAA,EAEAQ,GAAA,EACA0G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAsT,KACA,IAAApa,EAAA,CACAM,MAAAK,QAAAC,EAAA,0CAAA,EACAkX,QAAAuC,GACArC,gBAAA5N,EACA6N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA0I,EAAArK,CAAA,CACA,CAEA,SAAAqa,GAAAqf,GACAtvB,GAAAsvB,GAAA,IAAAnqB,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA8K,EAAAyF,EAAA,KAAA,CACA,CAAA,EAEAS,GAAA,EACAyG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAwT,KACA,IAAAta,EAAA,CACAM,MAAAK,QAAAC,EAAA,qCAAA,EACAkX,QAAAyC,GACAvC,gBAAA1N,EACA2N,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAA6Y,SAAAxa,CAAA,CACA,CAEA,SAAAua,GAAAE,GACAnQ,GAAAmQ,GAAA,IAAAlL,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAgL,EAAAuF,EAAA,KAAA,CACA,CAAA,EAEAU,GAAA,EACAwG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA4T,KACA,IAAA1a,EAAA,CACAM,MAAAK,QAAAC,EAAA,4CAAA,EACAkX,QAAA6C,GACA3C,gBAAAxN,EACAyN,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAiZ,gBAAA5a,CAAA,CACA,CAEA,SAAA2a,GAAAE,GACArQ,GAAAqQ,GAAA,IAAAtL,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAkL,EAAAqF,EAAA,KAAA,CACA,CAAA,EAEAW,GAAA,EACAuG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAgU,KACArgB,MAAAsgB,eAAAC,oBAAA,CACAC,kBAAAvQ,EACAwQ,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,oCAAA,EACAwa,aAAA,CAAA,EACAC,iBAAAC,GACAC,YAAAxgB,MAAAygB,YAAAi0B,IACA,CAAA,CACA,CAEA,SAAAn0B,GAAAI,GACAhR,GAAAgR,GAAA,IAAAnM,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAoL,EAAAmF,EAAA,KAAA,CACA,CAAA,EAEAY,GAAA,EACAsG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA6U,KACA,IAAA3b,EAAA,CACAM,MAAAK,QAAAC,EAAA,sCAAA,EACAkX,QAAA8D,GACA5D,gBAAApN,EACAqN,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAka,WAAA7b,CAAA,CACA,CAEA,SAAA4b,GAAAE,GACAlR,GAAAkR,GAAA,IAAAvM,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAsL,EAAAiF,EAAA,KAAA,CACA,CAAA,EAEAa,GAAA,EACAqG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAiV,KACAthB,MAAAsgB,eAAAiB,6BAAA,CACAC,cAAAnR,EACAoQ,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,kCAAA,EACAsb,QAAA,CACAC,aAAAxb,QAAAC,EAAA,yCAAA,EACAwb,sBAAAzb,QAAAC,EAAA,kDAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAAgB,EACA,CAAA,CACA,CAEA,SAAAA,GAAAJ,GACAnR,GAAAmR,GAAA,IAAA1M,IAAA,SAAAO,GACA,OAAAhP,YAAAwb,WAAAtb,KAAAuF,QAAAuJ,EACA,CAAA,EAEAc,GAAA,EACAoG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyV,KACA9hB,MAAAsgB,eAAAyB,mCAAA,CACAC,oBAAA1R,EACAmQ,eAAA,CAAA,EACAC,cAAAxa,QAAAC,EAAA,wCAAA,EACAsb,QAAA,CACAQ,mBAAA/b,QAAAC,EAAA,qDAAA,EACA+b,4BAAAhc,QAAAC,EAAA,8DAAA,CACA,EACAwa,aAAA,CAAA,EACAC,iBAAAuB,EACA,CAAA,CACA,CAEA,SAAAA,GAAAH,GACA1R,GAAA0R,GAAA,IAAAlN,IAAA,SAAAO,GACA,OAAAhP,YAAA+b,iBAAA7b,KAAAuF,QAAAuJ,EACA,CAAA,EAEAe,GAAA,EACAmG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAgW,GAAA7X,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EAEA,GAAA+H,CAAAA,EAAAN,SAAA,QAAA,EAqDA,OAhDAM,EAAAhF,SAAA,QAAA,EACA0tC,EAAAntC,YAAA,QAAA,EAEA4D,WAAA1C,KAAAxE,KAAA,CACA4f,KAAA,EACAC,SAAA,CAAA,EACAC,cAAA,CAAA,EACAC,QAAA,GACAC,aAAA,OACAC,cAAA,CAAA,EACAC,aAAAnY,EACAoY,UAAA,CAAAviB,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UACAC,aAAAljB,MAAAC,SAAA,CAAAK,MAAAwiB,gBAAAC,SAAAziB,MAAAwiB,gBAAAE,aAAA1iB,MAAAwiB,gBAAAG,UAAAlS,EAAAoS,WAAA,EACApS,EAAAoS,YACA7iB,MAAAwiB,gBAAAE,aACAI,WAAA,WACAxZ,WAAAyZ,QAAAtS,EAAAuF,MAAAvF,EAAAwF,GAAA,CACA,EACA4C,IAAA,SAAAzE,IACA3D,EAAA2D,KAEA3D,EAAAuF,OAAAvF,EAAAwF,MACAxF,EAAAuF,QACAvF,EAAAuF,MAAA,IAAAgN,KAAAvS,EAAAuF,MAAAiN,WAAA,CAAA,CAAA,GAGAxS,EAAAwF,MACAxF,EAAAwF,IAAA,IAAA+M,KAAAvS,EAAAwF,IAAAgN,WAAA,EAAA,CAAA,GAGAlP,EAAA5O,SAAA,iBAAA,EACAuL,EAAAY,aAAA,CAAA,IAEAyC,EAAArO,YAAA,iBAAA,EACAgL,EAAAY,aAAA,CAAA,GAGAhI,WAAAC,MAAA,EACA2K,EAAA,EACA+H,EAAA,EACAlQ,EAAA,CACA,EACAmX,kBAAA,WACA/Y,EAAAzE,YAAA,QAAA,CACA,CACA,CAAA,EAEAwE,EAAAV,gBAAA,EACA,CAAA,EApDAF,WAAAC,MAAA,CAqDA,CAEA,SAAAorC,KACA,IAAAxqC,EAAAzL,EAAA0D,IAAA,EAGAkwC,EADAnoC,EAAAN,SAAA,UAAA,EACAnK,MAAAoZ,OAAAw5B,EAAAnoC,EAAA9D,KAAA,QAAA,CAAA,EAEA3G,MAAAqmB,UAAAusB,EAAAnoC,EAAA9D,KAAA,QAAA,CAAA,EAGAysC,GAAA,EACA72B,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAqX,KACAC,aAAAnT,CAAA,EAEAA,EAAAoT,WAAA,WACAnT,EAAA2D,GAAAiC,IAAA,EAAAwN,KAAA,EACA7S,EAAAa,YAAA,CAAA,CAAApB,EACA+D,EAAA,EACA+H,EAAA,EACAlQ,EAAA,CACA,EAAA,GAAA,CACA,CAEA,SAAAoX,KACA/S,EAAA,CAAAA,EACAM,EAAAc,yBAAApB,EACA8D,EAAA,EACAnI,EAAA,CACA,CAEA,SAAAyX,KACA,IAAAC,EAAAhR,EAAAiR,YAAA,EACA9Q,EAAA+Q,YAAA,CAAA,CAAA,EAGAF,EAFAhR,EAAAmR,UAAA,GAEA,MACAnR,EAAA1I,IAAA,uBAAA,EAEAs0B,GAAA,EAEA,CAEA,SAAAva,KACA,IAAA3Z,EAAAzL,EAAA0D,IAAA,EAEAuM,EAAAxE,EAAAuD,KAAA,kBAAA,EAGAkB,EAAA,UAFAA,EAAAzE,EAAAuD,KAAA,cAAA,GAEA,MAAA,OACAvD,EAAAtC,SAAA,EAAAkc,WAAA,cAAA,EACA5Z,EAAAuD,KAAA,eAAAkB,CAAA,EAEA7C,EAAA,CACA,CAEA,SAAAiY,GAAA9Z,GACAxL,EAAA0D,IAAA,EAEAyH,SAAA,YAAA,GACAoG,EAAA0C,EAAAyD,KAAA,SAAA,EAEAxD,EAAA3T,KAAA,gBAAA,EAAAmX,KAAA,UAAA,CAAA,CAAAnG,CAAA,IAEAA,EAAA,CAAA,EACA0C,EAAAyD,KAAA,UAAA,CAAA,CAAA,GAGAxD,EAAA3T,KAAA,eAAA,EAAA6B,QACA2xC,EAAA1uB,WAAA,UAAA,EAEA1iB,MAAAA,KAAAuzC,cAAA50C,MAAA40C,YAAAC,WACAnC,EAAA3uB,WAAA,UAAA,IAGA0uB,EAAA/kC,KAAA,WAAA,UAAA,EACAglC,EAAAhlC,KAAA,WAAA,UAAA,GAGAxD,EAAAV,gBAAA,CACA,CAEA,SAAAya,GAAA/Z,GACAA,EAAAV,gBAAA,CACA,CAEA,SAAA0a,GAAAha,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAiE,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,EAAA,EAEAna,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA6a,GAAAC,GACA,IAoBAC,EApBAD,IAIArM,EAAAzJ,EAAA8V,EAAAE,aAMAvM,EAAAwM,SAAA/kB,MAAAuY,MAAAyM,yBAAAJ,EAAAG,QAAA,GAEAE,EAAAlS,EAAAxT,KAAA,gBAAAgZ,EAAArY,IAAA,IAAA,GAEAkB,UAIA6jB,EAAA1lB,KAAA,iBAAA,EAAA6Z,OAAA,EAEAyL,EAAAK,GAAA3M,CAAA,EACA0M,EAAA1lB,KAAA,WAAA,EAAA4lB,MAAAN,CAAA,EACA,CAEA,SAAAO,GAAA5a,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EACA2iB,EAAA5a,EAAA9D,KAAA,UAAA,EACAoW,EAAAtS,EAAA4D,OAAA,EAAA1H,KAAA,KAAA,EACA4R,EAAAzJ,EAAAiO,GAEA,GAAAxE,EAAA,CACA,IAAAwjB,EAAAxjB,EAAA/Q,OAAA,GAEA,GAAA,CAAAu0B,EAAA36B,QAAAmX,EAAAyT,gBAAAzT,EAAAyT,eAAAopB,wBAKA,IAJA,IAAAC,EAAA98B,EAAAyT,eAAAopB,wBAEAE,EAAAr0C,OAAA+9B,KAAAqW,CAAA,EAAAjwC,KAAA,SAAAuW,EAAAC,GAAA,MAAA,CAAAD,EAAA,CAAAC,CAAA,CAAA,EAEAtY,EAAA,EAAAA,EAAAgyC,EAAAl0C,OAAAkC,CAAA,GAAA,CACA,IAEAiyC,EAAAF,EAFAC,EAAAhyC,IAGA,GAAAiyC,GAAAA,EAAAxoB,WAAA1H,EAAA,CACA0W,EAAA35B,KAAAmzC,CAAA,EACA,KACA,CACA,CAGAjwB,YAAA3Z,KAAA,CACA4Z,SAAAwW,EACAvW,cAAAH,EACAI,OAAAlN,EAAAhU,OAAA,GACAmhB,SAAAnN,EAAAoN,OAAApN,EAAAoN,OAAAzlB,IAAA,KACA0lB,WAAArN,EAAAsN,qBACA,CAAA,CACA,CAGA,OADArb,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAgc,GAAAtb,GACA,IAAAuS,EAAA/d,EAAA0D,IAAA,EAAAsa,QAAA,QAAA,EAAArW,KAAA,KAAA,EACA4R,EAAAzJ,EAAAiO,GAQA,OANAN,aAAAvV,KAAA,CACA6e,MAAAxN,EACA5L,KAAA,OACA,CAAA,EAEAnC,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAkc,GAAAxb,GACA,IAIA+N,EAJA9N,EAAAzL,EAAA0D,IAAA,EAEAqa,EADAtS,EAAAwb,QAAA,IAAA,EACAtf,KAAA,KAAA,EACAuf,EAAA,CAAAzb,EAAA9D,KAAA,OAAA,EAsBA,OAnBA3H,EAAA,cAAA,EAAAyG,SAAA,MAAA,GAEA8S,EAAAzJ,EAAAiO,MACA/c,MAAA6a,QAAAC,KAAA,EAEAqL,EAAA,iBAAArgB,OAAAyS,EAAAxY,GAAAmmB,EAAA,yBAAA,0BAAA,EAEAlmB,MAAA+a,KAAAgB,KAAAoK,EAAA,KAAA,WACA5N,EAAA6N,WAAAF,EACAlmB,MAAAqmB,UAAA9N,EAAA6N,WAAAzkB,KAAAzB,GAAA,EACAF,MAAAoZ,OAAAb,EAAA6N,WAAAzkB,KAAAzB,GAAA,EAEAuK,EAAA6b,YAAAC,GAAAhO,EAAA6N,UAAA,CAAA,EAEApmB,MAAA6a,QAAAK,KAAA,CACA,EAAAlb,MAAA6a,QAAAK,IAAA,GAGA1Q,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA0c,GAAAhc,GACA,IAAAic,EAAAznB,EAAA,cAAA,EACAyL,EAAAzL,EAAA0D,IAAA,EACAgkB,EAAAjc,EAAAic,OAAA,EAGAC,GAAAlc,EAAA9D,KAAA,MAAA,GAAA,IAAAyO,MAAA,GAAA,EAEAwR,EAAA5nB,EAAA8V,IAAA6R,EAAA,SAAAtR,GACAwR,EAAAC,MAAAzR,IAAA0B,SAAA1B,GAEA,GAAAwR,EACA,OAAAA,EAAAE,QAEA,CAAA,EAEAH,EAAAxhB,KAAApF,MAAAgnB,eAAA,EAEA,GAAAJ,EAAAxlB,SACAwlB,EAAAA,EAAAK,MAAA,EAAA,EAAA,GACA7kB,KAAA,YAAA0D,OACA6gB,EAAAvlB,OAAA,GACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAGAsgB,EAAAla,KAAAqa,EAAA5R,KAAA,QAAA,CAAA,EACAyR,EAAAzgB,YAAA,MAAA,EACAygB,EAAAzY,KAAA,QAAA,CAAA,EACAyY,EAAArd,IAAA,CACA8P,KAAAwN,EAAAxN,KAAAuN,EAAA9d,WAAA,CAAA,CAAA,EAAA,EAAA,EACAsQ,IAAAyN,EAAAzN,IAAAwN,EAAAxC,YAAA,CAAA,CAAA,EAAA,CACA,CAAA,CACA,CAEA,SAAAiD,KACAloB,EAAA,cAAA,EAAAyG,SAAA,MAAA,CACA,CAEA,SAAA0hB,GAAA3c,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAujB,QAAA,IAAA,EAAAtf,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,GAAA,CAAAyC,MAAA,UAAA,CAAA,EAEA5c,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA60B,KACA7tB,KACAA,GAAAjJ,MAAA,EACAiJ,GAAA,MAGAiC,EAAA1I,IAAA,uBAAA,EAEArK,MAAA6a,QAAAC,KAAA,EAEA,IAAA06B,EAAA32C,SAAAsO,cAAA,EACA0b,EAAAvB,GAAAkuB,CAAA,EAEA,OAAA3sB,GAIAhqB,SAAA6O,qBAAA8nC,EAAAt1C,GAAA,GAEA4Q,GAAAyyB,GAAA1a,CAAA,GACAnoB,KAAAkpB,GAAA,SAAA3O,GAOA,OANApc,SAAA+O,cAAA4nC,EAAAt1C,IAAA,CAAA,EAEA+a,GACAjb,MAAA6a,QAAAK,KAAA,EAGAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAoqB,EAAA,EACApqB,KAAA,SAAAiG,GAGA,GAFAmK,GAAA,KAEA,CAAAnK,EAGA,OAFA9H,SAAA+O,cAAA4nC,EAAAt1C,IAAA,CAAA,EAEA,KAGArB,SAAA+O,cAAA4nC,EAAAt1C,IAAAyG,EAAAmsB,UAAA,EACA2iB,IA8vBAC,EA9vBA/uC,EAAAgvC,iCA+vBAvf,EAAA,EAMA,OAJAp3B,EAAA+J,KAAA2sC,EAAA,SAAA7e,EAAAyR,GACAlS,EAAAiB,KAAAue,IAAAtN,EAAAlS,CAAA,CACA,CAAA,EAEAA,GACA,KAAA,EACA6c,GACAjtC,YAAA,mBAAA,EACAP,SAAA,OAAA,EACA,MACA,KAAA,EACAwtC,GACAjtC,YAAA,kBAAA,EACAP,SAAA,QAAA,EACA,MACA,KAAA,EACAwtC,GACAjtC,YAAA,qBAAA,EACAP,SAAA,KAAA,CAEA,CAvwBA,OAZAyN,EAAA3T,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEAvY,GAAA,EAEA7Q,EAAA3D,OAAA5B,QAAAynB,EAAA,GAAApB,MACA1U,EAAA3I,GAAA,wBAAA0Z,EAAA,EAGA9jB,MAAA6a,QAAAK,KAAA,EAEAvU,CACA,CAAA,GAzCA3H,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,CA0CA,CAEA,SAAAkoB,GAAAnkB,GACA,IAAA4F,EAAA,GAaA,OAXAsC,GAIAtC,EAAAvN,EAAA8V,IAAAnO,EAAA3D,QAAA,GAAA+nB,EAAA,EAEA7X,EAAA0F,OAAArM,EAAAyI,KAAA,EAAA,CAAA,GALA9B,EAAA3G,KAAA,kDAAAzG,OACAI,QAAAC,EAAA,iCAAA,CAAA,CAAA,EAOA6M,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,EAEA/B,CACA,CAEA,SAAAokB,GAAAxS,GACA,IAAAhM,EAAA,GACAspC,EAAA,IAAAvyB,KACAwyB,EAAA,IAAAxyB,KAAAuyB,EAAAE,YAAA,EAAAF,EAAAG,SAAA,EAAAH,EAAAI,QAAA,EAAA,CAAA,EAMAC,EAHA39B,EAAA2R,kBAEA3R,EAAA2R,kBAAAD,QAAA,EAAA4rB,EAAA5rB,QAAA,EACA,0BACA1R,EAAA2R,kBAAAD,QAAA,EAAA6rB,EAAA7rB,QAAA,EACA,6BAEA,4BANA,6BASAksB,EAAAn2C,MAAAuY,MAAAuB,wBAAAvB,EAAA5L,IAAA,EACAqe,EAAAprB,WAAAC,MAAAma,kBAAAm8B,EAAA59B,CAAA,EAkCA2S,IA7BAF,EAHAA,IACA,EAAA,CAAAzS,EAAA0B,sBAAA1B,EAAA2B,wBACA,CAAAta,WAAAC,MAAAsa,mBAAA,YAAA5B,EAAAE,kBAAA,EACA,CAAA,EAGAuS,IAAAprB,WAAAC,MAAAma,kBAAA,gBAAAzB,CAAA,IAGA29B,GAAA,uBAGA3pC,EAAAnK,KAAA,wEACA0D,OAAAowC,EAAA39B,EAAArY,IAAAqY,EAAAxY,GAAAwY,EAAAE,kBAAA,CACA,EAEAlM,EAAAnK,MAgCAmW,EAhCAA,GAiCAhM,EAAA,IAEAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,yCAAA0D,OAAAyS,EAAAxY,GAAAwQ,EAAA,WAAA,EAAA,CAAA,EACAhE,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,EAvCA,EAEAzI,EAAAnK,KAwCA,SAAAmW,GACA,IAIAuC,EAJAvO,EAAA,GACA4e,EAAAnrB,MAAA0Y,qBAAAH,CAAA,EACA6S,EA0mBA,SAAA7S,GACA,GAAA,CAAAA,EACA,OAAA,KAGA,GAAAA,EAAA8S,WACA,MAAA,+BAGA,OAAA9S,EAAA5L,MACA,KAAArM,MAAAgrB,UAAAC,KACA,MAAA,kBACA,KAAAjrB,MAAAgrB,UAAAE,YACA,MAAA,iCACA,KAAAlrB,MAAAgrB,UAAAG,sBACA,MAAA,yBACA,KAAAnrB,MAAAgrB,UAAAI,WACA,MAAA,oBACA,KAAAprB,MAAAgrB,UAAAK,cACA,KAAArrB,MAAAgrB,UAAAM,KACA,KAAAtrB,MAAAgrB,UAAAO,OACA,MAAA,iBACA,KAAAvrB,MAAAgrB,UAAAQ,aACA,MAAA,sBACA,QACA,MAAA,gBACA,CACA,EAroBAvT,CAAA,EACAwT,IAAAxT,EAAAyT,gBAAA,IAAAC,WAAA,IAAA7W,MAAA,GAAA,EAGA0F,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,oEACA0D,OACAgV,EAAA,GAAA,gBACAqQ,EACA5S,EAAAxY,GACAwY,EAAAI,QAAA,CAAA,EAEApM,EAAAnK,KAAA,mCAAA0D,OAAAslB,CAAA,CAAA,EACA7e,EAAAnK,KAAA,8CAAA,EACAmK,EAAAnK,KAAA,OAAA,EAEA0Y,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,oCACA0D,OACAgV,EAAA,GAAA,gBACAvC,EAAA2T,QAAA,CAAA,EAEApR,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEAxC,EAAAnK,KAAA,6DAAA0D,OACAgV,EAAA,GAAA,gBACAvC,EAAA4T,MAAA,GAAA,eACA5T,EAAAhU,OAAA2B,QAAAC,EAAA,eAAA,CAAA,CAAA,EAEA,EAAA4lB,EAAA3qB,SACAgrB,EAAAL,EAAA9E,MAAA,CAAA,EAAAjS,KAAA,IAAA,EAEAzI,EAAAnK,KAAA,oCAAA0D,OAAAsmB,CAAA,CAAA,GAGA7T,EAAA8T,iCACAC,EAAA/T,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MACAzsB,MAAAuY,MAAAmU,0BAAAnU,EAAA8T,+BAAAM,SAAA,EACA,KAEApgB,EAAAnK,KAAA,4DACA0D,OACAyS,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MAAA,cAAA,GACAvmB,QAAAC,EAAA,mCAAA,EACAnG,MAAAuY,MAAAqU,2BAAArU,EAAA8T,+BAAAE,MAAA,EACAD,EAAA,KAAAA,EAAA,IAAA,EACA,CACA,GAGA/T,EAAAsU,cACAtgB,EAAAnK,KAAA,8BAAA0D,OAAAyS,EAAAsU,YAAA,CAAA,EAGA,OAAAtgB,EAAAyI,KAAA,EAAA,CACA,EApGAuD,CAAA,CAAA,EACAhM,EAAAnK,KAAA8iB,GAAA3M,CAAA,CAAA,EAEAA,EAAA4T,OACA5f,EAAAnK,KAqIA,SAAA0qB,GACA,IAAAhS,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EACAxC,EAAA,CAAA,8DAAAzG,OAAAgnB,EAAAC,SAAAjS,EAAA,GAAA,OAAA,GAEA,GAAAgS,EAAAE,MAAA,CACA,IACAC,EAAA,kBACAC,EAAA,GACA9mB,EAHA,+DAGA+mB,KAAAL,EAAAE,KAAA,EAEA,GAAA,CAAA5mB,GAAA,IAAAA,EAAAhF,OACA,OAOA,IAJA,IAAAsH,EAAAS,SAAA/C,EAAA,GAAA,EAAA,EACAgnB,EAAAjkB,SAAA/C,EAAA,GAAA,EAAA,EACAinB,EAAAjnB,EAAA,IAGAA,EAAA6mB,EAAAE,KAAAL,EAAAE,KAAA,IACAE,EAAA9qB,KAAAgE,EAAA,GAAAyd,KAAA,EAAA,UAAA,EAEAzd,IAEA8mB,EAAA9rB,SACAmL,EAAAnK,KAAA,0HACA0D,OAAA4C,EAAA0kB,CAAA,CAAA,EACA7gB,EAAAnK,KAAA,gKACA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EACAxgB,EAAAnK,KAAAirB,CAAA,EACA9gB,EAAAnK,KAAA,QAAA,EAEA,MACAmK,EAAAnK,KAAA,gCAAA0D,OAAAwnB,OAAAC,QAAAT,EAAAC,QAAA,CAAA,EAKA,OAFAxgB,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EA5KAuD,EAAA4T,KAAA,CAAA,EAGA5f,EAAAnK,MA2KAorB,EA3KAjV,EAAAkV,WA4KA3S,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EACA2e,EAAAF,EACAxtB,MAAA2tB,QAAAC,oBAAA5tB,MAAAwE,WAAAgpB,EAAAK,MAAA,EAAAL,EAAAM,WAAA,EACA,MAEA,qCAAAhoB,OACAgV,EAAA,GAAA,gBAAA4S,CACA,EAnLA,EACAnhB,EAAAnK,MAqLA2rB,EArLAxV,EAAAyR,kBAqLAgE,EArLAzV,EAAA0V,QAsLAnT,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,0EAAAjJ,OACAgV,EAAA,GAAA,gBACA9a,MAAAspB,SAAA4E,oBAAAH,CAAA,EACAC,EAAAA,EAAAzpB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,EA3LA,EACAoG,EAAAnK,MA6LA2rB,EA7LAxV,EAAAsN,sBA6LAsI,EA7LA5V,EAAAoN,OA8LA7K,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,6EAAAjJ,OACAgV,EAAA,GAAA,gBACA9a,MAAAspB,SAAA4E,oBAAAH,CAAA,EACAI,EAAAA,EAAA5pB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,EAnMA,EACAoG,EAAAnK,MAqMA2rB,EArMAxV,EAAA2R,kBAsMApP,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,oCAAAjJ,OACAgV,EAAA,GAAA,gBACAiT,EAAA/tB,MAAAspB,SAAA4E,oBAAAH,CAAA,EAAA,MAAA,EA1MA,EACAxhB,EAAAnK,KA4MA,SAAAgsB,GACA,IAAAtT,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,GAAAqf,EACA,MAAA,kGACAtoB,OAAAgV,EAAA,GAAA,gBAAAsT,EAAAC,MAAAD,EAAA7pB,KAAA,EAGA,MAAA,oCAAAuB,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EArNAvC,EAAA4R,KAAA,CAAA,EACA5d,EAAAnK,KAsNA,SAAAiV,GACA,IAAAyD,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,GAAAsI,EACA,MAAA,kGACAvR,OAAAgV,EAAA,GAAA,gBAAAzD,EAAAgX,MAAAhX,EAAA9S,KAAA,EAGA,MAAA,oCAAAuB,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EA/NAvC,EAAA6R,QAAA,CAAA,GAEA7R,EAAA+V,2BAAA,IAAAxH,OAAA,IACAyH,GAAAhW,EAAA+V,2BAAA,IAAAjG,OAAA,GAYA,OAVA9b,EAAAnK,KA4NA,SAAAvC,EAAA2P,GACA,IAUAgf,EA2BAC,EArCA3T,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EACAxC,EAAA,GACAmiB,EAAA,CAAA,EACAC,EAAA,CACAC,YAAA,GACAC,YAAA,GACAC,UAAA,GACAC,SAAA,EACA,EAEA,IAAAP,KAAA3uB,EAAA,CACA,IAAAmvB,EAAAnvB,EAAA2uB,GACA7X,EAAAmQ,MAAA0H,GAEA7X,IAIA+X,EAAA,CAAA,EAEAM,EAAAC,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAE,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAG,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,EAGAiI,EAAAI,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA6Q,EAAAoQ,QAAA,CAAA,CAEA,CAEA,IAAA0H,KAAAjf,EAAA,CACA,IAAA6f,EAAA7f,EAAAif,GACA7X,EAAAyR,MAAAoG,GAEA7X,IAIA8X,EAAA,CAAA,EAEAW,EAAAJ,eACAN,EAAAC,YAAAxsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAH,eACAP,EAAAE,YAAAzsB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAF,aACAR,EAAAG,UAAA1sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,EAGA8qB,EAAAD,aACAT,EAAAI,SAAA3sB,KAAA,eAAA0D,OAAA8Q,EAAArS,KAAA,CAAA,CAEA,CAOA,GALAoqB,EAAAC,YAAAxpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAE,YAAAzpB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAG,UAAA1pB,KAAApF,MAAAgnB,eAAA,EACA2H,EAAAI,SAAA3pB,KAAApF,MAAAgnB,eAAA,EAEA0H,EA6CA,OA5CAniB,EAAAnK,KAAA,4BAAA0D,OAAAgV,EAAA,GAAA,eAAA,CAAA,EAEA6T,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,oCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAC,YAAA3H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAC,YAAAxtB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAC,YAAAxtB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,oCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAE,YAAA5H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAE,YAAAztB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAE,YAAAztB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,oCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAG,UAAA7H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAG,UAAA1tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAG,UAAA1tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAwoB,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,MAAA8D,QAAAC,EAAA,oCAAA,EAAA,MAAA,EACAoG,EAAAnK,KAAAusB,EAAAI,SAAA9H,MAAA,EAAA,CAAA,EAAAjS,KAAA,EAAA,CAAA,EACA,EAAA2Z,EAAAI,SAAA3tB,SACAmL,EAAAnK,KAAA,qBAAA0D,OACA6oB,EAAAI,SAAA3tB,OAAA,EACA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAIAoG,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,EAGA,MAAA,oCAAAlP,OAAAgV,EAAA,GAAA,gBAAA,MAAA,CACA,EAnVAoQ,EAAAqD,CAAA,CAAA,EACAhiB,EAAAnK,MAoVAmW,EApVAA,EAqVAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,IAAA,KAAA,EAEA,oCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAA8R,cAAA,EAzVA,EACA9d,EAAAnK,MA2VAmW,EA3VAA,EA4VAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAA+R,uBAAA,EAhWA,EACA/d,EAAAnK,MAkWAmW,EAlWAA,EAmWAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAgS,kBAAA,EAvWA,EACAhe,EAAAnK,MAyWAmW,EAzWAA,EA0WAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAiS,sBAAA,EA9WA,EACAje,EAAAnK,MAgXAmW,EAhXAA,EAiXAuC,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAEA,qCAAAjJ,OACAgV,EAAA,GAAA,gBACAvC,EAAAkS,+BAAA,EArXA,EACAle,EAAAnK,KAuXA,SAAAmW,GACA,IACA+W,EADAxU,EAAA,CAAA/L,GAAA/O,MAAAC,SAAA8O,EAAA,KAAA,KAAA,EAGA8H,QAAAA,OAAA0Y,UAAA1Y,OAAA0Y,SAAAC,yBACA3Y,OAAA0Y,SAAAC,wBAAAC,UACA,IAAAlX,EAAAsS,iBAAAtS,EAAAsS,mBACA6E,EAAA7Y,OAAA0Y,SAAAC,wBAAAC,QACAE,EAAAC,WAAAF,GACAJ,EAAAK,EAAAprB,OAAA,IAGA,MAAA,0CAAAuB,OACAgV,EAAA,GAAA,gBACA,IAAAvC,EAAAsS,iBAAAtS,EAAAsS,gBAAAtS,EAAAsS,gBAAA,MACAyE,GAAA,EAAA,CACA,EAvYA/W,CAAA,CAAA,EAEAhM,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CA0EA,SAAAkQ,GAAA3M,GACA,IAAAhM,EAAA,GAaA,OAXAA,EAAAnK,KAAA,4BAAA,EACAmK,EAAAnK,KAAAmkB,GAAAhO,EAAA6N,UAAA,CAAA,EACA7Z,EAAAnK,KAAA,8BAAA,GAEAmW,EAAAwM,UAAA,IAAA3jB,QACAmL,EAAAnK,KAAA,uBAAA0D,OAAAyS,EAAAwM,SAAA3jB,MAAA,CAAA,EAGAmL,EAAAnK,KAAA,kBAAA0D,OAAAI,QAAAC,EAAA,qBAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CAEA,SAAAuR,GAAAsJ,GACA,OAAA7vB,MAAAC,SAAA4vB,EAAAluB,KAAAzB,GAAA,EACA,qGACA4F,OACAI,QAAAC,EAAA,kBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,GACAyuB,GAAA,IAAAzuB,OACA,mFACA0E,OACAI,QAAAC,EAAA,gBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,EAGA,gCAAA0E,OAAAI,QAAAC,EAAA,gBAAA,CAAA,CACA,CAyRA,SAAAmhB,GAAA7jB,EAAAgjC,GAGA,IAIAlf,EAJA,OAFA9jB,EAAAA,GAAA5E,SAAAsO,cAAA,IAMAoa,EAAA9jB,EAAAY,eAAA,GA2BA,CA1BA,CACAmjB,KAAA3Y,GAAA,EACA4Y,KAAA,MAAAgf,GAAA2P,MAAA3P,CAAA,EAAA,GAAAA,EACA/e,eAAA,CAAA,EACAC,WAAA,CAAA,EACAC,QAAA3Y,EACA4Y,aAAA3Y,EACA4Y,YAAA9mB,cAAAd,IACAm2C,gCAAA,CAAA,EACAruB,mBAAAnpB,SAAA2O,sBAAA,EACAya,wBAAAppB,SAAA4O,2BAAA,EACAqE,yBAAApB,EACAwX,MAAAlpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAa,UAAA,EACAtB,MAAA9nB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAT,KAAA,EACAuB,MAAArpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAc,KAAA,EACAtR,SAAA/X,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAxQ,QAAA,EACAuR,cAAAtpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAe,aAAA,EACAvI,SAAA/gB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAxH,QAAA,EACAI,gBAAAnhB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAApH,eAAA,EACAoI,OAAAvpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAiB,QAAA,EACApH,WAAApiB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAnG,UAAA,EACAqH,MAAAzpB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAkB,KAAA,EACAC,YAAA1pB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAmB,WAAA,EACAC,iBAAA3pB,EAAAmpB,OAAA,CAAA,EAAA,GAAAZ,EAAAqB,kBAAA,CACA,EAKA,SAAAnlB,GACA,IAAAolB,EAAA,CACAC,UAAAzZ,GAAA,IAAAyF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACA4mB,OAAAxX,GAAA,IAAAwF,IAAA,SAAA6B,GAAA,OAAAA,EAAAzW,GAAA,CAAA,EACAmoB,OAAA9Y,GAAA,IAAAuF,IAAA,SAAA8B,GAAA,OAAAA,EAAA1W,GAAA,CAAA,EACA6W,UAAAtH,GAAA,IAAAqF,IAAA,SAAAkC,GAAA,OAAAA,EAAA9W,GAAA,CAAA,EACAooB,eAAA3Y,GAAA,IAAAmF,IAAA,SAAAmC,GAAA,OAAAA,EAAA/W,GAAA,CAAA,EACA6f,UAAAlQ,GAAA,IAAAiF,IAAA,SAAAoC,GAAA,OAAAA,EAAAhX,GAAA,CAAA,EACAigB,iBAAApQ,GAAA,IAAA+E,IAAA,SAAAqC,GAAA,OAAAA,EAAAjX,GAAA,CAAA,EACAqoB,QAAAtY,GAAA,IAAA6E,IAAA,SAAAsC,GAAA,OAAAA,EAAAlX,GAAA,CAAA,EACAkhB,YAAAjR,GAAA,IAAA2E,IAAA,SAAAuC,GAAA,OAAAA,EAAAnX,GAAA,CAAA,EACAuoB,OAAApY,GAAA,IAAAyE,IAAA,SAAAwC,GAAA,OAAAA,EAAApX,GAAA,CAAA,EACAwoB,aAAApY,GAAA,IAAAwE,IAAA,SAAAiU,GAAA,OAAAA,EAAA7oB,GAAA,CAAA,CACA,EAEA2oB,EAAAX,MAAA/mB,MAAA+nB,UAAAC,OAAAjhB,MAAA,IAAAiH,GAAA,IAAA2F,IAAA,SAAA3F,GACA,OAAAA,EAAAjP,IACAkV,MAAA,GAAA,EACAN,IAAA,SAAAC,GACA,OAAA5L,SAAA4L,EAAA,EAAA,CACA,CAAA,CACA,CAAA,CAAA,EAEAhE,IAAAA,EAAAuF,OAAAvF,EAAAwF,OACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAC,SACA8F,EAAAO,eAAA,CACAC,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAE,aACA6F,EAAAY,mBAAA,CACAJ,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,EACAxF,EAAAoS,cAAA7iB,MAAAwiB,gBAAAG,WACA4F,EAAAa,eAAA,CACAL,YAAAtY,EAAAuF,MAAAtW,MAAAspB,SAAAC,YAAAxY,EAAAuF,KAAA,EAAA,KACAkT,UAAAzY,EAAAwF,IAAAvW,MAAAspB,SAAAC,YAAAxY,EAAAwF,GAAA,EAAA,IACA,KAIAq8B,GAAA,IAAAxxC,QAAAwxC,EAAAxxC,OAAA,IACAynB,EAAAF,iBAAAiqB,GAGAniC,IACAoY,EAAAc,aAAAlZ,GAGAhN,GAAAA,EAAAY,gBACAwkB,EAAAG,iBAAAvlB,EAAAY,cAAAiyC,kCAAA,CAAA,EACAztB,EAAAI,mBAAAxlB,EAAAY,cAAAiyC,kCAAA,CAAA,GAGA,OAAAztB,CACA,EA3DAplB,CAAA,IA9BA,IA+BA,CAyJA,SAAA8yC,GAAA56B,EAAAC,GACA,GAAAD,GAAA,CAAAC,EACA,MAAA,CAAA,EACA,GAAA,CAAAD,GAAAC,EACA,OAAA,EACA,GAAA,CAAAD,GAAA,CAAAC,EACA,OAAA,EAGA,GAAAD,EAAAzb,MAAA0b,EAAA1b,IACA,OAAA,EAGA,GAAAyb,EAAA8gB,YAAA7gB,EAAA6gB,UACA,OAAA9gB,EAAAtZ,SAAAuZ,EAAAvZ,SAIA,IADA,IAAAm0C,EAAA,CAAA76B,GACAA,EAAAnN,QACAgoC,EAAAC,QAAA96B,EAAAnN,MAAA,EACAmN,EAAAA,EAAAnN,OAIA,IADA,IAAAkoC,EAAA,CAAA96B,GACAA,EAAApN,QACAkoC,EAAAD,QAAA76B,EAAApN,MAAA,EACAoN,EAAAA,EAAApN,OAIA,IADA,IAAAmoC,EAAAtf,KAAAuf,IAAAJ,EAAAp1C,OAAAs1C,EAAAt1C,MAAA,EACAkC,EAAA,EAAAA,EAAAqzC,EAAArzC,CAAA,GACA,GAAAkzC,EAAAlzC,GAAAjB,UAAAq0C,EAAApzC,GAAAjB,SAGA,OAAAm0C,EAAAlzC,GAAAjB,SAAAq0C,EAAApzC,GAAAjB,SAGA,OAAAm0C,EAAAp1C,OAAAs1C,EAAAt1C,MACA,CAEA,SAAAwoB,GAAAjjB,GAcA,OAbAA,EAAA3D,OAAAhE,EAAA8V,IAAAnO,EAAA3D,QAAA,GAAAhD,MAAAuY,MAAAsR,qBAAA,EACAljB,EAAA3D,OAAAoC,KAvIA,WACA,OAAA6J,GACA,IAAA,QACA,OAAA,SAAA0M,EAAAC,GACAkO,EAAAnO,EAAApX,OAAA,GACAwlB,EAAAnO,EAAArX,OAAA,GAKA,OAAAulB,EAHAA,EAAA7f,YAAA,MAGA8f,EAFAA,EAAA9f,YAAA,GAGA,EAGA8f,EAAAD,EACA,QAAA5a,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,oBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAqO,kBAAAC,QAAA,EAAArO,EAAAoO,kBAAAC,QAAA,IACA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,wBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAkK,sBAAAoE,QAAA,EAAArO,EAAAiK,sBAAAoE,QAAA,IACA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,oBACA,OAAA,SAAAyM,EAAAC,GAIA,QAHAD,EAAAuO,kBAAAvO,EAAAuO,kBAAAD,QAAA,EAAA,IACArO,EAAAsO,kBAAAtO,EAAAsO,kBAAAD,QAAA,EAAA,KAEA,QAAA/a,EAAA,EAAA,CAAA,EACA,EACA,IAAA,QACA,OAAA,SAAAyM,EAAAC,GACAi7B,EAAAN,GAAA56B,EAAAwO,MAAAvO,EAAAuO,KAAA,EACA,MAAA,QAAAjb,EAAA,CAAA,EAAA2nC,EAAAA,CACA,EACA,IAAA,WACA,OAAA,SAAAl7B,EAAAC,GACAi7B,EAAAN,GAAA56B,EAAAyO,SAAAxO,EAAAwO,QAAA,EACA,MAAA,QAAAlb,EAAA,CAAA,EAAA2nC,EAAAA,CACA,EACA,IAAA,kBACA,OAAA,SAAAl7B,EAAAC,GACA,OAAAD,EAAA0O,eAAAzO,EAAAyO,iBAAA,QAAAnb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,2BACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA2O,wBAAA1O,EAAA0O,0BAAA,QAAApb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,sBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA4O,mBAAA3O,EAAA2O,qBAAA,QAAArb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,0BACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA6O,uBAAA5O,EAAA4O,yBAAA,QAAAtb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,mCACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA8O,gCAAA7O,EAAA6O,kCAAA,QAAAvb,EAAA,EAAA,CAAA,EACA,EACA,IAAA,YACA,OAAA,SAAAyM,EAAAC,GACA8O,EAAA/O,EAAAgP,oBAAA1gB,YAAA,EACA2gB,EAAAhP,EAAA+O,oBAAA1gB,YAAA,EAEA,OAAAygB,IAAAE,EACA,EAGAA,EAAAF,EACA,QAAAxb,EAAA,EAAA,CAAA,EAGA,QAAAA,EAAA,CAAA,EAAA,CACA,EACA,IAAA,kBACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAAkP,gBAAAjP,EAAAiP,kBAAA,QAAA3b,EAAA,EAAA,CAAA,EACA,EACA,QACA,OAAA,SAAAyM,EAAAC,GACA,OAAAD,EAAA5b,GAAA6b,EAAA7b,KAAA,QAAAmP,EAAA,EAAA,CAAA,EACA,CACA,CACA,EA4CA,CAAA,EAEAL,GAAAA,GAAA,GAAAlI,EAAA3D,OAAA5B,OACA0N,EAAAA,GAAA,GAEAnI,EAAA3D,OAAApB,QAAA,SAAA2W,IACAzJ,EAAAyJ,EAAArY,KAAAqY,GACA/Q,OAAA,EAAA+Q,EAAA/Q,MAAApG,QACAmX,EAAA/Q,MAAApC,KAAApF,MAAA8kC,cAAA,CAEA,CAAA,EAEAn+B,CACA,CA+BA,SAAA48B,GAAA1a,GACA,OAAA7oB,MAAA+a,KAAAgB,KAAA,iBAAA8M,CAAA,CACA,CAwDA7lB,EAAAkE,KAnyGA,SAAAd,EAAAb,GAGA,GAAA,EAFA0qB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAQA0E,EANAA,EAOAoL,GAAA/Q,WAAAC,MAAAsa,mBACA7Z,MAAA4L,OAAAgkB,YAAAC,+BACAnvB,cAAAd,GACA,EACA2O,EAAA,EAEA0B,EAAA,EADAzB,EAAA,IAEAC,EAAA,GAEAoD,GAAAie,KAAA,8BAAA,0FAAA,EAEApvB,cAAAkK,SAAAlL,MAAAC,SAAA0B,KAAAuK,OAAA,OAAA,IAAA,IACAlM,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,aAAA,aAAA,aAAA,oBACA,eAAA,eAAA,eAAA,sBACA,gBAAA,gBAAA,gBAAA,wBAAA,IAAA,GACA2K,OAAAC,UACAD,OAAAC,SAAA0V,gBACAxsB,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,sBAAA,wBAAA,0BAAA,IAAA,GACA4mC,EAAAzuB,WAAA,UAAA,EAKAyuB,EAAA9kC,KAAA,WAAA,UAAA,EAGA+kC,EAAA/kC,KAAA,WAAA,UAAA,EACAglC,EAAAhlC,KAAA,WAAA,UAAA,EAmEAoE,GAAA3M,SAAA,MAAA,EACA4M,GAAA5M,SAAA,MAAA,EACA6M,GAAA7M,SAAA,MAAA,EACA8M,GAAA9M,SAAA,MAAA,EACA+M,EAAAxM,YAAA,MAAA,EACAyM,GAAAhN,SAAA,MAAA,EACAiN,GAAAjN,SAAA,MAAA,EACAkN,GAAAlN,SAAA,MAAA,EACAmN,GAAAnN,SAAA,MAAA,EACAoN,GAAA7M,YAAA,QAAA,EAEA9G,GAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,GAAA9M,YAAA,QAAA,EAIAwM,EAAAjT,KAAA,gBAAA,EAEA4K,SAAA,WAAA,EAGAgJ,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EAFAgN,EAAAnF,KAAA,QAAA9H,QAAAC,EAAA,8BAAA,CAAA,EAKA2sC,EAAAvzC,KAAA,YAAA,EAAA0G,KAAAC,QAAAC,EAAA,2BAAA,CAAA,EACAgtC,EAAA5zC,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,0BAAA,CAAA,EACAgtC,EAAA5zC,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,0BAAA,CAAA,EACAgtC,EAAA5zC,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,0BAAA,CAAA,EACAgtC,EAAA5zC,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,iCAAA,CAAA,EACAgtC,EAAA5zC,KAAA,oDAAA,EAAA0G,KAAAC,QAAAC,EAAA,mCAAA,CAAA,EACAgtC,EAAA5zC,KAAA,qDAAA,EAAA0G,KAAAC,QAAAC,EAAA,0BAAA,CAAA,EACAgtC,EAAA5zC,KAAA,QAAA,EAAA0G,KAAAC,QAAAC,EAAA,2BAAA,CAAA,EAEA4sC,EAAA9sC,KAAAC,QAAAC,EAAA,uBAAA,CAAA,EACA6sC,EAAA/sC,KAAAC,QAAAC,EAAA,sBAAA,CAAA,EAEAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACAnH,EAAA,kCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,gCAAA,EAAAgP,KAAA,QAAA9H,QAAAC,EAAA,qCAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAnH,EAAA,kCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,kCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAnH,EAAA,2CAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EACAnH,EAAA,qCAAA,EAAAiH,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACAnH,EAAA,4CAAA,EAAAiH,KAAAC,QAAAC,EAAA,4CAAA,CAAA,EACAnH,EAAA,oCAAA,EAAAiH,KAAAC,QAAAC,EAAA,oCAAA,CAAA,EACAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,sCAAA,CAAA,EACAnH,EAAA,oCAAA,EAAAiH,KAAAC,QAAAC,EAAA,oCAAA,CAAA,EACAnH,EAAA,kCAAA,EAAAiH,KAAAC,QAAAC,EAAA,kCAAA,CAAA,EACAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACAnH,EAAA,+CAAA,EAAAiH,KAAAC,QAAAC,EAAA,8CAAA,CAAA,EACAnH,EAAA,kDAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EACAnH,EAAA,6BAAA,EAAAiH,KAAAC,QAAAC,EAAA,wBAAA,CAAA,EACAkO,EAAA9U,KAAA,YAAA,EAAA0G,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EAEA6M,EAAAzT,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,iCAAA,CAAA,EACA6M,EAAAzT,KAAA,kCAAA,EAAA0G,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,oCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,4CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAA0G,KAAAC,QAAAC,EAAA,gDAAA,CAAA,EACA6M,EAAAzT,KAAA,8CAAA,EAAA0G,KAAAC,QAAAC,EAAA,+CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAA0G,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,qCAAA,CAAA,EACA6M,EAAAzT,KAAA,iCAAA,EAAA0G,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,4CAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAA0G,KAAAC,QAAAC,EAAA,8CAAA,CAAA,EACA6M,EAAAzT,KAAA,iDAAA,EAAA0G,KAAAC,QAAAC,EAAA,uDAAA,CAAA,EACA6M,EAAAzT,KAAA,4CAAA,EAAA0G,KAAAC,QAAAC,EAAA,kDAAA,CAAA,EACA6M,EAAAzT,KAAA,gDAAA,EAAA0G,KAAAC,QAAAC,EAAA,sDAAA,CAAA,EACA6M,EAAAzT,KAAA,yDAAA,EAAA0G,KAAAC,QAAAC,EAAA,+DAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAA0G,KAAAC,QAAAC,EAAA,8CAAA,CAAA,EAEA6M,EAAAzT,KAAA,2BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,iCAAA,CAAA,EACA6M,EAAAzT,KAAA,kCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,oCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,4CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,+CAAA,CAAA,EACA6M,EAAAzT,KAAA,8CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,+CAAA,CAAA,EACA6M,EAAAzT,KAAA,0CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,qCAAA,CAAA,EACA6M,EAAAzT,KAAA,iCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,uCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,4CAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,8CAAA,CAAA,EACA6M,EAAAzT,KAAA,iDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,uDAAA,CAAA,EACA6M,EAAAzT,KAAA,4CAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,kDAAA,CAAA,EACA6M,EAAAzT,KAAA,gDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,sDAAA,CAAA,EACA6M,EAAAzT,KAAA,yDAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,+DAAA,CAAA,EACA6M,EAAAzT,KAAA,wCAAA,EAAAyO,KAAA,QAAA9H,QAAAC,EAAA,8CAAA,CAAA,EAIA0Q,OAAAC,SAAAggC,iBACA3D,EACA5zC,KAAA,qDAAA,EACA6Z,OAAA,EAGApZ,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,aAAA,eAAA,iBAAA,IAAA,EACAinC,EACA5zC,KAAA,oDAAA,EACA8kB,WAAA,UAAA,EAEA8uB,EACA5zC,KAAA,oDAAA,EACAyO,KAAA,WAAA,UAAA,EAGAhO,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,aAAA,eAAA,iBAAA,IAAA,EACAinC,EACA5zC,KAAA,oDAAA,EACA8kB,WAAA,UAAA,EAEA8uB,EACA5zC,KAAA,oDAAA,EACAyO,KAAA,WAAA,UAAA,EAGAhO,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,aAAA,eAAA,iBAAA,IAAA,EACAinC,EACA5zC,KAAA,oDAAA,EACA8kB,WAAA,UAAA,EAEA8uB,EACA5zC,KAAA,oDAAA,EACAyO,KAAA,WAAA,UAAA,EAGAhO,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,oBAAA,sBAAA,wBAAA,IAAA,EACAinC,EACA5zC,KAAA,oDAAA,EACA8kB,WAAA,UAAA,EAEA8uB,EACA5zC,KAAA,oDAAA,EACAyO,KAAA,WAAA,UAAA,EAGA6I,OAAAC,UAAAD,OAAAC,SAAA0V,eAIAxsB,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,sBAAA,wBAAA,0BAAA,IAAA,EACAinC,EACA5zC,KAAA,oDAAA,EACAyG,YAAA,MAAA,EACAqe,WAAA,UAAA,EAEA8uB,EACA5zC,KAAA,oDAAA,EACAyG,YAAA,MAAA,EACAgI,KAAA,WAAA,UAAA,EAZAmlC,EACA5zC,KAAA,oDAAA,EACAkG,SAAA,MAAA,GAeA2J,EAAA,IAEAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAuZ,QACAjhB,EAAAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAEAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAwZ,aACAlhB,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EAGA0Q,OAAAC,UAAAD,OAAAC,SAAA0V,gBACApd,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,2CAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EACAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,kDAAA,CAAA,CAAA,EAIA6I,EAAA,CACA,CAAA9O,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,iCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,oCAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,4CAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,gDAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,+CAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,qCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,4CAAA,CAAA,EACA,CAAAjG,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,8CAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,uDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,kDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,sDAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,+DAAA,CAAA,EACA,CAAAjG,IAAA,KAAAqE,MAAA2B,QAAAC,EAAA,8CAAA,CAAA,IAkBAuJ,EAAA1Q,EAAA8V,IAAAiC,UAAA,GAAA,SAAAC,GAAA,OAAAA,CAAA,CAAA,GACA5R,KAAApF,MAAAwwB,cAAA,GAIA5gB,EAAA5Q,EAAA8V,IAAAwT,eAAA,GAAA,SAAArR,GAAA,OAAAA,CAAA,CAAA,GACA7R,KAAApF,MAAA6wB,WAAA,EAIA3gB,EAAAlR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAxE,OACA,OAAAuE,CAEA,CAAA,EAIA1gB,EAAApR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAA3G,SACA,OAAA0G,CAEA,CAAA,EAIAhhB,EAAA9Q,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAC,QACA,OAAAF,CAEA,CAAA,EAIA9gB,EAAAhR,EAAA8V,IAAA8a,YAAA,GAAA,SAAAkB,GACA,GAAAA,EAAAnkB,OAAArM,MAAAywB,aAAAE,eACA,OAAAH,CAEA,CAAA,EAIAsF,EAAA,CACA,CAAA7xB,MAAA2B,QAAAC,EAAA,2DAAA,EAAApG,GAAA,CAAA,EACA,CAAAwE,MAAA2B,QAAAC,EAAA,0DAAA,EAAApG,GAAA,CAAA,EACA,CAAAwE,MAAA2B,QAAAC,EAAA,yDAAA,EAAApG,GAAA,CAAA,GAzTAwF,GAAAA,EAAAmP,SAqWAA,EApWAnP,EAAAmP,OAqWAzT,OAAA+9B,KAAAtqB,GAAA,EAAA,EAAAtT,UAIA6b,GAAA,EAEA3N,EAAAoF,EAAAoS,OAAA,KACAvX,EAAAmF,EAAA2T,OAAA,KACAtX,EAAA2D,EAAA9C,cAAA,KAEA8C,EAAA0C,SACAnH,EAAAyE,EAAA0C,OACAtC,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAoL,EAAAmF,EAAA,KAAA,CACA,CAAA,EACAX,OAAA,SAAA0C,GAAA,MAAA,CAAA,CAAAA,CAAA,CAAA,GAGA1C,EAAA0hB,oBACAwc,EAAAl+B,EAAA0hB,mBA1HAv2B,EAAAG,MAAAuwB,mBAAAvvB,cAAAd,GAAA,GACAkF,KAAApF,MAAAwwB,cAAA,EAIAC,EAAAzwB,MAAA0wB,mBAAA1vB,cAAAd,GAAA,EAEAsP,EAAAihB,EAAApI,MACAzX,GAAA6f,EAAAE,aACA9f,GAAA4f,EAAAG,gBAjQA3b,GAAA,CAAA,CAAA,EACAO,GAAA,EACAksB,GAAA,EAwvCA3uB,EAAA1I,IAAA,uBAAA,EACAmI,EAAAnI,IAAA,sBAAA,EACA2I,EAAA3I,IAAA,qBAAA,EACA4I,EAAA5I,IAAA,wBAAA,EAEAiJ,EAAAjJ,IAAA,oBAAA,EACA8I,EAAA9I,IAAA,sBAAA,EACA8oC,EAAA9oC,IAAA,gBAAA,EACA0oC,EAAA1oC,IAAA,mBAAA,EACA2oC,EAAA3oC,IAAA,kBAAA,EACAkJ,GAAAlJ,IAAA,sBAAA,EACAmJ,GAAAnJ,IAAA,gCAAA,EACAoJ,GAAApJ,IAAA,yBAAA,EACAqJ,GAAArJ,IAAA,sBAAA,EACAsJ,GAAAtJ,IAAA,sBAAA,EACAuJ,GAAAvJ,IAAA,yBAAA,EACAwJ,GAAAxJ,IAAA,8BAAA,EACAyJ,GAAAzJ,IAAA,yBAAA,EACA0J,GAAA1J,IAAA,gCAAA,EACA2J,GAAA3J,IAAA,wBAAA,EACA4J,GAAA5J,IAAA,0BAAA,EACA6J,GAAA7J,IAAA,sBAAA,EACA8J,GAAA9J,IAAA,4BAAA,EAEAgK,EAAAhK,IAAA,0BAAA,EACAmI,EAAAnI,IAAA,oCAAA,EACA6oC,GAAA7oC,IAAA,kCAAA,EACAmI,EAAAnI,IAAA,uCAAA,EAEA+J,GAAA/J,IAAA,cAAA,EAEA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,8BAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,0BAAA,EACA6I,EAAA7I,IAAA,oBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACA6I,EAAA7I,IAAA,sCAAA,EACA6I,EAAA7I,IAAA,sCAAA,EAIAmI,EAAApI,GAAA,uBAAA,mBAAA2zB,EAAA,EACA/qB,EAAA5I,GAAA,sBAAA,YAAAga,EAAA,EACAnR,EAAA7I,GAAA,yBAAAka,EAAA,EAEAhR,EAAAlJ,GAAA,qBAAA+S,EAAA,EACAhK,EAAA/I,GAAA,uBAAA4R,EAAA,EACAm3B,EAAA/oC,GAAA,iBAAA,iCAAAupC,EAAA,EACAZ,EAAA3oC,GAAA,oBAAA0qC,EAAA,EACA9B,EAAA5oC,GAAA,mBAAA2qC,EAAA,EACAxhC,GAAAnJ,GAAA,uBAAAgT,EAAA,EACA5J,GAAApJ,GAAA,iCAAA2T,EAAA,EACAtK,GAAArJ,GAAA,0BAAAmU,EAAA,EACA7K,GAAAtJ,GAAA,uBAAA0U,EAAA,EACAnL,GAAAvJ,GAAA,uBAAA4U,EAAA,EACApL,GAAAxJ,GAAA,0BAAAoV,EAAA,EACA3L,GAAAzJ,GAAA,+BAAAuV,EAAA,EACA7L,GAAA1J,GAAA,0BAAAyV,EAAA,EACA9L,GAAA3J,GAAA,iCAAA6V,EAAA,EACAjM,GAAA5J,GAAA,yBAAAiW,EAAA,EACApM,GAAA7J,GAAA,2BAAA8W,EAAA,EACAhN,GAAA9J,GAAA,uBAAAkX,EAAA,EACAnN,GAAA/J,GAAA,6BAAA0X,EAAA,EACAzN,EAAAjK,GAAA,2BAAAiY,EAAA,EACA7P,EAAApI,GAAA,qCAAA,4CAAA6qC,EAAA,EACAziC,EAAApI,GAAA,wCAAA,kDAAAqZ,EAAA,EACArP,GAAAhK,GAAA,eAAAsZ,EAAA,EACAwvB,GAAA9oC,GAAA,mCAAAkpC,EAAA,EAEApgC,EAAA9I,GAAA,wBAAA,iBAAAka,EAAA,EACApR,EAAA9I,GAAA,+BAAA,WAAAma,EAAA,EACArR,EAAA9I,GAAA,kBAAA,SAAAoa,EAAA,EACAtR,EAAA9I,GAAA,yBAAA,SAAA0b,EAAA,EACA5S,EAAA9I,GAAA,kBAAA,SAAAgb,EAAA,EACAlS,EAAA9I,GAAA,2BAAA,QAAA4b,EAAA,EACA9S,EAAA9I,GAAA,qBAAA,eAAA+c,EAAA,EACAjU,EAAA9I,GAAA,uCAAA,iBAAAoc,EAAA,EACAtT,EAAA9I,GAAA,uCAAA,iBAAA8c,EAAA,EAn0CA3K,EAAA,EA9DAoiB,GAAA,EACAj+B,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,EAoxGAjK,EAAAF,iBA7BA,SAAAykB,GACA,IAQAwvB,EARA,GAAAxvB,EAgBA,OAZAsB,EAAAvB,GAAAC,EAAA,CAAA,EAEA1oB,SAAA6O,qBAAA6Z,EAAArnB,GAAA,GAEA62C,EAAAxT,GAAA1a,CAAA,GAEAnoB,KAAA,SAAAiG,GACA9H,SAAA+O,cAAA2Z,EAAArnB,IAAAyG,EAAAmsB,UAAA,CACA,EAAA,WACAj0B,SAAA+O,cAAA2Z,EAAArnB,IAAA,CAAA,CACA,CAAA,EAEA62C,CACA,EAYA/zC,EAAAgK,OAAAuP,EACAvZ,EAAA2L,aAAAsO,GACAja,EAAAmuB,0BAv4EA,WACApf,EAAAC,YACAD,EAAAC,UAAAof,MAAA,EACArf,EAAAC,UAAA,MAGAD,EAAAE,YACAF,EAAAE,UAAAmf,MAAA,EACArf,EAAAE,UAAA,KAEA,EA83EAjP,EAAA2E,QAbA,WACA3G,eACA,OAAAA,cAAAg2C,gBAGA9jC,EAAAmU,MAAA,CACA,EASA7oB,EAAAwE,OAAAA,CACA,EAAA4L,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,ECv4GA,SAAAL,GACA,IAEA2Q,EAAAC,EACAsX,EAAA5X,EAAAmoC,EAwBAC,EA3BA5vC,EAAA,GACA6vC,EAAA,CAAApxB,MAAA,EAAAsX,WAAA,CAAA,EAIAlrB,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACAo4C,EAAAp4C,EAAA,iBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EACAsU,EAAAtU,EAAA,8BAAA,EACAuU,EAAAvU,EAAA,4BAAA,EACA+T,EAAAR,EAAAhT,KAAA,oBAAA,EACA2T,EAAAH,EAAAxT,KAAA,gBAAA,EACAyR,EAAA,CACAC,WAAA,CAAA,CACA,EA+FA,SAAAuE,IACAb,EAAA,EACAH,EAAA,CACA,CAEA,SAAAA,IACA,IAAAC,EAEAC,EAAA,IAAAA,KAAA1D,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,CACA,CAEA,SAAA2O,IACA,IACAE,GAAA1F,GAAA,IAAA2F,IAAA,SAAAC,GACA,OAAAA,EAAAxQ,KACA,CAAA,EAEAyM,EAAAC,WAAA,EAAA4D,EAAAzT,OACAmS,EAAA/J,YAAA,kBAAAwH,EAAAC,UAAA,EAGAhL,EADA+K,EAAAC,WACA4D,EAAAzT,SAAAgO,EAAAhO,OACA8E,QAAAC,EAAA,8BAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEA9O,QAAAC,EAAA,sCAAA,EAGAoN,EAAAhU,KAAA,YAAA,EAAAgN,KAAAtG,CAAA,CACA,CAEA,SAAAoG,IACAqa,EAAA,KACA5X,EAAA,GACAmoC,EAAA,GAEAziC,EAAA,EACAtB,EAAAmU,MAAA,EAEAlD,EAAA,EACAzjB,KAAA7B,SAAAoP,iBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CA+BA,SAAA6Y,EAAAtb,GACA,IAAAuS,EAAA/d,EAAA0D,IAAA,EAAAsa,QAAA,QAAA,EAAArW,KAAA,KAAA,EAQA,OANA8V,aAAAvV,KAAA,CACA6e,MAAAjX,EAAAiO,GACApQ,KAAA,OACA,CAAA,EAEAnC,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAkc,EAAAxb,GACA,IAIA+N,EAJA9N,EAAAzL,EAAA0D,IAAA,EAEAqa,EADAtS,EAAAwb,QAAA,IAAA,EACAtf,KAAA,KAAA,EACAuf,EAAA,CAAAzb,EAAA9D,KAAA,OAAA,EAsBA,OAnBA3H,EAAA,cAAA,EAAAyG,SAAA,MAAA,GAEA8S,EAAAzJ,EAAAiO,MACA/c,MAAA6a,QAAAC,KAAA,EAEAqL,EAAA,iBAAArgB,OAAAyS,EAAAxY,GAAAmmB,EAAA,yBAAA,0BAAA,EAEAlmB,MAAA+a,KAAAgB,KAAAoK,EAAA,KAAA,WACA5N,EAAA6N,WAAAF,EACAlmB,MAAAqmB,UAAA9N,EAAA6N,WAAAzkB,KAAAzB,GAAA,EACAF,MAAAoZ,OAAAb,EAAA6N,WAAAzkB,KAAAzB,GAAA,EAEAuK,EAAA6b,YAAA+wB,EAAA9+B,CAAA,CAAA,EAEAvY,MAAA6a,QAAAK,KAAA,CACA,EAAAlb,MAAA6a,QAAAK,IAAA,GAGA1Q,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAwtC,EAAA9sC,GACA,IAAAic,EAAAznB,EAAA,cAAA,EACAyL,EAAAzL,EAAA0D,IAAA,EACAgkB,EAAAjc,EAAAic,OAAA,EAGAC,GAAAlc,EAAA9D,KAAA,MAAA,GAAA,IAAAyO,MAAA,GAAA,EAEAwR,EAAA5nB,EAAA8V,IAAA6R,EAAA,SAAAtR,GACAwR,EAAAC,MAAAzR,IAAA0B,SAAA1B,GAEA,GAAAwR,EACA,OAAAA,EAAAE,QAEA,CAAA,EAEAH,EAAAxhB,KAAApF,MAAAgnB,eAAA,EAEA,GAAAJ,EAAAxlB,SACAwlB,EAAAA,EAAAK,MAAA,EAAA,EAAA,GACA7kB,KAAA,YAAA0D,OAAA6gB,EAAAvlB,OAAA,GAAA8E,QAAAC,EAAA,WAAA,CAAA,CAAA,EAGAsgB,EAAAla,KAAAqa,EAAA5R,KAAA,QAAA,CAAA,EACAyR,EAAAzgB,YAAA,MAAA,EACAygB,EAAAzY,KAAA,QAAA,CAAA,EACAyY,EAAArd,IAAA,CACA8P,KAAAwN,EAAAxN,KAAAuN,EAAA9d,WAAA,CAAA,CAAA,EAAA,EAAA,EACAsQ,IAAAyN,EAAAzN,IAAAwN,EAAAxC,YAAA,CAAA,CAAA,EAAA,CACA,CAAA,CACA,CAEA,SAAAszB,IACAv4C,EAAA,cAAA,EAAAyG,SAAA,MAAA,CACA,CAEA,SAAA0hB,EAAA3c,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAujB,QAAA,IAAA,EAAAtf,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,EAAA,CAAAyC,MAAA,UAAA,CAAA,EAEA5c,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAqa,IAGA,GAFApR,EAAA1I,IAAA,uBAAA,EAEA,CAAAxL,SAAAsO,cAAA,EACA,OAAAnO,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,EAGA5C,MAAA6a,QAAAC,KAAA,EAEA,IAAA+N,EAwKA,WACA,IAAAA,EAAA,CACAnC,OAAAA,EAAA1mB,MAAAspB,SAAAC,YAAA7C,CAAA,EAAA,KACA+f,KAAA,GACA+Q,YAAAx2C,cAAAd,IACAu3C,mBAAA54C,SAAA2O,sBAAA,EACAu/B,wBAAAluC,SAAA4O,2BAAA,CACA,GAEA0B,GAAA,IAAAvN,QAAA,SAAAmT,GACAM,EAAAN,EAAA7U,IAAAouC,QAAA,IAAA,GAAA,EAEA,MAAAj5B,EACAwT,EAAAzZ,MAAApP,MAAAqmB,UAAAwC,EAAAzZ,MAAA+nC,EAAA9Z,UAAA,GAEAxU,EAAAzZ,MAAApP,MAAAqmB,UAAAwC,EAAAzZ,MAAA+nC,EAAApxB,KAAA,EACA8C,EAAA6uB,WAAA13C,MAAAqmB,UAAAwC,EAAA6uB,WAAAriC,CAAA,EAEA,CAAA,EAEAwT,EAAAzZ,QACAyZ,EAAAzZ,MAAAyZ,EAAAzZ,MAAA4F,KAAA,GAAA,EAEA6T,EAAA6uB,cACA7uB,EAAA6uB,WAAA7uB,EAAA6uB,WAAA1iC,KAAA,GAAA,GAIA,OAAA6T,CACA,EArMA,EAEA,OAmlBA7oB,MAAA+a,KAAAuwB,IAAA,eAAA,KAAA,KAnlBAziB,CAmlBA,EAllBAnoB,KAAAi3C,EAAA,SAAA18B,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAAk3C,EAAA,SAAA38B,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA,SAAAm3C,GACA,GAAAA,aAAA12C,OAAA02C,EAAAz2C,OA6BA,OAzBA8R,EAAA3T,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEA8nB,EAAAz2C,SACAslB,EAAAmxB,EAAAA,EAAAz2C,OAAA,GAAAq9B,WAGA,KAAAoZ,EAAAz2C,QACA2R,EAAA3I,GAAA,wBAAA0Z,CAAA,EAGA+zB,EAAAj2C,QAAA,SAAAk2C,GACA,OAAAA,EAAAnrC,MACA,KAAAwqC,EAAApxB,MACAjX,EAAAgpC,EAAA/xB,MAAA7lB,KAAA43C,EAAA/xB,MACA,MACA,KAAAoxB,EAAA9Z,WACA4Z,EAAAa,EAAAza,WAAAn9B,KAAA43C,EAAAza,UAEA,CACA,CAAA,EAEAr9B,MAAA6a,QAAAK,KAAA,EAEA28B,CACA,CAAA,CACA,CAEA,SAAAt7B,IACA,IAAA9T,EAAA8J,EAAAhT,KAAA,gBAAA,EAAAmJ,MAAA,EAAA,EAEA6J,EAAAhT,KAAA,8BAAA,EAAA6J,IAAA,YAAAX,CAAA,CACA,CAEA,SAAAwU,IACA3J,EAAAtN,YAAA,QAAA,EAEAgL,EAAA,CACAC,WAAA,CAAA,CACA,EAEA9B,EAAA,IACA,CAEA,SAAAgO,IACAF,EAAA,EACAzH,EAAA,EACA+G,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAA+Q,IACA,IAAA7X,EAAA,CACAM,MAAAK,QAAAC,EAAA,gCAAA,EACAkX,QAAAC,EACAC,gBAAApO,EACAqO,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAkI,EAAA7J,CAAA,CACA,CAEA,SAAA+X,EAAAQ,GACA3O,GAAA2O,GAAA,IAAAhJ,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAAsK,EAAAiG,EAAA,KAAA,CACA,CAAA,EAEAV,EAAA,EACA4H,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyX,IACA,IAAAC,EAAAhR,EAAAiR,YAAA,EACA9Q,EAAA+Q,YAAA,CAAA,CAAA,EAGAF,EAFAhR,EAAAmR,UAAA,GAEA,MACAnR,EAAA1I,IAAA,uBAAA,EAEA8Z,EAAA,EAEA,CAEA,SAAAI,EAAA/Z,GACAA,EAAAV,gBAAA,CACA,CAEA,SAAA0a,EAAAha,GACA,IACAia,EADAzlB,EAAA0D,IAAA,EACAiE,KAAA,IAAA,EAKA,OAHA+d,YAAAxd,KAAAud,EAAApY,EAAAsY,CAAA,EAEAna,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAA6a,EAAAC,GACA,IAoBAC,EApBAD,IAIArM,EAAAzJ,EAAA8V,EAAAE,aAMAvM,EAAAwM,SAAA/kB,MAAAuY,MAAAyM,yBAAAJ,EAAAG,QAAA,GAEAE,EAAAlS,EAAAxT,KAAA,gBAAAgZ,EAAArY,IAAA,IAAA,GAEAkB,UAIA6jB,EAAA1lB,KAAA,iBAAA,EAAA6Z,OAAA,EAEAyL,EAAAkzB,EAAAx/B,CAAA,EACA0M,EAAA1lB,KAAA,WAAA,EAAA4lB,MAAAN,CAAA,EACA,CAEA,SAAA6a,EAAAl1B,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EACAs1C,EAAA9kC,EACAgG,EAAA8+B,EAAAlY,WAAA,EACA7mB,EAAA++B,EAAA9zB,UAAA,EACA0b,EAAAn1B,EAAA9D,KAAA,KAAA,EAEA6D,EAAAV,gBAAA,EAEAi2B,kBAAAjlB,KAAA,CACA5a,IAAA0/B,EACAI,QAAAv1B,EACAw1B,QAAA+X,EACA9X,WAAA8X,EACA7X,WAAA,CAAAn/B,cAAAkK,QACAk1B,OAAA,CACAC,EAAAnnB,EACAonB,EAAArnB,CACA,CACA,CAAA,EAEAja,EAAA,MAAA,EAAAm/B,IAAA,+BAAA4B,kBAAA7kB,IAAA,CACA,CAiCA,SAAAy8B,EAAAE,GACA,IAAAlT,GAAAkT,GAAA,IAAAnjC,OAAA,SAAAmjC,GACA,OAAAA,EAAAlrC,OAAAwqC,EAAA9Z,YACAwa,EAAAxa,YACA,CAAA6Z,EAAAnrC,eAAAorC,EAAA3Y,UAAA,CACA,CAAA,EACA1pB,IAAA,SAAA+iC,GACA,MAAA,CACA33C,IAAA23C,EAAAxa,WAAAmB,WACAoG,cAAA,CAAA,CACA,CACA,CAAA,EAEApiC,EAAAxD,EAAAyD,SAAA,EAEA,OAAAkiC,EAAAvjC,QAIApB,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,EACAjkC,KAAA,SAAAmkC,GACA,IAAAM,EAAAnlC,MAAA2tB,QAAAyX,qCAAAP,CAAA,EAEA,GAAAM,EAIA,IAAA,IAAA9vB,KAAA8vB,EACA+R,EAAA7hC,GAAA8vB,EAAA9vB,EAEA,EAAA7S,EAAAwtB,MAAA,EACAtvB,KAAA,WACA,OAAA8B,EAAAG,QAAA3D,EAAA8V,IAAA+iC,GAAA,GAAAI,CAAA,CAAA,CACA,CAAA,EAEAz1C,GAnBAA,EAAAG,QAAA3D,EAAA8V,IAAA+iC,GAAA,GAAAI,CAAA,CAAA,GAmBAr1C,QAAA,CACA,CAEA,SAAAq1C,EAAAH,GAGA,OAFAA,EAAArZ,UAAA,IAAAnb,KAAAw0B,EAAArZ,SAAA,EAEAqZ,EAAAnrC,MACA,KAAAwqC,EAAApxB,MACA+xB,EAAA/xB,MAAA/lB,MAAAuY,MAAAsR,sBAAAiuB,EAAA/xB,KAAA,EACA,MACA,KAAAoxB,EAAA9Z,WACAya,EAAAza,aAOAX,EAPAob,EAAAza,YAQArT,kBAAA,IAAA1G,KAAAoZ,EAAA1S,iBAAA,EACA0S,EAAA7W,sBAAA,IAAAvC,KAAAoZ,EAAA7W,qBAAA,EAEA6W,EAAAzO,QAAAnH,MAAA4V,EAAAtB,YACAsB,EAAA/W,OAAAmB,MAAA4V,EAAAP,WACAO,EAAAH,QAAA2a,EAAAxa,EAAA8B,YACA9B,EAAAE,SAAAF,EAAAG,YAAAjN,WAAA8M,EAAAG,aAAA,KACAH,EAAA7P,aAAAhuB,SAAAqP,2BAAAwuB,EAAA8B,WAAA0Y,CAAA,EAEAl3C,MAAAo9B,OAAAC,WAAAX,CAAA,EAfA,CAKA,IAAAA,EAHA,OAAAob,CACA,CAeA,SAAAF,EAAAC,GACA,IAAAtrC,EA8BA,OA5BAsrC,GAAA,IAAAz2C,QAoBAy2C,EAAAzyC,KAAA,SAAAuW,EAAAC,GACA,OAAAA,EAAA6iB,UAAAxU,QAAA,EAAAtO,EAAA8iB,UAAAxU,QAAA,CACA,CAAA,EAEA1d,EAAAvN,EAAA8V,IAAA+iC,GAAA,GAAAK,EAAA,EAEAhlC,EAAA0F,OAAArM,EAAAyI,KAAA,EAAA,CAAA,GAzBA0R,IACAna,EAAA,CACA,qBACA,mBACA,kCACA,oCACA,0BAAAzG,OAAAI,QAAAC,EAAA,iCAAA,CAAA,EACA,SACA,SACA,QACA,SAGA+M,EAAA0F,OAAArM,EAAAyI,KAAA,EAAA,CAAA,GAcA6iC,CACA,CAEA,SAAAK,GAAAJ,GACA,OAAAA,EAAAnrC,OAAAwqC,EAAApxB,OAMAxZ,EAAA,GACAgM,GAFAu/B,EAJAA,GAMA/xB,MAEAxZ,EAAAnK,KACA,wEACA0D,OAAAyS,EAAArY,IAAAqY,EAAAxY,GAAAwY,EAAA4jB,SAAA,EACA,OAkDA,SAAA5jB,GACA,MAAA,2CAAAzS,OACA9F,MAAA0Y,qBAAAH,CAAA,EACAA,EAAAxY,GACAwY,EAAAI,QAAA,CACA,EAtDAJ,CAAA,EAwDA,SAAAA,GACA,MAAA,mCAAAzS,OA+LA,SAAAiP,GACA,OAAAA,GACA,KAAAzU,MAAAgrB,UAAAC,KACA,MAAA,kBACA,KAAAjrB,MAAAgrB,UAAAE,YACA,MAAA,iCACA,KAAAlrB,MAAAgrB,UAAAG,sBACA,MAAA,yBACA,KAAAnrB,MAAAgrB,UAAAI,WACA,MAAA,oBACA,KAAAprB,MAAAgrB,UAAAK,cACA,KAAArrB,MAAAgrB,UAAAM,KACA,KAAAtrB,MAAAgrB,UAAAO,OACA,MAAA,iBACA,KAAAvrB,MAAAgrB,UAAAQ,aACA,MAAA,sBACA,QACA,MAAA,gBACA,CACA,EAlNAvT,EAAA5L,IAAA,CAAA,CACA,EAzDA4L,CAAA,EACA,+CACA,QACA,OAwDA,SAAAA,GACA,MAAA,qCAAAzS,OACAyS,EAAAhU,OAAA2B,QAAAC,EAAA,eAAA,EA+MA,SAAAoS,GACA,GAAAA,EAAA4R,OAAA5R,EAAA4R,MAAAguB,kBACA,OAAA5/B,EAAA4R,MAAAguB,kBAGA,OAAA,IAAA5/B,EAAAI,SAIAJ,EAAAwP,WACA7hB,QAAAC,EAAA,+BAAA,EACAD,QAAAC,EAAA,+BAAA,EALAD,QAAAC,EAAA,8BAAA,CAMA,EA1NAoS,CAAA,CAAA,CACA,EA3DAA,CAAA,EAoGA,SAAAA,GACA,IAAAwT,IAAAxT,EAAAyT,gBAAA,IAAAC,WAAA,IAAA7W,MAAA,GAAA,EAGA,GAAA2W,EAAA3qB,QAAA,EACA,MAAA,GAKA,OAFAgrB,EAAAL,EAAA9E,MAAA,CAAA,EAAAjS,KAAA,IAAA,EAEA,oCAAAlP,OAAAsmB,CAAA,CACA,EA9GA7T,CAAA,EAgHA,SAAAA,GACA,IAIA+T,EAJA,OAAA/T,EAAA8T,gCAIAC,EAAA/T,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MACAzsB,MAAAuY,MAAAmU,0BAAAnU,EAAA8T,+BAAAM,SAAA,EACA,KAEA,4DACA7mB,OACAyS,EAAA8T,+BAAAE,SAAAjsB,MAAAksB,eAAAD,OAAAE,MAAA,cAAA,GACAvmB,QAAAC,EAAA,mCAAA,EACAnG,MAAAuY,MAAAqU,2BAAArU,EAAA8T,+BAAAE,MAAA,EACAD,EAAA,KAAAA,EAAA,IAAA,EACA,GAbA,EAcA,EA/HA/T,CAAA,EAiEA,SAAAA,GACA,IAAAhM,EAAA,GAEA,GAAA,CAAAgM,EAAA8R,eACA,MAAA,GAGA9d,EAAAnK,KAAA,6BAAA,EAEAmK,EAAAnK,KAAA8D,QAAAC,EAAA,yCAAA,CACAiyC,yBAAA7/B,EAAA+R,yBAAA,EACA+tB,gBAAA9/B,EAAA8R,cACA,CAAA,CAAA,EAEA9R,EAAAiS,yBACAje,EAAAnK,KAAA,QAAA,EACAmK,EAAAnK,KAAA8D,QAAAC,EAAA,iDAAA,CACAiyC,yBAAA7/B,EAAAkS,iCAAA,EACA4tB,gBAAA9/B,EAAAiS,sBACA,CAAA,CAAA,GAKA,OAFAje,EAAAnK,KAAA,MAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAzFAuD,CAAA,EA2FA,SAAAA,GACA,OAAAA,EAAAsU,aACA,8BAAA/mB,OAAAyS,EAAAsU,YAAA,EACA,EACA,EA9FAtU,CAAA,EACAw/B,EAAAx/B,CAAA,EACA,QACA,OAgKA,SAAAA,GACA,IAAAhM,EAAA,GACA4hB,EAAA5V,EAAAoN,OAKA,OAHApZ,EAAAnK,KAAA,uCAAA0D,OAAA9F,MAAA8mB,MAAAwxB,sBAAAnqB,CAAA,CAAA,CAAA,EACA5hB,EAAAnK,KAAA,kCAAA0D,OAAAqoB,EAAAA,EAAA5pB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,CAAA,EAEAoG,EAAAyI,KAAA,EAAA,CACA,EAvKAuD,CAAA,EAyKA,SAAAA,GACA,MAAA,4CAAAzS,OACA9F,MAAAspB,SAAA4E,oBAAA3V,EAAAsN,qBAAA,CAAA,CACA,EA3KAtN,CAAA,EA6KA,SAAAA,GACA,OAAAA,EAAA4R,MACA,wFACArkB,OAAAyS,EAAA4R,MAAAkE,MAAA9V,EAAA4R,MAAA5lB,KAAA,EACA,EACA,EAjLAgU,CAAA,EACA,QACA,OACA,EAEAhM,IAIAA,EAAA,GACAmwB,GAFAob,EAlCAA,GAoCAza,WAEA9wB,EAAAnK,KACA,+DAAA0D,OAAA42B,EAAAx8B,IAAAw8B,EAAAP,SAAA,EACA,OAqKA,SAAAO,GACA,MAAA,6CAAA52B,OAAA42B,EAAA38B,GAAA28B,EAAA/jB,QAAA,CACA,EAtKA+jB,CAAA,EACA,yDACA,QACA,OAqKA,SAAAA,GACA72B,GAAA62B,EAAAH,SAAA,IAAAh4B,OAAA2B,QAAAC,EAAA,eAAA,EAEA,OAAAD,QAAAC,EAAA,2CAAA,CAAAoyC,gBAAA1yC,CAAA,CAAA,CACA,EAxKA62B,CAAA,EA0KA,SAAAA,GAOA,OAAAA,GAAA,KAAA,IAAAA,EAAAC,MAMA,+BAFA38B,MAAAkB,OAAAixB,OAAAnzB,EAAAmpB,OAAAuU,CAAA,EAVA,CACAiE,UAAA,CAAA,EACAD,cAAA,CAAA,EACA4L,iBAAA,CAAA,CACA,CAMA,EAEA,OALA,qCAMA,EAvLA5P,CAAA,EAyLA,SAAAA,GACA,OAAAA,EAAA7P,aACA,8BAAA/mB,OAAA42B,EAAA7P,YAAA,EACA,EACA,EA5LA6P,CAAA,EACA,QACA,OA4LA,SAAAA,GACA,IAAAnwB,EAAA,GACA4hB,EAAAuO,EAAA/W,OAKA,OAHApZ,EAAAnK,KAAA,uCAAA0D,OAAA9F,MAAA8mB,MAAAwxB,sBAAAnqB,CAAA,CAAA,CAAA,EACA5hB,EAAAnK,KAAA,kCAAA0D,OAAAqoB,EAAAA,EAAA5pB,MAAA2B,QAAAC,EAAA,cAAA,CAAA,CAAA,EAEAoG,EAAAyI,KAAA,EAAA,CACA,EAnMA0nB,CAAA,EAqMA,SAAAA,GACA,MAAA,4CAAA52B,OACA9F,MAAAspB,SAAA4E,oBAAAwO,EAAA7W,qBAAA,CAAA,CACA,EAvMA6W,CAAA,EAyMA,SAAAA,GACA,OAAAA,EAAAE,SACA,2FACA92B,OAAA42B,EAAAE,SAAAvO,MAAAqO,EAAAE,SAAAr4B,KAAA,EACA,EACA,EA7MAm4B,CAAA,EACA,QACA,OACA,EAEAnwB,IA1BAyI,KAAA,EAAA,EAGA,IA/BA8iC,EACAvrC,CAHA,CAkJA,SAAAwrC,EAAAx/B,GACA,IAAAhM,EAAA,GAYA,OAVAA,EAAAnK,KAAA,4BAAA,EACAmK,EAAAnK,KAAAi1C,EAAA9+B,CAAA,CAAA,EACAhM,EAAAnK,KAAA,8BAAA,GAEAmW,EAAAwM,UAAA,IAAA3jB,QACAmL,EAAAnK,KAAA,uBAAA0D,OAAAyS,EAAAwM,SAAA3jB,MAAA,CAAA,EAGAmL,EAAAnK,KAAA,kBAAA0D,OAAAI,QAAAC,EAAA,qBAAA,CAAA,CAAA,EAEAoG,EAAAyI,KAAA,EAAA,CACA,CAEA,SAAAqiC,EAAA9+B,GACAsX,EAAAtX,EAAA6N,WAEA,OAAApmB,MAAAC,SAAA4vB,EAAAluB,KAAAzB,GAAA,EACA,qGACA4F,OACAI,QAAAC,EAAA,kBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,GACAyuB,GAAA,IAAAzuB,OACA,mFACA0E,OACAI,QAAAC,EAAA,gBAAA,EACA0pB,EAAA7a,KAAA,GAAA,EACA6a,EAAAzuB,MAAA,EAGA,gCAAA0E,OAAAI,QAAAC,EAAA,gBAAA,CAAA,CACA,CA0HAmB,EAAAJ,KAz2BA,SAAAd,GAGA,GAAA,EAFA6pB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAOA6lB,EAAA,KACA5X,EAAA,GACAmoC,EAAA,GACAC,EAAA,GAEA/kC,EAAAie,KAAA,8BAAA,0FAAA,EAcAhe,EAAA3M,SAAA,MAAA,EACA4M,EAAA5M,SAAA,MAAA,EACA6M,EAAA7M,SAAA,MAAA,EACA8M,EAAAvM,YAAA,MAAA,EACAwM,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACA2xC,EAAA3xC,SAAA,MAAA,EACAiN,EAAAjN,SAAA,MAAA,EACAkN,EAAAlN,SAAA,MAAA,EACAmN,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAIAhH,EAAA,gCAAA,EAAAiH,KAAAC,QAAAC,EAAA,gCAAA,CAAA,EAEAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACAoN,EAAAhU,KAAA,QAAA,EAAA0G,KAAAC,QAAAC,EAAA,gCAAA,CAAA,EACAoN,EAAAhU,KAAA,QAAA,EAAA0G,KAAAC,QAAAC,EAAA,gCAAA,CAAA,GAIAiJ,EAAA,IAEAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,CAAA,EACAiJ,EAAAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,gCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAuZ,QACAjhB,EAAAhN,KAAA,CAAAlC,IAAA,MAAAqE,MAAA2B,QAAAC,EAAA,gCAAA,CAAA,CAAA,EAEAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,gCAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,gCAAA,CAAA,CAAA,EACAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,uCAAA,CAAA,CAAA,EAEA0Q,OAAAC,UAAAD,OAAAC,SAAAwZ,aACAlhB,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,sCAAA,CAAA,CAAA,EAGA0Q,OAAAC,UAAAD,OAAAC,SAAAuZ,SACAjhB,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,kCAAA,CAAA,CAAA,EAGA0Q,OAAAC,UAAAD,OAAAC,SAAA0V,gBACApd,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EAGAiJ,EAAAhN,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,gDAAA,CAAA,CAAA,EA7DAqP,EAAA,EAqHAlC,EAAAjJ,IAAA,oBAAA,EACAkJ,EAAAlJ,IAAA,sBAAA,EAEA6I,EAAA7I,IAAA,8BAAA,EACA6I,EAAA7I,IAAA,iBAAA,EACA6I,EAAA7I,IAAA,sBAAA,EACA6I,EAAA7I,IAAA,wBAAA,EACA6I,EAAA7I,IAAA,0BAAA,EACA6I,EAAA7I,IAAA,oBAAA,EACA6I,EAAA7I,IAAA,uBAAA,EACA6I,EAAA7I,IAAA,8BAAA,EACA6I,EAAA7I,IAAA,8BAAA,EAIAiJ,EAAAlJ,GAAA,qBAAA+S,CAAA,EACA5J,EAAAnJ,GAAA,uBAAAgT,CAAA,EAEAlK,EAAA9I,GAAA,+BAAA,0BAAAma,CAAA,EACArR,EAAA9I,GAAA,kBAAA,SAAAoa,CAAA,EACAtR,EAAA9I,GAAA,uBAAA,cAAAs1B,CAAA,EACAxsB,EAAA9I,GAAA,yBAAA,SAAA0b,CAAA,EACA5S,EAAA9I,GAAA,2BAAA,QAAA4b,CAAA,EACA9S,EAAA9I,GAAA,qBAAA,eAAA+c,CAAA,EACAjU,EAAA9I,GAAA,+BAAA,iBAAAktC,CAAA,EACApkC,EAAA9I,GAAA,+BAAA,iBAAAmtC,CAAA,EA3IAh7B,EAAA,EAEArJ,EAAAmU,MAAA,EAnBAlD,EAAA,CACA,EA41BA7c,EAAA0F,OAAAuP,EACAjV,EAAAqH,aAAAsO,EACA3V,EAAAK,QARA,WACAuvC,EAAA,KACAhkC,EAAAmU,MAAA,CACA,EAOA7oB,EAAA8I,KAAAA,CACA,EAAAsH,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,EC74BA,SAAAL,GACA,IAOAg6C,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EAAAC,EAAAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAAC,EAIAC,EAGAC,EAzBAv2C,EAAA,GAEAw2C,EAAA,CACAC,eAAA,EACAC,aAAA,CACA,EAkBAC,EAAAH,EAAAC,eAIA3nC,EAAAlT,EAAA,MAAA,EACAmT,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EACA+T,EAAAL,EAAAnT,KAAA,oBAAA,EACAyT,EAAAN,EAAAnT,KAAA,aAAA,EACA2T,EAAAH,EAAAxT,KAAA,gBAAA,EACAy6C,EAAAh7C,EAAA,8BAAA,EACAwU,EAAAxU,EAAA,oCAAA,EACAsU,EAAAtU,EAAA,oCAAA,EACAoV,EAAApV,EAAA,6BAAA,EACA0U,EAAA1U,EAAA,kCAAA,EACA2U,EAAA3U,EAAA,kCAAA,EACA4U,EAAA5U,EAAA,qCAAA,EACA6U,GAAA7U,EAAA,2CAAA,EACAu7B,EAAA7nB,EAAAnT,KAAA,aAAA,EACAyR,EAAA,CACAG,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA4oC,aAAA,CAAA,CACA,EAkDA,SAAAC,IACA,OAwBArxB,EAAAvB,GAAA,EAEAtnB,MAAA+a,KAAAgB,KAAA,2BAAA/a,cAAAd,IAAA2oB,CAAA,EAzBAnoB,KAAA,SAAAqoB,GAmOA8vB,GAlOA9vB,GAkOA,IAAAkO,OAAA,SAAAkjB,EAAAC,GAGA,OAFAD,EAAAC,EAAAl6C,KAAAF,MAAAo9B,OAAAh6B,WAAAg3C,CAAA,EAEAD,CACA,EAAA,EAAA,CArOA,EAAA,SAAAl/B,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA,WACA,OAmOA25C,EAnOA,CAAA,EAoOAC,EAAAz7C,SAAA2O,sBAAA,EAEA+sC,EAAA,GAEA,SAAAt4C,EAAA0rB,GACA,OAAAA,EAAAhhB,MACA,KAAArM,MAAAsM,YAAApG,KACA,KAAAlG,MAAAsM,YAAAC,SACA8gB,EAAAztB,KAEAytB,EAAAqpB,iBAAA,IAAAp1C,QAAAK,CAAA,EAEAq4C,IACA3sB,EAAArrB,UAAA,IAAAV,QAAAK,CAAA,EAEA,MACA,KAAA3B,MAAAsM,YAAA4tC,gBACA7sB,EAAAvqB,YAAA,IAAAxB,QAAA,SAAA64C,GACAL,EAAAvB,EAAA4B,EAAAv6C,KAEAk6C,IACAG,EAAAH,EAAAl6C,KAAAk6C,EAEA,CAAA,CAEA,CACA,EAAAp5C,aAAA,EAEAC,OACA+9B,KAAA6Z,CAAA,EACAj3C,QAAA,SAAAyT,GACAklC,EAAAllC,GAAAwjC,EAAAxjC,EACA,CAAA,EAEAglC,EAsDA,SAAAK,GAIA,IAFA,IAAAC,EAAA,GAEAr3C,EAAA,EAAAA,EAAAo3C,EAAAt5C,OAAAkC,CAAA,GAAA,CACA,IAAAylB,EAAA2xB,EAAAp3C,GAEA,GAAAylB,EAAA6xB,WAAA7xB,EAAA6xB,UAAAx5C,OAIA,IAAA,IAAAwa,EAAA,EAAAA,EAAAmN,EAAA6xB,UAAAx5C,OAAAwa,CAAA,GAAA,CACA,IAAAi/B,EAAA9xB,EAAA6xB,UAAAh/B,GAEAi/B,GAAAA,EAAAC,sBAAAx6C,MAAAy6C,qBAAAC,sBAEAL,EAAAE,EAAA36C,KAAA26C,EAEA,CACA,CAEA,IAAAI,EAAAh6C,OAAA+9B,KAAA2b,CAAA,EACA,OAAAM,EAAA75C,QAIApB,MAAA6a,QAAAC,KAAA,EAEA9a,MAAA+a,KACAgB,KAAA,sCAAA,CACA+L,YAAA9mB,cAAAd,IACA06C,UAAAK,CACA,CAAA,EACAv6C,KAAA,SAAAw6C,GACA,GAAAA,GAAAA,EAAA95C,OAAA,CAIA43C,EAAA,GACA,IAAA,IAAAmC,EAAA,EAAAA,EAAAD,EAAA95C,OAAA+5C,CAAA,GAAA,CACA,IAAAN,EAAAK,EAAAC,GAEAnC,EAAA6B,EAAA36C,KAAA26C,EAAAO,gBACA,CAPA,CAQA,CAAA,EACAnpB,OAAAjyB,MAAA6a,QAAAK,IAAA,GAtBAlc,EAAAyD,SAAA,EAAAE,QAAA,CAuBA,EA3FA1B,OACA+9B,KAAAub,CAAA,EACAzlC,IAAA,SAAAO,GAAA,OAAAklC,EAAAllC,EAAA,CAAA,CAEA,EACA3U,KAAA,KAAA,WACA,OAAA1B,EAAAyD,SAAA,EAAAE,QAAA,CACA,CAAA,EACAjC,KAAA,WACAo4C,EAAA73C,OACA+9B,KAAAub,CAAA,EACAzlC,IAAA,SAAAO,GAAA,OAAAgmC,GAAAd,EAAAllC,EAAA,CAAA,CAAA,CACA,CAAA,GAnBAyjC,EAAA73C,OACA+9B,KAAAub,CAAA,EACAzlC,IAAA,SAAAO,GAAA,OAAAgmC,GAAAd,EAAAllC,EAAA,CAAA,CAAA,EAEArW,EAAAyD,SAAA,EAAAE,QAAA,GAzCA,IAAA03C,EACAC,EAEAC,CArOA,CAAA,EACA75C,KAAA,WA2iBA,IACAwwB,EAEAhe,EAAAmU,MAAA,EAEA6J,EAAAle,EAAAzT,KAAA,gBAAA,EAEAo5C,EAAAznB,EAAAvqB,KAAA,aAAA,EACAiyC,EAAA1nB,EAAAvqB,KAAA,SAAA,EAIA4zB,EAAAlwB,IAAA,iBAAA,EACA2I,EAAA3I,IAAA,qBAAA,EACAmJ,EAAAnJ,IAAA,gCAAA,EACAiJ,EAAAjJ,IAAA,oBAAA,EACA+J,EAAA/J,IAAA,2BAAA,EACAqJ,EAAArJ,IAAA,sBAAA,EACAsJ,EAAAtJ,IAAA,sBAAA,EACAuJ,EAAAvJ,IAAA,yBAAA,EACAwJ,GAAAxJ,IAAA,8BAAA,EACAqI,EAAArI,IAAA,aAAA,EACA6I,EAAA7I,IAAA,4DAAA,EACA2vC,EAAA3vC,IAAA,4BAAA,EAIAkwB,EAAAnwB,GAAA,kBAAA,iBAAAkxC,EAAA,EACAtoC,EAAA5I,GAAA,sBAAA,YAAAga,EAAA,EACA5Q,EAAApJ,GAAA,iCAAA2T,EAAA,EACAzK,EAAAlJ,GAAA,qBAAA+S,EAAA,EACA/I,EAAAhK,GAAA,4BAAAsZ,EAAA,EACAhQ,EAAAtJ,GAAA,uBAAA0U,EAAA,EACAnL,EAAAvJ,GAAA,uBAAA4U,EAAA,EACApL,EAAAxJ,GAAA,0BAAAoV,EAAA,EACA3L,GAAAzJ,GAAA,+BAAAuV,EAAA,EACAjN,EAAAtI,GAAA,cAAA,SAAAmxC,EAAA,EACAroC,EAAA9I,GAAA,uBAAA,iCAAAoxC,EAAA,EACAtoC,EAAA9I,GAAA,sBAAA,oEAAA05B,EAAA,EACA5wB,EAAA9I,GAAA,oBAAA,6BAAAqxC,EAAA,EACAzB,EAAA5vC,GAAA,6BAAAsxC,EAAA,EA/kBAn/B,EAAA,EA8GAvb,cAAAkK,SAAAlL,MAAAC,SAAA0B,KAAAuK,OAAA,OAAA,IAAA,GACAlM,MAAAqzC,IAAA1xC,KAAAuK,OAAA,CAAA,mBAAA,qBAAA,uBAAA,IAAA,GACAjL,OAAA+9B,KAAA6Z,CAAA,EAAAz3C,OACA44C,EAAA31B,WAAA,UAAA,EAEA21B,EAAAhsC,KAAA,WAAA,UAAA,EAjHAhO,MAAA6a,QAAAK,KAAA,CACA,EAAA,SAAAD,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EAGA,IACA4N,CAHA,CAkBA,SAAAvB,KACA,IAAAuB,EAAA,CACA/B,OAAAmyB,GAAA,IAAAnkC,IAAA,SAAA2jB,GAAA,OAAAA,EAAAv4B,GAAA,CAAA,EACAmoB,OAAA6wB,GAAA,IAAApkC,IAAA,SAAA3O,GAAA,OAAAA,EAAAjG,GAAA,CAAA,EACA6W,UAAAoiC,GAAA,IAAArkC,IAAA,SAAA6mC,GAAA,OAAAA,EAAAz7C,GAAA,CAAA,EACAooB,eAAA8wB,GAAA,IAAAtkC,IAAA,SAAA8mC,GAAA,OAAAA,EAAA17C,GAAA,CAAA,CACA,EAsBA,OApBA2oB,EAAA/B,MAAA1lB,QACA,OAAAynB,EAAA/B,MAGA+B,EAAAR,MAAAjnB,QACA,OAAAynB,EAAAR,MAGAQ,EAAA9R,SAAA3V,QACA,OAAAynB,EAAA9R,SAGA8R,EAAAP,cAAAlnB,QACA,OAAAynB,EAAAP,cAIAO,EADA5nB,OAAA+9B,KAAAnW,CAAA,EAAAznB,OAIAynB,EAHA,IAIA,CAkOA,SAAA6b,GAAAnd,GACA,IA1QAA,EAKAsB,EAqQA,OAAAtB,EAIAuxB,GAiBA+C,IAJA9C,EAAAA,GACA+C,GAAAC,GAAAjD,CAAA,CAAA,IAGA,IAAA13C,OAEAvC,SAAA+O,cAAA2Z,EAAArnB,IAAA27C,CAAA,GAEA,IAAA78C,EAAAyD,UAAAE,QAAA,EAAAC,QAAA,IApBA/D,SAAA6O,qBAAA6Z,EAAArnB,GAAA,GAEA62C,GAjRAxvB,EAiRAA,IA5QAsB,EAAAvB,GAAA,EAEAtnB,MAAA+a,KAAAgB,KAAA,mBAAAwL,EAAArnB,IAAA,YAAAc,cAAAd,IAAA2oB,CAAA,GALA7pB,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,GAiRAlC,KAAA,SAAAm7C,GACAh9C,SAAA+O,cAAA2Z,EAAArnB,IAAA27C,CAAA,CACA,EAAA,SAAA5gC,GACApc,SAAA+O,cAAA2Z,EAAArnB,IAAA,CAAA,CACA,CAAA,EAEA62C,IAdA,IAAA/3C,EAAAyD,UAAAE,QAAA,EAAAC,QAAA,CA0BA,CAkDA,SAAAqS,GAAAC,GACA,IAAAN,EAAApB,EAAAjU,KAAA,YAAA,EAGA4V,EAAAnV,MAAAuL,sBAAA1M,SAAA0O,sBAAA,CAAA,EAEA4H,GAAA,CAAAD,EAGA,GAFAC,EAAAA,EAAAC,MAAA,GAAA,GAAA,IAEAhU,SACAq3C,EAAA,GAEAtjC,EAAAvT,QAAA,SAAAyT,GACAC,EAAAtV,MAAA8E,SAAA4zC,EAAArjC,EAAA,KAAA,EAEAC,GAEAmjC,EAAAr2C,KAAAkT,CAAA,CAEA,CAAA,GAEAH,IACAsjC,EAAAC,EAAAzxB,MAAA,GAQAhhB,GALA4O,GAAA4jC,GAAA,IAAA3jC,IAAA,SAAAS,GACA,OAAAA,EAAAhR,KACA,CAAA,GAEAnD,OACAyT,EAAAzT,SAAAs3C,EAAAt3C,OACA8E,QAAAC,EAAA,uCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEA9O,QAAAC,EAAA,+CAAA,EAGAyO,EAAArI,KAAAtG,CAAA,GAEAwyC,GAAA,IAAAr3C,SAAAq3C,GAAA,IAAAr3C,UAAAs3C,GAAA,IAAAt3C,QACAs3C,EAAA92C,QAAA,SAAA2T,GACAvV,MAAAC,SAAAw4C,EAAAljC,EAAArV,IAAA,KAAA,EAGAwS,EAAAnT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAAA8F,YAAA,MAAA,EAEA0M,EAAAnT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAAAuF,SAAA,MAAA,CAEA,CAAA,CAEA,CAOA,SAAAwX,KACA3J,EAAAtN,YAAA,QAAA,EAEAgL,EAAA,CACAG,WAAA,CAAA,EACAC,WAAA,CAAA,EACAC,cAAA,CAAA,EACA6L,mBAAA,CAAA,EACA5L,cAAA,CAAA,EACAC,qBAAA,CAAA,EACAK,aAAA,CAAA,EACAE,yBAAA,CAAA,CACA,EAMA0mC,EADAY,EADAD,EADAD,EADAD,EAAA,KAKA7kC,EAAAiC,IAAA,EAAA,CACA,CAEA,SAAAb,KAtPA,IAOA0G,EACAC,EACAC,EACAC,EATAC,EAEA,OAFAA,EAAA5J,EAAAnT,KAAA,yBAAA,KAMA2c,EAAAI,EAAA/c,KAAA,gCAAA,EACA4c,EAAAG,EAAA/c,KAAA,qCAAA,EAEA8c,GADAD,EAAAE,EAAA/c,KAAA,iCAAA,GACAA,KAAA,iCAAA,EAEA+c,EAAA7W,SAAA,UAAA,EACA4W,EAAArW,YAAA,MAAA,EACAkW,EAAAzW,SAAA,YAAA,EACA0W,EAAA5c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACA+S,EAAA5c,KAAA,6BAAA,EAAA6J,IAAA,gBAAA,CAAA,EACA8S,EAAA3c,KAAA,eAAA,EAAA6J,IAAA,gBAAA,CAAA,EACAgT,EAAApW,YAAA,OAAA,EACA+M,EAAA3J,IAAA,MAAA,GAAA,GAqOAuM,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,CACA,CAEA,SAAAH,KACA,IACAssB,EADArtB,EAAAlB,EAAAnU,KAAA,YAAA,EAGAsV,GAAAokC,GAAA,IAAAnkC,IAAA,SAAA6B,GACA,OAAAA,EAAApS,KACA,CAAA,EAEAsQ,EAAAzT,QACA6gC,EAAAhhC,OAAA+9B,KAAApwB,OAAAkY,KAAA,EAAA1lB,OACA6E,EAAA4O,EAAAzT,SAAA6gC,EACA/7B,QAAAC,EAAA,qCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAG,WAAA,CAAA,IAEAlL,EAAAC,QAAAC,EAAA,6CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAG,WAAA,CAAA,GAGAyD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA2P,KACA,IACAssB,EADAttB,EAAAjB,EAAApU,KAAA,YAAA,EAGAsV,GAAAqkC,GAAA,IAAApkC,IAAA,SAAA8B,GACA,OAAAA,EAAArS,KACA,CAAA,EAEAsQ,EAAAzT,QACA8gC,EAAAjhC,OAAA+9B,KAAApwB,OAAAyZ,KAAA,EAAAjnB,OACA6E,EAAA4O,EAAAzT,SAAA8gC,EACAh8B,QAAAC,EAAA,qCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAI,WAAA,CAAA,IAEAnL,EAAAC,QAAAC,EAAA,6CAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAI,WAAA,CAAA,GAGAwD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA4P,KACA,IAMAssB,EANAvtB,EAAAhB,EAAArU,KAAA,YAAA,EAEAsV,GAAAskC,GAAA,IAAArkC,IAAA,SAAAkC,GACA,OAAAA,EAAAzS,KACA,CAAA,EAIAsQ,EAAAzT,QACA+gC,EAAAlhC,OAAA+9B,KAAAjoB,QAAA,EAAA3V,OACA6E,EAAA4O,EAAAzT,SAAA+gC,EACAj8B,QAAAC,EAAA,wCAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAK,cAAA,CAAA,IAEApL,EAAAC,QAAAC,EAAA,gDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAK,cAAA,CAAA,GAGAuD,EAAArI,KAAAtG,CAAA,CACA,CAEA,SAAA6P,KACA,IAMAkmC,EANApnC,EAAAf,GAAAtU,KAAA,YAAA,EAEAsV,GAAAukC,GAAA,IAAAtkC,IAAA,SAAAmC,GACA,OAAAA,EAAA1S,KACA,CAAA,EAIAsQ,EAAAzT,QACA46C,EAAA/6C,OAAA+9B,KAAA1W,aAAA,EAAAlnB,OACA6E,EAAA4O,EAAAzT,SAAA46C,EACA91C,QAAAC,EAAA,6CAAA,EACA0O,EAAAzP,KAAA,EAAA4P,KAAA,IAAA,EAEAJ,EAAAvG,OAAA,EAAA5I,SAAA,iBAAA,EACAuL,EAAAkM,mBAAA,CAAA,IAEAjX,EAAAC,QAAAC,EAAA,qDAAA,EAEAyO,EAAAvG,OAAA,EAAArI,YAAA,iBAAA,EACAgL,EAAAkM,mBAAA,CAAA,GAGAtI,EAAArI,KAAAtG,CAAA,CACA,CA2DA,SAAAoG,IAbA,IAAAoI,EAEAC,EAAA,IAAAA,KAYA2kC,EAAA,EACAN,EAAA,KAEAkD,GAAA,EACA/oC,EAAAmU,MAAA,EAhBArW,EAGA,GAFAyD,EAAAzD,EAAA0D,GAGA,MAIAD,EAAAnB,EAAA7N,SAAA,QAAA,EAAA6N,EAAAtN,YAAA,QAAA,EAUAk2C,GAAA,EAEAr9C,SAAAoP,kBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CAEA,SAAAkX,KACA,IACA5X,EAoOA4vC,EArOAC,EAAA/C,EAAA,IAOA9sC,GAJAwsC,EAAAA,GACA+C,GAAAC,GAAAjD,CAAA,CAAA,GAIA7xB,MAAAoyB,EAAA+C,CAAA,EACAtnC,IAAA0uB,EAAA,EACAxuB,KAAA,EAAA,IAEAqkC,IAyNA8C,GAAAzD,GAAA,IAAAt3C,OAAA,EAxNAmL,EA0NA,oDAAAzG,OACAq2C,EAAAj2C,QAAAC,EAAA,sCAAA,CACA,GAzNA+M,EAAA0F,OAAArM,CAAA,EACAyG,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,EAEA2wC,EAAA+C,EAEArD,EAAA33C,OAAAi4C,GACAtmC,EAAA3I,GAAA,wBAAA0Z,EAAA,CAEA,CAEA,SAAAi4B,GAAArB,GACA,OAAAA,EAAAhmC,OAAA,SAAAqU,GACA,MAAA,CAAAyvB,GAAAA,EAAAtX,KAAAnY,EAAAxkB,KAAA,CACA,CAAA,CACA,CAEA,SAAAu3C,GAAApB,GACA,GAAA,CAAAA,EACA,MAAA,GAGA,OAAA/B,GACA,IAAA,QACA+B,EAAAt1C,KAAA,SAAAuW,EAAAC,GACAkO,EAAAnO,EAAApX,MAAA0F,YAAA,EACA8f,EAAAnO,EAAArX,MAAA0F,YAAA,EAEA,OAAA8f,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EAGA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,IAAA,OACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GAIA,QAHAD,EAAAq7B,iBAAA,IAAA51C,QAAAua,EAAA0gC,eAAA,IAAAj7C,SACAwa,EAAAo7B,iBAAA,IAAA51C,QAAAwa,EAAAygC,eAAA,IAAAj7C,UAEA,SAAAw3C,EAAA,CAAA,EAAA,EACA,CAAA,EACA,MACA,IAAA,QACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GAGAkO,EAAA9qB,EAAA8V,IAAA6G,EAAA2gC,UAAA,SAAAnxC,GACA,OAAAA,EAAA5G,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAEA+U,EAAA/qB,EAAA8V,IAAA8G,EAAA0gC,UAAA,SAAAnxC,GACA,OAAAA,EAAA5G,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAGA,OAAA+U,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EACA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,IAAA,QACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GAGAkO,EAAA9qB,EAAA8V,IAAA6G,EAAA0M,OAAA,GAAA,SAAAzR,GACA,OAAAA,EAAArS,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAEA+U,EAAA/qB,EAAA8V,IAAA8G,EAAAyM,OAAA,GAAA,SAAAzR,GACA,OAAAA,EAAArS,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAGA,OAAA+U,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EACA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,IAAA,QACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GACAkO,EAAA9qB,EACA8V,IAAA6G,EAAAmL,OAAA,GAAA,SAAAnQ,GAAA,OAAAA,EAAAoQ,SAAA9c,YAAA,CAAA,CAAA,EACA7E,KAAA,EACA4P,KAAA,EAAA,EAEA+U,EAAA/qB,EACA8V,IAAA8G,EAAAkL,OAAA,GAAA,SAAAnQ,GAAA,OAAAA,EAAAoQ,SAAA9c,YAAA,CAAA,CAAA,EACA7E,KAAA,EACA4P,KAAA,EAAA,EAEA,OAAA+U,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EACA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,IAAA,gBACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GAGAkO,EAAA9qB,EAAA8V,IAAA6G,EAAA2M,eAAA,GAAA,SAAArR,GACA,OAAAA,EAAA1S,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAEA+U,EAAA/qB,EAAA8V,IAAA8G,EAAA0M,eAAA,GAAA,SAAArR,GACA,OAAAA,EAAA1S,MAAA0F,YAAA,CACA,CAAA,EAAA7E,KAAA,EAAA4P,KAAA,EAAA,EAGA,OAAA+U,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EACA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,IAAA,WACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GACAkO,EAAA9qB,EACA8V,IAAA6G,EAAA5E,UAAA,GAAA,SAAAC,GAAA,OAAAA,EAAAzS,MAAA0F,YAAA,CAAA,CAAA,EACA7E,KAAA,EACA4P,KAAA,EAAA,EAEA+U,EAAA/qB,EACA8V,IAAA8G,EAAA7E,UAAA,GAAA,SAAAC,GAAA,OAAAA,EAAAzS,MAAA0F,YAAA,CAAA,CAAA,EACA7E,KAAA,EACA4P,KAAA,EAAA,EAEA,OAAA+U,EAAAD,EACA,SAAA8uB,EAAA,CAAA,EAAA,EACA9uB,EAAAC,EACA,SAAA6uB,EAAA,EAAA,CAAA,EAGA,CACA,CAAA,EACA,MACA,QACA8B,EAAAt1C,KAAA,SAAAuW,EAAAC,GACA,IAAA2gC,EAAAC,EAcA,OAZA7gC,EAAA8gC,oBAAA,IAAAr7C,SACAm7C,EAAA,SAAA3D,EACAj9B,EAAA8gC,mBAAA9gC,EAAA8gC,mBAAAr7C,OAAA,GACAua,EAAA8gC,mBAAA,KAGA7gC,EAAA6gC,oBAAA,IAAAr7C,SACAo7C,EAAA,SAAA5D,EACAh9B,EAAA6gC,mBAAA7gC,EAAA6gC,mBAAAr7C,OAAA,GACAwa,EAAA6gC,mBAAA,IAGAF,GAAAC,EAIAD,EAIAC,GAIAD,EAAAtyB,QAAA,EAAAuyB,EAAAvyB,QAAA,IAAA,SAAA2uB,EAAA,CAAA,EAAA,GAHA,SAAAA,EAAA,CAAA,EAAA,EAJA,SAAAA,EAAA,EAAA,CAAA,EAJA,CAYA,CAAA,CAEA,CAEA,OAAA8B,CACA,CAEA,SAAAlX,GAAAza,GACA,IA6NAA,EACAjO,EACA6U,EASApjB,EAxOAA,EAAA,GAkBA,OAhBAA,EAAAnK,KAAA,+DAAA0D,OAAAijB,EAAA7oB,GAAA,CAAA,EACAqM,EAAAnK,KAAA,iEAAA,EAEAmK,EAAAnK,MAwBA2mB,EAxBAA,EAyBAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EAEA,uIACA3yC,OACAgV,EAAA,GAAA,QACAiO,EAAAsF,OAAA,UACAtF,EAAAxkB,KAAA,EA/BA,EACAgI,EAAAnK,KAiCA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACAxyC,EAAA,GAEAy2C,EAAA,EACAC,EAAA,GAEA5zB,EAAA6zB,UAAA,IAAAh7C,QAAA,SAAA+rB,GACAA,EAAAhhB,OAAArM,MAAAsM,YAAA4tC,eACAkC,CAAA,GAIA/uB,EAAAhhB,OAAArM,MAAAsM,YAAAgf,OACA+B,EAAA2uB,WAAA,IAAAl7C,SACAu7C,GAAAhvB,EAAA2uB,UAAAl7C,OAEA,CAAA,EAEAs7C,IAEAz2C,EADA,IAAAy2C,EACAx2C,QAAAC,EAAA,gCAAA,EAEAu2C,EAAA,IAAAx2C,QAAAC,EAAA,+BAAA,GAIAw2C,IACA12C,IACAA,GAAA,QAIAA,GADA,IAAA02C,EACAz2C,QAAAC,EAAA,2BAAA,EAEAw2C,EAAA,IAAAz2C,QAAAC,EAAA,0BAAA,GAIA,MAAA,qGACAL,OAAAgV,EAAA,GAAA,QAAA7U,CAAA,CACA,EA1EA8iB,CAAA,CAAA,EACAxc,EAAAnK,MA2EA2mB,EA3EAA,EA4EAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACA5jC,GAAAkU,EAAAuzB,WAAA,IACAxnC,IAAA,SAAAjT,GACAsJ,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAjK,GAEA,OAAAsJ,EAAAA,EAAA5G,MAAA,IACA,CAAA,EACAmQ,OAAA,SAAAzO,GAAA,MAAA,CAAA,CAAAA,CAAA,CAAA,EACAb,KAAApF,MAAAgnB,eAAA,EAEA,iFAAAlhB,OACAgV,EAAA,GAAA,QACAjG,EAAAoS,MAAA,EAAA,CAAA,EAAAjS,KAAA,IAAA,EACA,EAAAH,EAAAzT,OAAA,OAAA,EAAA,EAzFA,EACAmL,EAAAnK,KA2FA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACAlsC,EAAA,IAGAsI,GAAAkU,EAAAV,OAAA,IAAAvT,IAAA,SAAA8B,GACA,OAAAA,EAAArS,KACA,CAAA,GAEAa,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAnK,KAAA,qCAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,EAEAjG,EAAAzT,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAAyS,EAAAG,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAnHA+T,CAAA,CAAA,EACAxc,EAAAnK,KAoHA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACAlsC,EAAA,IAGAswC,GAAA9zB,EAAAjC,OAAA,IAAAhS,IAAA,SAAA6B,GACA,OAAAA,EAAAoQ,QACA,CAAA,GAEA3hB,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAnK,KAAA,qCAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,EAEA+hC,EAAAz7C,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAAy6C,EAAA7nC,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EA5IA+T,CAAA,CAAA,EACAxc,EAAAnK,KAiKA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,iBAAA,KAAA,EACAlsC,EAAA,GAEAsI,GAAAkU,EAAAT,eAAA,IAAAxT,IAAA,SAAAmC,GACA,OAAAA,EAAA1S,KACA,CAAA,EAEAsQ,EAAAzP,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAnK,KAAA,kDAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,EAEAjG,EAAAzT,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAAyS,EAAAG,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAxLA+T,CAAA,CAAA,EACAxc,EAAAnK,KAyLA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,WAAA,KAAA,EACAlsC,EAAA,GAEAswC,GAAA9zB,EAAAhS,UAAA,IAAAjC,IAAA,SAAAkC,GACA,OAAAA,EAAA+P,QACA,CAAA,EAEA81B,EAAAz3C,KAAApF,MAAAgnB,eAAA,EAEAza,EAAAnK,KAAA,4CAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,EAEA+hC,EAAAz7C,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAAy6C,EAAA7nC,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAhNA+T,CAAA,CAAA,EACAxc,EAAAnK,MAiNA2mB,EAjNAA,EAkNAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,mBAAA,KAAA,EACA9oB,EAAA9Y,OAAA0Y,SAAAC,wBACAI,WAAA/Y,OAAA0Y,SAAAC,wBAAAC,SACA,KAEAqtB,EAAA/zB,EAAA8B,gBACA9B,EAAA8B,gBAAAkyB,QAAA,CAAA,EAAAzO,QAAA,IAAA,GAAA,EACA,KAEA0O,EAAArtB,EAAAA,EAAA6e,aAAA7e,EAAAprB,MAAA,IACAgI,EAAA,IAEAnK,KACA,oDAAA0D,OAAAgV,EAAA,GAAA,MAAA,EACAgiC,GAAAA,EAAA,IAAAE,GAAAn5B,KAAA,EAAA,MACA,OACA,EAEAtX,EAAAyI,KAAA,EAAA,EApOA,EACAzI,EAAAnK,KA0IA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACAwE,EAAAl0B,EAAAm0B,UACA3wC,EAAA,GAEAA,EAAAnK,KAAA,qCAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,GAEAmiC,GAAA,IAAA77C,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAA66C,EAAAjoC,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EA5JA+T,CAAA,CAAA,EACAxc,EAAAnK,KAqOA,SAAA2mB,GACA,IAAAjO,EAAA,CAAA29B,GAAAz4C,MAAAC,SAAAw4C,EAAA,IAAA,KAAA,EACAlsC,EAAA,GAGA4wC,EAAAn+C,EAAA8V,IAAAiU,EAAA0zB,oBAAA,GAAAz8C,MAAAspB,SAAA4E,mBAAA,EAEA3hB,EAAAnK,KAAA,qCAAA0D,OAAAgV,EAAA,GAAA,MAAA,CAAA,EAEAqiC,EAAA/7C,QACAmL,EAAAnK,KAAA,UAAA,EACAmK,EAAAnK,KAAA+6C,EAAAnoC,KAAA,WAAA,CAAA,EACAzI,EAAAnK,KAAA,YAAA,GAEAmK,EAAAnK,KAAA,QAAA,EAKA,OAFAmK,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EAzPA+T,CAAA,CAAA,EAEAxc,EAAAnK,KAAA,OAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,CAsPA,SAAAoP,KACA,IAAA3Z,EAAAzL,EAAA0D,IAAA,EAEAi2C,EAAAluC,EAAAuD,KAAA,kBAAA,EAGA4qC,EAAA,UAFAA,EAAAnuC,EAAAuD,KAAA,cAAA,GAEA,MAAA,OACAvD,EAAAtC,SAAA,EAAAkc,WAAA,cAAA,EACA5Z,EAAAuD,KAAA,eAAA4qC,CAAA,EAEAvsC,EAAA,CACA,CAEA,SAAA0R,KACA,IAAAxY,EAAA,CACAM,MAAAK,QAAAC,EAAA,iDAAA,EACAkX,QAAAW,GACAT,gBAAAk7B,EACAj7B,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAC,WAAA3W,KAAAwxC,EAAAnzC,CAAA,CACA,CAEA,SAAAue,KACA,IAAAC,EAAAhR,EAAAiR,YAAA,EACA9Q,EAAA+Q,YAAA,CAAA,CAAA,EAGAF,EAFAhR,EAAAmR,UAAA,GAEA,MACAnR,EAAA1I,IAAA,uBAAA,EAEA8Z,GAAA,EAEA,CAEA,SAAAnG,GAAAC,IACAw6B,GAAAx6B,GAAA,IAAAnJ,IAAA,SAAAO,GACA,OAAArV,MAAA8E,SAAA4zC,EAAArjC,EAAA,KAAA,CACA,CAAA,GAEAjU,QAAAq3C,EAAAr3C,SAAAs3C,EAAAt3C,OACAs3C,EAAA92C,QAAA,SAAA2T,GACAvV,MAAAC,SAAAw4C,EAAAljC,EAAArV,IAAA,KAAA,EAGAwS,EAAAnT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAAA8F,YAAA,MAAA,EAEA0M,EAAAnT,KAAA,6EAAAuG,OAAAyP,EAAArV,GAAA,CAAA,EAAAuF,SAAA,MAAA,CAEA,CAAA,EAEAiN,EAAAnT,KAAA,aAAA,EAAAyG,YAAA,MAAA,EAGAhG,MAAAgL,yBAAAnM,SAAA0O,sBAAA,GAAA0Q,GAAA,IAAAjJ,KAAA,GAAA,CAAA,EACAtU,KAAA,WACAuU,GAAA,CAAA,CAAA,EACAsH,EAAA,CACA,CAAA,CACA,CAEA,SAAAY,KACAF,GAAA,EACAzH,GAAA,EAEAxV,MAAA6a,QAAAC,KAAA,EACAo/B,EAAA,EACAx5C,KAAA6b,CAAA,EACA7b,KAAA2L,CAAA,CACA,CAEA,SAAAqX,KACA,IAAArN,EAAArX,EAAA6kB,KAAAzP,EAAAiC,IAAA,CAAA,EAEAmiC,EAAAniC,EACA,IAAA+mC,OAAAp9C,MAAAq9C,UAAAhnC,CAAA,EAAA,GAAA,EACA,KAEAkG,EAAA,EACAlQ,EAAA,CACA,CAEA,SAAAyS,KACA,IAAAvZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,uCAAA,EACAkX,QAAA0B,GACAxB,gBAAA07B,EACAz7B,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,EACAa,kBAAA,WACA,IAEAlS,EAAA7J,KAAAgc,mBAAA,EAOA,OANAnS,GAAA7J,KAAAic,eAAA,EAEAjc,KAAA2b,QAAA3b,KAAA2b,OAAAO,WACArS,GAAA,oDAGAA,CACA,CACA,CACA,EAEAsR,WAAA3W,KAAAqyC,EAAAh0C,CAAA,CACA,CAEA,SAAAwZ,GAAAF,GACAo6B,GAAAp6B,GAAA,IAAA/J,IAAA,SAAAO,GACA,OAAAzG,OAAAkY,MAAAzR,EACA,CAAA,EAEAM,GAAA,EAEA3V,MAAA6a,QAAAC,KAAA,EACAo/B,EAAA,EACAx5C,KAAA6b,CAAA,EACA7b,KAAA2L,CAAA,CACA,CAEA,SAAA2S,KACA,IAAAzZ,EAAA,CACAM,MAAAK,QAAAC,EAAA,uCAAA,EACAkX,QAAA4B,GACA1B,gBAAA27B,EACA17B,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAA9E,SAAA,WAAAtC,KAAA,QAAAiZ,MAAA,OAAA,EACAxB,OAAA,CAAA,EACAC,SAAA,CACAC,QAAA,CAAA,EACAuB,SAAAm6B,EAAA,KAAA,SAAAl6B,GACA,MAAA,CAAA,EAAAq6B,GAAAr6B,GAAAA,EAAAf,UAIAzH,EAAAwI,EAAAf,OAEA,CAAA,IAAAo7B,EAAAp6B,QAAAzI,EAAA1W,GAAA,EACA,CACA,EACAwU,OAAA4kC,EAAA,KAAA,SAAA1iC,GACA,MAAA,EAAA4iC,CAAAA,GAAA5iC,CAAAA,IAIA,CAAA,EAAA4iC,EAAAn6B,QAAAzI,EAAA1W,GAAA,CACA,CACA,CACA,EAEA2d,WAAA3W,KAAAoY,SAAA/Z,CAAA,CACA,CAEA,SAAA0Z,GAAAM,GACA25B,GAAA35B,GAAA,IAAAzK,IAAA,SAAAO,GACA,OAAAzG,OAAAyZ,MAAAhT,EACA,CAAA,EAEAO,GAAA,EAEA5V,MAAA6a,QAAAC,KAAA,EACAo/B,EAAA,EACAx5C,KAAA6b,CAAA,EACA7b,KAAA2L,CAAA,CACA,CAEA,SAAAmT,KACA,IAAA9P,EAAAzO,OACA+9B,KAAAjoB,QAAA,EACAjC,IAAA,SAAAO,GAAA,OAAA0B,SAAA1B,EAAA,CAAA,EAIA9P,GAFAmK,EAAAtK,KAAApF,MAAAwwB,cAAA,EAEA,CACA3qB,MAAAK,QAAAC,EAAA,0CAAA,EACAkX,QAAAoC,GACAlC,gBAAA47B,EACA37B,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,UAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,GAEAC,WAAA3W,KAAAwI,EAAAnK,CAAA,CACA,CAEA,SAAAka,GAAAC,GACAy5B,GAAAz5B,GAAA,IAAA5K,IAAA,SAAAO,GACA,OAAA0B,SAAA1B,EACA,CAAA,EAEAQ,GAAA,EAEA7V,MAAA6a,QAAAC,KAAA,EACAo/B,EAAA,EACAx5C,KAAA6b,CAAA,EACA7b,KAAA2L,CAAA,CACA,CAEA,SAAAsT,KACA,IAAApa,EAAA,CACAM,MAAAK,QAAAC,EAAA,2CAAA,EACAkX,QAAAuC,GACArC,gBAAA67B,EACA57B,YAAA,CACAC,OAAA,CAAApQ,GAAA,MAAApH,KAAA,OAAA,EACAyX,OAAA,CAAA,EACAC,SAAA,CAAAC,QAAA,CAAA,CAAA,CACA,CACA,EAEAhO,EAAA3O,OAAAC,OAAAonB,aAAA,EACA1Y,EAAAxK,KAAApF,MAAA6wB,WAAA,EAEAhT,WAAA3W,KAAA0I,EAAArK,CAAA,CACA,CAEA,SAAAqa,GAAAF,GACA05B,GAAA15B,GAAA,IAAA5K,IAAA,SAAAO,GACA,OAAAiT,cAAAjT,EACA,CAAA,EAEAS,GAAA,EAEA9V,MAAA6a,QAAAC,KAAA,EACAo/B,EAAA,EACAx5C,KAAA6b,CAAA,EACA7b,KAAA2L,CAAA,CACA,CAEA,SAAAkvC,KACA,IAAA+B,EAAAt+C,EAAA0D,IAAA,EAAAsa,QAAA,IAAA,EAAArW,KAAA,KAAA,EAEA8V,aAAAvV,KAAA,CACAq2C,cAAAD,EACA3wC,KAAA,4BACA,CAAA,CACA,CAEA,SAAA6uC,KACA,IAAAnmC,EAAA9P,EAEA3F,WAAAC,MAAA29C,SAAA,KAAA,IAIAnoC,EAAArW,EAAA0D,IAAA,EAAAsa,QAAA,IAAA,EAAArW,KAAA,KAAA,EAEA82C,WAAAC,OACA9uC,OAAAzD,SAAAC,KAAA,WAAAiK,IAEA9P,EAAA,IAEAM,MAAAK,QAAAC,EAAA,qDAAA,EACAZ,EAAAU,KAAAC,QAAAC,EAAA,oDAAA,EACAZ,EAAAo4C,GAAA,CAAA,EACAp4C,EAAAkW,MAAA,WACAgiC,WAAAG,SAAA,WACAhvC,OAAAzD,SAAAC,KAAA,WAAAiK,CACA,CAAA,CACA,EAEArV,MAAAya,QAAAvT,KAAA3B,CAAA,GAEA,CAEA,SAAAu+B,KACA,IAjyCA/a,EAOA4b,EACAkZ,EAPAr7C,EAgyCAqhC,EAAA7kC,EAAA0D,IAAA,EAAAsa,QAAA,IAAA,EACA3H,EAAAwuB,EAAAl9B,KAAA,KAAA,EACAoiB,EAAA8vB,EAAAxjC,GAEA0T,IAryCAA,EAyyCAA,EAxyCAvmB,EAAAxD,EAAAyD,SAAA,GAEAsmB,GAIA4b,EAAA,GACAkZ,EAAA,IAEA90B,EAAA6zB,UAAA,IAAAh7C,QAAA,SAAA+rB,GACAtnB,YAAAC,uBAAAC,KAAAuF,QAAAC,eAAA4hB,EAAAztB,GAAA,GACAy5C,EAAA5tC,eAAA4hB,EAAAztB,GAAA,GACA29C,EAAAlwB,EAAAztB,OAIAykC,EAAAviC,KAAA,CACAlC,IAAAytB,EAAAztB,IACA0kC,cAAA,CAAA,CACA,CAAA,EAEAiZ,EAAAlwB,EAAAztB,KAAA,CAAA,EACA,CAAA,EAEAykC,aAAAxjC,OAAAwjC,EAAAvjC,QAIApB,MAAA6a,QAAAC,KAAA,EACA9a,MAAA+a,KAAAgB,KAAA,YAAA4oB,CAAA,EACAjkC,KAAA,SAAAmkC,GACA,IAAAM,EAAAnlC,MAAA2tB,QAAAyX,qCAAAP,CAAA,EAEA,GAAAM,EAAA,CAIA,IAAA,IAAA9vB,KAAA8vB,EACAwU,EAAAtkC,GAAA8vB,EAAA9vB,GAGArV,MAAA6a,QAAAK,KAAA,EACA1Y,EAAAG,QAAA,CAPA,CAQA,EAAA,SAAAsY,GACAzY,EAAAwtB,OAAA,EACAhwB,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EAEAzY,GAxBAA,EAAAG,QAAA,GAtBAH,EAAAwtB,OAAA,GA8CAptB,QAAA,EAwvCAlC,KAAA,WACA,IACAy7C,EADA5vC,EAAA,GAGAuxC,GAAA/0B,EAAA6zB,UAAA,IAAAloC,OAAA,SAAAzL,GACA,OAAAA,EAAA0D,OAAArM,MAAAsM,YAAA4tC,cACA,CAAA,EAEAvI,GAAAlpB,EAAA6zB,UAAA,IAAAloC,OAAA,SAAAzL,GACA,OAAAA,EAAA0D,OAAArM,MAAAsM,YAAAgf,IACA,CAAA,EAEA1Y,EAAA3T,KAAA,2BAAAuG,OAAAuP,CAAA,CAAA,EAAAjU,OACA8R,EAAA3T,KAAA,2BAAAuG,OAAAuP,CAAA,CAAA,EAAA+D,OAAA,GAEA+iC,EAAA1D,EAAAr3C,OAEAmL,EAAAnK,KAAA,4BAAA0D,OAAAuP,CAAA,CAAA,EACA9I,EAAAnK,KAAA,WAAA,EACAmK,EAAAnK,KAAA,qBAAA0D,OAAAq2C,CAAA,CAAA,EACA5vC,EAAAnK,KAAA,2BAAA,EACAmK,EAAAnK,KAAA,+EAAA0D,OAAAI,QAAAC,EAAA,YAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,8BAAA,EACAmK,EAAAnK,KAYA,SAAA07C,GACA,GAAAA,aAAA38C,OAAA28C,EAAA18C,OAAA,CAOA,IAHA,IAAAmL,EAAA,GACAwxC,EAAA,GAEAz6C,EAAA,EAAAA,EAAAw6C,EAAA18C,OAAAkC,CAAA,GAAA,CACA,IAMA8rC,EANAzhB,EAAAmwB,EAAAx6C,GAEAq2C,EAAAhsB,EAAAztB,OAIAkvC,EAAAuK,EAAAhsB,EAAAztB,KAEA69C,EAAA37C,KAAA,CACAmC,MAAA6qC,EAAA7qC,OAAA,GACAy5C,iBAAAn/C,SAAAqP,2BAAAyf,EAAAztB,IAAAy5C,CAAA,GAAA,EACA,CAAA,EACA,CAEAoE,EAAA34C,KAAApF,MAAA6wB,WAAA,EAEA,IAAA,IAAAotB,EAAA,EAAAA,EAAAF,EAAA38C,OAAA68C,CAAA,GAAA,CACA,IAAAC,EAAAH,EAAAE,GAEA1xC,EAAAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,mCAAA0D,OAAAI,QAAAC,EAAA,wBAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,4DACA0D,OAAAo4C,EAAA35C,MAAA25C,EAAAF,gBAAA,CAAA,EACAzxC,EAAAnK,KAAA,OAAA,CACA,CAEA,OAAAmK,EAAAyI,KAAA,EAAA,CAhCA,CAiCA,EAhDA8oC,CAAA,CAAA,EACAvxC,EAAAnK,KAiDA,SAAA6vC,GACA,GAAAA,aAAA9wC,OAAA8wC,EAAA7wC,OAAA,CAOA,IAHA,IAAAmL,EAAA,GACA4xC,EAAA,GAEA76C,EAAA,EAAAA,EAAA2uC,EAAA7wC,OAAAkC,CAAA,GAAA,CACA,IAAA+F,EAAA4oC,EAAA3uC,GACAgU,IAAAjR,YAAAwb,WAAAtb,MAAA,IAAAuF,SAAA,IAAAzC,EAAAnJ,MACAy5C,EAAAtwC,EAAAnJ,KAEAoX,GACAjO,EAAAizC,UAAA16C,QAAA,SAAAP,GACA8J,EAAA9E,YAAAC,uBAAAC,KAAAuF,QAAAzK,GAEA8J,GAIAgzC,EAAA/7C,KAAA,CACAmC,MAAA+S,EAAA/S,OAAA,GACAy5C,iBAAAn/C,SAAAqP,2BAAA/C,EAAAjL,GAAA,GAAA,EACA,CAAA,CACA,CAAA,CAEA,CAEAi+C,EAAA/4C,KAAApF,MAAA6wB,WAAA,EAEA,IAAA,IAAAutB,EAAA,EAAAA,EAAAD,EAAA/8C,OAAAg9C,CAAA,GAAA,CACA,IAAAC,EAAAF,EAAAC,GAEA7xC,EAAAnK,KAAA,MAAA,EACAmK,EAAAnK,KAAA,mCAAA0D,OAAAI,QAAAC,EAAA,mBAAA,CAAA,CAAA,EACAoG,EAAAnK,KAAA,sDACA0D,OAAAu4C,EAAA95C,MAAA85C,EAAAL,gBAAA,CAAA,EAEAK,EAAAC,WACA/xC,EAAAnK,KAAA,wCAAA0D,OAAAu4C,EAAAC,SAAA,CAAA,EAGA/xC,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,OAAA,CACA,CAEA,OAAAmK,EAAAyI,KAAA,EAAA,CA5CA,CA6CA,EAjGAi9B,CAAA,CAAA,EACA1lC,EAAAnK,KAAA,kBAAA,EACAmK,EAAAnK,KAAA,QAAA,EACAmK,EAAAnK,KAAA,OAAA,EACAmK,EAAAnK,KAAA,OAAA,EAEAyhC,EAAA1e,MAAA5Y,EAAAyI,KAAA,EAAA,CAAA,EAEA,CAAA,EACA,CA0FA,SAAAymC,KACAz8C,EAAA0D,IAAA,EAAAsa,QAAA,IAAA,EAAA5D,OAAA,CACA,CAEA,SAAAsiC,KACA18C,EAAA0D,IAAA,EAAAsL,KAAA,UAAA,IAIAhO,MAAA6a,QAAAC,KAAA,EACA9a,MAAAqG,YAAA+b,iBACAuwB,OAAA,EACAjyC,KAAA,SAAA69C,GAGA,IAIAC,EAoBAj5C,EA1BAvF,MAAA6a,QAAAK,KAAA,EAEAqjC,IAIAC,EAAA,SAAAv8C,EAAA8mB,GACA,IAAA0rB,EAAAz0C,MAAAC,SAAA64C,EAAA/vB,EAAA7oB,IAAA,KAAA,EACAqI,GAAAwgB,EAAAzmB,UAAA,IACAwS,IAAA7S,CAAA,EACAyS,OAAA,SAAA66B,GACA,MAAA,CAAA,CAAAA,CACA,CAAA,EAEA,GAAAkF,GAAAlsC,EAAAnH,OACA,MAAA,CACAiM,GAAA0b,EAAA7oB,IACA+F,KAAA8iB,EAAAxkB,MACA2a,MAAA6J,EAAAsF,MACA9lB,SAAAA,EACAksC,WAAA,CAAA,CAAAA,EACAgK,QAAAhK,EAAA,GAAA,2BACA,CAEA,EAAA8J,EAAA/3C,IAAA,EAEAjB,EAAA,CACAM,MAAAK,QAAAC,EAAA,uCAAA,EACAsa,eAAA,CAAA,EACAi0B,SAAA,SAAA4I,GACAiB,EAAAtK,IAAAqJ,GAEAoB,qBACAh6B,YAAAi6B,kBAAArB,EAAA,WACAz+C,SAAAoP,kBAAA,EACAvN,KAAA7B,SAAAoO,aAAA,CACA,CAAA,EAEAjN,MAAAya,QAAAvT,KAAA,CACArB,MAAAK,QAAAC,EAAA,4DAAA,EACAF,KAAAC,QAAAC,EAAA,2DAAA,EACAuU,GAAA,CAAA,CACA,CAAA,CAEA,EACA8C,YAAA,CACAE,OAAA,CAAA,EACA+2B,WAAA,CAAA,CACA,CACA,EAEA52B,WAAA3W,KAAAs3C,EAAAj5C,CAAA,EACA,EAAA,SAAA0V,GACAjb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,EACAjb,MAAA6a,QAAAK,KAAA,CACA,CAAA,EACA,CAEA,SAAAogC,KACA,IAAA7wC,EAAAzL,EAAA0D,IAAA,EAEA+H,EAAAN,SAAA,UAAA,IAIAM,EACAhF,SAAA,UAAA,EACA0C,SAAA,EACAnC,YAAA,UAAA,EAEAsD,EAAAmB,EAAA9D,KAAA,KAAA,EACA+L,EAAAnT,KAAA,6BAAAuG,OAAAwD,CAAA,CAAA,EAGAtD,YAAA,MAAA,EACAmC,SAAA,EACA1C,SAAA,MAAA,EAEAiN,EACAnT,KAAA,8BAAA,EACAiK,YAAA,OAAAF,IAAAswC,EAAAE,YAAA,EAEAC,EAAAzwC,EAEA4yC,GAAA,EACA,CAEA,SAAAA,KAGA,OAFAxX,GAAA7lC,SAAAsO,cAAA,CAAA,EAEA4sC,GACA,KAAAH,EAAAC,eACA11B,GAAA,EACA,MACA,KAAAy1B,EAAAE,aAOAmC,GAAA,EAEA2C,EAkBA,WACA,IAAAC,EAAA,GAEA9F,EAAAA,GACA+C,GAAAC,GAAAjD,CAAA,CAAA,EAmDA,OAhDAC,EAAAn3C,QAAA,SAAAmnB,GACA,IAIA+1B,EAJA/1B,EAAA8B,kBAIAi0B,EAAA,IAEA/1B,EAAAjC,OAAA,IAAAllB,QAAA,SAAA+U,GACAkoC,EAAA9yC,eAAA4K,EAAAzW,GAAA,IACA2+C,EAAAloC,EAAAzW,KAAA,CACAo4B,QAAA3hB,EAAAzW,IACA6mB,SAAApQ,EAAAoQ,SACAg4B,KAAA,EACAC,GAAA,CACA,GAGAH,EAAAloC,EAAAzW,KAAA6+C,MAAAh2B,EAAA8B,gBACAg0B,EAAAloC,EAAAzW,KAAA8+C,IAAAj2B,EAAA8B,gBACAi0B,EAAAnoC,EAAAzW,KAAA,CAAA,CACA,CAAA,GAEA6oB,EAAAV,OAAA,IAAAzmB,QAAA,SAAAgV,IACAA,EAAAkQ,OAAA,IAAAllB,QAAA,SAAAq9C,GACAH,EAAA/yC,eAAAkzC,EAAA/+C,GAAA,IAIAyW,EAAAmQ,MAAAm4B,EAAA/+C,QAMA2+C,EAAA9yC,eAAA4K,EAAAzW,GAAA,IACA2+C,EAAAloC,EAAAzW,KAAA,CACAo4B,QAAA3hB,EAAAzW,IACA6mB,SAAApQ,EAAAoQ,SACAg4B,KAAA,EACAC,GAAA,CACA,GAGAH,EAAAloC,EAAAzW,KAAA8+C,IAAAj2B,EAAA8B,gBACA,CAAA,CACA,CAAA,EACA,CAAA,EAEAg0B,CACA,EA1EA,EAEA59C,OAAA+9B,KAAA4f,CAAA,EAAAx9C,QAoFAw9C,EA9EAA,KAmFAj4C,EAAA,CAAA,GAAA,IACAu4C,EAAA,GAEAj+C,OAAAC,OAAA09C,CAAA,EACAx5C,KAAApF,MAAAwwB,cAAA,EACA5uB,QAAA,SAAAu9C,GACAx4C,EAAA,GAAAvE,KAAA+8C,EAAAJ,IAAA,EAEAI,EAAAJ,OAAAI,EAAAH,GACAr4C,EAAA,GAAAvE,KAAA+8C,EAAAH,GAAAG,EAAAJ,IAAA,EAEAp4C,EAAA,GAAAvE,KAAA,CAAA,EAGA88C,EAAA98C,KAAA+8C,EAAAp4B,QAAA,CACA,CAAA,EAEA4I,EAAA9Y,OAAA0Y,SAAAC,wBACAI,WAAA/Y,OAAA0Y,SAAAC,wBAAAC,SACA,KAEAH,EAAAtvB,MAAAo/C,gBAAAzvB,CAAA,GAEA+pB,EAAA15C,MAAA80B,OAAAC,YAAA/0B,MAAA80B,OAAAE,UAAA0D,WAAA,CACAzE,OAAA,CAAA,CACAmE,KAAAlyB,QAAAC,EAAA,wEAAA,EACAQ,KAAAA,EAAA,EACA,EAAA,CACAyxB,KAAAlyB,QAAAC,EAAA,4EAAA,EACAQ,KAAAA,EAAA,EACA,GACAgnB,QAAAuH,SAAAyD,eAAA,0CAAA,EACArD,WAAA,CAAA,EACAD,gBAAA6pB,EACAG,eAAA,SAAA/zC,GACA,OAAAgkB,EAAAhkB,EAAA,IAAAgkB,EAAAhkB,CACA,CACA,CAAA,GAEA6mB,OAAA,GA/HAnzB,EAAA,2CAAA,EACAuN,KAyEA,CACA,kCACA,oDACArG,QAAAC,EAAA,sCAAA,EACA,aACA,UACA6O,KAAA,EAAA,CA/EA,CAVA,CAGA,IA8FArO,EACAu4C,EAoBA5vB,EAhHAsvB,CALA,CAgBA,SAAA3C,KACAvC,IACAA,EAAA5f,QAAA,EACA4f,EAAA,KAEA,CAqHA,SAAAn9B,IACA,MAAArK,EAAAxJ,MAAA,EACAgK,EAAAnT,KAAA,sBAAA,EAAA6J,IAAA,YAAA,OAAA,EAEAsJ,EAAAnT,KAAA,+BAAA,EAAA6J,IAAA,YAAA,OAAA,EAGA2J,EAAA3J,IAAA,MAAAmxB,EAAAtW,YAAA,EAAAvR,EAAAnK,SAAA,kBAAA,EAAA0b,YAAA,EAAA,EAAA,EACAjR,EAAAtK,MAAAwK,EAAAxK,MAAA,CAAA,EAEA1J,EAAA+J,KAAA2J,EAAAnT,KAAA,cAAA,EAAA,SAAAs3B,EAAAyoB,GACAtgD,EAAAsgD,CAAA,EAAAjxC,OAAA,EAAAL,KAAA,UAAAyqC,EAAAr3C,MAAA,CACA,CAAA,CACA,CAEA,SAAAi6C,GAAAtyB,GACA,IAuGAw2B,EA+BAC,EACAC,EAvIAF,EAAAvgD,EAAAmpB,OAAA,GAAAY,CAAA,EASA,OAPAw2B,EAAAl3B,MAUA,SAAA7Y,GACA+vC,EAAAvgD,EAAA8V,IAAAtF,GAAA,GAAA,SAAA6F,GACA,OAAAzG,OAAAyZ,MAAAhT,EACA,CAAA,EAiBA,OAfAkqC,EAAAn6C,KAAA,SAAAuW,EAAAC,GACAkO,GAAAnO,EAAApX,OAAA,IAAA0F,YAAA,EACA8f,GAAAnO,EAAArX,OAAA,IAAA0F,YAAA,EAEA,OAAA8f,EAAAD,EACA,EAGAA,EAAAC,EACA,CAAA,EAGA,CACA,CAAA,EAEAw1B,CACA,EA/BAx2B,EAAAV,KAAA,EACAk3B,EAAAz4B,MAgCA,SAAAjnB,GACA0/C,EAAAvgD,EAAA8V,IAAAjV,GAAA,GAAA,SAAAwV,GACA,OAAAzG,OAAAkY,MAAAzR,EACA,CAAA,EA4BA,OA1BAkqC,EAAAn6C,KAAA,SAAAuW,EAAAC,GACA,IAAA8jC,GAAA/jC,EAAAgkC,UAAA,IAAA11C,YAAA,EACA21C,GAAAhkC,EAAA+jC,UAAA,IAAA11C,YAAA,EAEA,OAAA21C,EAAAF,EACA,EAGAA,EAAAE,EACA,CAAA,GAGAF,GAAA/jC,EAAAkkC,WAAA,IAAA51C,YAAA,GACA21C,GAAAhkC,EAAAikC,WAAA,IAAA51C,YAAA,GAEAy1C,EACA,EAGAA,EAAAE,EACA,CAAA,EAGA,EACA,CAAA,EAEAL,CACA,EAhEAx2B,EAAAjC,KAAA,EACAy4B,EAAAxoC,SAiEA,SAAA+oC,GACApwC,EAAA1Q,EAAA8V,IAAAgrC,GAAA,GAAA,SAAAzqC,GACA,OAAA0B,SAAA1B,EACA,CAAA,EAIA,OAFA3F,EAAAtK,KAAApF,MAAA6wB,WAAA,EAEAnhB,CACA,EAzEAqZ,EAAAhS,QAAA,EACAwoC,EAAAj3B,cA0EA,SAAAy3B,GACAnwC,EAAA5Q,EAAA8V,IAAAirC,GAAA,GAAA,SAAA1qC,GACA,OAAAiT,cAAAjT,EACA,CAAA,EAiBA,OAfAzF,EAAAxK,KAAA,SAAAuW,EAAAC,GACAkO,GAAAnO,EAAApX,OAAA,IAAA0F,YAAA,EACA8f,GAAAnO,EAAArX,OAAA,IAAA0F,YAAA,EAEA,OAAA8f,EAAAD,EACA,EAGAA,EAAAC,EACA,CAAA,EAGA,CACA,CAAA,EAEAna,CACA,EA/FAmZ,EAAAT,aAAA,EACAi3B,EAAA9C,oBAgGA+C,EAhGAz2B,EAAA6xB,UAiGA2E,EAAA,IAEAC,GAAA,IAAA59C,QAAA,SAAAi5C,GACA,GAAAA,EAAAC,sBAAAx6C,MAAAy6C,qBAAAC,oBACAuE,EAAAv/C,MAAAqmB,UAAAk5B,EAAA1E,EAAA4B,kBAAA,OACA,GAAAzD,EAAA,CACA,IAAAgH,EAAAhH,EAAA6B,EAAA36C,KACA,GAAA8/C,GAAAA,EAAA5+C,OAIA,IAAA,IAAA6+C,EAAA,EAAAA,EAAAD,EAAA5+C,OAAA6+C,CAAA,GAAA,CACA,IAAAC,EAAAF,EAAAC,GACAC,EAAAC,aAIAC,EAAA,IAAA98B,KAAA48B,EAAAG,aAAA,EACAD,EAAA,IAAA98B,KAAA88B,EAAAn2B,QAAA,EAAA,IAAA4wB,EAAAyF,cAAA,EACAf,EAAAv/C,MAAAqmB,UAAAk5B,EAAAv/C,MAAAspB,SAAAC,YAAA62B,CAAA,CAAA,EACA,CACA,CACA,CAAA,GAEAb,EAAAvgD,EAAA8V,IAAAyqC,EAAA,SAAAj0C,GAAA,OAAA,IAAAgY,KAAAhY,CAAA,CAAA,CAAA,GAEAlG,KAAA,SAAAuW,EAAAC,GAAA,OAAAD,EAAAsO,QAAA,EAAArO,EAAAqO,QAAA,CAAA,CAAA,EAEAs1B,GA5HAA,EAAArC,WA+HAsC,EA/HAz2B,EAAA6xB,UAgIA6E,EAAAz/C,MAAAspB,SAAAi3B,kBAAA,IAAAj9B,IAAA,EAEAtkB,EAAA8V,IAAA0qC,GAAA,GAAA,SAAA3E,GACA,GAAAA,EAAAA,EAAA2F,YAAA3F,EAAA2F,WAAAf,GAIA,OAAA12B,WAAA03B,2BAAA5F,CAAA,CACA,CAAA,GAtIA0E,CACA,CA6IAn8C,EAAA8D,KA57DA,SAAAd,GAGA,GAAA,EAFA6pB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAOAy4C,EAAA15C,WAAAC,MAAAsa,mBACA7Z,MAAA4L,OAAAgkB,YAAAC,+BACAnvB,cAAAd,GACA,EAEA24C,EAAA,GACAc,EAAA,GAEAN,EAAA,EAEAb,EADAO,EAAA,KAGA7lC,EAAAmU,MAAA,EACAjT,EAAAiC,IAAA,EAAA,EACAjC,EAAApG,KAAA,cAAA9H,QAAAC,EAAA,iBAAA,CAAA,EAEAgM,EAAAie,KAAA,8BAAA,0FAAA,EAsJAhe,EAAA3M,SAAA,MAAA,EACA4M,EAAA5M,SAAA,MAAA,EACA6M,EAAA7M,SAAA,MAAA,EACA8M,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACAiN,EAAA1M,YAAA,MAAA,EACA2M,EAAAlN,SAAA,MAAA,EACAmN,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAIAu0B,EAAAh7B,KAAA,MAAA,EAAA0G,KAAAC,QAAAC,EAAA,gCAAA,CAAA,EACAo0B,EAAAh7B,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,gDAAA,CAAA,EACAo0B,EAAAh7B,KAAA,2BAAA,EAAA0G,KAAAC,QAAAC,EAAA,uDAAA,CAAA,EAEA6zC,EAAA/zC,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EAEAnH,EAAA,wCAAA,EAAAiH,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACAmN,EAAAtF,KAAA,QAAA9H,QAAAC,EAAA,+BAAA,CAAA,EACAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACAnH,EAAA,sCAAA,EAAAiH,KAAAC,QAAAC,EAAA,uCAAA,CAAA,EACAnH,EAAA,yCAAA,EAAAiH,KAAAC,QAAAC,EAAA,0CAAA,CAAA,EACAnH,EAAA,+CAAA,EAAAiH,KAAAC,QAAAC,EAAA,+CAAA,CAAA,EACAnH,EAAA,oCAAA,EAAAgP,KAAA,QAAA9H,QAAAC,EAAA,qCAAA,CAAA,EAEA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACA6M,EAAAzT,KAAA,6BAAA,EAAA0G,KAAAC,QAAAC,EAAA,wCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACA6M,EAAAzT,KAAA,8BAAA,EAAA0G,KAAAC,QAAAC,EAAA,yCAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,iDAAA,CAAA,EACA6M,EAAAzT,KAAA,iCAAA,EAAA0G,KAAAC,QAAAC,EAAA,4CAAA,CAAA,EACA6M,EAAAzT,KAAA,yCAAA,EAAA0G,KAAAC,QAAAC,EAAA,mDAAA,CAAA,EACA6M,EAAAzT,KAAA,kCAAA,EAAA0G,KAAAC,QAAAC,EAAA,6CAAA,CAAA,EACA6M,EAAAzT,KAAA,sCAAA,EAAA0G,KAAAC,QAAAC,EAAA,iDAAA,CAAA,GAIAuyC,EAAA,IAEAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,wCAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,yCAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,iBAAAqE,MAAA2B,QAAAC,EAAA,iDAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,WAAAqE,MAAA2B,QAAAC,EAAA,4CAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,mBAAAqE,MAAA2B,QAAAC,EAAA,mDAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,6CAAA,CAAA,CAAA,EACAuyC,EAAAt2C,KAAA,CAAAlC,IAAA,IAAAqE,MAAA2B,QAAAC,EAAA,iDAAA,CAAA,CAAA,EAxMA8O,GAAA,CAAA,CAAA,GA4MAskC,EAAAv5C,MAAAuwB,mBAAAvvB,cAAAd,GAAA,GACAkF,KAAApF,MAAAwwB,cAAA,EAIAC,EAAAzwB,MAAA0wB,mBAAA1vB,cAAAd,GAAA,EAEAuwB,EAAApI,MACAmxB,EAAA/oB,EAAAE,aACA8oB,EAAAhpB,EAAAG,gBAlNApb,GAAA,EAEAxV,MAAA6a,QAAAC,KAAA,EAEAo/B,EAAA,EAhCAx5C,KAAAw7C,EAAA,CACA,EA+6DA94C,EAAA4J,OAAAuP,EACAnZ,EAAAs9C,kBAAArF,GACAj4C,EAAAuL,aAAAsO,GACA7Z,EAAAC,qBAv+CA,WAEA01C,EADAD,EAAA,IAEA,EAq+CA11C,EAAAN,iBAAA4hC,GACAthC,EAAAuE,QAXA,WACAs0C,GAAA,EACA/oC,EAAAmU,MAAA,CACA,EAUA7oB,EAAA4E,WAAAA,CACA,EAAAwL,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,EClgEA,SAAAL,GACA,IAAAmiD,EAAA,GAEAC,EAAA5hD,EAAA,oBAAA,EACA6hD,EAAA7hD,EAAA,yBAAA,EACAsJ,EAAAs4C,EAAAr4C,SAAA,eAAA,EAAAC,IAAAq4C,CAAA,EACAC,EAAAD,EAAAthD,KAAA,gBAAA,EACAF,EAAAL,EAAA,4BAAA,EA0CA,SAAA+hD,IACA,IAAAC,EAAAhiD,EAAA0D,IAAA,EACAu+C,EAAAD,EAAA/6B,QAAA,eAAA,EACAxiB,EAAA5E,SAAAC,UAAAmiD,EAAAt6C,KAAA,QAAA,GAEAlD,IAIAy9C,EAAAz8C,gBAAA08C,6BAAA19C,EAAApD,UAAA,IAMA2gD,EAAAhzC,KAAA,MAAAkzC,CAAA,CACA,CAEA,SAAAE,EAAA39C,GACA,IAKA49C,EACAC,EANA,OAAA79C,GAKA49C,GADAziD,EAAAC,SAAAsO,cAAA,IACAvO,EAAAsB,MAAAuD,EAAAvD,IACAohD,EAAA,GAEA79C,EAAApD,aAAAC,MAAAC,yBAAAC,iBACA8gD,EAAAl/C,KAAA,WAAA,EAGA,CACA,iDAAA0D,OAAAu7C,EAAA,UAAA,GAAA59C,EAAAvD,GAAA,EACAohD,EAAAtsC,KAAA,GAAA,EACA,IACA,oBAAAlP,OAAArC,EAAAkB,IAAA,EACA,iCAAAmB,OAAArC,EAAAc,KAAA,EACA,SACAyQ,KAAA,EAAA,GAlBA,EAmBA,CAEA,SAAAusC,EAAA99C,GACA,OAAAA,EAIA,CACA,yDAAAqC,OAAArC,EAAAvD,GAAA,EACA,iCAAA4F,OAAArC,EAAAc,KAAA,EACA,SACAyQ,KAAA,EAAA,EAPA,EAQA,CA6BA2rC,EAAAl0C,SAxHA,SAAA/N,GACA4J,EAAA7C,SAAA,eAAA,EACAq7C,EAAAr7C,SAAA,eAAA,EAEA+7C,IAMA54C,GAFA7H,EAAAA,GAAA,IAEA+T,IAAAssC,CAAA,EAEArgD,EAAAK,QACAwH,EAAAxG,KAiFA,CACA,iEACA,+BAAA0D,OAAAI,QAAAC,EAAA,WAAA,CAAA,EACA,sDACA,SACA6O,KAAA,EAAA,CAtFA,EAGApM,EAAAxG,KAsFA,WACA,IAAAuI,EAAA9L,SAAA2O,sBAAA,EACA3C,EAAAhM,SAAA4O,2BAAA,EAEA,MAAA,CACA,kEACA,mBAAA3H,OAAAI,QAAAC,EAAA,cAAA,CAAA,EACA,wEACA,wEAAAL,OAAAI,QAAAC,EAAA,iBAAA,CAAA,EACA,0GACAL,OAAA6E,EAAA,kCAAA,GAAAzE,QAAAC,EAAA,yBAAA,CAAA,EACA,+GACAL,OAAA+E,EAAA,kCAAA,GAAA3E,QAAAC,EAAA,8BAAA,CAAA,EACA,QACA,SACA6O,KAAA,EAAA,CACA,EAtGA,CAAA,EAEA4rC,EAAAr0C,KAAA3D,EAAAoM,KAAA,EAAA,CAAA,EAEA6rC,EAAA7hD,EAAA,yBAAA,EACAK,EAAAL,EAAA,4BAAA,EAEAyiD,EAAA,CAAA5iD,SAAA2O,sBAAA,GAAA3O,SAAA4O,2BAAA,EAEApO,EACAE,KAAA,QAAA,EACAiK,YAAA,iBAAAi4C,CAAA,EAEAZ,EAAAthD,KAAA,IAAA,EAAAgN,KAAAxL,EAAA+T,IAAAysC,CAAA,CAAA,EAEAT,EAAAD,EAAAthD,KAAA,gBAAA,EAEAqhD,EAAArhD,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAA22C,CAAA,EAEAliD,SAAAoO,cAAA,CAhCA,EAqHAzO,EAAAgO,KAAAm0C,CACA,EAAA/xC,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA,ECpIA,SAAAL,GACA,IAEAqmC,EACA6c,EAHA7+C,EAAA,GAKAqP,EAAAlT,EAAA,MAAA,EACAmT,EAAAnT,EAAA,cAAA,EACAoT,EAAApT,EAAA,qBAAA,EACAqT,EAAArT,EAAA,gBAAA,EACAsT,EAAAtT,EAAA,kBAAA,EACAuT,EAAAvT,EAAA,gBAAA,EACAwT,EAAAxT,EAAA,kBAAA,EACAyT,EAAAzT,EAAA,wBAAA,EACA0T,EAAA1T,EAAA,sBAAA,EACA2T,EAAA3T,EAAA,iBAAA,EACA4T,EAAA5T,EAAA,mBAAA,EACA6T,EAAA7T,EAAA,aAAA,EACAE,EAAAF,EAAA,oBAAA,EACA8T,EAAA9T,EAAA,4BAAA,EACA+T,EAAAT,EAAA/S,KAAA,kBAAA,EAiEA,SAAAoiD,EAAAn3C,GACA,IAAAo3C,EAAA5iD,EAAA0D,IAAA,EAAAsa,QAAA,iBAAA,EACA3H,EAAAusC,EAAAj7C,KAAA,KAAA,EACAk7C,EAAA9uC,EAAAxT,KAAA,4CAAAuG,OAAAuP,CAAA,CAAA,EAMA,OAJAusC,EAAAp4C,YAAA,UAAA,EACAq4C,EAAAr4C,YAAA,UAAA,EAEAgB,EAAAV,gBAAA,EACA,CAAA,CACA,CAEA,SAAAg4C,IACA,IAAAzsC,EAAArW,EAAA0D,IAAA,EAAAiE,KAAA,KAAA,EAEAo7C,mBAAA76C,KAAAmO,EAAA,KAAAwvB,CAAA,CACA,CAEA,SAAAnF,EAAAl1B,GACA,IAAAC,EAAAzL,EAAA0D,IAAA,EAEAs/C,EADAv3C,EAAAuS,QAAA,YAAA,EACArW,KAAA,KAAA,EACAi5B,EAAAn1B,EAAA9D,KAAA,KAAA,EACAglC,EAAA9G,EAAAmd,GAIApW,GAFAD,EAAAn9B,OAEAq9B,oBAAA,IAAAC,0BAAA,GACAC,GAAAJ,EAAAE,oBAAA,IAAAC,0BAAA,GAEAE,EAAAJ,EACAziB,OAAA4iB,CAAA,EACAr3B,OAAA,SAAAu3B,GACA,OAAAlqC,MAAAgK,eAAAkgC,CAAA,CACA,CAAA,EAEAT,EAAA5rC,WAAAC,MAAA6B,mBAAAC,KAAAzB,IAAAc,cAAAd,GAAA,EACA+hD,EAAAjhD,cAAAkK,UAAA,CAAA8gC,EAAA5qC,QAAA4qC,EAAAE,KAAA,SAAAD,GACA,OAAAT,EAAAW,SAAAF,CAAA,CACA,CAAA,GAqCA,OAnCAlM,kBAAAjlB,KAAA,CACA5a,IAAA0/B,EACAI,QAAAv1B,EACAw1B,QAAAltB,EACAmtB,WAAAntB,EACAotB,WAAA,CAAA,IAAA8hB,EACA1hB,UAAA,SAAA7D,GACAiP,EAAA5/B,eAAA,gBAAA,IACA4/B,EAAAqE,eAAArT,MAAAD,EAAAC,MACAgP,EAAAqE,eAAAkS,WAAA,CAAA,EAEAz3C,EACA9D,KAAA,MAAA+1B,EAAAx8B,GAAA,EACAqM,KAAAvM,MAAAkB,OAAAixB,OAAAuK,EAAA,CAAA4P,iBAAA,CAAA,CAAA,CAAA,CAAA,EAEAv5B,EAAAxT,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEA,EACAyQ,kBAAA,SAAA9D,GACAjyB,EACA9D,KAAA,MAAA+1B,EAAAx8B,GAAA,EACAqM,KAAAvM,MAAAkB,OAAAixB,OAAAuK,EAAA,CAAA4P,iBAAA,CAAA,CAAA,CAAA,CAAA,EAEAv5B,EAAAxT,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,CACA,CACA,CAAA,EAEA7d,EAAA7H,IAAA,sBAAA,EACA6H,EAAA9H,GAAA,uBAAA21B,kBAAA7kB,IAAA,EAEA1Q,EAAAV,gBAAA,EACA,CAAA,CACA,CAsCA,SAAA8f,EAAAjjB,GACA,IAAA,IASA0O,EATAowB,EAAA,EAAAz9B,GAAArB,GAAA,IAAAvF,OAAAqkC,EAAAz9B,EAAAy9B,CAAA,GAAA,CACA,IAAAx8B,EAAAtC,EAAA8+B,IAEAx8B,EAAAjJ,MAAAo9B,OAAAb,QAAAtzB,EAAA,CAAA,CAAA,GACAgkC,WAAA,GAEApI,EAAA57B,EAAA/I,KAAA+I,CACA,CAEA,IAAAoM,KAAAwvB,EACA,GAAAA,EAAA94B,eAAAsJ,CAAA,EAAA,CAIApM,EAAA47B,EAAAxvB,GAEA,GAAApM,EAAAiC,SAIAjC,EAAAA,EAAA0D,KAAA,KAIA1D,EAAA8C,eAAA,WAAA,GAIA84B,EAAA94B,eAAA9C,EAAAwzB,SAAA,IAIAxzB,EAAAuF,OAAAq2B,EAAA57B,EAAAwzB,WAEAxzB,CAAAA,EAAAuF,QAAAvF,EAAAuF,OAAA7B,OAAArM,MAAAsM,YAAA4tC,iBAIA1K,CA4BA,SAAA7mC,GACA,IAcAuiC,EAdA,MAAAviC,CAAAA,GASA,EAAAspC,EALAA,IAAAtpC,EAAA4iC,oBAAA,IAAA2G,4BAAA,IACA99B,OAAA,SAAAu3B,GACA,OAAAlqC,MAAAgK,eAAAkgC,CAAA,CACA,CAAA,GAEA7qC,SAKAoqC,EAAA5rC,WAAAC,MAAA6B,mBAAAC,KAAAzB,IAAAc,cAAAd,GAAA,GAEAkB,QAAAmxC,EAAArG,KAAA,SAAAD,GACA,OAAAT,EAAAW,SAAAF,CAAA,CACA,CAAA,EACA,EAhDAhjC,CAAA,GAIAk5C,CA8CA,SAAAl5C,GACA,GAAA,CAAAA,EACA,OAAA,EAGA,IAAA+W,IAAAnhB,SAAAsO,cAAA,GAAA,IAAA9I,eAAA,IAAA0b,UAAA,GAEA,GAAA,CAAAC,EAAA5e,OACA,OAGA,GAAA,KAAA6H,EAAA0D,MAAA1D,EAAAuF,SAAAvF,EAAAuF,OAAAohB,YAAA,IAAAxuB,OACA,MAAA,EAAA6H,EAAAuF,OAAAohB,YAAA,IAAAsc,KAAA,SAAArqC,GACA,MAAA,CAAA,IAAAme,EAAAX,QAAAxd,CAAA,CACA,CAAA,EAGA,MAAA,EAAAoH,EAAA2mB,YAAA,IAAAsc,KAAA,SAAArqC,GACA,MAAA,CAAA,IAAAme,EAAAX,QAAAxd,CAAA,CACA,CAAA,CACA,EAlEAoH,CAAA,IAIAA,EAAA0D,OAAArM,MAAAsM,YAAAsgC,gBACAltC,MAAAmtC,iBAAA,GADA,CAKA,GAAA,CAAAuU,EAAA31C,eAAA9C,EAAAuF,OAAAtO,GAAA,EAAA,CACA,GAAA,IAAA+I,EAAAuF,OAAA4+B,UACA,SAGAsU,EAAAz4C,EAAAuF,OAAAtO,KAAA,CAAA,CACA,CAEA+I,EAAAuF,OAAAy+B,WAAA7qC,KAAA6G,CAAA,EACAA,EAAAuF,OAAAy+B,WAAA7nC,KAAApF,MAAA8kC,cAAA,CAXA,CArCA,CAmDA,OAAAn+B,CACA,CA8CA,SAAAy7C,EAAAz7C,GACA,IAAA4F,EAAA,GACA81C,EAAAphD,OAAA+9B,KAAA0iB,CAAA,EACA5sC,IAAA,SAAA+6B,GACA,OAAAhL,EAAAgL,EACA,CAAA,EACAzqC,KAAApF,MAAA8kC,cAAA,EA4BA,OA1BAud,EAAAjhD,QAaAihD,EAAAzgD,QAAA,SAAAwtC,GAgBA,IAAAA,EAKA7iC,EApBAA,EAAAnK,KAAA,sCAAA,EACAmK,EAAAnK,MAcAgtC,EAdAA,KAmBA7iC,EAAA,IAEAnK,KACA,uDAAA0D,OAAAspC,EAAAlvC,GAAA,EACA,4BACA,2DAAA4F,OAAAspC,EAAA/gB,OAAA,SAAA,EACA,gDAAAvoB,OAAAspC,EAAA7qC,OAAA2B,QAAAC,EAAA,eAAA,CAAA,EACA,QACA,EAEAoG,EAAAyI,KAAA,EAAA,GAbA,IAhBA,GAEAo6B,EAAAnC,YAAA,IAAArrC,QAAA,SAAA0gD,GACA/1C,EAAAnK,KA6BA,SAAAkgD,GACA,GAAA,CAAAA,EACA,OAAA,KAGA,IAAA/1C,EAAA,GAEAA,EAAAnK,KACA,gFACA0D,OAAAw8C,EAAApiD,IAAAoiD,EAAA7lB,SAAA,EACA,+BACA,2CAAA32B,OAAAw8C,EAAA/9C,OAAA2B,QAAAC,EAAA,eAAA,CAAA,CACA,EAEAm8C,EAAA9T,aACAjiC,EAAAnK,KACA,oCACAkgD,EAAA9T,YAAAF,QAAA,qBAAA,MAAA,EACA,MACA,EAKA,CAAA,IAEAiU,EAJAh2C,EAAAnK,KAAA,QAAA,EAEAkgD,EAAA31C,OAAArM,MAAAsM,YAAAxF,OACAk7C,EAAAtS,gBACAuS,EAAA3yB,WAAA0yB,EAAAtS,eAAAnT,aAEAtwB,EAAAnK,KACA,yCAAA0D,OAAAw8C,EAAAtS,eAAA9vC,GAAA,EACAqiD,EAAA,wCAAAz8C,OAAAy8C,EAAAl0B,KAAA,EAAA,GACA,GACA,GAEA9hB,EAAAnK,KAAA,0BAAA,EAGAmK,EAAAnK,KACApC,MAAAkB,OAAAixB,OAAAmwB,EAAAtS,eAAA,CAAA1D,iBAAA,CAAA,EAAAzH,SAAAA,CAAA,CAAA,EACA,QACA,EACA,CAIA,OAFAt4B,EAAAnK,KAAA,QAAA,EAEAmK,EAAAyI,KAAA,EAAA,CACA,EA3EAstC,CAAA,CAAA,CACA,CAAA,EAEA/1C,EAAAnK,KAAA,QAAA,CACA,CAAA,EAEA2Q,EAAAxG,KAAAA,EAAAyI,KAAA,EAAA,CAAA,IAvBAzI,EAAA,CACA,kCACA,oCACA,0BAAAzG,OAAAI,QAAAC,EAAA,iCAAA,CAAA,EACA,SACA,UAGA4M,EAAAxG,KAAAA,EAAAyI,KAAA,EAAA,CAAA,GAiBArO,CACA,CAoEA,SAAA+9B,EAAAnd,GACA,GAAA,CAAAA,EACA,OAAAvoB,EAAAyD,SAAA,EAAAutB,OAAA,EAAAptB,QAAA,EAGA,GAAA,CAAA5B,cAAAqzC,eACA,OAAAr1C,EAAAyD,SAAA,EAAAE,QAAA,EAAAC,QAAA,EAGA/D,SAAA6O,qBAAA6Z,EAAArnB,GAAA,EAEA,IAAA62C,EAAA/2C,MAAA+a,KAAAgB,KAAA,mBAAAwL,EAAArnB,IAAA,YAAAc,cAAAd,GAAA,EAUA,OARA62C,EAAAr2C,KAAA,SAAAm7C,GACAh9C,SAAA+O,cAAA2Z,EAAArnB,IAAA27C,GAAA,CAAA,CACA,EAAA,SAAA5gC,EAAA+qB,GACA,UAAAA,GACAnnC,SAAA+O,cAAA2Z,EAAArnB,IAAA,CAAA,CAEA,CAAA,EAEA62C,CACA,CAMAl0C,EAAAqE,KApaA,SAAAd,GAGA,GAAA,EAFA6pB,EAAApxB,SAAA8M,KAAAvF,CAAA,GAEAhG,sBAAA,CACA,IAAAxB,EAAAC,SAAAsO,cAAA,EAEA,GAAAvO,GAAAqxB,EAAApvB,QAAAovB,EAAApvB,OAAAX,MAAAtB,EAAAsB,IAEA,OADArB,KAAAA,SAAAiO,QAAAmjB,EAAApvB,MAAA,CAGA,CAOAgkC,EAAA,GACA6c,EAAA,GAEAvvC,EAAAie,KACA,8BACA,0FACA,EAEArd,EAAAsU,MAAA,EASAjV,EAAA3M,SAAA,MAAA,EACA4M,EAAA5M,SAAA,MAAA,EACA6M,EAAAtM,YAAA,MAAA,EACAuM,EAAA9M,SAAA,MAAA,EACA+M,EAAA/M,SAAA,MAAA,EACAgN,EAAAhN,SAAA,MAAA,EACAiN,EAAAjN,SAAA,MAAA,EACAkN,EAAAlN,SAAA,MAAA,EACAmN,EAAAnN,SAAA,MAAA,EACAoN,EAAA7M,YAAA,QAAA,EAEA9G,EAAAK,KAAA,OAAA,EAAAyG,YAAA,MAAA,EAEA8M,EAAA9M,YAAA,QAAA,EAIAkM,EAAA7H,IAAA,sBAAA,EACA0I,EAAA1I,IAAA,sBAAA,EACA0I,EAAA1I,IAAA,oBAAA,EACA0I,EAAA1I,IAAA,sBAAA,EAIA0I,EAAA3I,GAAA,uBAAA,SAAAu3C,CAAA,EACA5uC,EAAA3I,GAAA,qBAAA,8BAAA03C,CAAA,EACA/uC,EAAA3I,GAAA,uBAAA,wBAAAs1B,CAAA,EA9BAgF,EAAA7lC,SAAAsO,cAAA,CAAA,EAiHA4F,EAAA1I,IAAA,uBAAA,EAEArK,MAAA6a,QAAAC,KAAA,EAmBA,WACA,CAAA,IACA+N,EADA,GAAA7nB,cAAAqzC,eAOA,OANAxrB,EAAA,CACAgkB,mBAAA,CAAA,EACAC,kBAAA,CAAA,EACAC,wBAAAluC,SAAA4O,2BAAA,CACA,EAEAzN,MAAA+a,KAAAuwB,IAAA,YAAAtqC,cAAAd,IAAA,KAAA,KAAA2oB,CAAA,CACA,CAEA,OAAA7pB,EAAAyD,SAAA,EAAAE,QAAA,EAAAC,QAAA,CACA,EA7BA,EACAlC,KAAAkpB,EAAA,SAAA3O,GACAjb,MAAA6a,QAAAK,KAAA,EACAlb,MAAAmb,gBAAA7a,MAAA8a,eAAA0U,KAAA7U,CAAA,CACA,CAAA,EACAva,KAAA0hD,CAAA,EACA1hD,KAAA,SAAAiG,GAOA,OANAoM,EAAAxT,KAAA,KAAA,EACA8K,IAAA,OAAA,EACAD,GAAA,QAAApK,MAAA+vB,eAAA,EAEA/vB,MAAA6a,QAAAK,KAAA,EAEAvU,CACA,CAAA,CAnJA,EAuZA9D,EAAAC,iBAAA4hC,EACA7hC,EAAA8E,QANA,WACAoL,EAAAsU,MAAA,CACA,EAMA7oB,EAAAqE,OAAAA,CACA,EAAA+L,OAAA/P,WAAA+P,OAAA/P,SAAA,GAAA","file":"explorer.min.js","sourcesContent":["(function ( global ) {\r\n var Explorer = {\r\n MenuItems: {}\r\n };\r\n\r\n var $explorer = $('#explorer');\r\n var $explorerMessagePanel = $('#explorer-message-panel');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerMoreMenu = $('#explorer-tab-menu-more');\r\n var $explorerHeader = $('#locationheader .location');\r\n var $optionMenu = $('#explorer-tab-menu-options');\r\n var $withChildLocations = $optionMenu.find('.dropdown-item[data-option=\"withChildLocations\"]');\r\n var $withDeactivatedElements = $optionMenu.find('.dropdown-item[data-option=\"withDeactivatedElements\"]');\r\n var $changemodeTabMenu = $('#change-mode-tab-menu');\r\n\r\n var counterDeferreds;\r\n\r\n var availableMenuItems;\r\n\r\n var lastMatch, currentTab;\r\n\r\n function show(match) {\r\n if (!Tools.Sessions.hasActiveSession()) {\r\n return;\r\n }\r\n\r\n if (!CurrentEntity || !match) {\r\n CurrentEntity = DataManager.OrganizationUnitLoader.Data.Root;\r\n }\r\n\r\n if (CurrentEntity && !DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(CurrentEntity.OID)) {\r\n CurrentEntity = null;\r\n }\r\n\r\n if (CurrentEntity) {\r\n if (!match || match.length < 2) {\r\n availableMenuItems = prepareMenuConfig(Explorer.MenuItems) || [];\r\n\r\n var firstAvailableTab = getFirstAvailableMenuItem();\r\n\r\n if (firstAvailableTab) {\r\n match = Tools.ResolveUrlPattern(\r\n 'explorer/{0}/{1}'.format(firstAvailableTab.OID, CurrentEntity.OID),\r\n '^explorer/{0}/{1}$'.format(firstAvailableTab.OID, CurrentEntity.OID)\r\n ).args;\r\n }\r\n\r\n lastMatch = match || [];\r\n } else {\r\n lastMatch = match || [];\r\n\r\n var newLocationOID = match.length === 2 ? lastMatch[1] : lastMatch[2];\r\n\r\n if (CurrentEntity.OID !== newLocationOID && DataManager.OrganizationUnitLoader.Data.DataMap[newLocationOID]) {\r\n CurrentEntity = DataManager.OrganizationUnitLoader.Data.DataMap[newLocationOID];\r\n availableMenuItems = prepareMenuConfig(Explorer.MenuItems) || [];\r\n } else if (!availableMenuItems) {\r\n availableMenuItems = prepareMenuConfig(Explorer.MenuItems) || [];\r\n }\r\n }\r\n\r\n User.Rights = ressources.users.getRightsAtLocation(CurrentEntity.OID);\r\n }\r\n\r\n if (Mode !== 'explorer') {\r\n Mode = 'explorer';\r\n content.reset();\r\n Center.Show();\r\n } else {\r\n Center.Select(CurrentEntity);\r\n }\r\n\r\n $changemodeTabMenu.addClass('hide');\r\n $explorer.removeClass('hide');\r\n\r\n if (currentTab == null) {\r\n $explorer.find('> div').addClass('hide');\r\n }\r\n\r\n $explorerTabMenu.removeClass('hide');\r\n\r\n $explorerHeader.html(\r\n '{0} › {1}'\r\n .format(\r\n i18next.t('nav.current.title'),\r\n i18next.t('explorer.title')));\r\n\r\n Explorer.Tabs.Generate(availableMenuItems);\r\n\r\n $explorerMoreMenu = $('#explorer-tab-menu-more');\r\n $optionMenu = $('#explorer-tab-menu-options');\r\n $withChildLocations = $optionMenu.find('.dropdown-item[data-option=\"withChildLocations\"]');\r\n $withDeactivatedElements = $optionMenu.find('.dropdown-item[data-option=\"withDeactivatedElements\"]');\r\n\r\n $explorerTabMenu.find('.tab-view-tab[data-tab-id], .dropdown-item[data-tab-id]').on('click.showTab', onShowTab);\r\n $explorerMoreMenu.off('click.showMoreMenu').on('click.showMoreMenu', onShowMoreMenu);\r\n $optionMenu.off('click.showOptionMenu').on('click.showOptionMenu', onShowOptionMenu);\r\n $optionMenu.find('.dropdown-item').on('click.showOptionMenu', onSelectOption);\r\n\r\n var $navigation = $('#nav');\r\n\r\n $navigation.find('.active').removeClass('active');\r\n $navigation.find('a[href=\"#explorer\"]').addClass('active');\r\n\r\n var newTabOID = lastMatch ? lastMatch[1] : null;\r\n\r\n currentTab = Tools.getFirst(availableMenuItems, newTabOID, 'OID');\r\n\r\n var withDeactivatedElements = $withDeactivatedElements.hasClass('dropdown-checkbox-item-checked');\r\n\r\n if (!CurrentEntity ||\r\n !(CurrentEntity.Type === Enums.elementType.Root ||\r\n CurrentEntity.Type === Enums.elementType.Location) ||\r\n !CurrentEntity.Enabled &&\r\n !withDeactivatedElements) {\r\n CurrentEntity = DataManager.OrganizationUnitLoader.Data.Root;\r\n }\r\n\r\n changeSelectedTab(match);\r\n }\r\n\r\n function initExplorer() {\r\n var isCurrentTabAvailable = currentTab ? ressources.users.hasOfficeUIRight(currentTab.ID) : false;\r\n\r\n if (!currentTab ||\r\n !isCurrentTabAvailable ||\r\n !Tools.contains(availableMenuItems, currentTab.OID, 'OID')) {\r\n currentTab = getFirstAvailableMenuItem();\r\n\r\n if (!currentTab) {\r\n return {\r\n CurrentTabIsAvailable: false\r\n };\r\n }\r\n\r\n isCurrentTabAvailable = false;\r\n }\r\n\r\n if (currentTab.ActionType !== Enums.CustomMenuItemActionType.ShowIssueReport) {\r\n updateTabCounters().then(resizeTabMenu);\r\n }\r\n\r\n setCurrentTabAsActive();\r\n\r\n return {\r\n CurrentTabIsAvailable: isCurrentTabAvailable,\r\n NewTab: currentTab\r\n };\r\n }\r\n\r\n function prepareMenuConfig(menuItems) {\r\n if (!CurrentEntity || !menuItems) {\r\n return null;\r\n }\r\n\r\n if (typeof menuItems === 'object') {\r\n menuItems = Object.values(menuItems);\r\n }\r\n\r\n if (!(menuItems instanceof Array) || menuItems.length === 0) {\r\n return [];\r\n }\r\n\r\n var initializedConfig = [];\r\n var enabledMenuItems = getAvailableMenuItems(CurrentEntity.OID);\r\n\r\n var updateValuesCounter = function () {\r\n var deferred = new $.Deferred();\r\n\r\n if (currentTab.OID === this.OID) {\r\n return deferred.resolve().promise();\r\n }\r\n\r\n return Explorer.Values.UpdateTabCounter(this);\r\n };\r\n\r\n var updateIssueCounter = function () {\r\n var deferred = new $.Deferred();\r\n\r\n if (currentTab.OID === this.OID) {\r\n return deferred.resolve().promise();\r\n }\r\n\r\n return Explorer.Issues.UpdateTabCounter(this);\r\n };\r\n\r\n var updateDisturbancesCounter = function () {\r\n var deferred = new $.Deferred();\r\n\r\n if (currentTab.OID === this.OID) {\r\n return deferred.resolve().promise();\r\n }\r\n\r\n return Explorer.Disturbances.UpdateTabCounter(this);\r\n };\r\n\r\n var updateSchedulingsCounter = function () {\r\n var deferred = new $.Deferred();\r\n\r\n if (currentTab.OID === this.OID) {\r\n return deferred.resolve().promise();\r\n }\r\n\r\n Explorer.Scheduling.ResetSchedulingCache();\r\n\r\n return Explorer.Scheduling.UpdateTabCounter(this);\r\n };\r\n\r\n for (var i = 0; i < menuItems.length; i++) {\r\n var mItem = menuItems[i];\r\n\r\n if (!showMenuItemInOffice(mItem, enabledMenuItems)) {\r\n continue;\r\n }\r\n\r\n mItem.Title = !!mItem.Title ?\r\n Tools.escapeHtml(mItem.Title) :\r\n CustomMenuItems.GetItemTitle(mItem).Title;\r\n\r\n mItem.Icon = CustomMenuItems.GetOfficeIconFilePath(\r\n mItem.ActionType,\r\n mItem.OfficeIconOID\r\n );\r\n\r\n mItem.Position = Tools.getFirst(enabledMenuItems, mItem.ID, 'ID').Position;\r\n\r\n if (mItem.ActionType === Enums.CustomMenuItemActionType.ShowCheckpoints) {\r\n mItem.FnUpdateCounter = updateValuesCounter.bind(mItem);\r\n } else if (mItem.ActionType === Enums.CustomMenuItemActionType.ShowIssueReport) {\r\n mItem.FnUpdateCounter = updateIssueCounter.bind(mItem)\r\n } else if (mItem.ActionType === Enums.CustomMenuItemActionType.ShowDisturbancesFromRecordings) {\r\n mItem.FnUpdateCounter = updateDisturbancesCounter.bind(mItem);\r\n } else if (mItem.ActionType === Enums.CustomMenuItemActionType.ShowSchedulingOverview) {\r\n mItem.FnUpdateCounter = updateSchedulingsCounter.bind(mItem);\r\n }\r\n\r\n initializedConfig.push(mItem);\r\n }\r\n\r\n initializedConfig = Tools.sort(initializedConfig, 'Position');\r\n\r\n return initializedConfig;\r\n }\r\n\r\n function showMenuItemInOffice(menuItem, enabledMenuItems) {\r\n if (!enabledMenuItems) {\r\n return false;\r\n }\r\n\r\n if (enabledMenuItems instanceof Array &&\r\n !Tools.contains(enabledMenuItems, menuItem.ID, 'ID')) {\r\n return false;\r\n }\r\n\r\n if (menuItem.ModificationType === Enums.ModificationType.Deleted) {\r\n return false;\r\n }\r\n\r\n if (!menuItem.IsAvailableInOffice) {\r\n return false;\r\n }\r\n\r\n if (menuItem.ActionType === Enums.CustomMenuItemActionType.ShowCalendar ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.OpenSchedulingWindow ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.OpenFormWindow ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.ShowFloorPlan ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.ShowBluetoothSettings ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.Link ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.ShowIndividualData ||\r\n menuItem.ActionType === Enums.CustomMenuItemActionType.ShowScaleSettings) {\r\n return false;\r\n }\r\n\r\n if (menuItem.ActionType === Enums.CustomMenuItemActionType.ShowIssueReport &&\r\n menuItem.Configuration && menuItem.Configuration.PoolFormIssues) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function getAvailableMenuItems(locationOID) {\r\n var roles = ressources.users.getRolesAtLocation(User.OID, locationOID);\r\n\r\n if (!(roles || []).length) {\r\n return null;\r\n }\r\n\r\n var uiItems = [];\r\n\r\n function walk(uiItem) {\r\n if (uiItem.IsEnabled) {\r\n if (!Tools.contains(uiItems, uiItem.ID, 'ID')) {\r\n uiItems.push({ ID: uiItem.ID, Position: uiItem.Position });\r\n }\r\n }\r\n\r\n (uiItem.Children || []).forEach(walk);\r\n }\r\n\r\n (roles || []).forEach(function(identifier) {\r\n var role = Roles[identifier];\r\n\r\n if (!role) {\r\n return;\r\n }\r\n\r\n (role.OfficeUIRights || []).forEach(walk);\r\n });\r\n\r\n return uiItems.length ? uiItems : null;\r\n }\r\n\r\n function getFirstAvailableMenuItem() {\r\n if (!availableMenuItems) {\r\n availableMenuItems = prepareMenuConfig(Explorer.MenuItems) || [];\r\n }\r\n\r\n if (!availableMenuItems.length) {\r\n return null;\r\n }\r\n\r\n return availableMenuItems[0];\r\n }\r\n\r\n function showTab(tabIdentifier, options) {\r\n if (!CurrentEntity || !tabIdentifier) {\r\n $('#nav .active').removeClass('active');\r\n $explorerMessagePanel.text(i18next.t('explorer.noTabAvailable'));\r\n $explorerMessagePanel.removeClass('hide');\r\n return;\r\n }\r\n\r\n disposeCurrentTab();\r\n\r\n if (tabIdentifier !== 'more') {\r\n currentTab = Tools.getFirst(availableMenuItems, tabIdentifier, 'OID');\r\n setCurrentTabAsActive();\r\n }\r\n\r\n if (!currentTab) {\r\n return;\r\n }\r\n\r\n $explorerMessagePanel.addClass('hide');\r\n\r\n history.pushState(\r\n null,\r\n navigator.title,\r\n '#explorer/{0}/{1}'.format(currentTab.OID, CurrentEntity.OID)\r\n );\r\n\r\n changeSelectedTab(null, options);\r\n }\r\n\r\n function changeSelectedTab(match, options) {\r\n if (!CurrentEntity) {\r\n CurrentEntity = DataManager.OrganizationUnitLoader.Data.Root;\r\n }\r\n\r\n if (!currentTab) {\r\n var menuItemId = $('#explorer-tab-menu .tab-view-tab:not(.hide)').first().data('tab-id');\r\n\r\n currentTab = Tools.getFirst(availableMenuItems, menuItemId, 'OID');\r\n\r\n if (!currentTab) {\r\n initExplorer(match);\r\n\r\n $('#explorer .st-vb').addClass('hide');\r\n\r\n var $navigation = $('#nav');\r\n $navigation.find('.active').removeClass('active');\r\n $navigation.find('a[href=\"#explorer\"]').addClass('active');\r\n\r\n $explorerMessagePanel.text(i18next.t('explorer.noTabAvailable'));\r\n $explorerMessagePanel.removeClass('hide');\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (!CurrentEntity) {\r\n return;\r\n }\r\n\r\n match = match || Tools.ResolveUrlPattern(\r\n 'explorer/{0}/{1}'.format(currentTab.OID, CurrentEntity.OID),\r\n '^explorer/{0}/{1}$'.format(currentTab.OID, CurrentEntity.OID)\r\n ).args;\r\n\r\n handleSwitchTab(match, options);\r\n }\r\n\r\n function handleSwitchTab(match, options) {\r\n switch (currentTab.ActionType) {\r\n case Enums.CustomMenuItemActionType.ShowDashboardOffice:\r\n Explorer.Dashboard.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowInformation:\r\n Explorer.Info.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowCheckpoints:\r\n Explorer.Values.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowNews:\r\n Explorer.News.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueReport:\r\n Explorer.Issues.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowDisturbancesFromRecordings:\r\n Explorer.Disturbances.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowSchedulingOverview:\r\n Explorer.Scheduling.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowRecordedFiles:\r\n Explorer.Files.Show(match, options);\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueArchive:\r\n Explorer.Archive.Show(match, options);\r\n break;\r\n default:\r\n Explorer.Dashboard.Show(match, options);\r\n break;\r\n }\r\n }\r\n\r\n function disposeCurrentTab() {\r\n if (!currentTab) {\r\n return;\r\n }\r\n\r\n disposeTab(currentTab.ActionType);\r\n }\r\n\r\n function disposeTab(previousActionType) {\r\n switch (previousActionType) {\r\n case Enums.CustomMenuItemActionType.ShowDashboardOffice:\r\n Explorer.Dashboard.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowInformation:\r\n Explorer.Info.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowCheckpoints:\r\n Explorer.Values.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowNews:\r\n Explorer.News.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueReport:\r\n Explorer.Issues.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowDisturbancesFromRecordings:\r\n Explorer.Disturbances.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowSchedulingOverview:\r\n Explorer.Scheduling.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowRecordedFiles:\r\n Explorer.Files.Dispose();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueArchive:\r\n Explorer.Archive.Dispose();\r\n break;\r\n }\r\n }\r\n\r\n function updateTabCounters() {\r\n var counterDeferred = new $.Deferred();\r\n\r\n if (availableMenuItems.length === 0) {\r\n return counterDeferred.resolve().promise();\r\n }\r\n\r\n abortCounterRequests();\r\n\r\n counterDeferreds = [];\r\n\r\n for (var cnt = 0, len = availableMenuItems.length; cnt < len; cnt++) {\r\n var menuItem = availableMenuItems[cnt];\r\n\r\n if (menuItem.FnUpdateCounter instanceof Function) {\r\n counterDeferreds.push(menuItem.FnUpdateCounter((currentTab || {}).OID == menuItem.OID));\r\n }\r\n }\r\n\r\n $.when.apply(this, counterDeferreds).then(counterDeferred.resolve);\r\n\r\n return counterDeferred.promise();\r\n }\r\n\r\n function setCurrentTabAsActive() {\r\n if (!currentTab) {\r\n return;\r\n }\r\n\r\n $explorerTabMenu.find('.tab-view-tab[data-tab-id=\"'+ currentTab.OID +'\"]')\r\n .addClass('active')\r\n .siblings('.active')\r\n .removeClass('active');\r\n\r\n $explorerMoreMenu.find('.dropdown-item[data-tab-id=\"'+ currentTab.OID +'\"]')\r\n .addClass('active')\r\n .siblings('.active')\r\n .removeClass('active');\r\n }\r\n\r\n function resize() {\r\n if (!currentTab) {\r\n return;\r\n }\r\n\r\n switch (currentTab.ActionType) {\r\n case Enums.CustomMenuItemActionType.ShowDashboardOffice:\r\n Explorer.Dashboard.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowNews:\r\n Explorer.News.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueReport:\r\n Explorer.Issues.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowDisturbancesFromRecordings:\r\n Explorer.Disturbances.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowSchedulingOverview:\r\n Explorer.Scheduling.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowRecordedFiles:\r\n Explorer.Files.Resize();\r\n break;\r\n case Enums.CustomMenuItemActionType.ShowIssueArchive:\r\n Explorer.Archive.Resize();\r\n break;\r\n default:\r\n Explorer.Dashboard.Resize();\r\n break;\r\n }\r\n\r\n resizeTabMenu();\r\n }\r\n\r\n function resizeTabMenu() {\r\n var $optionsMenu = $('#explorer-tab-menu-options');\r\n var $tabItems = $explorerTabMenu.children('.tab-view-tab').not('.disabled').not($explorerMoreMenu);\r\n var maxWidth = $explorerTabMenu.width() - $optionsMenu.outerWidth(false);\r\n var tabItems = [];\r\n var tabItemsWidth = 0;\r\n var remainingWidth;\r\n\r\n $tabItems.removeClass('hide');\r\n\r\n $explorerMoreMenu = $('#explorer-tab-menu-more');\r\n\r\n $.each($tabItems, function (_idx, elem) {\r\n var $elem = $(elem);\r\n var width = $elem.outerWidth(false) +\r\n parseInt($elem.css('padding-left'), 10) +\r\n parseInt($elem.css('padding-right'), 10);\r\n\r\n tabItems.push({ elem: $elem, width: width });\r\n\r\n tabItemsWidth += width;\r\n });\r\n\r\n if (tabItemsWidth < maxWidth) {\r\n $explorerMoreMenu.addClass('hide');\r\n $tabItems.removeClass('hide');\r\n } else {\r\n remainingWidth = maxWidth - $explorerMoreMenu.outerWidth(false);\r\n\r\n $.each(tabItems, function (_idx, item) {\r\n var tabId = item.elem.data('tab-id');\r\n var $moreElem = $explorerMoreMenu.find('.dropdown-item[data-tab-id=\"' + tabId + '\"]');\r\n\r\n remainingWidth -= item.width;\r\n\r\n if (remainingWidth <= 0) {\r\n item.elem.addClass('hide');\r\n $moreElem.removeClass('hide');\r\n } else {\r\n item.elem.removeClass('hide');\r\n $moreElem.addClass('hide');\r\n }\r\n });\r\n\r\n $explorerMoreMenu.removeClass('active, hide');\r\n }\r\n\r\n var moreChildIsActive = $explorerMoreMenu.find('.dropdown-item.active:not(.hide)').length > 0;\r\n\r\n $explorerMoreMenu.toggleClass('active', moreChildIsActive);\r\n }\r\n\r\n function getCurrentTab() {\r\n return currentTab;\r\n }\r\n\r\n function onShowTab(evt) {\r\n DatePicker.Close();\r\n evt.stopPropagation();\r\n\r\n var $tabItem = $(this);\r\n var tabId = $tabItem.data('tab-id');\r\n\r\n showTab(tabId);\r\n }\r\n\r\n function onShowMoreMenu(evt) {\r\n DatePicker.Close();\r\n $optionMenu.removeClass('active');\r\n $optionMenu.children('.dropdown-menu').removeClass('open');\r\n\r\n if (this.tagName.toLowerCase() === 'body') {\r\n $explorerMoreMenu.children('.dropdown-menu').removeClass('open');\r\n } else {\r\n $explorerMoreMenu.children('.dropdown-menu').toggleClass('open');\r\n }\r\n\r\n var isOpen = $explorerMoreMenu.children('.dropdown-menu').hasClass('open');\r\n\r\n $explorerMoreMenu.toggleClass('active', isOpen);\r\n\r\n if (isOpen) {\r\n evt.stopPropagation();\r\n $('body').on('click.toggleExplorerMoreMenu', onShowMoreMenu);\r\n } else {\r\n $('body').off('click.toggleExplorerMoreMenu');\r\n\r\n if ($explorerMoreMenu.find('.active:not(.hide)').length) {\r\n $explorerMoreMenu.addClass('active');\r\n }\r\n }\r\n }\r\n\r\n function onShowOptionMenu(evt) {\r\n DatePicker.Close();\r\n evt.stopPropagation();\r\n\r\n $explorerMoreMenu.children('.dropdown-menu').removeClass('open');\r\n\r\n if ($optionMenu.hasClass('active')) {\r\n $('body').off('click.toggleExplorerOptions');\r\n $optionMenu.removeClass('active');\r\n $optionMenu.children('.dropdown-menu').removeClass('open');\r\n } else {\r\n $('body').on('click.toggleExplorerOptions', onShowOptionMenu);\r\n $optionMenu.addClass('active');\r\n $optionMenu.children('.dropdown-menu').addClass('open');\r\n }\r\n }\r\n\r\n function onSelectOption(event) {\r\n var $this = $(this);\r\n var option = $this.data('option');\r\n\r\n $('body').off('click.toggleExplorerOptions');\r\n\r\n $optionMenu.removeClass('active');\r\n $optionMenu.children('.dropdown-menu').removeClass('open');\r\n\r\n if ($this.hasClass('dropdown-checkbox-item')) {\r\n $this.toggleClass('dropdown-checkbox-item-checked');\r\n }\r\n\r\n var withChildLocations = getWithChildLocations();\r\n var withDeactivatedElements = getWithDeactivatedElements()\r\n\r\n if (!withChildLocations || withDeactivatedElements) {\r\n $optionMenu.children('span').addClass('items-selected');\r\n } else {\r\n $optionMenu.children('span').removeClass('items-selected');\r\n }\r\n\r\n switch (option) {\r\n case 'showQRCode':\r\n if (!CurrentEntity) {\r\n break;\r\n }\r\n\r\n Tools.QRCode.Show(CurrentEntity.QRCode || CurrentEntity.OID, CurrentEntity.Title);\r\n break;\r\n case 'withChildLocations':\r\n Tools.UpdateOfficeUserSettings('ExplorerWithChildLocations', withChildLocations)\r\n .then(function () {\r\n changeSelectedTab(lastMatch);\r\n });\r\n break;\r\n case 'withDeactivatedElements':\r\n if (!CurrentEntity) {\r\n break;\r\n }\r\n\r\n Tools.UpdateOfficeUserSettings('ExplorerWithDeactivatedElements', withDeactivatedElements)\r\n .then(function () {\r\n Center.Show();\r\n\r\n if (withDeactivatedElements || CurrentEntity.Enabled) {\r\n changeSelectedTab(lastMatch);\r\n } else {\r\n location.hash = '#' + Mode;\r\n }\r\n });\r\n break;\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n\r\n function isMenuItemAvailable(id) {\r\n if (!id) {\r\n return false;\r\n }\r\n\r\n return Tools.contains(availableMenuItems, id, 'ID');\r\n }\r\n\r\n function getMenuItemById(id) {\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n return Tools.getFirst(availableMenuItems, id, 'ID');\r\n }\r\n\r\n function getColumnsSettingName() {\r\n var menuItem = getCurrentTab();\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n var menuItemOID = menuItem.OID;\r\n\r\n return 'Explorer' + menuItemOID + 'ColumnIds';\r\n }\r\n\r\n function getWithChildLocations() {\r\n if ($withChildLocations.length) {\r\n return $withChildLocations.hasClass('dropdown-checkbox-item-checked');\r\n }\r\n\r\n var value = Tools.GetOfficeSettingValue('ExplorerWithChildLocations');\r\n\r\n return typeof value === 'boolean' ? value : true;\r\n }\r\n\r\n function getWithDeactivatedElements() {\r\n if ($withDeactivatedElements.length) {\r\n return $withDeactivatedElements.hasClass('dropdown-checkbox-item-checked');\r\n }\r\n\r\n var value = Tools.GetOfficeSettingValue('ExplorerWithDeactivatedElements');\r\n\r\n return typeof value === 'boolean' ? value : false;\r\n }\r\n\r\n function createOrganisationUnitLink(menuitemIdentifier, ouIdentifier) {\r\n if (!menuitemIdentifier || !ouIdentifier) {\r\n return null;\r\n }\r\n\r\n return '#explorer/' + menuitemIdentifier + '/' + ouIdentifier;\r\n }\r\n\r\n function createOrganisationUnitPath(assignedElementOID, elementCache) {\r\n if (!assignedElementOID) {\r\n return;\r\n }\r\n\r\n elementCache = elementCache || DataManager.OrganizationUnitLoader.Data.DataMap;\r\n\r\n var currentTab = Explorer.GetCurrentTab();\r\n var parent = elementCache[assignedElementOID];\r\n\r\n if (parent) {\r\n var locationPath;\r\n var locationLink;\r\n\r\n if (currentTab) {\r\n if (parent.Type === Enums.elementType.Root || parent.Type === Enums.elementType.Location) {\r\n locationLink = createOrganisationUnitLink(currentTab.OID, assignedElementOID);\r\n }\r\n\r\n locationPath = !!locationLink ?\r\n '' + parent.Title + '' :\r\n parent.Title;\r\n\r\n } else {\r\n locationPath = parent.Title;\r\n }\r\n\r\n for (var i = 3; i > 0 && (parent = parent.Parent); i--) {\r\n if (currentTab &&\r\n (parent.Type === Enums.elementType.Root || parent.Type === Enums.elementType.Location)) {\r\n locationLink = createOrganisationUnitLink(currentTab.OID, parent.OID);\r\n }\r\n\r\n locationPath = !!locationLink ?\r\n ('' + parent.Title + ' › ' + locationPath) :\r\n '{0} › {1}'.format(parent.Title, locationPath);\r\n }\r\n }\r\n\r\n return locationPath;\r\n }\r\n\r\n function setTabCounterLoading(menuItemIdentifier) {\r\n if (!menuItemIdentifier) {\r\n return;\r\n }\r\n\r\n $explorerTabMenu\r\n .find('.tab-view-tab[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .addClass('loading');\r\n\r\n $explorerTabMenu\r\n .find('.dropdown-item[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .addClass('loading');\r\n }\r\n\r\n function setTabCounter(menuItemIdentifier, count) {\r\n var counterText = Tools.GetBadgeCounterText(count);\r\n\r\n $explorerTabMenu.find('.tab-view-tab[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .removeClass('loading')\r\n .toggleClass('small-counter-text', count >= 1000)\r\n .data('count', count)\r\n .attr('count', counterText);\r\n\r\n $explorerTabMenu\r\n .find('.dropdown-item[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .removeClass('loading')\r\n .toggleClass('small-counter-text', count >= 1000)\r\n .data('count', count)\r\n .attr('count', counterText);\r\n }\r\n\r\n function abortCounterRequests() {\r\n if (!(counterDeferreds || []).length) {\r\n return;\r\n }\r\n\r\n counterDeferreds.forEach(function (deferred) {\r\n if (deferred.abort instanceof Function) {\r\n deferred.abort();\r\n }\r\n });\r\n }\r\n\r\n function resetExplorer() {\r\n availableMenuItems = null;\r\n currentTab = null;\r\n\r\n Explorer.Archive.ResetFilters();\r\n Explorer.Dashboard.ResetFilters();\r\n Explorer.Files.ResetFilters();\r\n Explorer.Issues.ResetFilters();\r\n Explorer.News.ResetFilters();\r\n Explorer.Scheduling.ResetFilters();\r\n }\r\n\r\n Explorer.Init = initExplorer;\r\n Explorer.Show = show;\r\n Explorer.ShowTab = showTab;\r\n Explorer.GetFirstAvailableMenuItem = getFirstAvailableMenuItem;\r\n Explorer.Resize = resize;\r\n Explorer.ResizeTabMenu = resizeTabMenu;\r\n Explorer.SetCurrentTabAsActive = setCurrentTabAsActive;\r\n Explorer.GetCurrentTab = getCurrentTab;\r\n Explorer.IsMenuItemAvailable = isMenuItemAvailable;\r\n Explorer.GetMenuItemById = getMenuItemById;\r\n Explorer.GetColumnsSettingName = getColumnsSettingName;\r\n Explorer.GetWithChildLocations = getWithChildLocations;\r\n Explorer.GetWithDeactivatedElements = getWithDeactivatedElements;\r\n Explorer.SetTabCounterLoading = setTabCounterLoading;\r\n Explorer.SetTabCounter = setTabCounter;\r\n Explorer.UpdateTabCounters = updateTabCounters;\r\n Explorer.CreateOrganisationUnitPath = createOrganisationUnitPath;\r\n Explorer.DisposeCurrentTab = disposeCurrentTab;\r\n Explorer.Reset = resetExplorer;\r\n\r\n return (global.Explorer = Explorer);\r\n})( window );","/**\r\n * @require ./explorer.js\r\n */\r\n(function ( global ) {\r\n var Archive = {};\r\n\r\n var issuesLoaded;\r\n var issues;\r\n var tableColumnSelection, tableColumns;\r\n var sorting, sortingorder;\r\n var typeFilter, types;\r\n var creatorFilter, userFilter, users;\r\n var teamFilter, teams;\r\n var contactFilter, contacts;\r\n var contactGroupFilter, contactGroups;\r\n var keywordFilter, keywords;\r\n var classificationFilter, classifications;\r\n var statusFilter, states;\r\n var priorityFilter, priorities;\r\n var formFilter;\r\n var schedulingFilter;\r\n var periodFilter = {};\r\n var selectAll;\r\n var searchTimeout, searchValue, hideNonResponsibleIssues;\r\n var toggleControls = false;\r\n var userCanAssignAllTeamsAndUsers;\r\n var visibleTeams, selectableTeams;\r\n var activeFilters = {\r\n TypeFilter: false,\r\n CreatorFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PriorityFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n PeriodFilter: false,\r\n SearchValue: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n var interacts = {\r\n draggable: null,\r\n droppable: null\r\n };\r\n\r\n var updateRequest;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $tableWrapper = $explorerArchive.find('.tblContentWrapper');\r\n var $tableHeader = $explorerArchive.find('.tbl_header');\r\n var $selectAll = $tableHeader.find('.select-all');\r\n var $tableBody = $tableWrapper.find('.table > tbody');\r\n var $toggleControls = $('#explorer-archive-toggle-controls');\r\n var $btnPrintIssues = $('#explorer-archive-print-issues');\r\n var $btnEditIssues = $('#explorer-archive-edit-issues');\r\n var $resetFilters = $('#explorer-archive-reset-filters');\r\n var $typeFilter = $('#explorer-archive-type-filter');\r\n var $tableColumnSelection = $('#explorer-archive-table-columns');\r\n var $creatorFilter = $('#explorer-archive-creator-filter');\r\n var $userFilter = $('#explorer-archive-user-filter');\r\n var $teamFilter = $('#explorer-archive-team-filter');\r\n var $contactFilter = $('#explorer-archive-contact-filter');\r\n var $contactGroupFilter = $('#explorer-archive-contact-group-filter');\r\n var $keywordFilter = $('#explorer-archive-keyword-filter');\r\n var $classificationFilter = $('#explorer-archive-classification-filter');\r\n var $statusFilter = $('#explorer-archive-status-filter');\r\n var $priorityFilter = $('#explorer-archive-priority-filter');\r\n var $formFilter = $('#explorer-archive-form-filter');\r\n var $schedulingFilter = $('#explorer-archive-scheduling-filter');\r\n var $search = $('#explorer-archive-search');\r\n var $periodFilter = $('#explorer-archive-period-filter');\r\n var $hideNonResponsibleIssues = $('#explorer-archive-hide-non-responsible-issues-lbl');\r\n var $cbHideNonResponsibleIssues = $('#cb-explorer-archive-hide-non-responsible-issues');\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init();\r\n updateTable()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function init() {\r\n userCanAssignAllTeamsAndUsers = ressources.users.hasRightAtLocation(\r\n Enums.Rights.IssueRights.AllowAssigningAllUsersToIssues,\r\n CurrentEntity.OID\r\n );\r\n issuesLoaded = 0;\r\n issues = {};\r\n selectAll = false;\r\n tableColumnSelection = [];\r\n\r\n $btnPrintIssues.attr('disabled', 'disabled');\r\n $btnEditIssues.attr('disabled', 'disabled');\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n initTab();\r\n initLanguage();\r\n initTypes();\r\n initTableColumns();\r\n initUsers();\r\n initTeams();\r\n initContacts();\r\n initContactGroups();\r\n initStatus();\r\n initPriorities();\r\n initKeywords();\r\n initClassifications();\r\n initTableColumnSelection(false);\r\n initFilters();\r\n initTable();\r\n unbindEvents();\r\n bindEvents();\r\n\r\n resize();\r\n }\r\n\r\n function setFilterState() {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.removeClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n var $controls = $explorerArchive.find('.table-control');\r\n\r\n if ($controls.hasClass('collapsed')) {\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n } else {\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.hideFilters'));\r\n }\r\n\r\n $btnPrintIssues.text(i18next.t('explorer.archive.print'));\r\n $btnEditIssues.text(i18next.t('explorer.archive.edit'));\r\n\r\n $('#explorer-archive-type-filter-lbl').text(i18next.t('explorer.archive.typeFilter.label'));\r\n $('#explorer-archive-table-columns-lbl').text(i18next.t('explorer.archive.tableColumns.label'));\r\n\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $('#explorer-archive-creator-filter-lbl').text(i18next.t('explorer.archive.creatorFilter.label'));\r\n $('#explorer-archive-user-filter-lbl').text(i18next.t('explorer.archive.userFilter.label'));\r\n $('#explorer-archive-team-filter-lbl').text(i18next.t('explorer.archive.teamFilter.label'));\r\n $('#explorer-archive-contact-filter-lbl').text(i18next.t('explorer.archive.contactFilter.label'));\r\n $('#explorer-archive-contact-group-filter-lbl').text(i18next.t('explorer.archive.contactGroupFilter.label'));\r\n\r\n $('#explorer-archive-keyword-filter-lbl').text(i18next.t('explorer.archive.keywordFilter.label'));\r\n $('#explorer-archive-classification-filter-lbl').text(i18next.t('explorer.archive.classificationFilter.label'));\r\n $('#explorer-archive-status-filter-lbl').text(i18next.t('explorer.archive.statusFilter.label'));\r\n $('#explorer-archive-priority-filter-lbl').text(i18next.t('explorer.archive.priorityFilter.label'));\r\n $('#explorer-archive-form-filter-lbl').text(i18next.t('explorer.archive.formFilter.label'));\r\n $('#explorer-archive-scheduling-filter-lbl').text(i18next.t('explorer.archive.schedulingFilter.label'));\r\n $('#explorer-archive-period-filter-lbl').text(i18next.t('explorer.archive.periodFilter.label'));\r\n $periodFilter.find('.btn-title').text(i18next.t('explorer.archive.periodFilter.button'));\r\n $('#explorer-archive-search-lbl').text(i18next.t('explorer.archive.search'));\r\n $search.attr('placeholder', i18next.t('explorer.search'));\r\n\r\n $tableHeader.find('th[data-columntitle=\"id\"]').text(i18next.t('explorer.archive.tableColumns.id'));\r\n $tableHeader.find('th[data-columntitle=\"custom-id\"]').text(i18next.t('explorer.archive.tableColumns.customId'));\r\n $tableHeader.find('th[data-columntitle=\"title\"]').text(i18next.t('explorer.archive.tableColumns.title'));\r\n $tableHeader.find('th[data-columntitle=\"elementcoding\"]').text(i18next.t('explorer.archive.tableColumns.elementCoding'));\r\n $tableHeader.find('th[data-columntitle=\"creationtimestamp\"]').text(i18next.t('explorer.archive.tableColumns.creationTimestamp'));\r\n $tableHeader.find('th[data-columntitle=\"modificationtimestamp\"]').text(i18next.t('explorer.archive.tableColumns.lastModification'));\r\n $tableHeader.find('th[data-columntitle=\"deadlinetimestamp\"]').text(i18next.t('explorer.archive.tableColumns.deadline'));\r\n $tableHeader.find('th[data-columntitle=\"state\"]').text(i18next.t('explorer.archive.tableColumns.status'));\r\n $tableHeader.find('th[data-columntitle=\"priority\"]').text(i18next.t('explorer.archive.tableColumns.priority'));\r\n $tableHeader.find('th[data-columntitle=\"teamsAndUsers\"]').text(i18next.t('explorer.archive.tableColumns.teamsAndUsers'));\r\n $tableHeader.find('th[data-columntitle=\"checkpointCount\"]').text(i18next.t('explorer.archive.tableColumns.checkpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedCheckpointCount\"]').text(i18next.t('explorer.archive.tableColumns.collectedCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"openCheckpointCount\"]').text(i18next.t('explorer.archive.tableColumns.openCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"requiredCheckpointCount\"]').text(i18next.t('explorer.archive.tableColumns.requiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedRequiredCheckpointCount\"]').text(i18next.t('explorer.archive.tableColumns.collectedRequiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"estimatedEffort\"]').text(i18next.t('explorer.archive.tableColumns.estimatedEffort'));\r\n\r\n $tableHeader.find('th[data-columntitle=\"id\"]').attr('title',i18next.t('explorer.archive.tableColumns.id'));\r\n $tableHeader.find('th[data-columntitle=\"custom-id\"]').attr('title',i18next.t('explorer.archive.tableColumns.customId'));\r\n $tableHeader.find('th[data-columntitle=\"title\"]').attr('title',i18next.t('explorer.archive.tableColumns.title'));\r\n $tableHeader.find('th[data-columntitle=\"elementcoding\"]').attr('title', i18next.t('explorer.archive.tableColumns.elementCoding'));\r\n $tableHeader.find('th[data-columntitle=\"creationtimestamp\"]').attr('title',i18next.t('explorer.archive.tableColumns.creationTimestamp'));\r\n $tableHeader.find('th[data-columntitle=\"modificationtimestamp\"]').attr('title',i18next.t('explorer.archive.tableColumns.lastModification'));\r\n $tableHeader.find('th[data-columntitle=\"deadlinetimestamp\"]').attr('title',i18next.t('explorer.archive.tableColumns.deadline'));\r\n $tableHeader.find('th[data-columntitle=\"state\"]').attr('title',i18next.t('explorer.archive.tableColumns.status'));\r\n $tableHeader.find('th[data-columntitle=\"priority\"]').attr('title',i18next.t('explorer.archive.tableColumns.priority'));\r\n $tableHeader.find('th[data-columntitle=\"teamsAndUsers\"]').attr('title',i18next.t('explorer.archive.tableColumns.teamsAndUsers'));\r\n $tableHeader.find('th[data-columntitle=\"checkpointCount\"]').attr('title',i18next.t('explorer.archive.tableColumns.checkpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedCheckpointCount\"]').attr('title',i18next.t('explorer.archive.tableColumns.collectedCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"openCheckpointCount\"]').attr('title',i18next.t('explorer.archive.tableColumns.openCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"requiredCheckpointCount\"]').attr('title',i18next.t('explorer.archive.tableColumns.requiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedRequiredCheckpointCount\"]').attr('title',i18next.t('explorer.archive.tableColumns.collectedRequiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"estimatedEffort\"]').attr('title',i18next.t('explorer.archive.tableColumns.estimatedEffort'));\r\n }\r\n\r\n function initTypes() {\r\n types = [];\r\n\r\n types.push({ OID: '1-2', Title: i18next.t('explorer.archive.typeFilter.tasks') });\r\n\r\n if (Client.Licenses && Client.Licenses.Surveys) {\r\n types.push({ OID: '3-7', Title: i18next.t('explorer.archive.typeFilter.forms') });\r\n } else {\r\n types.push({ OID: '3', Title: i18next.t('explorer.archive.typeFilter.forms') });\r\n }\r\n\r\n types.push({ OID: '4', Title: i18next.t('explorer.archive.typeFilter.notes') });\r\n\r\n if (Client.Licenses && Client.Licenses.Inspections) {\r\n types.push({ OID: '6', Title: i18next.t('explorer.archive.typeFilter.inspections') });\r\n }\r\n\r\n if (Client.Licenses && Client.Licenses.Investigations) {\r\n types.push({ OID: '8', Title: i18next.t('explorer.archive.typeFilter.investigations') });\r\n }\r\n\r\n types.push({ OID: '5', Title: i18next.t('explorer.archive.typeFilter.disturbances') });\r\n types.push({ OID: '9', Title: i18next.t('explorer.archive.typeFilter.disturbancesCompleted') });\r\n }\r\n\r\n function initTableColumns() {\r\n tableColumns = [\r\n { OID: '0', Title: i18next.t('explorer.archive.tableColumns.id') },\r\n { OID: '1', Title: i18next.t('explorer.archive.tableColumns.customId') },\r\n { OID: '2', Title: i18next.t('explorer.archive.tableColumns.title') },\r\n { OID: '15', Title: i18next.t('explorer.archive.tableColumns.elementCoding') },\r\n { OID: '3', Title: i18next.t('explorer.archive.tableColumns.creationTimestamp') },\r\n { OID: '4', Title: i18next.t('explorer.archive.tableColumns.lastModification') },\r\n { OID: '5', Title: i18next.t('explorer.archive.tableColumns.deadline') },\r\n { OID: '6', Title: i18next.t('explorer.archive.tableColumns.status') },\r\n { OID: '7', Title: i18next.t('explorer.archive.tableColumns.priority') },\r\n { OID: '8', Title: i18next.t('explorer.archive.tableColumns.teamsAndUsers') },\r\n { OID: '9', Title: i18next.t('explorer.archive.tableColumns.checkpointCount') },\r\n { OID: '10', Title: i18next.t('explorer.archive.tableColumns.collectedCheckpointCount') },\r\n { OID: '11', Title: i18next.t('explorer.archive.tableColumns.openCheckpointCount') },\r\n { OID: '12', Title: i18next.t('explorer.archive.tableColumns.requiredCheckpointCount') },\r\n { OID: '13', Title: i18next.t('explorer.archive.tableColumns.collectedRequiredCheckpointCount') },\r\n { OID: '14', Title: i18next.t('explorer.archive.tableColumns.estimatedEffort') }\r\n ];\r\n }\r\n\r\n function initUsers() {\r\n users = Tools.GetSelectableUsers(CurrentEntity.OID);\r\n users.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initTeams() {\r\n var teamInformation = Tools.GetSelectableTeams(CurrentEntity.OID);\r\n\r\n teams = teamInformation.Teams;\r\n visibleTeams = teamInformation.VisibleTeams;\r\n selectableTeams = teamInformation.SelectableTeams;\r\n }\r\n\r\n function initContacts() {\r\n contacts = $.map(Contacts || {}, function (contact) { return contact; });\r\n contacts.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initContactGroups() {\r\n contactGroups = $.map(ContactGroups || {}, function (contactGroup) { return contactGroup; });\r\n contactGroups.sort(Tools.SortByTitle);\r\n }\r\n\r\n function initStatus() {\r\n states = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Status) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initPriorities() {\r\n priorities = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Priority) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initKeywords() {\r\n keywords = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Keyword) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initClassifications() {\r\n classifications = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Classification) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initTypeFilter() {\r\n var $btnTitle = $typeFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (typeFilter || []).map(function (type) {\r\n return type.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === types.length ?\r\n i18next.t('explorer.archive.typeFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TypeFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.typeFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TypeFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initTableColumnSelection(selectedColumnsChanged) {\r\n var $btnTitle = $tableColumnSelection.find('.btn-title');\r\n var width, titles, text;\r\n var columnIds = Tools.GetOfficeSettingValue(Explorer.GetColumnsSettingName());\r\n\r\n if (columnIds && !selectedColumnsChanged) {\r\n columnIds = columnIds.split(',') || [];\r\n\r\n if (columnIds.length > 0) {\r\n tableColumnSelection = [];\r\n\r\n columnIds.forEach(function (oid) {\r\n var column = Tools.getFirst(tableColumns, oid, 'OID');\r\n\r\n if (!column) {\r\n return;\r\n }\r\n\r\n tableColumnSelection.push(column);\r\n });\r\n }\r\n } else if (!(tableColumnSelection || []).length && !selectedColumnsChanged) {\r\n width = $explorerArchive.width();\r\n\r\n tableColumnSelection = [\r\n Tools.getFirst(tableColumns, '0', 'OID'),\r\n Tools.getFirst(tableColumns, '2', 'OID'),\r\n Tools.getFirst(tableColumns, '3', 'OID'),\r\n Tools.getFirst(tableColumns, '5', 'OID')\r\n ];\r\n\r\n if (width > 800) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '8', 'OID'));\r\n }\r\n\r\n if (width > 890) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '9', 'OID'));\r\n }\r\n\r\n if (width > 1050) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '7', 'OID'));\r\n }\r\n\r\n if (width > 1175) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '4', 'OID'));\r\n }\r\n\r\n if (width > 1275) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '6', 'OID'));\r\n }\r\n\r\n if (width > 1375) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '1', 'OID'));\r\n }\r\n\r\n if (width > 1455) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '10', 'OID'));\r\n }\r\n\r\n if (width > 1565) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '11', 'OID'));\r\n }\r\n\r\n if (width > 1720) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '12', 'OID'));\r\n }\r\n\r\n if (width > 1850) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '13', 'OID'));\r\n }\r\n }\r\n\r\n titles = tableColumnSelection.map(function (tableColumn) {\r\n return tableColumn.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === tableColumns.length ?\r\n i18next.t('explorer.archive.tableColumns.all') :\r\n titles.sort().join(', ');\r\n } else {\r\n text = i18next.t('explorer.archive.tableColumns.all');\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initFilters() {\r\n initTypeFilter();\r\n initCreatorFilter();\r\n initUserFilter();\r\n initTeamFilter();\r\n initContactFilter();\r\n initContactGroupFilter();\r\n initKeywordFilter();\r\n initClassificationFilter();\r\n initStatusFilter();\r\n initPriorityFilter();\r\n initFormFilter();\r\n initSchedulingFilter();\r\n initTextFilter();\r\n initPeriodFilter();\r\n initHideNonResponsibleIssuesFilter();\r\n setFilterState();\r\n }\r\n\r\n function initCreatorFilter() {\r\n var $btnTitle = $creatorFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (creatorFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === users.length ?\r\n i18next.t('explorer.archive.creatorFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.CreatorFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.creatorFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.CreatorFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initUserFilter() {\r\n var $btnTitle = $userFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (userFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === users.length ?\r\n i18next.t('explorer.archive.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initTeamFilter() {\r\n var $btnTitle = $teamFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (teamFilter || []).map(function (team) {\r\n return team.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === teams.length ?\r\n i18next.t('explorer.archive.teamFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TeamFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.teamFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TeamFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initContactFilter() {\r\n var $btnTitle, titles, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-archive-contact-filter-lbl').addClass('hide');\r\n $contactFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactFilter.find('.btn-title');\r\n\r\n titles = (contactFilter || []).map(function (contact) {\r\n return contact.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contacts.length ?\r\n i18next.t('explorer.archive.contactFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.contactFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n\r\n $('#explorer-archive-contact-filter-lbl').removeClass('hide');\r\n $contactFilter.removeClass('hide');\r\n }\r\n\r\n function initContactGroupFilter() {\r\n var $btnTitle, titles, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-archive-contact-group-filter-lbl').addClass('hide');\r\n $contactGroupFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactGroupFilter.find('.btn-title');\r\n\r\n titles = (contactGroupFilter || []).map(function (contactGroup) {\r\n return contactGroup.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contactGroups.length ?\r\n i18next.t('explorer.archive.contactGroupFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.contactGroupFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n\r\n $('#explorer-archive-contact-group-filter-lbl').removeClass('hide');\r\n $contactGroupFilter.removeClass('hide');\r\n }\r\n\r\n function initKeywordFilter() {\r\n var $btnTitle = $keywordFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (keywordFilter || []).map(function (keyword) {\r\n return keyword.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === keywords.length ?\r\n i18next.t('explorer.archive.keywordFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.KeywordFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.keywordFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.KeywordFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initClassificationFilter() {\r\n var $btnTitle = $classificationFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (classificationFilter || []).map(function (classification) {\r\n return classification.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === classifications.length ?\r\n i18next.t('explorer.archive.classificationFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ClassificationFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.classificationFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ClassificationFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initStatusFilter() {\r\n var $btnTitle = $statusFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (statusFilter || []).map(function (status) {\r\n return status.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === states.length ?\r\n i18next.t('explorer.archive.statusFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.StatusFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.statusFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.StatusFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initPriorityFilter() {\r\n var $btnTitle = $priorityFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (priorityFilter || []).map(function (priority) {\r\n return priority.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === priorities.length ?\r\n i18next.t('explorer.archive.priorityFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.PriorityFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.priorityFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.PriorityFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initFormFilter() {\r\n var $btnTitle = $formFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (formFilter || []).map(function (form) {\r\n return form.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.FormFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.formFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.FormFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initSchedulingFilter() {\r\n var $btnTitle = $schedulingFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (schedulingFilter || []).map(function (schedulingl) {\r\n return schedulingl.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.SchedulingFilter = true;\r\n } else {\r\n text = i18next.t('explorer.archive.schedulingFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.SchedulingFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initTextFilter() {\r\n $search.val(searchValue);\r\n activeFilters.SearchValue = !!searchValue;\r\n\r\n }\r\n\r\n function initPeriodFilter() {\r\n var text;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n $periodFilter.addClass('filter-selected');\r\n activeFilters.PeriodFilter = true;\r\n\r\n text =\r\n (periodFilter.Start != null ? i18next.t('datePicker.from') + ' ' + periodFilter.Start.toLocaleString() : '') +\r\n ' ' +\r\n (periodFilter.End != null ? i18next.t('datePicker.to') + ' ' + periodFilter.End.toLocaleString() : '');\r\n } else {\r\n text = i18next.t('explorer.issues.formFilter.noSelection');\r\n\r\n $periodFilter.removeClass('filter-selected');\r\n activeFilters.PeriodFilter = false;\r\n }\r\n\r\n $periodFilter.html(text);\r\n }\r\n\r\n function initHideNonResponsibleIssuesFilter() {\r\n var hasNoRight = Tools.contains(User.AllRights, 'SCMI', 'ID') ?\r\n false :\r\n !Tools.contains(User.AllRights, 'SAI', 'ID');\r\n $hideNonResponsibleIssues.toggleClass('hide', hasNoRight);\r\n $cbHideNonResponsibleIssues.toggleClass('hide', hasNoRight).prop('checked', hideNonResponsibleIssues);\r\n $hideNonResponsibleIssues.html(i18next.t('explorer.issues.hideNonResponsibleIssues'));\r\n\r\n activeFilters.HideNonResponsibleIssues = hideNonResponsibleIssues;\r\n }\r\n\r\n function unsetInteracts() {\r\n if (interacts.draggable) {\r\n interacts.draggable.unset();\r\n interacts.draggable = null;\r\n }\r\n\r\n if (interacts.droppable) {\r\n interacts.droppable.unset();\r\n interacts.droppable = null;\r\n }\r\n }\r\n\r\n function initIssueDragAndDrop() {\r\n content.views.removeDragAndDropToTreeHandlers();\r\n\r\n var $info;\r\n var selectedIssues;\r\n var movableIssues;\r\n var unmovableIssues;\r\n\r\n interacts.draggable = interact('#explorer-archive .issue.move-issue-enabled')\r\n .draggable({\r\n inertia: true,\r\n autoScroll: false,\r\n listeners: {\r\n move: function (evt) {\r\n var $target = $(evt.currentTarget);\r\n\r\n selectedIssues = getSelectedIssues();\r\n\r\n if (!selectedIssues.length) {\r\n var oid = $target.data('oid');\r\n var issue = issues[oid];\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n selectedIssues = [issue];\r\n }\r\n\r\n $info = $('#issue-moving-info');\r\n\r\n if (!$info.length) {\r\n var html = createMoveIssuesInformation(selectedIssues);\r\n $('body').append(html);\r\n $info = $('#issue-moving-info');\r\n }\r\n\r\n var x = evt.clientX + 5;\r\n var y = evt.clientY + 5;\r\n\r\n $info\r\n .css({ top: y, left: x })\r\n .data({ 'x': x, 'y': y });\r\n },\r\n end: function () {\r\n selectedIssues = null;\r\n movableIssues = null;\r\n unmovableIssues = null;\r\n\r\n if (!($info instanceof $)) {\r\n return;\r\n }\r\n\r\n $info.remove();\r\n }\r\n }\r\n });\r\n\r\n interacts.droppable = interact('#center-tree li')\r\n .dropzone({\r\n accept: '.issue.move-issue-enabled',\r\n checker: Tools.InteractJs.IsBeingDraggedOverTreeNode,\r\n ondragenter: function (evt) {\r\n var $dropZoneElement = $(evt.currentTarget);\r\n var locationOID = $dropZoneElement.data('id');\r\n\r\n if (!locationOID) {\r\n return;\r\n }\r\n\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[locationOID];\r\n\r\n if (!location) {\r\n return;\r\n }\r\n\r\n if (!selectedIssues.length) {\r\n return;\r\n }\r\n\r\n movableIssues = [];\r\n unmovableIssues = [];\r\n\r\n selectedIssues.forEach(function (issue) {\r\n var currentOU = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n\r\n if (!(currentOU && currentOU.Enabled)) {\r\n unmovableIssues.push(issue);\r\n return;\r\n }\r\n\r\n var editIssueRight = Tools.issue.getRightToEditIssueType(issue.Type);\r\n var userHasRightToDropHere = (location.Enabled || false) &&\r\n ressources.users.hasIssueEditRight(editIssueRight, issue, location.OID) &&\r\n issue.AssignedElementOID !== locationOID;\r\n\r\n if (userHasRightToDropHere &&\r\n (+issue.AssignedRecorditemID > 0 || !!issue.AssignedRecorditemOID) &&\r\n !ressources.users.hasRightAtLocation('CMC-ISSUE', issue.AssignedElementOID)) {\r\n userHasRightToDropHere = false;\r\n }\r\n\r\n if (userHasRightToDropHere) {\r\n movableIssues.push(issue);\r\n } else {\r\n unmovableIssues.push(issue);\r\n }\r\n });\r\n\r\n $info\r\n .toggleClass('drop-ok', unmovableIssues.length === 0)\r\n .toggleClass('drop-partially-ok', movableIssues.length !== selectedIssues.length && movableIssues.length > 0)\r\n .toggleClass('drop-not-ok', movableIssues.length === 0);\r\n\r\n if (movableIssues.length > 0) {\r\n $dropZoneElement\r\n .addClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n }\r\n },\r\n ondragleave: function (evt) {\r\n var $dropZoneElement = $(evt.currentTarget);\r\n\r\n movableIssues = null;\r\n unmovableIssues = null;\r\n\r\n $info.removeClass('drop-ok drop-not-ok');\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n },\r\n ondrop: function (evt) {\r\n if ((selectedIssues || []).length === 0) {\r\n return;\r\n }\r\n\r\n var $dropZoneElement = $(evt.currentTarget);\r\n\r\n if (selectedIssues.length === 1) {\r\n onMoveSingleIssue(selectedIssues[0], $dropZoneElement);\r\n } else if (movableIssues.length > 0) {\r\n onMoveMultipleIssues(movableIssues, unmovableIssues, $dropZoneElement);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function createMoveIssuesInformation(issues) {\r\n if (!(issues instanceof Array) || issues.length === 0) {\r\n return null;\r\n }\r\n\r\n var html = [\r\n '
',\r\n '
',\r\n '
',\r\n '',\r\n '
',\r\n '
'\r\n ];\r\n\r\n if (issues.length === 1) {\r\n var issue = issues[0];\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n var locationInfo = [];\r\n\r\n if (location) {\r\n locationInfo = [\r\n '

',\r\n '',\r\n location.Title,\r\n '

'\r\n ];\r\n }\r\n\r\n html.push(\r\n Tools.GetIssueAbbreviation(issue), issue.ID, '.', issue.Revision, '
',\r\n '', Tools.escapeHtml(issue.Title) || i18next.t('misc.untitled'), '
',\r\n locationInfo.join('')\r\n );\r\n } else {\r\n html.push(\r\n '',\r\n issues.length, ' ', i18next.t('misc.issue', { count: issues.length }),\r\n ''\r\n );\r\n }\r\n\r\n html.push(\r\n '
',\r\n '
',\r\n '
'\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function onMoveSingleIssue(issue, $dropZoneElement) {\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n var previousOrganizationUnit = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n\r\n if (!(previousOrganizationUnit && previousOrganizationUnit.Enabled)) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.archive.messages.cannotMoveIssueFromInactiveOU.title'),\r\n text: i18next.t('explorer.archive.messages.cannotMoveIssueFromInactiveOU.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n var newOrganizationUnitOID = $dropZoneElement.data('id');\r\n\r\n if (issue.AssignedElementOID === newOrganizationUnitOID) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.archive.messages.cannotMoveIssueToSameLocation.title'),\r\n text: i18next.t('explorer.archive.messages.cannotMoveIssueToSameLocation.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!newOrganizationUnitOID) {\r\n return;\r\n }\r\n\r\n var newOrganizationUnit = DataManager.OrganizationUnitLoader.Data.DataMap[newOrganizationUnitOID];\r\n\r\n if (!newOrganizationUnit) {\r\n return;\r\n }\r\n\r\n if (!newOrganizationUnit.Enabled) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.archive.messages.cannotMoveIssueToDisabledLocation.title'),\r\n text: i18next.t('explorer.archive.messages.cannotMoveIssueToDisabledLocation.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!$dropZoneElement.hasClass('jquery-tree-node-drop')) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.archive.messages.cannotMoveIssue.title'),\r\n text: i18next.t('explorer.archive.messages.cannotMoveIssue.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n\r\n issue.AssignedElementOID = newOrganizationUnitOID;\r\n\r\n issue = Tools.issue.prepareIssueForWebService(issue);\r\n\r\n Tools.Spinner.show();\r\n\r\n return Tools.http.put('issues/' + issue.OID, issue)\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n }\r\n\r\n function onMoveMultipleIssues(movableIssues, unmovableIssues, $dropZoneElement) {\r\n var newLocationOID = $dropZoneElement.data('id');\r\n var newLocation = DataManager.OrganizationUnitLoader.Data.DataMap[newLocationOID];\r\n\r\n if (!newLocation) {\r\n return;\r\n }\r\n\r\n function moveIssues() {\r\n var preparedIssues = [];\r\n\r\n Tools.Spinner.show();\r\n\r\n movableIssues.forEach(function (issue) {\r\n issue.AssignedElementOID = newLocationOID;\r\n\r\n preparedIssues.push(Tools.issue.prepareIssueForWebService(issue));\r\n });\r\n\r\n return Tools.http.post('issues', preparedIssues);\r\n }\r\n\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n\r\n if (unmovableIssues.length) {\r\n var messageBoxOptions = {\r\n title: i18next.t('explorer.archive.messages.moveMultipleIssuesInfo.title'),\r\n text: i18next.t('explorer.archive.messages.moveMultipleIssuesInfo.text', { locationTitle: newLocation.Title }),\r\n abort: true\r\n };\r\n\r\n if (movableIssues.length > 0) {\r\n messageBoxOptions.onYes = function () {\r\n moveIssues()\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n };\r\n }\r\n\r\n unmovableIssues.sort(function (a, b) {\r\n return a.ID - b.ID;\r\n });\r\n\r\n messageBoxOptions.assignments = unmovableIssues.map(function (issue) {\r\n return [\r\n Tools.GetIssueAbbreviation(issue),\r\n issue.ID, ' - ', issue.Title || i18next.t('misc.noTitle')\r\n ].join('');\r\n });\r\n\r\n Tools.Message.Show(messageBoxOptions);\r\n } else {\r\n moveIssues()\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n }\r\n }\r\n\r\n function initTable() {\r\n var $sortingCol;\r\n\r\n $tableBody.empty();\r\n\r\n $sortingCol = $tableHeader.find('[data-sorting]');\r\n\r\n sorting = $sortingCol.data('columntitle');\r\n sortingorder = $sortingCol.data('sorting');\r\n\r\n $selectAll.prop('checked', !!selectAll);\r\n\r\n if (tableColumnSelection.length && tableColumnSelection.length !== tableColumns.length) {\r\n tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(tableColumnSelection, tableColumn.OID, 'OID');\r\n var $col = $explorerArchive.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID));\r\n\r\n if (isChecked) {\r\n $col.removeClass('hide');\r\n } else {\r\n $col.addClass('hide');\r\n }\r\n });\r\n } else {\r\n $explorerArchive.find('col, th, td').removeClass('hide');\r\n }\r\n }\r\n\r\n function unbindEvents() {\r\n $toggleControls.off('click.toggleControls');\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n $tableHeader.off('click.toggleSorting');\r\n $selectAll.off('change.toggleSelection');\r\n $btnPrintIssues.off('click.printIssues');\r\n $btnEditIssues.off('click.editIssues');\r\n $resetFilters.off('click.resetFilters');\r\n $typeFilter.off('click.showTypeFilter');\r\n $tableColumnSelection.off('click.showTableColumns');\r\n $userFilter.off('click.showUserFilter');\r\n $creatorFilter.off('click.showUserFilter');\r\n $teamFilter.off('click.showTeamFilter');\r\n $contactFilter.off('click.showContactFilter');\r\n $contactGroupFilter.off('click.showContactGroupFilter');\r\n $keywordFilter.off('click.showKeywordFilter');\r\n $classificationFilter.off('click.showClassificationFilter');\r\n $statusFilter.off('click.showStatusFilter');\r\n $priorityFilter.off('click.showPriorityFilter');\r\n $formFilter.off('click.showFormFilter');\r\n $schedulingFilter.off('click.showSchedulingFilter');\r\n $periodFilter.off('click.togglePeriodFilter');\r\n $cbHideNonResponsibleIssues.off('change.hideNonResponsibleIssues');\r\n $search.off('input.search');\r\n\r\n $tableBody.off('change.toggleSelection');\r\n $tableBody.off('click.changeOrganisationUnit');\r\n $tableBody.off('click.showIssue');\r\n $tableBody.off('click.showPrintPreview');\r\n $tableBody.off('click.showImage');\r\n $tableBody.off('click.toggleSubscription');\r\n $tableBody.off('click.showComments');\r\n $tableBody.off('click.stopPropagation');\r\n $tableBody.off('mouseenter.showSubscriptionsAndLikes');\r\n $tableBody.off('mouseleave.hideSubscriptionsAndLikes');\r\n }\r\n\r\n function bindEvents() {\r\n $toggleControls.on('click.toggleControls', onToggleControls);\r\n $tableHeader.on('click.toggleSorting', '.sortable', onToggleSorting);\r\n $selectAll.on('change.toggleSelection', onToggleSelection);\r\n $btnPrintIssues.on('click.printIssues', onBtnPrintIssuesClick);\r\n $btnEditIssues.on('click.editIssues', onBtnEditIssuesClick);\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $typeFilter.on('click.showTypeFilter', onShowTypeFilter);\r\n $tableColumnSelection.on('click.showTableColumns', onShowTableColumnSelection);\r\n $creatorFilter.on('click.showUserFilter', onShowCreatorFilter);\r\n $userFilter.on('click.showUserFilter', onShowUserFilter);\r\n $teamFilter.on('click.showTeamFilter', onShowTeamFilter);\r\n $contactFilter.on('click.showContactFilter', onShowContactFilter);\r\n $contactGroupFilter.on('click.showContactGroupFilter', onShowContactGroupFilter);\r\n $keywordFilter.on('click.showKeywordFilter', onShowKeywordFilter);\r\n $classificationFilter.on('click.showClassificationFilter', onShowClassificationFilter);\r\n $statusFilter.on('click.showStatusFilter', onShowStatusFilter);\r\n $priorityFilter.on('click.showPriorityFilter', onShowPriorityFilter);\r\n $formFilter.on('click.showFormFilter', onShowFormFilter);\r\n $schedulingFilter.on('click.showSchedulingFilter', onShowSchedulingFilter);\r\n $periodFilter.on('click.togglePeriodFilter', onTogglePeriodFilter);\r\n $search.on('input.search', onSearch);\r\n $cbHideNonResponsibleIssues.on('change.hideNonResponsibleIssues', onToggleHideNonResponsibleIssues);\r\n\r\n $tableBody.on('click.toggleSelection', 'input:checkbox', onToggleSelection);\r\n $tableBody.on('click.changeOrganisationUnit', '.issue a', onSelectOrganisationUnit);\r\n $tableBody.on('click.showIssue', '.issue', onShowIssue);\r\n $tableBody.on('click.showPrintPreview', '.print', onShowPrintPreview);\r\n $tableBody.on('click.showImage', '.image', onShowImage);\r\n $tableBody.on('click.toggleSubscription', '.abos', onToggleSubscription);\r\n $tableBody.on('click.showComments', '.commentlink', onShowComments);\r\n $tableBody.on('mouseenter.showSubscriptionsAndLikes', '.abos .details', onShowSubscriptionsAndLikes);\r\n $tableBody.on('mouseleave.hideSubscriptionsAndLikes', '.abos .details', onHideSubscriptionsAndLikes);\r\n }\r\n\r\n function onToggleControls() {\r\n var $tableFilterSelection = $explorerArchive.find('.table-filter-selection');\r\n\r\n if ($tableFilterSelection == null) {\r\n return;\r\n }\r\n\r\n var $controls = $tableFilterSelection.find('.toggle-table-controls');\r\n var $firstTableRow = $tableFilterSelection.find('.table-filter-column-first-row');\r\n var $filterColumns = $tableFilterSelection.find('.table-filter-column:not(.last-row)');\r\n var $lastRow = $tableFilterSelection.find('.table-filter-column:last-child');\r\n var $lastRowFilters = $lastRow.find('.table-filter:not(:first-child)');\r\n\r\n if ($tableFilterSelection.hasClass('reduced-filters')) {\r\n toggleControls = true;\r\n $tableFilterSelection.removeClass('reduced-filters');\r\n $tableFilterSelection.addClass('grid-row');\r\n $firstTableRow.removeClass('reduced-row');\r\n $filterColumns.removeClass('hidden');\r\n $lastRowFilters.removeClass('hidden');\r\n $firstTableRow.addClass('flexColumn');\r\n $filterColumns.find('.table-button').css('margin-bottom', 7);\r\n $firstTableRow.find('.table-button').css('margin-bottom', 7);\r\n $lastRow.addClass('flexColumn');\r\n $lastRow.removeClass('right');\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.hideFilters'));\r\n $controls.addClass('collapsed');\r\n } else {\r\n toggleControls = false;\r\n $tableFilterSelection.addClass('reduced-filters');\r\n $firstTableRow.addClass('reduced-row');\r\n $filterColumns.addClass('hidden');\r\n $lastRowFilters.addClass('hidden');\r\n $firstTableRow.removeClass('flexColumn');\r\n $lastRow.removeClass('flexColumn');\r\n $lastRow.addClass('right');\r\n $firstTableRow.find('.table-button').css('margin-bottom', 0);\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n $controls.removeClass('collapsed');\r\n }\r\n\r\n resize();\r\n }\r\n\r\n function onBtnPrintIssuesClick() {\r\n var selectedIssues = getSelectedIssues();\r\n\r\n if (selectedIssues.length) {\r\n PrintPreview.Show({Issues: selectedIssues, Type: 'Issue'});\r\n }\r\n }\r\n\r\n function onBtnEditIssuesClick() {\r\n var selectedIssues = getSelectedIssues();\r\n\r\n if (selectedIssues.length) {\r\n IssuesEditor.Show(selectedIssues, function(modifications) {\r\n if (!modifications) {\r\n return;\r\n }\r\n\r\n reset();\r\n });\r\n }\r\n }\r\n\r\n function getSelectedIssues() {\r\n var $selectedIssues = $tableBody.find('input:checked');\r\n\r\n return $.map($selectedIssues, function (cb) {\r\n var $tr = $(cb).closest('.issue');\r\n var issueOID = $tr.data('oid');\r\n\r\n return issues[issueOID];\r\n });\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n\r\n activeFilters = {\r\n TypeFilter: false,\r\n CreatorFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PriorityFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n PeriodFilter: false,\r\n SearchValue: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n\r\n typeFilter = null;\r\n creatorFilter = null;\r\n userFilter = null;\r\n teamFilter = null;\r\n contactFilter = null;\r\n contactGroupFilter = null;\r\n keywordFilter = null;\r\n classificationFilter = null;\r\n statusFilter = null;\r\n priorityFilter = null;\r\n formFilter = null;\r\n schedulingFilter = null;\r\n searchValue = null;\r\n periodFilter = {};\r\n hideNonResponsibleIssues = false;\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTypeFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.typeFilter.title'),\r\n onApply: onSelectTypeFilter,\r\n checkedEntities: typeFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(types, options);\r\n }\r\n\r\n function onSelectTypeFilter(selectedTypes) {\r\n typeFilter = (selectedTypes || []).map(function (oid) {\r\n return Tools.getFirst(types, oid, 'OID');\r\n });\r\n\r\n initTypeFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTableColumnSelection() {\r\n var options = {\r\n title: i18next.t('explorer.archive.tableColumns.selectColumns'),\r\n onApply: onSelectTableColumns,\r\n checkedEntities: tableColumnSelection,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(tableColumns, options);\r\n }\r\n\r\n function onSelectTableColumns(selectedTableColumns) {\r\n tableColumnSelection = (selectedTableColumns || []).map(function (tableColumn) {\r\n return Tools.getFirst(tableColumns, tableColumn, 'OID');\r\n });\r\n\r\n if (tableColumnSelection.length && tableColumnSelection.length !== tableColumns.length) {\r\n tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(tableColumnSelection, tableColumn.OID, 'OID');\r\n var $col = $explorerArchive.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID));\r\n\r\n if (isChecked) {\r\n $col.removeClass('hide');\r\n } else {\r\n $col.addClass('hide');\r\n }\r\n });\r\n } else {\r\n $explorerArchive.find('col, th, td').removeClass('hide');\r\n }\r\n\r\n var allColumnIDs = tableColumns.map(function(entity) {\r\n return entity.OID\r\n }) || [];\r\n\r\n var selectedColumns = (selectedTableColumns || []).join(',') || allColumnIDs.join(',');\r\n\r\n Tools.UpdateOfficeUserSettings(Explorer.GetColumnsSettingName(), selectedColumns)\r\n .then(function () {\r\n initTableColumnSelection(true);\r\n resize();\r\n });\r\n }\r\n\r\n function onShowCreatorFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.creatorFilter.title'),\r\n onApply: onSelectCreatorFilter,\r\n checkedEntities: creatorFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n }\r\n\r\n function onSelectCreatorFilter(selectedUsers) {\r\n creatorFilter = (selectedUsers || []).map(function (oid) {\r\n return Tools.getFirst(users, oid, 'OID');\r\n });\r\n\r\n initCreatorFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowUserFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.userFilter.title'),\r\n onApply: onSelectUserFilter,\r\n checkedEntities: userFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n }\r\n\r\n function onSelectUserFilter(selectedUsers) {\r\n userFilter = (selectedUsers || []).map(function (oid) {\r\n return Tools.getFirst(users, oid, 'OID');\r\n });\r\n\r\n initUserFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTeamFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.teamFilter.title'),\r\n onApply: onSelectTeamFilter,\r\n checkedEntities: teamFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: {\r\n fullrow: true,\r\n disabled: userCanAssignAllTeamsAndUsers ? null : function (node) {\r\n if (!selectableTeams || !node || !node.entity) {\r\n return false;\r\n }\r\n\r\n var team = node.entity;\r\n\r\n return selectableTeams.indexOf(team.OID) === -1;\r\n }\r\n },\r\n filter: userCanAssignAllTeamsAndUsers ? null : function (team) {\r\n if (!visibleTeams || !team) {\r\n return false;\r\n }\r\n\r\n return visibleTeams.indexOf(team.OID) > -1;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(RootTeam, options);\r\n }\r\n\r\n function onSelectTeamFilter(selectedTeams) {\r\n teamFilter = (selectedTeams || []).map(function (oid) {\r\n return Tools.getFirst(teams, oid, 'OID');\r\n });\r\n\r\n initTeamFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowContactFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.contactFilter.title'),\r\n onApply: onSelectContactFilter,\r\n checkedEntities: contactFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contacts, options);\r\n }\r\n\r\n function onSelectContactFilter(selectedContacts) {\r\n contactFilter = (selectedContacts || []).map(function (oid) {\r\n return Tools.getFirst(contacts, oid, 'OID');\r\n });\r\n\r\n initContactFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowContactGroupFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.contactGroupFilter.title'),\r\n onApply: onSelectContactGroupFilter,\r\n checkedEntities: contactGroupFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contactGroups, options);\r\n }\r\n\r\n function onSelectContactGroupFilter(selectedContacts) {\r\n contactGroupFilter = (selectedContacts || []).map(function (oid) {\r\n return Tools.getFirst(contactGroups, oid, 'OID');\r\n });\r\n\r\n initContactGroupFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowKeywordFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.keywordFilter.title'),\r\n onApply: onSelectKeywordFilter,\r\n checkedEntities: keywordFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Keywords, options);\r\n }\r\n\r\n function onSelectKeywordFilter(selectedKeywords) {\r\n keywordFilter = (selectedKeywords || []).map(function (oid) {\r\n return Tools.getFirst(keywords, oid, 'OID');\r\n });\r\n\r\n initKeywordFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowClassificationFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.classificationFilter.title'),\r\n onApply: onSelectClassificationFilter,\r\n checkedEntities: classificationFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Classifications, options);\r\n }\r\n\r\n function onSelectClassificationFilter(selectedClassifications) {\r\n classificationFilter = (selectedClassifications || []).map(function (oid) {\r\n return Tools.getFirst(classifications, oid, 'OID');\r\n });\r\n\r\n initClassificationFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowStatusFilter() {\r\n Tools.WindowWrappers.ShowStatusSelection({\r\n selectedStatusses: statusFilter,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.archive.statusFilter.title'),\r\n showCheckbox: true,\r\n onApplySelection: onSelectStatusFilter,\r\n statusState: Enums.StatusState.Closed\r\n });\r\n }\r\n\r\n function onSelectStatusFilter(selectedStatus) {\r\n statusFilter = (selectedStatus || []).map(function (oid) {\r\n return Tools.getFirst(states, oid, 'OID');\r\n });\r\n\r\n initStatusFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowPriorityFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.priorityFilter.title'),\r\n onApply: onSelectPriorityFilter,\r\n checkedEntities: priorityFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Priorities, options);\r\n }\r\n\r\n function onSelectPriorityFilter(selectedPriorities) {\r\n priorityFilter = (selectedPriorities || []).map(function (oid) {\r\n return Tools.getFirst(priorities, oid, 'OID');\r\n });\r\n\r\n initPriorityFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowFormFilter() {\r\n Tools.WindowWrappers.ShowFormSelectionForLocation({\r\n selectedForms: formFilter,\r\n windowCaption: i18next.t('explorer.archive.formFilter.title'),\r\n selectMultiple: true,\r\n buttons: {\r\n showAllForms: i18next.t('explorer.archive.formFilter.showAllForms'),\r\n showAssignedFormsOnly: i18next.t('explorer.archive.formFilter.showAssignedFormsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: onSelectFormFilter\r\n });\r\n }\r\n\r\n function onSelectFormFilter(selectedForms) {\r\n formFilter = (selectedForms || []).map(function (oid) {\r\n return DataManager.FormLoader.Data.DataMap[oid];\r\n });\r\n\r\n initFormFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowSchedulingFilter() {\r\n Tools.WindowWrappers.ShowSchedulingSelectionForLocation({\r\n selectedSchedulings: schedulingFilter,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.archive.schedulingFilter.title'),\r\n buttons: {\r\n showAllSchedulings: i18next.t('explorer.archive.schedulingFilter.showAllSchedulings'),\r\n showAssignedSchedulingsOnly: i18next.t('explorer.archive.schedulingFilter.showAssignedSchedulingsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: onSelectSchedulingFilter\r\n });\r\n }\r\n\r\n function onSelectSchedulingFilter(selectedSchedulings) {\r\n schedulingFilter = (selectedSchedulings || []).map(function (oid) {\r\n return DataManager.SchedulingLoader.Data.DataMap[oid];\r\n });\r\n\r\n initSchedulingFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onTogglePeriodFilter(event) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('active')) {\r\n DatePicker.Close();\r\n return;\r\n }\r\n\r\n $this.addClass('active');\r\n\r\n DatePicker.Show(this, {\r\n mode: 2,\r\n withTime: true,\r\n noDateAllowed: true,\r\n offsetY: 28,\r\n closeElement: 'body',\r\n deactivatable: true,\r\n titleElement: $this,\r\n dateTypes: [ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ],\r\n selectedType: Tools.contains([ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ], periodFilter.CurrentType) ?\r\n periodFilter.CurrentType :\r\n Enums.DatePickerTypes.Modification,\r\n beforeShow: function () {\r\n DatePicker.SetDate(periodFilter.Start, periodFilter.End);\r\n },\r\n end: function (filter) {\r\n periodFilter = filter;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.Start) {\r\n periodFilter.Start = new Date(periodFilter.Start.setSeconds(0));\r\n }\r\n\r\n if (periodFilter.End) {\r\n periodFilter.End = new Date(periodFilter.End.setSeconds(59));\r\n }\r\n\r\n $periodFilter.addClass('filter-selected');\r\n activeFilters.PeriodFilter = true;\r\n } else {\r\n $periodFilter.removeClass('filter-selected');\r\n activeFilters.PeriodFilter = false;\r\n }\r\n\r\n DatePicker.Close();\r\n resize();\r\n reset();\r\n },\r\n onDatePickerClose: function () {\r\n $this.removeClass('active');\r\n }\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleHideNonResponsibleIssues() {\r\n hideNonResponsibleIssues = !hideNonResponsibleIssues;\r\n activeFilters.HideNonResponsibleIssues = hideNonResponsibleIssues;\r\n reset();\r\n }\r\n\r\n function onSearch() {\r\n clearTimeout(searchTimeout);\r\n\r\n searchTimeout = setTimeout(function () {\r\n searchValue = $search.val().trim();\r\n activeFilters.SearchValue = !!searchValue;\r\n\r\n resize();\r\n reset();\r\n }, 500);\r\n }\r\n\r\n function onScroll() {\r\n var wrapperHeight = $tableWrapper.innerHeight();\r\n var tableHeight = $tableBody.outerHeight(false);\r\n var scrollPosition = $tableWrapper.scrollTop();\r\n\r\n if (tableHeight - wrapperHeight - scrollPosition <= 300) {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n updateTable();\r\n }\r\n }\r\n\r\n function onToggleSorting() {\r\n var $this = $(this);\r\n\r\n sorting = $this.attr('data-columntitle');\r\n sortingorder = $this.attr('data-sorting');\r\n\r\n sortingorder = sortingorder === 'desc' ? 'asc' : 'desc';\r\n $this.siblings().removeAttr('data-sorting');\r\n $this.attr('data-sorting', sortingorder);\r\n\r\n reset();\r\n }\r\n\r\n function onToggleSelection (event) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('select-all')) {\r\n selectAll = $selectAll.prop('checked');\r\n\r\n $tableBody.find('input:checkbox').prop('checked', !!selectAll);\r\n } else {\r\n selectAll = false;\r\n $selectAll.prop('checked', false);\r\n }\r\n\r\n if ($tableBody.find('input:checked').length) {\r\n $btnPrintIssues.removeAttr('disabled');\r\n $btnEditIssues.removeAttr('disabled');\r\n } else {\r\n $btnPrintIssues.attr('disabled', 'disabled');\r\n $btnEditIssues.attr('disabled', 'disabled');\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n\r\n function onSelectOrganisationUnit(event) {\r\n event.stopPropagation();\r\n }\r\n\r\n function onShowIssue(event) {\r\n var $this = $(this);\r\n var issueID = $this.data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged);\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onCommentsChanged(changeInfo) {\r\n if (!changeInfo) {\r\n return;\r\n }\r\n\r\n var issue = issues[changeInfo.IssueOID];\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n issue.Comments = Tools.issue.prepareCommentsForWebApp(changeInfo.Comments);\r\n\r\n var $issue = $tableWrapper.find('tr[data-oid=\"' + issue.OID + '\"]');\r\n\r\n if (!$issue.length) {\r\n return;\r\n }\r\n\r\n $issue.find('.commentdetails').remove();\r\n\r\n var commentsMarkup = renderComments(issue);\r\n $issue.find('.location').after(commentsMarkup);\r\n }\r\n\r\n function onShowImage(event) {\r\n var $this = $(this);\r\n var filename = $this.data('filename');\r\n var issueOID = $this.parent().data('oid');\r\n var issue;\r\n\r\n if ((issue = issues[issueOID])) {\r\n ImageViewer.Init({\r\n filelist: issue.Files,\r\n indexFilename: filename,\r\n sTitle: issue.Title || '',\r\n sUserOID: issue.Editor ? issue.Editor.OID : null,\r\n sTimestamp: issue.ModificationTimestamp\r\n });\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowPrintPreview(event) {\r\n var issueOID = $(this).closest('.issue').data('oid');\r\n var issue = issues[issueOID];\r\n\r\n PrintPreview.Show({\r\n Issue: issue,\r\n Type: 'Issue'\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleSubscription(event) {\r\n var $this = $(this);\r\n var $tr = $this.parents('tr');\r\n var issueOID = $tr.data('oid');\r\n var subscribe = !$this.data('isabo');\r\n var issue;\r\n\r\n $('#gfx-tooltip').addClass('hide');\r\n\r\n if ((issue = issues[issueOID])) {\r\n Tools.Spinner.show();\r\n\r\n var method = 'issues/{0}/{1}'.format(issue.ID, subscribe ? 'subscribenotifications' : 'unsubscribenotifications');\r\n\r\n Tools.http.post(method, null, function () {\r\n issue.Recipients = subscribe ?\r\n Tools.addUnique(issue.Recipients, User.OID) :\r\n Tools.remove(issue.Recipients, User.OID);\r\n\r\n $this.replaceWith(renderSubscription(issue.Recipients));\r\n\r\n Tools.Spinner.hide();\r\n }, Tools.Spinner.hide);\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowSubscriptionsAndLikes(event) {\r\n var $tooltip = $('#gfx-tooltip');\r\n var $this = $(this);\r\n var offset = $this.offset();\r\n var abos, subscribers;\r\n\r\n abos = ($this.data('abos') || '').split('|');\r\n\r\n subscribers = $.map(abos, function (oid) {\r\n var subscriber = Users[oid] || Contacts[oid];\r\n\r\n if (subscriber) {\r\n return subscriber.Fullname;\r\n }\r\n });\r\n\r\n subscribers.sort(Tools.SortStringArray);\r\n\r\n if (subscribers.length > 10) {\r\n subscribers = subscribers.slice(0, 10);\r\n subscribers.push('+ {0} {1}'.format(\r\n abos.length - 10,\r\n i18next.t('misc.more')));\r\n }\r\n\r\n $tooltip.html(subscribers.join('
'));\r\n $tooltip.removeClass('hide');\r\n $tooltip.attr('arrow', 1);\r\n $tooltip.css({\r\n left: offset.left - $tooltip.outerWidth(false) / 2 + 8,\r\n top: offset.top - $tooltip.outerHeight(false) - 8\r\n });\r\n }\r\n\r\n function onHideSubscriptionsAndLikes() {\r\n $('#gfx-tooltip').addClass('hide');\r\n }\r\n\r\n function onShowComments(event) {\r\n var $this = $(this);\r\n var issueID = $this.parents('tr').data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged, { Panel: 'comments' });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function reset() {\r\n issuesLoaded = 0;\r\n issues = {};\r\n selectAll = false;\r\n\r\n $btnPrintIssues.attr('disabled', 'disabled');\r\n $btnEditIssues.attr('disabled', 'disabled');\r\n $selectAll.prop('checked', false);\r\n\r\n $tableBody.empty();\r\n\r\n setFilterState();\r\n updateTable()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function resize() {\r\n if ($body.width() >= 1200) {\r\n $explorerArchive.find('.table-filter-column').css('min-width', '250px');\r\n } else {\r\n $explorerArchive.find('.table-filter-column.last-row').css('min-width', '350px');\r\n }\r\n\r\n $tableWrapper.css('top', $explorerArchive.children('.table-container').outerHeight() + 10);\r\n\r\n $tableHeader.width($tableBody.width());\r\n }\r\n\r\n function createParams(menuItem) {\r\n menuItem = menuItem || Explorer.GetCurrentTab();\r\n\r\n if (!menuItem) {\r\n return null;\r\n }\r\n\r\n var menuItemConfig = menuItem.Configuration || {};\r\n\r\n var params = {\r\n Skip: issuesLoaded || 0,\r\n Take: 50,\r\n IncludeCounter: false,\r\n LoadIssues: true,\r\n Sorting: sorting,\r\n SortingOrder: sortingorder,\r\n LocationOID: CurrentEntity.OID,\r\n IsArchived: true,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n HideNonResponsibleIssues: hideNonResponsibleIssues,\r\n Types: $.extend(true, [], menuItemConfig.IssueTypes),\r\n Users: $.extend(true, [], menuItemConfig.Users),\r\n Teams: $.extend(true, [], menuItemConfig.Teams),\r\n Contacts: $.extend(true, [], menuItemConfig.Contacts),\r\n ContactGroups: $.extend(true, [], menuItemConfig.ContactGroups),\r\n Keywords: $.extend(true, [], menuItemConfig.Keywords),\r\n Classifications: $.extend(true, [], menuItemConfig.Classifications),\r\n States: $.extend(true, [], menuItemConfig.Statuses),\r\n Priorities: $.extend(true, [], menuItemConfig.Priorities),\r\n Forms: $.extend(true, [], menuItemConfig.Forms),\r\n Schedulings: $.extend(true, [], menuItemConfig.Schedulings),\r\n ProcessingStatus: $.extend(true, [], menuItemConfig.ProcessingStatuses)\r\n };\r\n\r\n return [params, createUserFilterParams()];\r\n }\r\n\r\n function createUserFilterParams() {\r\n var params = {\r\n Creators: (creatorFilter || []).map(function (user) { return user.OID; }),\r\n Users: (userFilter || []).map(function (user) { return user.OID; }),\r\n Teams: (teamFilter || []).map(function (team) { return team.OID; }),\r\n Contacts: (contactFilter || []).map(function (contact) { return contact.OID; }),\r\n ContactGroups: (contactGroupFilter || []).map(function (contactGroup) { return contactGroup.OID; }),\r\n Keywords: (keywordFilter || []).map(function (keyword) { return keyword.OID; }),\r\n Classifications: (classificationFilter || []).map(function (classification) { return classification.OID; }),\r\n States: (statusFilter || []).map(function (status) { return status.OID; }),\r\n Priorities: (priorityFilter || []).map(function (priority) { return priority.OID; }),\r\n Forms: (formFilter || []).map(function (form) { return form.OID; }),\r\n Schedulings: (schedulingFilter || []).map(function (scheduling) { return scheduling.OID; }),\r\n IncludeTemplates: true,\r\n IncludeDerivations: true\r\n };\r\n\r\n params.Types = Array.prototype.concat.apply([], (typeFilter || []).map(function (typeFilter) {\r\n return typeFilter.OID\r\n .split('-')\r\n .map(function (type) {\r\n return parseInt(type, 10);\r\n });\r\n }));\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.CurrentType === Enums.DatePickerTypes.Creation) {\r\n params.CreationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Modification) {\r\n params.ModificationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Deadline) {\r\n params.DeadlinePeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n }\r\n }\r\n\r\n if (searchValue) {\r\n params.SearchString = searchValue;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n function createSortFunction() {\r\n switch (sorting) {\r\n case 'title':\r\n return function (a, b) {\r\n var titleA = a.Title || '';\r\n var titleB = b.Title || '';\r\n\r\n titleA = titleA.toLowerCase();\r\n titleB = titleB.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n if (titleA > titleB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'creationtimestamp':\r\n return function (a, b) {\r\n return (a.CreationTimestamp.getTime() - b.CreationTimestamp.getTime()) *\r\n (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'modificationtimestamp':\r\n return function (a, b) {\r\n return (a.ModificationTimestamp.getTime() - b.ModificationTimestamp.getTime()) *\r\n (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'deadlinetimestamp':\r\n return function (a, b) {\r\n var valA = a.DeadlineTimestamp ? a.DeadlineTimestamp.getTime() : 0;\r\n var valB = b.DeadlineTimestamp ? b.DeadlineTimestamp.getTime() : 0;\r\n\r\n return (valA - valB) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'state':\r\n return function (a, b) {\r\n var titleA = a.State ? a.State.Title : '';\r\n var titleB = b.State ? b.State.Title : '';\r\n\r\n titleA = titleA.toLowerCase();\r\n titleB = titleB.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n if (titleA > titleB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'priority':\r\n return function (a, b) {\r\n var titleA = a.Priority ? a.Priority.Title : '';\r\n var titleB = b.Priority ? b.Priority.Title : '';\r\n\r\n titleA = titleA.toLowerCase();\r\n titleB = titleB.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n if (titleA > titleB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'checkpointCount':\r\n return function (a, b) {\r\n return (a.ParameterCount - b.ParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'collectedCheckpointCount':\r\n return function (a, b) {\r\n return (a.CollectedParameterCount - b.CollectedParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'openCheckpointCount':\r\n return function (a, b) {\r\n return (a.OpenParameterCount - b.OpenParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'requiredCheckpointCount':\r\n return function (a, b) {\r\n return (a.RequiredParameterCount - b.RequiredParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'collectedRequiredCheckpointCount':\r\n return function (a, b) {\r\n return (a.CollectedRequiredParameterCount - b.CollectedRequiredParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'custom-id':\r\n return function (a, b) {\r\n var naturalizedCustomIDA = a.NaturalizedCustomID.toLowerCase();\r\n var naturalizedCustomIDB = b.NaturalizedCustomID.toLowerCase();\r\n\r\n if (naturalizedCustomIDA === naturalizedCustomIDB) {\r\n return 0;\r\n }\r\n\r\n if (naturalizedCustomIDA > naturalizedCustomIDB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'estimatedEffort':\r\n return function (a, b) {\r\n return (a.EstimatedEffort - b.EstimatedEffort) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n default:\r\n return function (a, b) {\r\n return (a.ID - b.ID) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n }\r\n }\r\n\r\n function prepareData(data) {\r\n data = data || {};\r\n data.Issues = $.map(data.Issues || [], Tools.issue.prepareIssueForWebApp);\r\n data.Issues.sort(createSortFunction());\r\n\r\n issuesLoaded = (issuesLoaded || 0) + data.Issues.length;\r\n issues = issues || {};\r\n\r\n $.each(data.Issues, function (_idx, issue) {\r\n issues[issue.OID] = issue;\r\n });\r\n\r\n return data;\r\n }\r\n\r\n function getIssueIcon(issue) {\r\n if (!issue) {\r\n return null;\r\n }\r\n\r\n if (issue.IsTemplate) {\r\n return './img/file-lines-regular.svg';;\r\n }\r\n\r\n switch (issue.Type) {\r\n case Enums.issueType.Note:\r\n return './img/notes.svg';\r\n case Enums.issueType.Disturbance:\r\n return './img/disturbance_reported.svg';\r\n case Enums.issueType.DisturbancesCompleted:\r\n return './img/archive-icon.png';\r\n case Enums.issueType.Inspection:\r\n return './img/jobsite.svg';\r\n case Enums.issueType.Investigation:\r\n case Enums.issueType.Form:\r\n case Enums.issueType.Survey:\r\n return './img/form.svg';\r\n case Enums.issueType.Resubmission:\r\n return './img/checklist.svg';\r\n default:\r\n return './img/task.svg';\r\n }\r\n }\r\n\r\n function appendIssues(data) {\r\n var html = [];\r\n\r\n if (!issuesLoaded) {\r\n $tableBody.html('{0}'\r\n .format(i18next.t('explorer.archive.noDataAvailable')));\r\n } else {\r\n html = $.map(data.Issues || [], renderIssue);\r\n\r\n $tableBody.append(html.join(''));\r\n }\r\n\r\n $tableHeader.width($tableBody.width());\r\n\r\n return data;\r\n }\r\n\r\n function renderIssue(issue) {\r\n var html = [];\r\n\r\n var editIssueRight = Tools.issue.getRightToEditIssueType(issue.Type);\r\n var editIssues = ressources.users.hasIssueEditRight(editIssueRight, issue);\r\n\r\n if (editIssues &&\r\n (+issue.AssignedRecorditemID > 0 || !!issue.AssignedRecorditemOID) &&\r\n !ressources.users.hasRightAtLocation('CMC-ISSUE', issue.AssignedElementOID)) {\r\n editIssues = false;\r\n }\r\n\r\n var editIssueLocation = editIssues && ressources.users.hasIssueEditRight('TMFT-LOCATION', issue);\r\n\r\n html.push(''\r\n .format(editIssueLocation ? ' move-issue-enabled' : '', issue.OID, issue.ID, issue.AssignedElementOID));\r\n\r\n html.push(renderSelectionColumn(issue.OID));\r\n html.push(renderGenericIssueInformation(issue));\r\n html.push(renderComments(issue));\r\n\r\n if (issue.Image) {\r\n html.push(renderImage(issue.Image));\r\n }\r\n\r\n html.push(renderCoding(issue.FormCoding));\r\n html.push(renderCreation(issue.CreationTimestamp, issue.Creator));\r\n html.push(renderModification(issue.ModificationTimestamp, issue.Editor));\r\n html.push(renderDeadline(issue.DeadlineTimestamp));\r\n html.push(renderState(issue.State));\r\n html.push(renderPriority(issue.Priority));\r\n\r\n var assignedUsers = (issue.ResponsibilityAssignments || {}).Users || {};\r\n var assignedTeams = (issue.ResponsibilityAssignments || {}).Teams || {};\r\n\r\n html.push(renderTeamsAndUsers(assignedUsers, assignedTeams));\r\n html.push(renderParameterCount(issue));\r\n html.push(renderCollectedParameterCount(issue));\r\n html.push(renderOpenParameterCount(issue));\r\n html.push(renderRequiredParameterCount(issue));\r\n html.push(renderCollectedRequiredParameterCount(issue));\r\n html.push(renderEstimatedEffort(issue));\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderGenericIssueInformation(issue) {\r\n var html = [];\r\n var abbr = Tools.GetIssueAbbreviation(issue);\r\n var icon = getIssueIcon(issue);\r\n var mailTokens = ((issue.AdditionalData || {}).MailToken || '').split('|');\r\n var show, mailAddresses;\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '0', 'OID');\r\n\r\n html.push('{1}{2}.{3}'\r\n .format(\r\n show ? '' : ' class=\"hide\"',\r\n abbr,\r\n issue.ID,\r\n issue.Revision));\r\n\r\n html.push(''.format(icon));\r\n html.push('');\r\n html.push('');\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '1', 'OID');\r\n\r\n html.push('{1}'\r\n .format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CustomID));\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '2', 'OID');\r\n\r\n html.push('{2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.Image ? '' : ' colspan=\"2\"',\r\n issue.Title || i18next.t('misc.untitled')));\r\n\r\n if (mailTokens.length > 1) {\r\n mailAddresses = mailTokens.slice(1).join(', ');\r\n\r\n html.push('

{0}

'.format(mailAddresses));\r\n }\r\n\r\n if (issue.InvestigationStatusInformation) {\r\n var errorText = issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ?\r\n Tools.issue.getInvestigationErrorText(issue.InvestigationStatusInformation.ErrorCode) :\r\n null;\r\n\r\n html.push('

{2}{3}

'\r\n .format(\r\n issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ? ' with-error' : '',\r\n i18next.t('misc.investigationStatus.helpText'),\r\n Tools.issue.getInvestigationStatusText(issue.InvestigationStatusInformation.Status),\r\n !!errorText ? (' (' + errorText + ')') : ''\r\n )\r\n );\r\n }\r\n\r\n if (issue.LocationPath) {\r\n html.push('

{0}

'.format(issue.LocationPath));\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderComments(issue) {\r\n var html = [];\r\n\r\n html.push('

');\r\n html.push(renderSubscription(issue.Recipients));\r\n html.push(' - {0}

'.format(i18next.t('misc.comment_plural')));\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderSubscription(recipients) {\r\n if (Tools.contains(recipients, User.OID)) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.unsubscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n } else if ((recipients || []).length) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.subscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n }\r\n\r\n return '{0}'.format(i18next.t('misc.subscribe'));\r\n }\r\n\r\n function renderImage(image) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '2', 'OID');\r\n var html = [''.format(image.Filename, show ? '' : ' hide')];\r\n\r\n if (image.Marks) {\r\n var viewboxRegex = /]*width=\"(\\d+)\"[^>]*height=\"(\\d+)\"[^>]*>(.*)<\\/svg>/ig;\r\n var pathRegex = /\\/]+/ig;\r\n var paths = [];\r\n var match = viewboxRegex.exec(image.Marks);\r\n\r\n if (!match || match.length !== 4) {\r\n return;\r\n }\r\n\r\n var width = parseInt(match[1], 10);\r\n var height = parseInt(match[2], 10);\r\n var svgContent = match[3];\r\n\r\n do {\r\n if ((match = pathRegex.exec(image.Marks))) {\r\n paths.push(match[0].trim() + '>');\r\n }\r\n } while (match);\r\n\r\n if (paths.length) {\r\n html.push(''\r\n .format(width, height));\r\n html.push(''\r\n .format(Config.BaseUri, image.Filename));\r\n html.push(svgContent);\r\n html.push('');\r\n }\r\n } else {\r\n html.push(''.format(Config.BaseUri, image.Filename));\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderSelectionColumn(issueOID) {\r\n return [\r\n '',\r\n ''.format(issueOID, selectAll ? ' checked' : ''),\r\n ''].join('');\r\n }\r\n\r\n function renderCoding(formCoding) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '15', 'OID');\r\n var coding = formCoding ?\r\n Tools.element.formatElementCoding(Tools.escapeHtml(formCoding.Prefix), formCoding.CodingIdent) :\r\n '-/-';\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"', coding\r\n );\r\n }\r\n\r\n function renderCreation(timestamp, creator) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '3', 'OID');\r\n\r\n return '{1}
{2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n Tools.dateTime.getDifferenceString(timestamp),\r\n creator ? creator.Title : i18next.t('misc.unknown'));\r\n }\r\n\r\n function renderModification(timestamp, editor) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '4', 'OID');\r\n\r\n return '{1}
{2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n Tools.dateTime.getDifferenceString(timestamp),\r\n editor ? editor.Title : i18next.t('misc.unknown'));\r\n }\r\n\r\n function renderDeadline(timestamp) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '5', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n timestamp ? Tools.dateTime.getDifferenceString(timestamp) : 'n.a.');\r\n }\r\n\r\n function renderState(state) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '6', 'OID');\r\n\r\n if (state) {\r\n return '
 
{2}'\r\n .format(show ? '' : ' class=\"hide\"', state.Color, state.Title);\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderPriority(priority) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '7', 'OID');\r\n\r\n if (priority) {\r\n return '
 
{2}'\r\n .format(show ? '' : ' class=\"hide\"', priority.Color, priority.Title);\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderTeamsAndUsers(users, teams) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '8', 'OID');\r\n var html = [];\r\n var renderContent = false;\r\n var groupedTeamsAndUsers = {\r\n responsible: [],\r\n accountable: [],\r\n consulted: [],\r\n informed: []\r\n };\r\n\r\n for (var userIdentifier in users) {\r\n var userResponsibilityEntity = users[userIdentifier];\r\n var user = Users[userIdentifier];\r\n\r\n if (!user) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (userResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n }\r\n\r\n for (var teamIdentifier in teams) {\r\n var teamResponsibilityEntity = teams[teamIdentifier];\r\n var team = Teams[teamIdentifier];\r\n\r\n if (!team) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (teamResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n }\r\n\r\n groupedTeamsAndUsers.responsible.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.accountable.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.consulted.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.informed.sort(Tools.SortStringArray);\r\n\r\n if (renderContent) {\r\n html.push(''.format(show ? '' : ' class=\"hide\"'));\r\n\r\n if (groupedTeamsAndUsers.responsible.length) {\r\n html.push('' + i18next.t('explorer.archive.responsibilities.r') + '');\r\n html.push(groupedTeamsAndUsers.responsible.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.responsible.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.responsible.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.accountable.length) {\r\n html.push('' + i18next.t('explorer.archive.responsibilities.a') + '');\r\n html.push(groupedTeamsAndUsers.accountable.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.accountable.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.accountable.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.consulted.length) {\r\n html.push('' + i18next.t('explorer.archive.responsibilities.c') + '');\r\n html.push(groupedTeamsAndUsers.consulted.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.consulted.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.consulted.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.informed.length) {\r\n html.push('' + i18next.t('explorer.archive.responsibilities.i') + '');\r\n html.push(groupedTeamsAndUsers.informed.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.informed.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.informed.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '9', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.ParameterCount);\r\n }\r\n\r\n function renderCollectedParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '10', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CollectedParameterCount);\r\n }\r\n\r\n function renderOpenParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '11', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.OpenParameterCount);\r\n }\r\n\r\n function renderRequiredParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '12', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.RequiredParameterCount);\r\n }\r\n\r\n function renderCollectedRequiredParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '13', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CollectedRequiredParameterCount);\r\n }\r\n\r\n function renderEstimatedEffort(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '14', 'OID');\r\n var unit, unitOID, unitTitle;\r\n\r\n if (Client && Client.Settings && Client.Settings.EstimatedEffortSettings && Client.Settings.EstimatedEffortSettings.UnitOID && issue.EstimatedEffort) {\r\n unitOID = Client.Settings.EstimatedEffortSettings.UnitOID;\r\n unit = Properties[unitOID];\r\n unitTitle = unit.Title || '';\r\n }\r\n\r\n return '{1} {2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.EstimatedEffort === 0 || issue.EstimatedEffort ? issue.EstimatedEffort : '-/-',\r\n unitTitle || '');\r\n }\r\n\r\n function updateTable() {\r\n if (updateRequest) {\r\n updateRequest.abort();\r\n updateRequest = null;\r\n }\r\n\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n Tools.Spinner.show();\r\n\r\n var params = createParams();\r\n\r\n if (!params) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n return (updateRequest = load(params))\r\n .then(prepareData, function (xhr) {\r\n if (xhr) {\r\n Tools.Spinner.hide();\r\n }\r\n\r\n return Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(appendIssues)\r\n .then(function (data) {\r\n updateRequest = null;\r\n\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n $tableBody.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n\r\n initIssueDragAndDrop();\r\n\r\n if (data.Issues.length >= params[0].Take) {\r\n $tableWrapper.on('scroll.infiniteScroll', onScroll);\r\n }\r\n\r\n Tools.Spinner.hide();\r\n\r\n return data;\r\n });\r\n }\r\n\r\n function load(params) {\r\n return Tools.http.post('reports/issues', params);\r\n }\r\n\r\n function disposeTab() {\r\n $tableBody.empty();\r\n }\r\n\r\n Archive.Show = show;\r\n Archive.Resize = resize;\r\n Archive.ResetFilters = resetFilters;\r\n Archive.RemoveDragAndDropHandlers = unsetInteracts;\r\n Archive.Dispose = disposeTab;\r\n\r\n global.Archive = Archive;\r\n\r\n return global.Archive;\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function (global) {\r\n var Dashboard = {};\r\n var periodFilter = {};\r\n var userFilter = [];\r\n var teamFilter = [];\r\n var users;\r\n var teams;\r\n var _result;\r\n\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _statusChart;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _processingStatusChart;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _userChart;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _teamsChart;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _userProcessingStatusIssueCount;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _teamsProcessingStatusIssueCount;\r\n var hideNonResponsibleIssues;\r\n var userCanAssignAllTeamsAndUsers;\r\n var visibleTeams, selectableTeams;\r\n\r\n var $nav = $('#nav');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $resetFilters = $('#explorer-dashboard-reset-filters');\r\n var $userFilter = $('#explorer-dashboard-user-filter');\r\n var $teamFilter = $('#explorer-dashboard-team-filter');\r\n var $periodFilter = $('#explorer-dashboard-period-filter');\r\n var $cbHideNonResponsibleIssues = $('#cb-explorer-dashboard-hide-non-responsible-issues');\r\n var activeFilters = {\r\n UserFilter: false,\r\n TeamFilter: false,\r\n HideNonResponsibleIssues: false,\r\n PeriodFilter: false\r\n };\r\n\r\n function show(match) {\r\n Tools.Spinner.show();\r\n\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init();\r\n\r\n load()\r\n .always(Tools.Spinner.hide)\r\n .then(function (result) { _result = result; }, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(render);\r\n }\r\n\r\n function init() {\r\n userCanAssignAllTeamsAndUsers = ressources.users.hasRightAtLocation(\r\n Enums.Rights.IssueRights.AllowAssigningAllUsersToIssues,\r\n CurrentEntity.OID\r\n );\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n disposeCharts();\r\n\r\n $explorerDashboard.empty();\r\n\r\n initTab();\r\n\r\n unbindEvents();\r\n bindEvents();\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.removeClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function unbindEvents() {\r\n $explorerDashboard.off('click');\r\n $resetFilters.off('click.resetFilters');\r\n $userFilter.off('click.showUserFilter');\r\n $teamFilter.off('click.showTeamFilter');\r\n $periodFilter.off('click.togglePeriodFilter');\r\n $cbHideNonResponsibleIssues.off('change.hideNonResponsibleIssues');\r\n }\r\n\r\n function bindEvents() {\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $userFilter.on('click.toggleUserFilter', onShowUserFilter);\r\n $teamFilter.on('click.showTeamFilter', onShowTeamFilter);\r\n $periodFilter.on('click.togglePeriodFilter', onTogglePeriodFilter);\r\n $cbHideNonResponsibleIssues.on('change.hideNonResponsibleIssues', onToggleHideNonResponsibleIssues);\r\n\r\n $explorerDashboard.on('click', '.explorer-dashboard-issue-disturbances', onShowIssueDisturbances);\r\n $explorerDashboard.on('click', '.explorer-dashboard-recorditem-disturbances', onShowRecorditemDisturbances);\r\n $explorerDashboard.on('click', '.explorer-dashboard-issues', onShowIssues);\r\n $explorerDashboard.on('click', '.explorer-dashboard-panel-clickable[data-chart]', onChartButtonClick);\r\n $explorerDashboard.on('click', '.content-panel-row[data-chart] .close', onCloseChartClick);\r\n }\r\n\r\n function load() {\r\n var params = {\r\n LocationOID: CurrentEntity.OID,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n WithIssueDisturbanceCount: true,\r\n WithRecorditemDisturbanceCount: true,\r\n Users: userFilter.map(function (user) { return user.OID; }),\r\n Teams: teamFilter.map(function (team) { return team.OID; }),\r\n CreationPeriod: periodFilter.CreationPeriod,\r\n ModificationPeriod: periodFilter.ModificationPeriod,\r\n DeadlinePeriod: periodFilter.DeadlinePeriod,\r\n HideNonResponsibleIssues: hideNonResponsibleIssues\r\n };\r\n\r\n return Tools.http.post('reports/dashboard', params);\r\n }\r\n\r\n function render() {\r\n var html = '';\r\n\r\n if (!_result) {\r\n return;\r\n }\r\n\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '';\r\n html += '';\r\n html += '';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    '.format(i18next.t('explorer.toolbar.resetFilters'));\r\n html += '
    ';\r\n html += '
    ';\r\n html += '';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    {0}
    '.format(i18next.t('explorer.dashboard.issueDisturbances'));\r\n html += '
    {1}
    '.format(\r\n _result.IssueDisturbanceCount ? 'red' : 'green',\r\n _result.IssueDisturbanceCount);\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    {0}
    '.format(i18next.t('explorer.dashboard.recorditemDisturbances'));\r\n html += '
    {1}
    '.format(\r\n _result.RecorditemDisturbanceCount ? 'red' : 'green',\r\n _result.RecorditemDisturbanceCount);\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    {0}
    '.format(i18next.t('explorer.dashboard.issues'));\r\n html += '
    {0}
    '.format(_result.IssueCount);\r\n html += '
    ';\r\n html += '
    ';\r\n\r\n if ((_result.StatusGroupings || []).length &&\r\n (_result.ProcessingStatusGroupings || []).length) {\r\n if ($explorerDashboard.innerWidth() >= 1200) {\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n } else {\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n }\r\n }\r\n\r\n if (_result.IssueCount > 0) {\r\n html += initBarCharts();\r\n }\r\n\r\n $explorerDashboard.html(html);\r\n\r\n $('#explorer-dashboard-user-filter-lbl').text(i18next.t('explorer.issues.userFilter.label'));\r\n $('#explorer-dashboard-team-filter-lbl').text(i18next.t('explorer.issues.teamFilter.label'));\r\n $('#explorer-dashboard-period-filter-lbl').text(i18next.t('explorer.issues.periodFilter.label'));\r\n $('#explorer-dashboard-hide-non-responsible-issues-lbl').text(i18next.t('explorer.issues.hideNonResponsibleIssues'));\r\n\r\n $resetFilters = $('#explorer-dashboard-reset-filters');\r\n $userFilter = $('#explorer-dashboard-user-filter');\r\n $teamFilter = $('#explorer-dashboard-team-filter');\r\n $periodFilter = $('#explorer-dashboard-period-filter');\r\n $cbHideNonResponsibleIssues = $('#cb-explorer-dashboard-hide-non-responsible-issues');\r\n\r\n initUsers();\r\n initTeams();\r\n initFilters();\r\n resizeTableHeaderControls();\r\n\r\n if (_result.IssueCount > 0) {\r\n if (Tools.GetOfficeSettingValue(getChartSettingName('maturityTeams')) === true) {\r\n renderTeamsProcessingStatusBarChart(_result.ProcessingStatusIssueCountByTeams);\r\n }\r\n\r\n if (Tools.GetOfficeSettingValue(getChartSettingName('maturityUsers')) === true) {\r\n renderUserProcessingStatusBarChart(_result.ProcessingStatusIssueCountByUsers);\r\n }\r\n\r\n if (Tools.GetOfficeSettingValue(getChartSettingName('statusTeams')) === true) {\r\n renderTeamsChart(_result.IssueCountByTeams);\r\n }\r\n\r\n if (Tools.GetOfficeSettingValue(getChartSettingName('statusUsers')) === true) {\r\n renderUsersChart(_result.IssueCountByUsers);\r\n }\r\n }\r\n\r\n if ((_result.StatusGroupings || []).length &&\r\n (_result.ProcessingStatusGroupings || []).length) {\r\n renderStatusChart(_result.StatusGroupings);\r\n renderProcessingStatusChart(_result.ProcessingStatusGroupings);\r\n }\r\n\r\n unbindEvents();\r\n bindEvents();\r\n }\r\n\r\n function initBarCharts() {\r\n var showStatusUsers = Tools.GetOfficeSettingValue(getChartSettingName('statusUsers')) === true;\r\n var showStatusTeams = Tools.GetOfficeSettingValue(getChartSettingName('statusTeams')) === true;\r\n var showMaturityUsers = Tools.GetOfficeSettingValue(getChartSettingName('maturityUsers')) === true;\r\n var showMaturityTeams = Tools.GetOfficeSettingValue(getChartSettingName('maturityTeams')) === true;\r\n\r\n return [\r\n '
    ',\r\n initChartButton(3, 'maturityUsers', showMaturityUsers),\r\n initChartButton(3, 'maturityTeams', showMaturityTeams),\r\n initChartButton(3, 'statusUsers', showStatusUsers),\r\n initChartButton(3, 'statusTeams', showStatusTeams),\r\n '
    ',\r\n initChartContainer('explorer-dashboard-processing-status-user-bar-chart', 'maturityUsers', !showMaturityUsers),\r\n initChartContainer('explorer-dashboard-processing-status-teams-bar-chart', 'maturityTeams', !showMaturityTeams),\r\n initChartContainer('explorer-dashboard-user-chart', 'statusUsers', !showStatusUsers),\r\n initChartContainer('explorer-dashboard-teams-chart', 'statusTeams', !showStatusTeams)\r\n ].join('');\r\n }\r\n\r\n function initChartButton(colWidth, chartName, isHidden) {\r\n var upperCaseChartName = chartName[0].toUpperCase() + chartName.slice(1);\r\n\r\n return [\r\n '
    '\r\n .format(colWidth, isHidden ? ' hide' : '', chartName),\r\n '
    {0}
    '.format(i18next.t('explorer.dashboard.show' + upperCaseChartName)),\r\n '
    '\r\n ].join('');\r\n }\r\n\r\n function initChartContainer(id, chartName, isHidden) {\r\n return [\r\n '
    '.format(isHidden ? ' hide' : '', chartName),\r\n '
    ×
    ',\r\n '
    '.format(id),\r\n '
    '\r\n ].join('');\r\n }\r\n\r\n function initUsers() {\r\n users = Tools.GetSelectableUsers(CurrentEntity.OID);\r\n users.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initTeams() {\r\n var teamInformation = Tools.GetSelectableTeams(CurrentEntity.OID);\r\n\r\n teams = teamInformation.Teams;\r\n visibleTeams = teamInformation.VisibleTeams;\r\n selectableTeams = teamInformation.SelectableTeams;\r\n }\r\n\r\n function initFilters() {\r\n initUserFilter();\r\n initTeamFilter();\r\n initPeriodFilter();\r\n initHideNonResponsibleIssuesFilter();\r\n setFilterState();\r\n }\r\n\r\n function setFilterState() {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n }\r\n\r\n function initUserFilter() {\r\n var $btnTitle = $userFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (userFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === users.length ?\r\n i18next.t('explorer.issues.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initPeriodFilter() {\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n $periodFilter.addClass('filter-selected');\r\n $periodFilter.text((periodFilter.Start != null ? i18next.t('datePicker.from') + ' ' + periodFilter.Start.toLocaleString() : '') + ' ' + (periodFilter.End != null ? i18next.t('datePicker.to') + ' ' + periodFilter.End.toLocaleString() : ''));\r\n activeFilters.PeriodFilter = true;\r\n } else {\r\n $periodFilter.removeClass('filter-selected');\r\n $periodFilter.text(i18next.t('explorer.issues.periodFilter.button'));\r\n activeFilters.PeriodFilter = false;\r\n }\r\n }\r\n\r\n function initHideNonResponsibleIssuesFilter() {\r\n $cbHideNonResponsibleIssues.prop('checked', hideNonResponsibleIssues);\r\n activeFilters.HideNonResponsibleIssues = hideNonResponsibleIssues;\r\n }\r\n\r\n function initTeamFilter() {\r\n var $btnTitle = $teamFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (teamFilter || []).map(function (team) {\r\n return team.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === teams.length ?\r\n i18next.t('explorer.issues.teamFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TeamFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.teamFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TeamFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n activeFilters = {\r\n UserFilter: false,\r\n TeamFilter: false,\r\n HideNonResponsibleIssues: false,\r\n PeriodFilter: false\r\n };\r\n\r\n periodFilter = {};\r\n userFilter = [];\r\n teamFilter = [];\r\n hideNonResponsibleIssues = false;\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n show();\r\n }\r\n\r\n function onShowUserFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.userFilter.title'),\r\n onApply: onSelectUserFilter,\r\n checkedEntities: userFilter.map(function (user) { return user.OID; }),\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n }\r\n\r\n function onShowTeamFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.teamFilter.title'),\r\n onApply: onSelectTeamFilter,\r\n checkedEntities: teamFilter.map(function (team) { return team.OID; }),\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: {\r\n fullrow: true,\r\n disabled: userCanAssignAllTeamsAndUsers ? null : function (node) {\r\n if (!selectableTeams || !node || !node.entity) {\r\n return false;\r\n }\r\n\r\n var team = node.entity;\r\n\r\n return selectableTeams.indexOf(team.OID) === -1;\r\n }\r\n },\r\n filter: userCanAssignAllTeamsAndUsers ? null : function (team) {\r\n if (!visibleTeams || !team) {\r\n return false;\r\n }\r\n\r\n return visibleTeams.indexOf(team.OID) > -1;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(RootTeam, options);\r\n }\r\n\r\n function onSelectUserFilter(selectedUsers) {\r\n userFilter = (selectedUsers || []).map(function (oid) {\r\n return Tools.getFirst(users, oid, 'OID');\r\n });\r\n\r\n show();\r\n }\r\n\r\n function onSelectTeamFilter(selectedTeams) {\r\n teamFilter = (selectedTeams || []).map(function (oid) {\r\n return Tools.getFirst(teams, oid, 'OID');\r\n });\r\n\r\n show();\r\n }\r\n\r\n function resizeTableHeaderControls() {\r\n var $tableControl = $explorerDashboard.find('.table-control');\r\n var remainingWidth = $tableControl.width() - $resetFilters.outerWidth(true);\r\n var resizableControls = [];\r\n\r\n $.each($tableControl.children().eq(0).children(), function (_, control) {\r\n var $control = $(control);\r\n var controlWidth;\r\n\r\n if ($control.hasClass('resizable')) {\r\n controlWidth = $control.width() + 1;\r\n remainingWidth -= $control.outerWidth(true) - controlWidth + 2;\r\n\r\n resizableControls.push([ $control, controlWidth ]);\r\n } else {\r\n remainingWidth -= $control.outerWidth(true);\r\n }\r\n });\r\n\r\n resizableControls.sort(function (a, b) { return a[1] - b[1]; });\r\n\r\n Tools.reduce(resizableControls, function (control, acc) {\r\n var $control = control[0];\r\n var controlWidth = control[1];\r\n var remainingWidth = acc[0];\r\n var controlCount = acc[1];\r\n var divider = Math.floor(remainingWidth / controlCount);\r\n\r\n if (controlWidth <= divider) {\r\n remainingWidth -= controlWidth;\r\n } else {\r\n $control.css('max-width', divider);\r\n remainingWidth -= divider;\r\n }\r\n\r\n return [ remainingWidth, controlCount - 1 ];\r\n }, [ remainingWidth, resizableControls.length ]);\r\n }\r\n\r\n function onTogglePeriodFilter(event) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('active')) {\r\n DatePicker.Close();\r\n return;\r\n }\r\n\r\n $this.addClass('active');\r\n\r\n DatePicker.Show(this, {\r\n mode: 2,\r\n withTime: true,\r\n noDateAllowed: true,\r\n offsetY: 28,\r\n closeElement: 'body',\r\n deactivatable: true,\r\n titleElement: $this,\r\n dateTypes: [ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ],\r\n selectedType: Tools.contains([ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ], periodFilter.CurrentType) ?\r\n periodFilter.CurrentType :\r\n Enums.DatePickerTypes.Modification,\r\n beforeShow: function () {\r\n DatePicker.SetDate(periodFilter.Start, periodFilter.End);\r\n },\r\n end: function (filter) {\r\n periodFilter = filter;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.Start) {\r\n periodFilter.Start = new Date(periodFilter.Start.setSeconds(0));\r\n }\r\n\r\n if (periodFilter.End) {\r\n periodFilter.End = new Date(periodFilter.End.setSeconds(59));\r\n }\r\n\r\n $periodFilter.addClass('items-selected');\r\n } else {\r\n $periodFilter.removeClass('items-selected');\r\n }\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.CurrentType === Enums.DatePickerTypes.Creation) {\r\n periodFilter.CreationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Modification) {\r\n periodFilter.ModificationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Deadline) {\r\n periodFilter.DeadlinePeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n }\r\n }\r\n\r\n DatePicker.Close();\r\n show();\r\n },\r\n onDatePickerClose: function () {\r\n $this.removeClass('active');\r\n }\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleHideNonResponsibleIssues() {\r\n hideNonResponsibleIssues = !hideNonResponsibleIssues;\r\n\r\n show();\r\n }\r\n\r\n function renderProcessingStatusChart(processingStatusGroupings) {\r\n var options = {\r\n series: [],\r\n seriesContext: [],\r\n labels: [],\r\n colors: []\r\n };\r\n\r\n processingStatusGroupings.forEach(function (grouping) {\r\n options.series.push(grouping.Count);\r\n\r\n /**\r\n * @type {ApexSeriesContext}\r\n */\r\n var context;\r\n switch (grouping.ProcessingStatus) {\r\n case Enums.IssueProcessingStatus.Warning:\r\n context = {\r\n Identifier: grouping.ProcessingStatus,\r\n Title: i18next.t('explorer.dashboard.todayDue'),\r\n Color: '#ffe300'\r\n };\r\n break;\r\n case Enums.IssueProcessingStatus.Overdue:\r\n context = {\r\n Identifier: grouping.ProcessingStatus,\r\n Title: i18next.t('explorer.dashboard.overdue'),\r\n Color: '#f00'\r\n };\r\n break;\r\n default:\r\n context = {\r\n Identifier: grouping.ProcessingStatus,\r\n Title: i18next.t('explorer.dashboard.notYetDue'),\r\n Color: '#91d700'\r\n };\r\n break;\r\n }\r\n\r\n options.seriesContext.push(context);\r\n options.labels.push(context.Title);\r\n options.colors.push(context.Color);\r\n });\r\n\r\n _processingStatusChart = Tools.charts.createChart(Tools.charts.chartType.Pie, {\r\n element: document.querySelector('#explorer-dashboard-processing-status-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.maturity'),\r\n labels: options.labels,\r\n labelFontColors: options.labelFontColors,\r\n series: options.series,\r\n xAxisCategories: options.seriesContext,\r\n colors: options.colors,\r\n showLegend: true,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n event.stopImmediatePropagation();\r\n\r\n /**\r\n * @type {ApexSeriesContext}\r\n */\r\n var context = chartContext.w.config.xAxis.categories[dataPointContext.dataPointIndex];\r\n\r\n if (!context) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({ filter: { processingStatus: [context.Identifier] } });\r\n }\r\n });\r\n\r\n _processingStatusChart.render();\r\n }\r\n\r\n function renderStatusChart(statusGroupings) {\r\n var options = {\r\n series: [],\r\n seriesContext: [],\r\n labels: [],\r\n labelFontColors: [],\r\n colors: []\r\n };\r\n\r\n statusGroupings.forEach(function (grouping) {\r\n var context;\r\n\r\n if (grouping.StatusOID) {\r\n var status = Properties[grouping.StatusOID];\r\n\r\n context = {\r\n Identifier: grouping.StatusOID,\r\n Color: status ? status.Color : null,\r\n Title: status ? Tools.unescapeHtml(status.Title) : i18next.t('misc.unknown')\r\n };\r\n } else {\r\n context = {\r\n Identifier: Tools.GetEmptyGuid(),\r\n Color: null,\r\n Title: i18next.t('explorer.dashboard.noStatus')\r\n };\r\n }\r\n\r\n options.series.push(grouping.Count);\r\n options.seriesContext.push(context);\r\n options.labels.push(context.Title ? Tools.unescapeHtml(context.Title) : null);\r\n options.labelFontColors.push(context.Color ? new Color(context.Color).getContrastTextColor() : '#333');\r\n options.colors.push(context.Color || '#fff');\r\n });\r\n\r\n _statusChart = Tools.charts.createChart(Tools.charts.chartType.Pie, {\r\n element: document.querySelector('#explorer-dashboard-status-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.status'),\r\n labels: options.labels,\r\n labelFontColors: options.labelFontColors,\r\n series: options.series,\r\n xAxisCategories: options.seriesContext,\r\n colors: options.colors,\r\n showLegend: true,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n if (!event) {\r\n return;\r\n }\r\n\r\n event.stopImmediatePropagation();\r\n\r\n /**\r\n * @type {ApexSeriesContext}\r\n */\r\n var context = chartContext.w.config.xAxis.categories[dataPointContext.dataPointIndex];\r\n\r\n if (!context || context.Identifier === Tools.GetEmptyGuid()) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({ filter: { status: [context.Identifier] } });\r\n }\r\n });\r\n\r\n _statusChart.render();\r\n }\r\n\r\n function onChartDataPointClick(issueFilter) {\r\n if (!issueFilter) {\r\n return;\r\n }\r\n\r\n var options = {\r\n filter: {\r\n Users: userFilter,\r\n Teams: teamFilter,\r\n PeriodFilter: periodFilter\r\n }\r\n };\r\n\r\n var menuItemId = Enums.CustomMenuItemSystemID.IssueReport;\r\n\r\n if (!Explorer.IsMenuItemAvailable(menuItemId)) {\r\n return;\r\n }\r\n\r\n var menuItem = Explorer.GetMenuItemById(menuItemId);\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n Explorer.ShowTab(menuItem.OID, Object.assign(options, issueFilter));\r\n }\r\n\r\n function getChartUserLabel(userOID) {\r\n return Users.hasOwnProperty(userOID) ?\r\n Tools.unescapeHtml(Users[userOID].Title) :\r\n userOID === Tools.GetEmptyGuid() ? i18next.t('explorer.dashboard.noResponsibilities') : null;\r\n }\r\n\r\n function getChartTeamLabel(teamOID) {\r\n return Teams.hasOwnProperty(teamOID) ?\r\n Tools.unescapeHtml(Teams[teamOID].Title) :\r\n teamOID === Tools.GetEmptyGuid() ? i18next.t('explorer.dashboard.noResponsibilities') : null;\r\n }\r\n\r\n function renderUserProcessingStatusBarChart(processingStatusIssueCountByUsers) {\r\n var usersInChart = getUsersForChart();\r\n var series = [];\r\n\r\n for (var processingStatus in processingStatusIssueCountByUsers) {\r\n var processingStatusUsers = processingStatusIssueCountByUsers[processingStatus];\r\n\r\n var serie = {};\r\n serie.id = processingStatus;\r\n\r\n switch (parseInt(processingStatus, 10)) {\r\n case Enums.IssueProcessingStatus.Warning:\r\n serie.name = i18next.t('explorer.dashboard.todayDue');\r\n serie.color = '#ffe300';\r\n break;\r\n case Enums.IssueProcessingStatus.Overdue:\r\n serie.name = i18next.t('explorer.dashboard.overdue');\r\n serie.color = '#f00';\r\n break;\r\n default:\r\n serie.name = i18next.t('explorer.dashboard.notYetDue');\r\n serie.color = '#91d700';\r\n break;\r\n }\r\n\r\n serie.data = [];\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n var userOID = usersInChart[i].OID;\r\n var userTitle = getChartUserLabel(userOID);\r\n\r\n if (userTitle) {\r\n serie.data.push({\r\n x: userTitle,\r\n y: processingStatusUsers[userOID] || 0,\r\n UserOID: userOID,\r\n ProcessingStatus: processingStatus\r\n });\r\n }\r\n }\r\n\r\n series.push(serie);\r\n }\r\n\r\n series.sort(Tools.SortByCategoryName);\r\n\r\n if (!series.length) {\r\n var seriesData = [];\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n var userOID = usersInChart[i].OID;\r\n var userTitle = getChartUserLabel(userOID);\r\n\r\n if (userTitle) {\r\n seriesData.push({\r\n x: userTitle,\r\n y: 0,\r\n UserOID: userOID\r\n });\r\n }\r\n }\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n series.push({\r\n data: seriesData,\r\n name: i18next.t('explorer.dashboard.noStatus')\r\n });\r\n }\r\n }\r\n\r\n var seriesContext = usersInChart.map(function (u) { return Tools.unescapeHtml(u.Title); });\r\n\r\n _userProcessingStatusIssueCount = Tools.charts.createChart(Tools.charts.chartType.StackedBar, {\r\n element: document.getElementById('explorer-dashboard-processing-status-user-bar-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.maturityUsers'),\r\n series: series,\r\n xAxisCategories: seriesContext,\r\n showLegend: processingStatusIssueCountByUsers != null,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n event.stopImmediatePropagation();\r\n\r\n var series = chartContext.w.config.series[dataPointContext.seriesIndex];\r\n\r\n if (!series) {\r\n return;\r\n }\r\n\r\n var context = series.data[dataPointContext.dataPointIndex];\r\n\r\n if (!context || context.UserOID === Tools.GetEmptyGuid() || !context.ProcessingStatus) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({\r\n filter: {\r\n Users: [Users[context.UserOID]],\r\n processingStatus: [parseInt(context.ProcessingStatus, 10)]\r\n }\r\n });\r\n }\r\n });\r\n\r\n _userProcessingStatusIssueCount.render();\r\n }\r\n\r\n function renderTeamsProcessingStatusBarChart(processingStatusIssueCountByTeams) {\r\n var teamsInChart = getTeamsForChart();\r\n var series = [];\r\n\r\n for (var processingStatus in processingStatusIssueCountByTeams) {\r\n var processingStatusTeams = processingStatusIssueCountByTeams[processingStatus];\r\n\r\n var singleSeries = {};\r\n singleSeries.id = processingStatus;\r\n\r\n switch (parseInt(processingStatus, 10)) {\r\n case Enums.IssueProcessingStatus.Warning:\r\n singleSeries.name = i18next.t('explorer.dashboard.todayDue');\r\n singleSeries.color = '#ffe300';\r\n break;\r\n case Enums.IssueProcessingStatus.Overdue:\r\n singleSeries.name = i18next.t('explorer.dashboard.overdue');\r\n singleSeries.color = '#f00';\r\n break;\r\n default:\r\n singleSeries.name = i18next.t('explorer.dashboard.notYetDue');\r\n singleSeries.color = '#91d700';\r\n break;\r\n }\r\n\r\n singleSeries.data = [];\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n var teamOID = teamsInChart[i].OID;\r\n var teamTitle = getChartTeamLabel(teamOID);\r\n\r\n if (teamTitle) {\r\n singleSeries.data.push({\r\n x: teamTitle,\r\n y: processingStatusTeams[teamOID] || 0,\r\n TeamOID: teamOID,\r\n ProcessingStatus: processingStatus\r\n });\r\n }\r\n }\r\n\r\n series.push(singleSeries);\r\n }\r\n\r\n series.sort(Tools.SortByCategoryName);\r\n\r\n if (!series.length) {\r\n var seriesData = [];\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n var teamOID = teamsInChart[i].OID;\r\n var teamTitle = getChartTeamLabel(teamOID);\r\n\r\n if (teamTitle) {\r\n seriesData.push({\r\n x: teamTitle,\r\n y: 0,\r\n TeamOID: teamOID\r\n });\r\n }\r\n }\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n series.push({\r\n data: seriesData,\r\n name: i18next.t('explorer.dashboard.noStatus')\r\n });\r\n }\r\n }\r\n\r\n var seriesContext = teamsInChart.map(function (t) { return Tools.unescapeHtml(t.Title); });\r\n\r\n _teamsProcessingStatusIssueCount = Tools.charts.createChart(Tools.charts.chartType.StackedBar, {\r\n element: document.getElementById('explorer-dashboard-processing-status-teams-bar-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.maturityTeams'),\r\n series: series,\r\n xAxisCategories: seriesContext,\r\n showLegend: processingStatusIssueCountByTeams != null,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n event.stopImmediatePropagation();\r\n\r\n var series = chartContext.w.config.series[dataPointContext.seriesIndex];\r\n\r\n if (!series) {\r\n return;\r\n }\r\n\r\n var context = series.data[dataPointContext.dataPointIndex];\r\n\r\n if (!context || context.TeamOID === Tools.GetEmptyGuid() || !context.ProcessingStatus) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({\r\n filter: {\r\n Teams: [Teams[context.TeamOID]],\r\n processingStatus: [parseInt(context.ProcessingStatus, 10)]\r\n }\r\n });\r\n }\r\n });\r\n\r\n _teamsProcessingStatusIssueCount.render();\r\n }\r\n\r\n function renderUsersChart(userIssueCounters) {\r\n var usersInChart = getUsersForChart();\r\n var series = [];\r\n\r\n for (var stateOID in userIssueCounters) {\r\n var state = Properties[stateOID] || {};\r\n var stateUsers = userIssueCounters[stateOID];\r\n\r\n var serie = {};\r\n serie.name = stateOID === Tools.GetEmptyGuid() ?\r\n i18next.t('explorer.dashboard.noStatus') :\r\n (state.Title || i18next.t('misc.unknown'));\r\n\r\n serie.color = state.Color || '#B2B2B2';\r\n serie.data = [];\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n var userOID = usersInChart[i].OID;\r\n var userTitle = getChartUserLabel(userOID);\r\n\r\n if (userTitle) {\r\n serie.data.push({\r\n x: userTitle,\r\n y: stateUsers[userOID] || 0,\r\n UserOID: userOID,\r\n StatusOID: stateOID\r\n });\r\n }\r\n }\r\n\r\n series.push(serie);\r\n }\r\n\r\n series.sort(Tools.SortByCategoryName);\r\n\r\n if (!series.length) {\r\n var seriesData = [];\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n var userOID = usersInChart[i].OID;\r\n var userTitle = getChartUserLabel(userOID);\r\n\r\n if (userTitle) {\r\n seriesData.push({\r\n x: userTitle,\r\n y: stateUsers[userOID] || 0,\r\n UserOID: userOID\r\n });\r\n }\r\n }\r\n\r\n for (var i = 0, len = usersInChart.length; i < len; i++) {\r\n series.push({\r\n data: seriesData,\r\n name: i18next.t('explorer.dashboard.noStatus')\r\n });\r\n }\r\n }\r\n\r\n var seriesContext = usersInChart.map(function (u) { return Tools.unescapeHtml(u.Title); });\r\n\r\n _userChart = Tools.charts.createChart(Tools.charts.chartType.StackedBar, {\r\n element: document.getElementById('explorer-dashboard-user-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.statusUsers'),\r\n series: series,\r\n xAxisCategories: seriesContext,\r\n showLegend: userIssueCounters != null,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n event.stopImmediatePropagation();\r\n\r\n var series = chartContext.w.config.series[dataPointContext.seriesIndex];\r\n\r\n if (!series) {\r\n return;\r\n }\r\n\r\n var context = series.data[dataPointContext.dataPointIndex];\r\n\r\n if (!context || context.UserOID === Tools.GetEmptyGuid() || !context.StatusOID) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({\r\n filter: {\r\n status: [context.StatusOID],\r\n Users: [Users[context.UserOID]]\r\n }\r\n });\r\n }\r\n });\r\n\r\n _userChart.render();\r\n }\r\n\r\n function renderTeamsChart(teamIssueCounters) {\r\n var teamsInChart = getTeamsForChart();\r\n var series = [];\r\n\r\n for (var stateOID in teamIssueCounters) {\r\n var state = Properties[stateOID] || {};\r\n var stateTeams = teamIssueCounters[stateOID];\r\n\r\n var serie = {};\r\n serie.name = stateOID === Tools.GetEmptyGuid() ?\r\n i18next.t('explorer.dashboard.noStatus') :\r\n (state.Title || i18next.t('misc.unknown'));\r\n\r\n serie.color = state.Color || '#B2B2B2';\r\n serie.data = [];\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n var teamOID = teamsInChart[i].OID;\r\n var teamTitle = getChartTeamLabel(teamOID);\r\n\r\n if (teamTitle) {\r\n serie.data.push({\r\n x: teamTitle,\r\n y: stateTeams[teamOID] || 0,\r\n TeamOID: teamOID,\r\n StatusOID: stateOID\r\n });\r\n }\r\n }\r\n\r\n series.push(serie);\r\n }\r\n\r\n series.sort(Tools.SortByCategoryName);\r\n\r\n if (!series.length) {\r\n var seriesData = [];\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n var teamOID = teamsInChart[i].OID;\r\n var teamTitle = getChartTeamLabel(teamOID);\r\n\r\n if (teamTitle) {\r\n serie.data.push({\r\n x: teamTitle,\r\n y: 0,\r\n TeamOID: teamOID\r\n });\r\n }\r\n }\r\n\r\n for (var i = 0, len = teamsInChart.length; i < len; i++) {\r\n series.push({\r\n data: seriesData,\r\n name: i18next.t('explorer.dashboard.noStatus')\r\n });\r\n }\r\n }\r\n\r\n var seriesContext = teamsInChart.map(function (t) { return Tools.unescapeHtml(t.Title); });\r\n\r\n _teamsChart = Tools.charts.createChart(Tools.charts.chartType.StackedBar, {\r\n element: document.getElementById('explorer-dashboard-teams-chart'),\r\n chartTitle: i18next.t('explorer.dashboard.statusTeams'),\r\n series: series,\r\n xAxisCategories: seriesContext,\r\n showLegend: teamIssueCounters != null,\r\n onDataPointClick: function (event, chartContext, dataPointContext) {\r\n event.stopImmediatePropagation();\r\n\r\n var series = chartContext.w.config.series[dataPointContext.seriesIndex];\r\n\r\n if (!series) {\r\n return;\r\n }\r\n\r\n var context = series.data[dataPointContext.dataPointIndex];\r\n\r\n if (!context || context.TeamOID === Tools.GetEmptyGuid()|| !context.StatusOID) {\r\n return;\r\n }\r\n\r\n onChartDataPointClick({\r\n filter: {\r\n Teams: [Teams[context.TeamOID]],\r\n status: [context.StatusOID]\r\n }\r\n });\r\n }\r\n });\r\n\r\n _teamsChart.render();\r\n }\r\n\r\n function getUsersForChart() {\r\n if (userFilter.length) {\r\n return userFilter\r\n .map(function (user) { return { OID: user.OID, Title: user.Fullname }; })\r\n .sort(Tools.SortByTitle);\r\n }\r\n\r\n var usersForChart = users\r\n .map(function (user) { return { OID: user.OID, Title: user.Fullname }; })\r\n .sort(Tools.SortByTitle);\r\n\r\n usersForChart.push({ OID: Tools.GetEmptyGuid(), Title: i18next.t('explorer.dashboard.noResponsibilities') });\r\n\r\n return usersForChart;\r\n }\r\n\r\n function getTeamsForChart() {\r\n if (teamFilter.length) {\r\n return teamFilter\r\n .map(function (team) { return { OID: team.OID, Title: team.Title }; })\r\n .sort(Tools.SortByTitle);\r\n }\r\n\r\n var teamsForChart = teams\r\n .map(function (team) { return { OID: team.OID, Title: team.Title }; })\r\n .sort(Tools.SortByTitle);\r\n\r\n teamsForChart.push({ OID: Tools.GetEmptyGuid(), Title: i18next.t('explorer.dashboard.noResponsibilities') });\r\n\r\n return teamsForChart;\r\n }\r\n\r\n function resize() {\r\n disposeCharts();\r\n render();\r\n resizeTableHeaderControls();\r\n }\r\n\r\n function onShowIssueDisturbances() {\r\n var menuItemId = Enums.CustomMenuItemSystemID.DisturbancesFromRecordings;\r\n\r\n if (Explorer.IsMenuItemAvailable(menuItemId)) {\r\n var menuItem = Explorer.GetMenuItemById(menuItemId);\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n Explorer.ShowTab(\r\n menuItem.OID,\r\n {\r\n panel: 'IssueDisturbances',\r\n filter: {\r\n Users: userFilter,\r\n Teams: teamFilter,\r\n PeriodFilter: periodFilter\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function onShowRecorditemDisturbances() {\r\n var menuItemId = Enums.CustomMenuItemSystemID.DisturbancesFromRecordings;\r\n\r\n if (Explorer.IsMenuItemAvailable(menuItemId)) {\r\n var menuItem = Explorer.GetMenuItemById(menuItemId);\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n Explorer.ShowTab(\r\n menuItem.OID,\r\n {\r\n panel: 'RecorditemDisturbances'\r\n }\r\n );\r\n }\r\n }\r\n\r\n function onShowIssues() {\r\n var menuItemId = Enums.CustomMenuItemSystemID.IssueReport;\r\n\r\n if (Explorer.IsMenuItemAvailable(menuItemId)) {\r\n var menuItem = Explorer.GetMenuItemById(menuItemId);\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n Explorer.ShowTab(\r\n menuItem.OID,\r\n {\r\n filter: {\r\n Users: userFilter,\r\n Teams: teamFilter,\r\n PeriodFilter: periodFilter\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function onChartButtonClick() {\r\n var $this = $(this);\r\n\r\n $this.addClass('hide');\r\n\r\n var chartName = $this.data('chart');\r\n\r\n switch (chartName) {\r\n case 'statusUsers':\r\n $('#explorer-dashboard-user-chart').parent().removeClass('hide');\r\n renderUsersChart(_result.IssueCountByUsers);\r\n break;\r\n case 'statusTeams':\r\n $('#explorer-dashboard-teams-chart').parent().removeClass('hide');\r\n renderTeamsChart(_result.IssueCountByTeams);\r\n break;\r\n case 'maturityUsers':\r\n $('#explorer-dashboard-processing-status-user-bar-chart').parent().removeClass('hide');\r\n renderUserProcessingStatusBarChart(_result.ProcessingStatusIssueCountByUsers);\r\n break;\r\n case 'maturityTeams':\r\n $('#explorer-dashboard-processing-status-teams-bar-chart').parent().removeClass('hide');\r\n renderTeamsProcessingStatusBarChart(_result.ProcessingStatusIssueCountByTeams);\r\n break;\r\n }\r\n\r\n Tools.UpdateOfficeUserSettings(getChartSettingName(chartName), true);\r\n }\r\n\r\n function onCloseChartClick() {\r\n var $chartContainer = $(this).parent();\r\n var chartName = $chartContainer.data('chart');\r\n\r\n $chartContainer.addClass('hide');\r\n\r\n $explorerDashboard.find('.explorer-dashboard-panel-clickable[data-chart=\"{0}\"]'.format(chartName))\r\n .removeClass('hide');\r\n\r\n switch (chartName) {\r\n case 'statusUsers':\r\n if (_userChart) {\r\n _userChart.destroy();\r\n _userChart = null;\r\n }\r\n break;\r\n case 'statusTeams':\r\n if (_teamsChart) {\r\n _teamsChart.destroy();\r\n _teamsChart = null;\r\n }\r\n break;\r\n case 'maturityUsers':\r\n if (_userProcessingStatusIssueCount) {\r\n _userProcessingStatusIssueCount.destroy();\r\n _userProcessingStatusIssueCount = null;\r\n }\r\n break;\r\n case 'maturityTeams':\r\n if (_teamsProcessingStatusIssueCount) {\r\n _teamsProcessingStatusIssueCount.destroy();\r\n _teamsProcessingStatusIssueCount = null;\r\n }\r\n break;\r\n }\r\n\r\n Tools.UpdateOfficeUserSettings(getChartSettingName(chartName), false);\r\n }\r\n\r\n function getChartSettingName(chartName) {\r\n if (!chartName) {\r\n return null;\r\n }\r\n\r\n return 'Explorer-Dashboard-Show-' + chartName;\r\n }\r\n\r\n function disposeCharts() {\r\n if (_statusChart) {\r\n _statusChart.destroy();\r\n _statusChart = null;\r\n }\r\n\r\n if (_processingStatusChart) {\r\n _processingStatusChart.destroy();\r\n _processingStatusChart = null;\r\n }\r\n\r\n if (_userChart) {\r\n _userChart.destroy();\r\n _userChart = null;\r\n }\r\n\r\n if (_teamsChart) {\r\n _teamsChart.destroy();\r\n _teamsChart = null;\r\n }\r\n\r\n if (_userProcessingStatusIssueCount) {\r\n _userProcessingStatusIssueCount.destroy();\r\n _userProcessingStatusIssueCount = null;\r\n }\r\n\r\n if (_teamsProcessingStatusIssueCount) {\r\n _teamsProcessingStatusIssueCount.destroy();\r\n _teamsProcessingStatusIssueCount = null;\r\n }\r\n }\r\n\r\n function disposeTab() {\r\n disposeCharts();\r\n $explorerDashboard.empty();\r\n }\r\n\r\n Dashboard.Show = show;\r\n Dashboard.Resize = resize;\r\n Dashboard.ResetFilters = resetFilters;\r\n Dashboard.GetChartSettingName = getChartSettingName;\r\n Dashboard.Dispose = disposeTab;\r\n\r\n return (global.Dashboard = Dashboard);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function (global) {\r\n var Disturbances = {};\r\n\r\n var panels, currentPanel;\r\n var issueRecorditemDisturbances, recorditemDisturbances;\r\n var disturbanceRequest, hideNonResponsibleIssues;\r\n var IsFilterVisible;\r\n var userCanAssignAllTeamsAndUsers;\r\n var users, teams;\r\n var visibleTeams, selectableTeams;\r\n\r\n var _cachedElements;\r\n\r\n var types;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $tableView = $explorerDisturbances.find('.table-view');\r\n var $tableWrapper = $explorerDisturbances.find('.tblContentWrapper');\r\n var $tableHeader = $explorerDisturbances.find('.tbl_header');\r\n var $tableBody = $tableWrapper.find('.table');\r\n var $action = $('#explorer-disturbances-action');\r\n var $typeFilter = $('#explorer-disturbances-type-filter');\r\n var $formFilter = $('#explorer-disturbances-form-filter');\r\n var $schedulingFilter = $('#explorer-disturbances-scheduling-filter');\r\n var $priorityFilter = $('#explorer-disturbances-priority-filter');\r\n var $resetFilters = $('#explorer-disturbances-reset-filters');\r\n var $creatorFilter = $('#explorer-disturbances-creator-filter');\r\n var $userFilter = $('#explorer-disturbances-user-filter');\r\n var $teamFilter = $('#explorer-disturbances-team-filter');\r\n var $contactFilter = $('#explorer-disturbances-contact-filter');\r\n var $contactGroupFilter = $('#explorer-disturbances-contact-group-filter');\r\n var $keywordFilter = $('#explorer-disturbances-keyword-filter');\r\n var $classificationFilter = $('#explorer-disturbances-classification-filter');\r\n var $statusFilter = $('#explorer-disturbances-status-filter');\r\n var $periodFilter = $('#explorer-disturbances-period-filter');\r\n var $search = $('#explorer-disturbances-search');\r\n var $cbHideNonResponsibleIssues = $('#cb-explorer-disturbances-hide-non-responsible-issues');\r\n var $hideNonResponsibleIssues = $('#explorer-disturbances-hide-non-responsible-issues-lbl');\r\n var $disturbanceAction = $('#explorer-disturbances .disturbance-action');\r\n var $toggleControls = $('#explorer-disturbances-toggle-controls');\r\n var activeFilters = {\r\n TypeFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n PriorityFilter: false,\r\n CreatorsFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PeriodFilter: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n\r\n var disturbanceActionType = {\r\n CreationAction: 1,\r\n CompleteDisturbances: 2,\r\n EditIssues: 3\r\n };\r\n\r\n var searchTimeout;\r\n\r\n var Disturbance = (function () {\r\n function Disturbance() {\r\n }\r\n\r\n Disturbance.prototype.prepareUsers = function (users) {\r\n users = $.map(users || [], function (oid) {\r\n return Users[oid];\r\n });\r\n\r\n users.sort(function (a, b) {\r\n var titleA = a.Title.toLowerCase();\r\n var titleB = b.Title.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n return titleA < titleB ? -1 : 1;\r\n });\r\n\r\n return users;\r\n };\r\n\r\n Disturbance.prototype.prepareTeams = function (teams) {\r\n teams = $.map(teams || [], function (oid) {\r\n return Teams[oid];\r\n });\r\n\r\n teams.sort(function (a, b) {\r\n var titleA = a.Title.toLowerCase();\r\n var titleB = a.Title.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n return titleA < titleB ? -1 : 1;\r\n });\r\n\r\n return teams;\r\n };\r\n\r\n Disturbance.prototype.prepareRecipients = function (notificationRecipients) {\r\n var recipients = [];\r\n\r\n if (notificationRecipients) {\r\n recipients = $.extend([], notificationRecipients.Users);\r\n\r\n (notificationRecipients.Teams || []).forEach(function (teamOID) {\r\n var team = Teams[teamOID];\r\n\r\n if (!team) {\r\n return;\r\n }\r\n\r\n (team.Users || []).forEach(function (user) {\r\n recipients = Tools.addUnique(recipients, user.OID);\r\n });\r\n });\r\n\r\n (notificationRecipients.Unsubscribed || []).forEach(function (userOID) {\r\n recipients = Tools.remove(recipients, userOID);\r\n });\r\n }\r\n\r\n return recipients;\r\n };\r\n\r\n Disturbance.prototype.prepareComments = function (comments) {\r\n comments = $.map(comments || [], function (comment) {\r\n comment.CreationTimestamp = new Date(comment.CreationTimestamp);\r\n\r\n if (Users.hasOwnProperty(comment.CreatorOID)) {\r\n comment.Creator = Tools.clone(Users[comment.CreatorOID]);\r\n comment.Creator.Image = Files[comment.Creator.ImageOID];\r\n }\r\n\r\n return comment;\r\n });\r\n\r\n comments.sort(function (a, b) {\r\n return a.CreationTimestamp.getTime() - b.CreationTimestamp.getTime();\r\n });\r\n\r\n return comments;\r\n };\r\n\r\n Disturbance.Types = {\r\n IssueRecorditemDisturbance: 1,\r\n RecorditemDisturbance: 2\r\n };\r\n\r\n return Disturbance;\r\n }());\r\n\r\n var IssueDisturbance = (function () {\r\n function IssueDisturbance(issue) {\r\n this.OID = issue.OID;\r\n this.ID = issue.ID;\r\n this.Revision = issue.Revision;\r\n this.Type = issue.Type;\r\n this.Title = issue.Title;\r\n this.ModificationTimestamp = new Date(issue.ModificationTimestamp);\r\n this.DeadlineTimestamp = issue.DeadlineTimestamp ? new Date(issue.DeadlineTimestamp) : null;\r\n this.TerminationTimestamp = issue.TerminationTimestamp ? new Date(issue.TerminationTimestamp) : null;\r\n this.Editor = Users[issue.EditorOID];\r\n this.State = Properties[issue.StateOID];\r\n this.AssignedElementOID = issue.AssignedElementOID;\r\n this.OrganizationUnit = DataManager.OrganizationUnitLoader.Data.DataMap[this.AssignedElementOID];\r\n this.Files = issue.Files;\r\n this.ResponsibilityAssignments = issue.ResponsibilityAssignments;\r\n this.Comments = this.prepareComments(issue.Comments);\r\n this.Recipients = this.prepareRecipients(issue.NotificationRecipients);\r\n\r\n if (issue.InvestigationStatusInformation) {\r\n this.InvestigationStatusInformation = issue.InvestigationStatusInformation;\r\n }\r\n }\r\n\r\n IssueDisturbance.prototype = new Disturbance();\r\n\r\n IssueDisturbance.prototype.constructor = IssueDisturbance;\r\n\r\n IssueDisturbance.prototype.getIcon = function () {\r\n switch (this.Type) {\r\n case Enums.issueType.Note:\r\n return './img/notes.svg';\r\n case Enums.issueType.Disturbance:\r\n return './img/disturbance_reported.svg';\r\n case Enums.issueType.Inspection:\r\n return './img/jobsite.svg';\r\n case Enums.issueType.Investigation:\r\n case Enums.issueType.Form:\r\n case Enums.issueType.Survey:\r\n return './img/form.svg';\r\n case Enums.issueType.Resubmission:\r\n return './img/checklist.svg';\r\n default:\r\n return './img/task.svg';\r\n }\r\n };\r\n\r\n IssueDisturbance.prototype.getAbbreviation = function () {\r\n switch (this.Type) {\r\n case Enums.issueType.Note:\r\n return i18next.t('issueTypes.note_abbreviation');\r\n case Enums.issueType.Disturbance:\r\n return i18next.t('issueTypes.disturbance_abbreviation');\r\n case Enums.issueType.Inspection:\r\n return i18next.t('issueTypes.inspection_abbreviation');\r\n case Enums.issueType.Investigation:\r\n return i18next.t('issueTypes.investigation_abbreviation');\r\n case Enums.issueType.Survey:\r\n return i18next.t('issueTypes.survey_abbreviation');\r\n default:\r\n return i18next.t('issueTypes.task_abbreviation');\r\n }\r\n };\r\n\r\n IssueDisturbance.prototype.getElementPath = function () {\r\n return Explorer.CreateOrganisationUnitPath(this.AssignedElementOID);\r\n };\r\n\r\n IssueDisturbance.prototype.getImage = function () {\r\n var files = this.Files || [];\r\n var i, len;\r\n\r\n for (i = 0, len = files.length; i < len; i++) {\r\n if (files[i].MimeType && files[i].MimeType.substr(0, 6) === 'image/') {\r\n return files[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return IssueDisturbance;\r\n }());\r\n\r\n var RecorditemDisturbance = (function () {\r\n function RecorditemDisturbance(recorditem) {\r\n this.OID = recorditem.OID;\r\n this.ID = recorditem.ID;\r\n this.Revision = recorditem.Revision;\r\n this.Type = recorditem.Type;\r\n this.ModificationTimestamp = new Date(recorditem.ModificationTimestamp);\r\n this.Editor = Users[recorditem.EditorOID];\r\n this.Value = recorditem.Value;\r\n this.Category = Properties[recorditem.CategoryOID];\r\n this.Element = recorditem.Element;\r\n this.Files = recorditem.AdditionalFiles;\r\n this.Comments = this.prepareComments(recorditem.Comments);\r\n this.HasAdditionalFiles = recorditem.HasAdditionalFiles || false;\r\n this.HasComments = recorditem.HasComments || false;\r\n this.HasCorrectiveActions = recorditem.HasCorrectiveActions || false;\r\n\r\n if (!!recorditem.WorkflowInformation) {\r\n this.WorkflowInformation = Tools.escapeHtml(recorditem.WorkflowInformation);\r\n }\r\n\r\n if (!!recorditem.AdditionalText) {\r\n this.AdditionalText = Tools.escapeHtml(recorditem.AdditionalText);\r\n }\r\n\r\n Tools.Escape.Recorditem(this);\r\n }\r\n\r\n RecorditemDisturbance.prototype = new Disturbance();\r\n\r\n RecorditemDisturbance.prototype.constructor = RecorditemDisturbance;\r\n\r\n RecorditemDisturbance.prototype.getElementPath = function () {\r\n return Explorer.CreateOrganisationUnitPath(this.Element.OID, _cachedElements);\r\n };\r\n\r\n RecorditemDisturbance.prototype.getOrganizationUnit = function () {\r\n if (this.OrganizationUnit) {\r\n return this.OrganizationUnit;\r\n }\r\n\r\n if (!this.Element) {\r\n return null;\r\n }\r\n\r\n var parent = this.Element;\r\n\r\n while ((parent = _cachedElements[parent.ParentOID])) {\r\n if (parent.Type === Enums.elementType.Root || parent.Type === Enums.elementType.Location) {\r\n this.OrganizationUnit = parent;\r\n break;\r\n }\r\n }\r\n\r\n return this.OrganizationUnit;\r\n };\r\n\r\n return RecorditemDisturbance;\r\n }());\r\n\r\n var Panel = (function () {\r\n function Panel() {\r\n this.Filter = {};\r\n this.IsAllSelected = false;\r\n }\r\n\r\n Panel.prototype.resetFilters = function () {\r\n $resetFilters.removeClass('active');\r\n\r\n activeFilters = {\r\n TypeFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n PriorityFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PeriodFilter: false,\r\n HideNonResponsibleIssues: false,\r\n SearchText: false\r\n };\r\n\r\n this.Filter = {\r\n LocationOID: CurrentEntity.OID,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n HideNonResponsibleIssues: false\r\n };\r\n };\r\n\r\n Panel.prototype.setFilterState = function () {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n };\r\n\r\n Panel.prototype.findDisturbance = function (oid) {\r\n return Tools.getFirst(this.Disturbances, oid, 'OID');\r\n };\r\n\r\n Panel.prototype.hasSelectedDisturbances = function () {\r\n return Tools.contains(this.Disturbances, true, 'IsSelected');\r\n };\r\n\r\n Panel.prototype.hasSelectedIssueDisturbances = function () {\r\n return Tools.contains(this.Disturbances, function (disturbance) {\r\n return disturbance.IsSelected && disturbance instanceof IssueDisturbance;\r\n });\r\n };\r\n\r\n Panel.prototype.getSelectedDisturbances = function () {\r\n return $.grep(this.Disturbances, function (disturbance) {\r\n return disturbance.IsSelected;\r\n });\r\n };\r\n\r\n Panel.prototype.onToggleDropdown = function (event) {\r\n var $this = $(event.currentTarget);\r\n var isDisabled = $this.attr('disabled') === 'disabled';\r\n var isActive = !$disturbanceAction.hasClass('active');\r\n\r\n $disturbanceAction.removeClass('active');\r\n DatePicker.Close();\r\n\r\n if (!isDisabled) {\r\n if (isActive) {\r\n $disturbanceAction.addClass('active');\r\n }\r\n\r\n $body.off('click.hideDropdown', $.proxy(this.onHideDropdown, this));\r\n $body.one('click.hideDropdown', $.proxy(this.onHideDropdown, this));\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n };\r\n\r\n Panel.prototype.onHideDropdown = function () {\r\n $disturbanceAction.removeClass('active');\r\n };\r\n\r\n Panel.prototype.onSelectAction = function (event) {\r\n var selectedAction = parseInt($(event.currentTarget).data('selection'), 10);\r\n var disturbances = this.getSelectedDisturbances();\r\n\r\n // prepare disturbances for viewer\r\n disturbances = Tools.clone(disturbances);\r\n disturbances = $.map(disturbances, function (disturbance) {\r\n disturbance.EditorOID = disturbance.Editor ? disturbance.Editor.OID : null;\r\n disturbance.ElementOID = disturbance.Element ? disturbance.Element.OID : (disturbance.ElementOID || disturbance.AssignedElementOID);\r\n disturbance.Element = _cachedElements && _cachedElements.hasOwnProperty(disturbance.ElementOID) ?\r\n _cachedElements[disturbance.ElementOID] :\r\n DataManager.OrganizationUnitLoader.Data.DataMap[disturbance.ElementOID];\r\n disturbance.Timestamp = disturbance.ModificationTimestamp;\r\n disturbance.CategoryOID = disturbance.Category ? disturbance.Category.OID : null;\r\n disturbance.StateOID = disturbance.State ? disturbance.State.OID : null;\r\n\r\n if (disturbance instanceof IssueDisturbance) {\r\n disturbance.Type = 1;\r\n }\r\n\r\n return disturbance;\r\n });\r\n\r\n if (selectedAction === disturbanceActionType.CreationAction) {\r\n IssueViewer.CreateAction(disturbances, $.proxy(this.update, this));\r\n } else if (selectedAction === disturbanceActionType.CompleteDisturbances) {\r\n IssueViewer.CompleteDisturbances(disturbances, $.proxy(this.update, this));\r\n } else if (selectedAction === disturbanceActionType.EditIssues) {\r\n var me = this;\r\n var issueIdentifiers = disturbances\r\n .filter(function (disturbance) {\r\n return disturbance instanceof IssueDisturbance;\r\n })\r\n .map(function (disturbance) {\r\n return disturbance.OID;\r\n });\r\n\r\n if (!issueIdentifiers.length) {\r\n return;\r\n }\r\n\r\n Tools.Spinner.show();\r\n Tools.http.post('issues/bulk/', issueIdentifiers)\r\n .then(function (issues) {\r\n (issues || []).forEach(Tools.issue.prepareIssueForWebApp);\r\n\r\n Tools.Spinner.hide();\r\n IssuesEditor.Show(issues, function (modifications) {\r\n if (!modifications) {\r\n return;\r\n }\r\n\r\n me.update();\r\n });\r\n }, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n }\r\n };\r\n\r\n Panel.prototype.onResetFilters = function () {\r\n this.resetFilters();\r\n this.update();\r\n };\r\n\r\n Panel.prototype.onSetFilterState = function () {\r\n this.setFilterState();\r\n };\r\n\r\n Panel.prototype.onShowTypeFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.typeFilter.title'),\r\n onApply: function (selectedTypes) {\r\n that.Filter.Types = selectedTypes;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Types,\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Title'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(types, options);\r\n };\r\n\r\n Panel.prototype.onShowFormFilter = function () {\r\n var that = this;\r\n\r\n Tools.WindowWrappers.ShowFormSelectionForLocation({\r\n selectedForms: that.Filter.Forms,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.disturbances.formFilter.title'),\r\n buttons: {\r\n showAllForms: i18next.t('explorer.disturbances.formFilter.showAllForms'),\r\n showAssignedFormsOnly: i18next.t('explorer.disturbances.formFilter.showAssignedFormsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: function (selectedForms) {\r\n that.Filter.Forms = selectedForms;\r\n that.update();\r\n }\r\n });\r\n };\r\n\r\n Panel.prototype.onShowSchedulingFilter = function () {\r\n var that = this;\r\n\r\n Tools.WindowWrappers.ShowSchedulingSelectionForLocation({\r\n selectedSchedulings: that.Filter.Scheduling,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.disturbances.schedulingFilter.title'),\r\n buttons: {\r\n showAllSchedulings: i18next.t('explorer.disturbances.schedulingFilter.showAllSchedulings'),\r\n showAssignedSchedulingsOnly: i18next.t('explorer.disturbances.schedulingFilter.showAssignedSchedulingsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: function (selectedSchedulings) {\r\n that.Filter.Scheduling = selectedSchedulings;\r\n that.update();\r\n }\r\n });\r\n };\r\n\r\n Panel.prototype.onShowPriorityFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.priorityFilter.title'),\r\n onApply: function (selectedPriorities) {\r\n that.Filter.Priorities = selectedPriorities;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Priorities,\r\n treeOptions: {\r\n schema: {id: 'OID', children: 'Children', text: 'Title', color: 'Color'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(Priorities, options);\r\n };\r\n\r\n Panel.prototype.onShowCreatorFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.creatorFilter.title'),\r\n onApply: function (selectedUsers) {\r\n that.Filter.Creators = selectedUsers;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Creators,\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Fullname'},\r\n opened: true,\r\n checkbox: {fullrow: true},\r\n createContentHtml: function () {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n };\r\n\r\n Panel.prototype.onShowUserFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.userFilter.title'),\r\n onApply: function (selectedUsers) {\r\n that.Filter.Users = selectedUsers;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Users,\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Fullname'},\r\n opened: true,\r\n checkbox: {fullrow: true},\r\n createContentHtml: function () {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n };\r\n\r\n Panel.prototype.onShowTeamFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.teamFilter.title'),\r\n onApply: function (selectedTeams) {\r\n that.Filter.Teams = selectedTeams;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Teams,\r\n treeOptions: {\r\n schema: {id: 'OID', children: 'Children', text: 'Title', color: 'Color'},\r\n opened: true,\r\n checkbox: {\r\n fullrow: true,\r\n disabled: userCanAssignAllTeamsAndUsers ? null : function (node) {\r\n if (!selectableTeams || !node || !node.entity) {\r\n return false;\r\n }\r\n\r\n var team = node.entity;\r\n\r\n return selectableTeams.indexOf(team.OID) === -1;\r\n }\r\n },\r\n filter: userCanAssignAllTeamsAndUsers ? null : function (team) {\r\n if (!visibleTeams || !team) {\r\n return false;\r\n }\r\n\r\n return visibleTeams.indexOf(team.OID) > -1;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(RootTeam, options);\r\n };\r\n\r\n Panel.prototype.onShowContactFilter = function () {\r\n var that = this;\r\n var contacts, options;\r\n\r\n contacts = Object\r\n .keys(Contacts)\r\n .map(function (oid) {\r\n return Contacts[oid];\r\n })\r\n .sort(function (a, b) {\r\n var titleA = a.Title.toLowerCase();\r\n var titleB = b.Title.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n return titleA > titleB ? 1 : -1;\r\n });\r\n\r\n options = {\r\n title: i18next.t('explorer.disturbances.contactFilter.title'),\r\n onApply: function (selectedContacts) {\r\n that.Filter.Contacts = selectedContacts;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Contacts,\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Title'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(contacts, options);\r\n };\r\n\r\n Panel.prototype.onShowContactGroupFilter = function () {\r\n var that = this;\r\n var contactGroups, options;\r\n\r\n contactGroups = Object\r\n .keys(ContactGroups)\r\n .map(function (oid) { return ContactGroups[oid]; })\r\n .sort(function (a, b) {\r\n var titleA = a.Title.toLowerCase();\r\n var titleB = b.Title.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n return titleA > titleB ? 1 : -1;\r\n });\r\n\r\n options = {\r\n title: i18next.t('explorer.disturbances.contactGroupFilter.title'),\r\n onApply: function (selectedContactGroups) {\r\n that.Filter.ContactGroups = selectedContactGroups;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.ContactGroups,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contactGroups, options);\r\n };\r\n\r\n Panel.prototype.onShowKeywordFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.keywordFilter.title'),\r\n onApply: function (selectedKeywords) {\r\n that.Filter.Keywords = selectedKeywords;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Keywords,\r\n treeOptions: {\r\n schema: {id: 'OID', children: 'Children', text: 'Title'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(Keywords, options);\r\n };\r\n\r\n Panel.prototype.onShowClassificationFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.classificationFilter.title'),\r\n onApply: function (selectedClassifications) {\r\n that.Filter.Classifications = selectedClassifications;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.Classifications,\r\n treeOptions: {\r\n schema: {id: 'OID', children: 'Children', text: 'Title'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(Classifications, options);\r\n };\r\n\r\n Panel.prototype.onShowStatusFilter = function () {\r\n var that = this;\r\n var options = {\r\n title: i18next.t('explorer.disturbances.statusFilter.title'),\r\n onApply: function (selectedStatus) {\r\n that.Filter.States = selectedStatus;\r\n that.update();\r\n },\r\n checkedEntities: that.Filter.States,\r\n treeOptions: {\r\n schema: {id: 'OID', children: 'Children', text: 'Title', color: 'Color'},\r\n opened: true,\r\n checkbox: {fullrow: true}\r\n }\r\n };\r\n\r\n TreePicker.Show(IssueStates, options);\r\n };\r\n\r\n Panel.prototype.onSearch = function () {\r\n clearTimeout(searchTimeout);\r\n\r\n var that = this;\r\n\r\n searchTimeout = setTimeout(function () {\r\n var searchValue = $search.val().trim();\r\n\r\n that.Filter.SearchValue = searchValue;\r\n activeFilters.SearchText = !!searchValue;\r\n\r\n that.update();\r\n }, 500);\r\n };\r\n\r\n Panel.prototype.onSetPeriodFilter = function (event) {\r\n var periodFilter = (this.Filter.Period || {});\r\n var $this = $(event.currentTarget);\r\n var that = this;\r\n\r\n if ($this.hasClass('active')) {\r\n DatePicker.Close();\r\n return;\r\n }\r\n\r\n $this.addClass('active');\r\n $disturbanceAction.removeClass('active');\r\n\r\n DatePicker.Show($this, {\r\n mode: 2,\r\n withTime: true,\r\n withTimeControl: true,\r\n noDateAllowed: true,\r\n offsetY: 22,\r\n closeElement: 'body',\r\n deactivatable: true,\r\n titleElement: $this,\r\n dateTypes: [Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline],\r\n selectedType: Tools.contains([Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline], periodFilter.CurrentType) ?\r\n periodFilter.CurrentType :\r\n Enums.DatePickerTypes.Modification,\r\n beforeShow: function () {\r\n DatePicker.SetDate(periodFilter.Start, periodFilter.End);\r\n },\r\n end: function (filter) {\r\n that.Filter.Period = filter;\r\n\r\n if (that.Filter.Period && (that.Filter.Period.Start || that.Filter.Period.End)) {\r\n if (that.Filter.Period.Start) {\r\n that.Filter.Period.Start = new Date(that.Filter.Period.Start.setSeconds(0));\r\n }\r\n\r\n if (that.Filter.Period.End) {\r\n that.Filter.Period.End = new Date(that.Filter.Period.End.setSeconds(59));\r\n }\r\n\r\n $periodFilter.addClass('filter-selected');\r\n } else {\r\n $periodFilter.removeClass('filter-selected');\r\n }\r\n\r\n DatePicker.Close();\r\n that.update();\r\n },\r\n onDatePickerClose: function () {\r\n $this.removeClass('active');\r\n }\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n };\r\n\r\n Panel.prototype.onSetHideNonResponsibleIssues = function () {\r\n var hideNonResponsibleIssues = this.Filter.HideNonResponsibleIssues;\r\n var that = this;\r\n\r\n that.Filter.HideNonResponsibleIssues = !hideNonResponsibleIssues;\r\n\r\n that.update();\r\n };\r\n\r\n Panel.prototype.onToggleSelection = function (event) {\r\n var $this = $(event.currentTarget);\r\n var isChecked = $this.prop('checked');\r\n\r\n if ($this.hasClass('select-all')) {\r\n this.IsAllSelected = isChecked;\r\n\r\n (this.Disturbances || []).forEach(function (disturbance) {\r\n disturbance.IsSelected = isChecked;\r\n });\r\n\r\n $tableBody.find('input:checkbox').prop('checked', !!isChecked);\r\n } else {\r\n this.IsAllSelected = false;\r\n $tableHeader.find('input:checkbox').prop('checked', false);\r\n\r\n oid = $this.closest('tr').data('oid');\r\n disturbance = this.findDisturbance(oid);\r\n\r\n if (!disturbance) {\r\n return;\r\n }\r\n\r\n disturbance.IsSelected = isChecked;\r\n }\r\n\r\n this.initAction();\r\n };\r\n\r\n Panel.prototype.onShowPrintPreview = function (event) {\r\n var oid = $(event.currentTarget).closest('.issue').data('oid');\r\n var disturbance = this.findDisturbance(oid);\r\n\r\n if (disturbance) {\r\n PrintPreview.Show({\r\n Issue: disturbance,\r\n Type: 'Issue'\r\n });\r\n }\r\n\r\n\r\n event.stopPropagation();\r\n return false;\r\n };\r\n\r\n Panel.prototype.onSelectOrganisationUnit = function (event) {\r\n event.stopPropagation();\r\n };\r\n\r\n Panel.prototype.onShowIssue = function (event) {\r\n var issueID = $(event.currentTarget).data('issue-id');\r\n\r\n IssueViewer.Show(issueID, $.proxy(this.update, this), $.proxy(this.updateComments, this));\r\n };\r\n\r\n Panel.prototype.onShowRecorditem = function (event) {\r\n var $this = $(event.currentTarget);\r\n var $details = $this.parents('.details');\r\n var issueId = $details.data('issue-id');\r\n var issue = issueId ? Tools.getFirst(this.Disturbances, issueId, 'ID') : null;\r\n var recorditemOID = $this.data('oid');\r\n var recorditem = issue == null ? Tools.getFirst(this.Disturbances, recorditemOID, 'OID') : null;\r\n var organizationUnit = issue ? issue.OrganizationUnit : recorditem.getOrganizationUnit();\r\n\r\n var left = $tableWrapper.scrollLeft();\r\n var top = $tableWrapper.scrollTop();\r\n\r\n RecorditemDetails.show({\r\n OID: recorditemOID,\r\n $Target: $this,\r\n $Parent: $tableWrapper,\r\n $Container: $tableWrapper,\r\n Issue: issue,\r\n IsReadonly: organizationUnit == null || !organizationUnit.Enabled,\r\n Offset: {\r\n X: left,\r\n Y: top\r\n },\r\n OnChanged: $.proxy(this.update, this),\r\n OnCommentsChanged: function (recorditem) {\r\n var settings = {\r\n categoryInline: true,\r\n suppressInfos: false,\r\n alignLeft: true,\r\n scaledDown: true\r\n };\r\n\r\n $this.find('.recitemValue').replaceWith(Tools.values.render(recorditem, settings));\r\n }\r\n });\r\n\r\n event.stopPropagation();\r\n };\r\n\r\n Panel.prototype.onShowSubscibers = function (event) {\r\n var $tooltip = $('#gfx-tooltip');\r\n var $this = $(event.currentTarget);\r\n var subscribers = ($this.data('subscribers') || '').split('|');\r\n var offset, abos, html;\r\n\r\n offset = $this.offset();\r\n\r\n abos = $.map(subscribers, function (oid) {\r\n var subscriber = Users[oid] || Contacts[oid];\r\n\r\n if (subscriber) {\r\n return subscriber;\r\n }\r\n });\r\n\r\n if (!abos.length) {\r\n return;\r\n }\r\n\r\n abos.sort(Tools.SortByFullname);\r\n\r\n html = $.map(abos, function (user) {\r\n return user.Fullname;\r\n });\r\n\r\n if (html.length > 10) {\r\n html = html.slice(0, 10);\r\n html.push('+ {0} {1}'.format(\r\n abos.length - 10,\r\n i18next.t('misc.more'))\r\n );\r\n }\r\n\r\n $tooltip.html(html.join('
    '));\r\n $tooltip.removeClass('hide');\r\n $tooltip.attr('arrow', 1);\r\n $tooltip.css({\r\n left: offset.left - $tooltip.outerWidth(false) / 2 + 8,\r\n top: offset.top - $tooltip.outerHeight(false) - 8\r\n });\r\n };\r\n\r\n Panel.prototype.onHideSubscibers = function () {\r\n $('#gfx-tooltip').addClass('hide');\r\n };\r\n\r\n Panel.prototype.onToggleSubscription = function (event) {\r\n var $this = $(event.currentTarget);\r\n var $isSubscribed = $this.children('.is-subscribed');\r\n var $subscribers = $this.children('.subscribers');\r\n var isSubscribed = /true/i.test($this.data('is-subscribed'));\r\n var oid = $this.closest('tr[data-oid]').data('oid');\r\n var disturbance = this.findDisturbance(oid);\r\n\r\n event.stopPropagation();\r\n\r\n if (!disturbance) {\r\n return;\r\n }\r\n\r\n if (isSubscribed) {\r\n Tools.http.post('issues/{0}/unsubscribenotifications'.format(disturbance.ID), $.noop, Tools.Spinner.hide);\r\n disturbance.Recipients = Tools.remove(disturbance.Recipients, User.OID);\r\n\r\n $isSubscribed.text(i18next.t('misc.subscribe'));\r\n $this.data('is-subscribed', false);\r\n } else {\r\n Tools.http.post('issues/{0}/subscribenotifications'.format(disturbance.ID), $.noop, Tools.Spinner.hide);\r\n disturbance.Recipients = Tools.addUnique(disturbance.Recipients, User.OID);\r\n\r\n $isSubscribed.text(i18next.t('misc.unsubscribe'));\r\n $this.data('is-subscribed', true);\r\n }\r\n\r\n if (disturbance.Recipients.length) {\r\n $subscribers.text('({0})'.format(disturbance.Recipients.length));\r\n $subscribers.data('subscribers', disturbance.Recipients.join('|'));\r\n } else {\r\n $subscribers.text('');\r\n $subscribers.data('subscribers', null);\r\n }\r\n };\r\n\r\n Panel.prototype.onToggleControls = function (event) {\r\n onToggleControls(event);\r\n };\r\n\r\n Panel.prototype.reset = function (filter) {\r\n this.Disturbances = [];\r\n this.TotalCount = 0;\r\n this.IsAllSelected = false;\r\n\r\n filter = filter || {};\r\n this.Filter.LocationOID = filter.LocationOID;\r\n this.Filter.WithChildLocations = filter.WithChildLocations;\r\n this.Filter.WithDeactivatedElements = filter.WithDeactivatedElements;\r\n this.Filter.HideNonResponsibleIssues = filter.HideNonResponsibleIssues;\r\n\r\n if (filter.Period) {\r\n this.Filter.Period = filter.Period;\r\n }\r\n\r\n if (filter.Users) {\r\n this.Filter.Users = filter.Users;\r\n }\r\n\r\n if (filter.Teams) {\r\n this.Filter.Teams = filter.Teams;\r\n }\r\n };\r\n\r\n Panel.prototype.update = function () {\r\n this.reset(this.Filter);\r\n this.init();\r\n this.onSetFilterState();\r\n this.getDisturbances()\r\n .then($.proxy(this.renderRows, this))\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n };\r\n\r\n Panel.prototype.init = function () {\r\n $tableView.find('.tab.selected').removeClass('selected');\r\n $tableView.find('.tab[data-tab=\"{0}\"]'.format(this.DisturbanceType)).addClass('selected');\r\n\r\n this.initControls();\r\n this.initTable();\r\n this.initEvents();\r\n };\r\n\r\n Panel.prototype.initControls = function () {\r\n this.initAction();\r\n };\r\n\r\n Panel.prototype.initAction = function () {\r\n if (this.hasSelectedDisturbances() &&\r\n ressources.users.hasRightAtLocation('TMFT', CurrentEntity.OID)) {\r\n $action.removeAttr('disabled');\r\n\r\n var $actionDropdown = $explorerDisturbances.find('.gfx-action-window.disturbance-action');\r\n\r\n if (this.hasSelectedIssueDisturbances()) {\r\n $actionDropdown.find('.action-window-content-element[data-selection=\"3\"]')\r\n .removeAttr('disabled');\r\n } else {\r\n $actionDropdown.find('.action-window-content-element[data-selection=\"3\"]')\r\n .attr('disabled', 'disabled');\r\n }\r\n } else {\r\n $action.attr('disabled', 'disabled');\r\n }\r\n };\r\n\r\n Panel.prototype.initToolbars = function () {\r\n $resetFilters.removeClass('hide');\r\n $toggleControls.removeClass('hide');\r\n\r\n if (IsFilterVisible) {\r\n onToggleControls();\r\n }\r\n };\r\n\r\n Panel.prototype.initTypeFilter = function () {\r\n var $btnTitle = $typeFilter.find('.btn-title');\r\n var typeFilter = (this.Filter || {}).Types || [];\r\n var text;\r\n\r\n var titles = typeFilter.map(function (typeId) {\r\n var type = Tools.getFirst(types, typeId, 'OID');\r\n\r\n return type.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === types.length ?\r\n i18next.t('explorer.disturbances.typeFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TypeFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.typeFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TypeFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n };\r\n\r\n Panel.prototype.initFormFilter = function () {\r\n var $btnTitle = $formFilter.find('.btn-title');\r\n var formFilter = (this.Filter || {}).Forms || [];\r\n var text;\r\n\r\n var titles = formFilter.map(function (oid) {\r\n var form = DataManager.FormLoader.Data.DataMap[oid];\r\n\r\n return form.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.FormFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.formFilter.noSelection');\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.FormFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n };\r\n\r\n Panel.prototype.initSchedulingFilter = function () {\r\n var $btnTitle = $schedulingFilter.find('.btn-title');\r\n var schedulingFilter = (this.Filter || {}).Scheduling || [];\r\n var text;\r\n\r\n var titles = schedulingFilter.map(function (oid) {\r\n var scheduling = DataManager.SchedulingLoader.Data.DataMap[oid]\r\n\r\n return scheduling.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.SchedulingFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.schedulingFilter.noSelection');\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.SchedulingFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n };\r\n\r\n Panel.prototype.initPriorityFilter = function () {\r\n var $btnTitle = $priorityFilter.find('.btn-title');\r\n var priorityFilter = (this.Filter || {}).Priorities || [];\r\n var titles = [];\r\n var priorityCount = 0;\r\n var text;\r\n\r\n $.each(Properties, function (_oid, property) {\r\n if (property.Type !== Enums.propertyType.Priority) {\r\n return;\r\n }\r\n\r\n priorityCount++;\r\n\r\n if (Tools.contains(priorityFilter, property.OID)) {\r\n titles.push(property.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === priorityCount ?\r\n i18next.t('explorer.disturbances.priorityFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.StatusFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.priorityFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.StatusFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n };\r\n\r\n Panel.prototype.initCreatorFilter = function () {\r\n var $btnTitle = $creatorFilter.find('.btn-title');\r\n var userFilter = (this.Filter || {}).Creators;\r\n var titles = [];\r\n var userCount = 0;\r\n var text;\r\n\r\n $.each(Users, function (_oid, user) {\r\n userCount++;\r\n\r\n if (Tools.contains(userFilter, user.OID)) {\r\n titles.push(user.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === userCount ?\r\n i18next.t('explorer.disturbances.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $creatorFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initUserFilter = function () {\r\n var $btnTitle = $userFilter.find('.btn-title');\r\n var userFilter = (this.Filter || {}).Users;\r\n var titles = [];\r\n var userCount = 0;\r\n var text;\r\n\r\n $.each(Users, function (_oid, user) {\r\n userCount++;\r\n\r\n if (Tools.contains(userFilter, user.OID)) {\r\n titles.push(user.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === userCount ?\r\n i18next.t('explorer.disturbances.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $userFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initTeamFilter = function () {\r\n var $btnTitle = $teamFilter.find('.btn-title');\r\n var teamFilter = (this.Filter || {}).Teams;\r\n var titles = [];\r\n var teamCount = 0;\r\n var text;\r\n\r\n $.each(Teams, function (_oid, team) {\r\n teamCount++;\r\n\r\n if (Tools.contains(teamFilter, team.OID)) {\r\n titles.push(team.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === teamCount ?\r\n i18next.t('explorer.disturbances.teamFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TeamFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.teamFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TeamFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $teamFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initContactFilter = function () {\r\n var titles = [];\r\n var contactCount = 0;\r\n var $btnTitle, contactFilter, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-disturbances-contact-filter-lbl').addClass('hide');\r\n $contactFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactFilter.find('.btn-title');\r\n contactFilter = (this.Filter || {}).Contacts;\r\n\r\n $.each(Contacts, function (_oid, contact) {\r\n contactCount++;\r\n\r\n if (Tools.contains(contactFilter, contact.OID)) {\r\n titles.push(contact.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contactCount ?\r\n i18next.t('explorer.disturbances.contactFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.contactFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $contactFilter.removeClass('hide');\r\n\r\n $('#explorer-disturbances-contact-filter-lbl').removeClass('hide');\r\n $contactFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initContactGroupFilter = function () {\r\n var titles = [];\r\n var contactGroupCount = 0;\r\n var $btnTitle, contactGroupFilter, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-disturbances-contact-group-filter-lbl').addClass('hide');\r\n $contactGroupFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactGroupFilter.find('.btn-title');\r\n contactGroupFilter = (this.Filter || {}).ContactGroups;\r\n\r\n $.each(ContactGroups, function (_oid, contactGroup) {\r\n contactGroupCount++;\r\n\r\n if (Tools.contains(contactGroupFilter, contactGroup.OID)) {\r\n titles.push(contactGroup.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contactGroupCount ?\r\n i18next.t('explorer.disturbances.contactGroupFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactGroupFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.contactGroupFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactGroupFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $contactGroupFilter.removeClass('hide');\r\n\r\n $('#explorer-disturbances-contact-group-filter-lbl').removeClass('hide');\r\n $contactGroupFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initPeriodFilter = function () {\r\n if (!this.Filter) {\r\n this.Filter = {};\r\n }\r\n\r\n if (!this.Filter.Period) {\r\n this.Filter.Period = {};\r\n }\r\n\r\n var text;\r\n var periodFilter = this.Filter.Period;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n $periodFilter.addClass('filter-selected');\r\n activeFilters.PeriodFilter = true;\r\n text =\r\n (periodFilter.Start != null ? i18next.t('datePicker.from') + ' ' + periodFilter.Start.toLocaleString() : '') +\r\n ' ' +\r\n (periodFilter.End != null ? i18next.t('datePicker.to') + ' ' + periodFilter.End.toLocaleString() : '');\r\n } else {\r\n text = i18next.t('explorer.issues.formFilter.noSelection');\r\n\r\n $periodFilter.removeClass('filter-selected');\r\n activeFilters.PeriodFilter = false;\r\n }\r\n\r\n $periodFilter.html(text);\r\n };\r\n\r\n Panel.prototype.initHideNonResponsibleIssuesFilter = function () {\r\n if (!this.Filter) {\r\n this.Filter = {};\r\n }\r\n\r\n $hideNonResponsibleIssues.html(i18next.t('explorer.issues.hideNonResponsibleIssues'));\r\n $cbHideNonResponsibleIssues.prop('checked', this.Filter.HideNonResponsibleIssues);\r\n activeFilters.HideNonResponsibleIssues = this.Filter.HideNonResponsibleIssues;\r\n };\r\n\r\n Panel.prototype.initKeywordFilter = function () {\r\n var $btnTitle = $keywordFilter.find('.btn-title');\r\n var keywordFilter = (this.Filter || {}).Keywords;\r\n var titles = [];\r\n var keywordCount = 0;\r\n var text;\r\n\r\n $.each(Properties, function (_oid, keyword) {\r\n if (keyword.Type !== Enums.propertyType.Keyword) {\r\n return;\r\n }\r\n\r\n keywordCount++;\r\n\r\n if (Tools.contains(keywordFilter, keyword.OID)) {\r\n titles.push(keyword.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === keywordCount ?\r\n i18next.t('explorer.disturbances.keywordFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.KeywordFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.keywordFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.KeywordFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $keywordFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initClassificationFilter = function () {\r\n var $btnTitle = $classificationFilter.find('.btn-title');\r\n var classificationFilter = (this.Filter || {}).Classifications;\r\n var titles = [];\r\n var classificationCount = 0;\r\n var text;\r\n\r\n $.each(Properties, function (_oid, classification) {\r\n if (classification.Type !== Enums.propertyType.Classification) {\r\n return;\r\n }\r\n\r\n classificationCount++;\r\n\r\n if (Tools.contains(classificationFilter, classification.OID)) {\r\n titles.push(classification.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === classificationCount ?\r\n i18next.t('explorer.disturbances.classificationFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ClassificationFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.classificationFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ClassificationFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $classificationFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initStatusFilter = function () {\r\n var $btnTitle = $statusFilter.find('.btn-title');\r\n var statusFilter = (this.Filter || {}).States;\r\n var titles = [];\r\n var statusCount = 0;\r\n var text;\r\n\r\n $.each(Properties, function (_oid, status) {\r\n if (status.Type !== Enums.propertyType.Status) {\r\n return;\r\n }\r\n\r\n statusCount++;\r\n\r\n if (Tools.contains(statusFilter, status.OID)) {\r\n titles.push(status.Title);\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === statusCount ?\r\n i18next.t('explorer.disturbances.statusFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.StatusFilter = true;\r\n } else {\r\n text = i18next.t('explorer.disturbances.statusFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.StatusFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n $statusFilter.removeClass('hide');\r\n };\r\n\r\n Panel.prototype.initSearch = function () {\r\n activeFilters.SearchText = !!this.Filter.SearchValue;\r\n\r\n $search.val(activeFilters.SearchText ? $.trim(this.Filter.SearchValue) : '');\r\n $search.attr('placeholder', i18next.t('explorer.search'));\r\n };\r\n\r\n Panel.prototype.initTable = function () {\r\n $tableHeader.html(this.renderHeader());\r\n $tableBody.html(this.renderBody());\r\n };\r\n\r\n Panel.prototype.initEvents = function () {\r\n $explorerDisturbances.off('click.toggleDropdown');\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n $action.off('click.selectAction');\r\n $resetFilters.off('click.resetFilters');\r\n $typeFilter.off('click.showFilter');\r\n $formFilter.off('click.showFilter');\r\n $schedulingFilter.off('click.showFilter');\r\n $priorityFilter.off('click.showFilter');\r\n $creatorFilter.off('click.showFilter');\r\n $userFilter.off('click.showFilter');\r\n $teamFilter.off('click.showFilter');\r\n $contactFilter.off('click.showFilter');\r\n $contactGroupFilter.off('click.showFilter');\r\n $keywordFilter.off('click.showFilter');\r\n $classificationFilter.off('click.showFilter');\r\n $statusFilter.off('click.showFilter');\r\n $search.off('input.search');\r\n $explorerDisturbances.off('change.toggleSelection');\r\n $tableBody.off('click.showPrintPreview');\r\n $tableBody.off('click.onSelectOrganisationUnit');\r\n $tableBody.off('click.showIssue');\r\n $tableBody.off('click.showRecorditem');\r\n $body.off('click.hideRecorditem');\r\n $body.off('click.resetControls');\r\n $tableBody.off('mouseenter.showSubscibers');\r\n $tableBody.off('mouseleave.hideSubscibers');\r\n $tableBody.off('click.toggleSubscription');\r\n $tableBody.off('click.toggleComments');\r\n $tableBody.off('keypress.saveComment');\r\n $tableBody.off('click.deleteComment');\r\n $tableBody.off('click.stopPropagation');\r\n $tableBody.off('keyup.resizeComment');\r\n $tableBody.off('keydown.resizeComment');\r\n $tableBody.off('click.stopPropagation');\r\n $periodFilter.off('click.periodFilter');\r\n $cbHideNonResponsibleIssues.off('change.hideNonResponsibleIssues');\r\n $toggleControls.off('click.toggleControls');\r\n $disturbanceAction.off('click.selectAction');\r\n\r\n $explorerDisturbances.on('click.toggleDropdown', '.dropdown-button', $.proxy(this.onToggleDropdown, this));\r\n $disturbanceAction.on('click.selectAction', '.action-window-content-element', $.proxy(this.onSelectAction, this));\r\n $resetFilters.on('click.resetFilters', $.proxy(this.onResetFilters, this));\r\n $typeFilter.on('click.showFilter', $.proxy(this.onShowTypeFilter, this));\r\n $formFilter.on('click.showFilter', $.proxy(this.onShowFormFilter, this));\r\n $schedulingFilter.on('click.showFilter', $.proxy(this.onShowSchedulingFilter, this));\r\n $priorityFilter.on('click.showFilter', $.proxy(this.onShowPriorityFilter, this));\r\n $creatorFilter.on('click.showFilter', $.proxy(this.onShowCreatorFilter, this));\r\n $userFilter.on('click.showFilter', $.proxy(this.onShowUserFilter, this));\r\n $teamFilter.on('click.showFilter', $.proxy(this.onShowTeamFilter, this));\r\n $contactFilter.on('click.showFilter', $.proxy(this.onShowContactFilter, this));\r\n $contactGroupFilter.on('click.showFilter', $.proxy(this.onShowContactGroupFilter, this));\r\n $keywordFilter.on('click.showFilter', $.proxy(this.onShowKeywordFilter, this));\r\n $classificationFilter.on('click.showFilter', $.proxy(this.onShowClassificationFilter, this));\r\n $statusFilter.on('click.showFilter', $.proxy(this.onShowStatusFilter, this));\r\n $search.on('input.search', $.proxy(this.onSearch, this));\r\n $explorerDisturbances.on('change.toggleSelection', 'input:checkbox', $.proxy(this.onToggleSelection, this));\r\n $tableBody.on('click.showPrintPreview', '.print', $.proxy(this.onShowPrintPreview, this));\r\n $tableBody.on('click.onSelectOrganisationUnit', 'tr[data-issue-id] a', $.proxy(this.onSelectOrganisationUnit, this));\r\n $tableBody.on('click.showIssue', 'tr[data-issue-id]', $.proxy(this.onShowIssue, this));\r\n $tableBody.on('click.showRecorditem', 'tr[data-recorditem-id]', $.proxy(this.onShowRecorditem, this));\r\n $body.on('click.hideRecorditem', RecorditemDetails.hide);\r\n $body.on('click.resetControls', Panel.resetControls);\r\n $tableBody.on('mouseenter.showSubscibers', '.subscribers', $.proxy(this.onShowSubscibers, this));\r\n $tableBody.on('mouseleave.hideSubscibers', '.subscribers', $.proxy(this.onHideSubscibers, this));\r\n $tableBody.on('click.toggleSubscription', '.subscriptions', $.proxy(this.onToggleSubscription, this));\r\n $tableBody.on('click.stopPropagation', 'input:checkbox', function (event) {\r\n event.stopPropagation();\r\n });\r\n $periodFilter.on('click.periodFilter', $.proxy(this.onSetPeriodFilter, this));\r\n $cbHideNonResponsibleIssues.on('change.hideNonResponsibleIssues', $.proxy(this.onSetHideNonResponsibleIssues, this));\r\n $toggleControls.on('click.toggleControls', $.proxy(this.onToggleControls, this));\r\n };\r\n\r\n Panel.prototype.renderCommentsAndSubscriptions = function (recipients, comments) {\r\n var html = [];\r\n\r\n html.push('

    ');\r\n html.push(this.renderSubscription(recipients));\r\n html.push(' - {0}

    '.format(i18next.t('misc.comment_plural')));\r\n\r\n return html.join('');\r\n };\r\n\r\n Panel.prototype.renderSubscription = function (recipients) {\r\n if (Tools.contains(recipients, User.OID)) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.unsubscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n } else if ((recipients || []).length) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.subscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n }\r\n\r\n return '{0} '\r\n .format(i18next.t('misc.subscribe'));\r\n };\r\n\r\n Panel.prototype.renderImage = function (image) {\r\n var html = [''.format(image.Filename, show ? '' : ' hide')];\r\n\r\n if (image.Marks) {\r\n var viewboxRegex = /]*width=\"(\\d+)\"[^>]*height=\"(\\d+)\"[^>]*>(.*)<\\/svg>/ig;\r\n var pathRegex = /\\/]+/ig;\r\n var paths = [];\r\n var match = viewboxRegex.exec(image.Marks);\r\n\r\n if (!match || match.length !== 4) {\r\n return;\r\n }\r\n\r\n var width = parseInt(match[1], 10);\r\n var height = parseInt(match[2], 10);\r\n var svgContent = match[3];\r\n\r\n do {\r\n if ((match = pathRegex.exec(image.Marks))) {\r\n paths.push(match[0].trim() + '>');\r\n }\r\n } while (match);\r\n\r\n if (paths.length) {\r\n html.push(''\r\n .format(width, height));\r\n html.push(''\r\n .format(Config.BaseUri, image.Filename));\r\n html.push(svgContent);\r\n html.push('');\r\n }\r\n } else {\r\n html.push(''.format(Config.BaseUri, image.Filename));\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n Panel.prototype.renderTimestamp = function (timestamp) {\r\n return '{0}'.format(\r\n timestamp ? Tools.dateTime.getDifferenceString(timestamp) : '-/-');\r\n };\r\n\r\n Panel.prototype.renderState = function (state) {\r\n return '
     
    {1}'\r\n .format(\r\n state ? state.Color : '#fff',\r\n state ? state.Title : i18next.t('misc.untitled'));\r\n };\r\n\r\n Panel.prototype.renderTeamsAndUsers = function (users, teams) {\r\n var html = [];\r\n var renderContent = false;\r\n var groupedTeamsAndUsers = {\r\n responsible: [],\r\n accountable: [],\r\n consulted: [],\r\n informed: []\r\n };\r\n\r\n for (var userIdentifier in users) {\r\n var userResponsibilityEntity = users[userIdentifier];\r\n var user = Users[userIdentifier];\r\n\r\n if (!user) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (userResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n }\r\n\r\n for (var teamIdentifier in teams) {\r\n var teamResponsibilityEntity = teams[teamIdentifier];\r\n var team = Teams[teamIdentifier];\r\n\r\n if (!team) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (teamResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n }\r\n\r\n groupedTeamsAndUsers.responsible.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.accountable.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.consulted.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.informed.sort(Tools.SortStringArray);\r\n\r\n if (renderContent) {\r\n html.push('');\r\n\r\n if (groupedTeamsAndUsers.responsible.length) {\r\n html.push('' + i18next.t('explorer.disturbances.responsibilities.r') + '');\r\n html.push(groupedTeamsAndUsers.responsible.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.responsible.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.responsible.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.accountable.length) {\r\n html.push('' + i18next.t('explorer.disturbances.responsibilities.a') + '');\r\n html.push(groupedTeamsAndUsers.accountable.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.accountable.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.accountable.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.consulted.length) {\r\n html.push('' + i18next.t('explorer.disturbances.responsibilities.c') + '');\r\n html.push(groupedTeamsAndUsers.consulted.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.consulted.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.consulted.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.informed.length) {\r\n html.push('' + i18next.t('explorer.disturbances.responsibilities.i') + '');\r\n html.push(groupedTeamsAndUsers.informed.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.informed.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.informed.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n html.push('');\r\n\r\n } else {\r\n html.push('-/-');\r\n }\r\n\r\n return html.join('');\r\n };\r\n\r\n Panel.prototype.renderUser = function (user) {\r\n return user && user.Fullname ?\r\n '{0}'.format(user.Fullname) :\r\n '-/-';\r\n };\r\n\r\n Panel.prototype.renderValue = function (disturbance) {\r\n var settings = {\r\n categoryInline: true,\r\n suppressInfos: false,\r\n alignLeft: true,\r\n scaledDown: true\r\n };\r\n\r\n return '{0}'.format(Tools.values.render(disturbance, settings));\r\n };\r\n\r\n Panel.prototype.getDisturbances = function (next) {\r\n var that = this;\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n var params = this.getParams();\r\n\r\n if (!next && this.Disturbances.length) {\r\n deferred.resolve(this.Disturbances);\r\n } else {\r\n Tools.Spinner.show();\r\n\r\n this.load(params).then(function () {\r\n deferred.resolve(that.Disturbances);\r\n Tools.Spinner.hide();\r\n }, function (xhr) {\r\n if (xhr) {\r\n Tools.Spinner.hide();\r\n }\r\n\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n }\r\n\r\n return promise;\r\n };\r\n\r\n Panel.prototype.renderRows = function (disturbances) {\r\n var that = this;\r\n var html = [];\r\n\r\n if (!this.TotalCount) {\r\n $tableBody.html(this.renderEmptyRow());\r\n\r\n $tableHeader.width($tableBody.width());\r\n\r\n return;\r\n }\r\n\r\n html = $.map(disturbances || [], function (disturbance) {\r\n return that.renderRow(disturbance);\r\n });\r\n\r\n $tableBody.find('tbody').html(html.join(''));\r\n $tableBody.find('img').on('error', Tools.OnImageNotFound);\r\n\r\n if (this.Disturbances.length < this.TotalCount) {\r\n $tableWrapper.on('scroll.infiniteScroll', $.proxy(this.onScroll, this));\r\n }\r\n\r\n $tableHeader.width($tableBody.width());\r\n\r\n return disturbances;\r\n };\r\n\r\n Panel.prototype.onScroll = function () {\r\n var wrapperHeight = $tableWrapper.innerHeight();\r\n var tableHeight = $tableBody.outerHeight(false);\r\n var scrollPosition = $tableWrapper.scrollTop();\r\n\r\n if (tableHeight - wrapperHeight - scrollPosition <= 300) {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n this.getDisturbances(true).done($.proxy(this.renderRows, this));\r\n }\r\n };\r\n\r\n Panel.prototype.show = function () {\r\n this.init();\r\n\r\n this.getDisturbances().then($.proxy(this.renderRows, this), function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n };\r\n\r\n Panel.resetControls = function () {\r\n $userFilter.find('.button').removeClass('active');\r\n $teamFilter.find('.button').removeClass('active');\r\n $keywordFilter.find('.button').removeClass('active');\r\n $classificationFilter.find('.button').removeClass('active');\r\n $statusFilter.find('.button').removeClass('active');\r\n $periodFilter.removeClass('active');\r\n };\r\n\r\n Panel.prototype.resize = function () {\r\n this.initToolbars();\r\n\r\n $tableHeader.width($tableBody.width());\r\n };\r\n\r\n return Panel;\r\n }());\r\n\r\n var IssueRecorditemDisturbancePanel = (function () {\r\n function IssueRecorditemDisturbancePanel(filter) {\r\n this.DisturbanceType = Disturbance.Types.IssueRecorditemDisturbance;\r\n this.Disturbances = [];\r\n this.TotalCount = 0;\r\n\r\n filter = filter || {};\r\n this.Filter.LocationOID = filter.LocationOID;\r\n this.Filter.WithChildLocations = filter.WithChildLocations;\r\n this.Filter.WithDeactivatedElements = filter.WithDeactivatedElements;\r\n this.Filter.HideNonResponsibleIssues = filter.HideNonResponsibleIssues;\r\n\r\n if (filter.Period) {\r\n this.Filter.Period = filter.Period;\r\n }\r\n\r\n if (filter.Users) {\r\n this.Filter.Users = filter.Users;\r\n }\r\n\r\n if (filter.Teams) {\r\n this.Filter.Teams = filter.Teams;\r\n }\r\n }\r\n\r\n IssueRecorditemDisturbancePanel.prototype = new Panel();\r\n\r\n IssueRecorditemDisturbancePanel.prototype.constructor = IssueRecorditemDisturbancePanel;\r\n\r\n IssueRecorditemDisturbancePanel.prototype.findDisturbance = function (oid) {\r\n var i, len, disturbance;\r\n\r\n for (i = 0, len = (this.Disturbances || []).length; i < len; i++) {\r\n disturbance = this.Disturbances[i];\r\n\r\n if (disturbance.OID === oid) {\r\n return disturbance;\r\n }\r\n\r\n disturbance = Tools.getFirst(disturbance.Recorditems, oid, 'OID');\r\n\r\n if (disturbance) {\r\n return disturbance;\r\n }\r\n }\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.hasSelectedDisturbances = function () {\r\n return Tools.contains(this.Disturbances, function (issue) {\r\n return issue.IsSelected || Tools.contains(issue.Recorditems, true, 'IsSelected');\r\n });\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.getSelectedDisturbances = function () {\r\n var result = [];\r\n\r\n (this.Disturbances || []).forEach(function (issue) {\r\n if (issue.IsSelected) {\r\n result.push(issue);\r\n } else {\r\n (issue.Recorditems || []).forEach(function (recorditem) {\r\n if (recorditem.IsSelected) {\r\n result.push(recorditem);\r\n }\r\n });\r\n }\r\n });\r\n\r\n return result;\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.onToggleSelection = function (event) {\r\n var $this = $(event.currentTarget);\r\n var isChecked = $this.prop('checked');\r\n var $tr;\r\n\r\n if ($this.hasClass('select-all')) {\r\n this.IsAllSelected = isChecked;\r\n $tableBody.find('input:checkbox').prop('checked', !!isChecked);\r\n\r\n (this.Disturbances || []).forEach(function (issue) {\r\n issue.IsSelected = isChecked;\r\n\r\n (issue.Recorditems || []).forEach(function (recorditem) {\r\n recorditem.IsSelected = isChecked;\r\n });\r\n });\r\n\r\n } else {\r\n this.IsAllSelected = false;\r\n $tableHeader.find('input:checkbox').prop('checked', false);\r\n\r\n oid = $this.closest('tr').data('oid');\r\n disturbance = this.findDisturbance(oid);\r\n\r\n if (!disturbance) {\r\n return;\r\n }\r\n\r\n disturbance.IsSelected = isChecked;\r\n\r\n if (($tr = $this.closest('.has-details[data-oid=\"{0}\"]'.format(oid))).length) {\r\n $tr.siblings('.details[data-oid=\"{0}\"]'.format(oid)).find('input:checkbox').prop('checked', !!isChecked);\r\n\r\n (disturbance.Recorditems || []).forEach(function (recorditem) {\r\n recorditem.IsSelected = isChecked;\r\n });\r\n } else if (($tr = $this.closest('.details[data-oid]')).length) {\r\n oid = $tr.data('oid');\r\n $tableBody.find('.has-details[data-oid=\"{0}\"] input:checkbox'.format(oid)).prop('checked', false);\r\n\r\n disturbance = this.findDisturbance(oid);\r\n disturbance.IsSelected = false;\r\n }\r\n }\r\n\r\n this.initAction();\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.onToggleDetails = function (event) {\r\n var $tr = $(event.currentTarget).closest('tr');\r\n var oid = $tr.data('oid');\r\n var disturbance = this.findDisturbance(oid);\r\n var isExpanded = !$tr.hasClass('is-expanded');\r\n\r\n RecorditemDetails.hide();\r\n\r\n disturbance.IsExpanded = isExpanded;\r\n\r\n if (isExpanded) {\r\n this.showDetails($tr);\r\n $tr.addClass('is-expanded');\r\n } else {\r\n this.hideDetails($tr);\r\n $tr.removeClass('is-expanded');\r\n }\r\n\r\n event.stopPropagation();\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.init = function () {\r\n $tableBody.off('click.toggleDetails');\r\n $tableBody.on('click.toggleDetails', '.collapsible-handler', $.proxy(this.onToggleDetails, this));\r\n\r\n Panel.prototype.init.call(this);\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.initControls = function () {\r\n Panel.prototype.initControls.call(this);\r\n\r\n $explorerDisturbances.find('.table-filter-column.last-row').removeClass('hide');\r\n\r\n this.initActions();\r\n this.initTypeFilter();\r\n this.initFormFilter();\r\n this.initSchedulingFilter();\r\n this.initPriorityFilter();\r\n this.initCreatorFilter();\r\n this.initUserFilter();\r\n this.initTeamFilter();\r\n this.initContactFilter();\r\n this.initContactGroupFilter();\r\n this.initKeywordFilter();\r\n this.initClassificationFilter();\r\n this.initStatusFilter();\r\n this.initToolbars();\r\n this.initPeriodFilter();\r\n this.initHideNonResponsibleIssuesFilter();\r\n this.initSearch();\r\n this.setFilterState();\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.initActions = function () {\r\n var $actionDropdown = $explorerDisturbances.find('.gfx-action-window.disturbance-action');\r\n\r\n $actionDropdown.find('.action-window-content-element.hide').removeClass('hide');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.renderHeader = function () {\r\n var html = [];\r\n\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n\r\n if (ressources.users.hasRightAtLocation('TMFT', CurrentEntity.OID)) {\r\n html.push(''.format(this.IsAllSelected ? 'checked' : ''));\r\n }\r\n\r\n html.push('');\r\n html.push('!');\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.tableColumns.id')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.tableColumns.title')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.tableColumns.deadline')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.tableColumns.status')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.tableColumns.teamsAndUsers')));\r\n html.push('');\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.renderBody = function () {\r\n var html = [];\r\n\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.renderEmptyRow = function () {\r\n return '{0}'\r\n .format(i18next.t('explorer.disturbances.noDataAvailable'));\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.renderRow = function (issue) {\r\n var html = [];\r\n var locationPath = issue.getElementPath();\r\n var image = issue.getImage();\r\n var mailTokens = ((issue.AdditionalData || {}).MailToken || '').split('|');\r\n var mailAddresses;\r\n\r\n html.push(''.format(\r\n issue.IsExpanded ? 'is-expanded' : '', issue.OID, issue.ID));\r\n\r\n html.push('');\r\n\r\n if (ressources.users.hasRightAtLocation('TMFT', CurrentEntity.OID)) {\r\n html.push(''.format(issue.IsSelected ? 'checked' : ''));\r\n }\r\n\r\n html.push('');\r\n html.push('
    ');\r\n\r\n html.push('{0}{1}.{2}'.format(\r\n issue.getAbbreviation(), issue.ID, issue.Revision));\r\n\r\n html.push(''.format(issue.getIcon()));\r\n html.push(' ');\r\n\r\n html.push('{1}'.format(\r\n image ? '' : 'colspan=\"2\"',\r\n issue.Title || i18next.t('misc.untitled')));\r\n\r\n if (mailTokens.length > 1) {\r\n mailAddresses = mailTokens.slice(1).join(', ');\r\n\r\n html.push('

    {0}

    '.format(mailAddresses));\r\n }\r\n\r\n if (issue.InvestigationStatusInformation) {\r\n var errorText = issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ?\r\n Tools.issue.getInvestigationErrorText(issue.InvestigationStatusInformation.ErrorCode) :\r\n null;\r\n\r\n html.push('

    {2}{3}

    '\r\n .format(\r\n issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ? ' with-error' : '',\r\n i18next.t('misc.investigationStatus.helpText'),\r\n Tools.issue.getInvestigationStatusText(issue.InvestigationStatusInformation.Status),\r\n !!errorText ? (' (' + errorText + ')') : ''\r\n )\r\n );\r\n }\r\n\r\n if (locationPath) {\r\n html.push('

    {0}

    '.format(locationPath));\r\n }\r\n\r\n html.push(this.renderCommentsAndSubscriptions(issue.Recipients, issue.Comments));\r\n\r\n if (image) {\r\n html.push(this.renderImage(image));\r\n }\r\n\r\n html.push(this.renderTimestamp(issue.DeadlineTimestamp));\r\n html.push(this.renderState(issue.State));\r\n\r\n var assignedUsers = (issue.ResponsibilityAssignments || {}).Users || {};\r\n var assignedTeams = (issue.ResponsibilityAssignments || {}).Teams || {};\r\n\r\n html.push(this.renderTeamsAndUsers(assignedUsers, assignedTeams));\r\n\r\n html.push('');\r\n\r\n if (issue.IsExpanded) {\r\n html.push(this.renderDetails(issue));\r\n }\r\n\r\n return html.join('');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.getParams = function () {\r\n var filter = this.Filter || {};\r\n\r\n var params = {\r\n Skip: this.Disturbances.length,\r\n Take: 50,\r\n Sorting: 'id',\r\n SortingOrder: 'desc',\r\n LocationOID: filter.LocationOID,\r\n WithChildLocations: filter.WithChildLocations,\r\n WithDeactivatedElements: filter.WithDeactivatedElements,\r\n Creators: filter.Creators,\r\n Users: filter.Users,\r\n Teams: filter.Teams,\r\n Contacts: filter.Contacts,\r\n ContactGroups: filter.ContactGroups,\r\n Keywords: filter.Keywords,\r\n Forms: filter.Forms,\r\n Scheduling: filter.Scheduling,\r\n Priorities: filter.Priorities,\r\n Classifications: filter.Classifications,\r\n States: filter.States,\r\n HideNonResponsibleIssues: filter.HideNonResponsibleIssues,\r\n SearchString: filter.SearchValue\r\n };\r\n\r\n params.Types = Array.prototype.concat.apply([], (filter.Types || []).map(function (typeFilter) {\r\n return typeFilter\r\n .split('-')\r\n .map(function (type) {\r\n return parseInt(type, 10);\r\n });\r\n }));\r\n\r\n if (filter.Period && (filter.Period.Start || filter.Period.End)) {\r\n if (filter.Period.CurrentType === Enums.DatePickerTypes.Creation) {\r\n params.CreationPeriod = {\r\n PeriodStart: filter.Period.Start ? Tools.dateTime.toGMTString(filter.Period.Start) : null,\r\n PeriodEnd: filter.Period.End ? Tools.dateTime.toGMTString(filter.Period.End) : null\r\n };\r\n } else if (filter.Period.CurrentType === Enums.DatePickerTypes.Modification) {\r\n params.ModificationPeriod = {\r\n PeriodStart: filter.Period.Start ? Tools.dateTime.toGMTString(filter.Period.Start) : null,\r\n PeriodEnd: filter.Period.End ? Tools.dateTime.toGMTString(filter.Period.End) : null\r\n };\r\n } else if (filter.Period.CurrentType === Enums.DatePickerTypes.Deadline) {\r\n params.DeadlinePeriod = {\r\n PeriodStart: filter.Period.Start ? Tools.dateTime.toGMTString(filter.Period.Start) : null,\r\n PeriodEnd: filter.Period.End ? Tools.dateTime.toGMTString(filter.Period.End) : null\r\n };\r\n }\r\n }\r\n\r\n return params;\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.load = function (params) {\r\n var that = this;\r\n\r\n if (this.LoadRequest) {\r\n this.LoadRequest.abort();\r\n this.LoadRequest = null;\r\n }\r\n\r\n that.MenuItem = Explorer.GetCurrentTab();\r\n\r\n if (!that.MenuItem) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n return (this.LoadRequest = Tools.http.post('reports/disturbances?resulttype=issues', params))\r\n .then(function (report) {\r\n that.LoadRequest = null;\r\n that.TotalCount = report.TotalCount;\r\n\r\n issueRecorditemDisturbances = report.TotalCount > 0;\r\n that.setTabCounter(report.TotalCount);\r\n\r\n updateTabCounter(that.MenuItem, null, true);\r\n\r\n var missingElements = [];\r\n\r\n report.Data = (report.Data || []).map(function (issue) {\r\n if (!DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(issue.AssignedElementOID)) {\r\n missingElements.push({\r\n OID: issue.AssignedElementOID,\r\n WithAncestors: true\r\n });\r\n }\r\n\r\n var disturbance = new IssueDisturbance(Tools.Escape.Issue(issue));\r\n\r\n disturbance.IsSelected = that.IsAllSelected;\r\n\r\n return disturbance;\r\n });\r\n\r\n report.Data.sort(function (a, b) {\r\n return b.ID - a.ID;\r\n });\r\n\r\n report.Data.forEach(function (issue) {\r\n that.Disturbances = Tools.addUnique(that.Disturbances, issue, 'OID');\r\n });\r\n\r\n return missingElements;\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(function (missingElements) {\r\n if (!(missingElements instanceof Array) || !missingElements.length) {\r\n return;\r\n }\r\n\r\n return Tools.http.post('elements/', missingElements);\r\n })\r\n .then(function (elements) {\r\n if (!(elements instanceof Array) || !elements.length) {\r\n return;\r\n }\r\n\r\n elements.forEach(function (element) {\r\n DataManager.OrganizationUnitLoader.Data.DataMap[element.OID] = element;\r\n });\r\n\r\n elements.forEach(function (element) {\r\n if (!element.ParentOID) {\r\n return;\r\n }\r\n\r\n var parent = DataManager.OrganizationUnitLoader.Data.DataMap[element.ParentOID];\r\n\r\n if (!parent) {\r\n return;\r\n }\r\n\r\n parent.Children = parent.Children || [];\r\n parent.Children.push(element);\r\n parent.Children.sort(Tools.SortByPosition);\r\n\r\n element.Parent = parent;\r\n });\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.loadDetails = function (issue) {\r\n var params = {\r\n IssueId: issue.ID,\r\n Skip: 0,\r\n Take: 1000\r\n };\r\n\r\n return Tools.http.post('reports/disturbances?resulttype=recorditems', params)\r\n .then(function (report) {\r\n var missingElements = [];\r\n\r\n issue.Recorditems = $.map(report.Data, function (recorditem) {\r\n if (!DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(recorditem.ElementOID)) {\r\n missingElements.push({\r\n RevisionOID: recorditem.ElementRevisionOID,\r\n WithAncestors: true\r\n });\r\n }\r\n\r\n var disturbance = new RecorditemDisturbance(\r\n Tools.Escape.Recorditem(recorditem, true, true)\r\n );\r\n\r\n disturbance.IsSelected = issue.IsSelected;\r\n\r\n return disturbance;\r\n });\r\n\r\n issue.Recorditems.sort(function (a, b) {\r\n return a.ModificationTimestamp.getTime() - b.ModificationTimestamp.getTime();\r\n });\r\n\r\n return missingElements;\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(function (missingElements) {\r\n if (!missingElements.length) {\r\n return;\r\n }\r\n\r\n return Tools.http.post('elements/', missingElements);\r\n })\r\n .then(function (elements) {\r\n var cache = Tools.element.createHierarchyForDownloadedElements(elements);\r\n\r\n if (!cache) {\r\n return;\r\n }\r\n\r\n for (var oid in cache) {\r\n if (!_cachedElements) {\r\n break;\r\n }\r\n\r\n _cachedElements[oid] = cache[oid];\r\n }\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.getDetails = function (issueOID) {\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n var issue = this.findDisturbance(issueOID);\r\n\r\n if (!issue) {\r\n deferred.reject();\r\n } else if ((issue.Recorditems || []).length) {\r\n deferred.resolve(issue);\r\n } else {\r\n Tools.Spinner.show();\r\n\r\n this.loadDetails(issue).done(function () {\r\n deferred.resolve(issue);\r\n Tools.Spinner.hide();\r\n });\r\n }\r\n\r\n return promise;\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.renderDetails = function (issue) {\r\n var that = this;\r\n var html = [];\r\n\r\n html.push(''.format(issue.OID, issue.ID));\r\n html.push(' ');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push(''.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.detailTableColumns.recorditem')));\r\n html.push(''.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.detailTableColumns.value')));\r\n html.push(''.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.detailTableColumns.timestamp')));\r\n html.push(''.format(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.detailTableColumns.creator')));\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n\r\n if (!(issue.Recorditems || []).length) {\r\n html.push(RecorditemDisturbancePanel.prototype.renderEmptyRow.call(this));\r\n } else {\r\n (issue.Recorditems || []).forEach(function (recorditem) {\r\n html.push(RecorditemDisturbancePanel.prototype.renderRow.call(that, recorditem));\r\n });\r\n }\r\n\r\n html.push('');\r\n html.push('
     {0}{0}{0}{0}
    ');\r\n html.push('');\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.hideDetails = function ($tr) {\r\n var oid = $tr.data('oid');\r\n\r\n $tr.siblings('.details[data-oid=\"{0}\"]'.format(oid)).remove();\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.showDetails = function ($tr) {\r\n var that = this;\r\n var issueOID = $tr.data('oid');\r\n\r\n this\r\n .getDetails(issueOID)\r\n .done(function (issue) {\r\n $tr.after(that.renderDetails(issue));\r\n $tr.find('img').on('error', Tools.OnImageNotFound);\r\n\r\n return issue;\r\n });\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.setTabCounter = function (count) {\r\n $explorerDisturbances.find('.tab[data-tab=\"1\"] .count').text(count || '');\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.updateTabCounter = function () {\r\n var that = this;\r\n var params = this.getParams();\r\n\r\n params.Take = 0;\r\n\r\n that.MenuItem = Explorer.GetCurrentTab();\r\n\r\n return this.load(params).then(function (data) {\r\n if (data) {\r\n issueRecorditemDisturbances = data.TotalCount > 0;\r\n that.setTabCounter(data.TotalCount);\r\n }\r\n\r\n updateTabCounter(that.MenuItem, null, true);\r\n\r\n return data.TotalCount;\r\n }, function () {\r\n that.setTabCounter('!');\r\n });\r\n };\r\n\r\n IssueRecorditemDisturbancePanel.prototype.updateComments = function (changeInfo) {\r\n if (!changeInfo) {\r\n return;\r\n }\r\n\r\n var issue = this.findDisturbance(changeInfo.IssueOID);\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n issue.Comments = Tools.issue.prepareCommentsForWebApp(changeInfo.Comments);\r\n\r\n var $issue = $tableWrapper.find('tr[data-oid=\"' + issue.OID + '\"]');\r\n\r\n if (!$issue.length) {\r\n return;\r\n }\r\n\r\n $issue.find('.commentdetails').remove();\r\n\r\n var commentsMarkup = this.renderCommentsAndSubscriptions(issue.Recipients, issue.Comments);\r\n $issue.find('> td > .location').after(commentsMarkup);\r\n };\r\n\r\n return IssueRecorditemDisturbancePanel;\r\n }());\r\n\r\n var RecorditemDisturbancePanel = (function () {\r\n function RecorditemDisturbancePanel(filter) {\r\n this.DisturbanceType = Disturbance.Types.RecorditemDisturbance;\r\n this.Disturbances = [];\r\n this.TotalCount = 0;\r\n\r\n filter = filter || {};\r\n this.Filter.LocationOID = filter.LocationOID;\r\n this.Filter.WithChildLocations = filter.WithChildLocations;\r\n this.Filter.WithDeactivatedElements = filter.WithDeactivatedElements;\r\n }\r\n\r\n RecorditemDisturbancePanel.prototype = new Panel();\r\n\r\n RecorditemDisturbancePanel.prototype.constructor = RecorditemDisturbancePanel;\r\n\r\n RecorditemDisturbancePanel.prototype.initControls = function () {\r\n Panel.prototype.initControls.call(this);\r\n\r\n this.initActions();\r\n this.initToolbars();\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.initActions = function () {\r\n var $actionDropdown = $explorerDisturbances.find('.gfx-action-window.disturbance-action');\r\n\r\n $actionDropdown.find('.action-window-content-element[data-selection=\"3\"]').addClass('hide');\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.initToolbars = function () {\r\n $resetFilters.addClass('hide');\r\n $toggleControls.addClass('hide');\r\n $explorerDisturbances.find('.table-filter-column').addClass('hide');\r\n $tableWrapper.css('top', $tableView.outerHeight() + $explorerDisturbances.children('.table-container').outerHeight() + 10);\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.renderHeader = function () {\r\n var html = [];\r\n\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n\r\n if (ressources.users.hasRightAtLocation('TMFT', CurrentEntity.OID)) {\r\n html.push(''.format(\r\n this.IsAllSelected ? 'checked' : ''));\r\n }\r\n\r\n html.push('');\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.recorditemDisturbances.tableColumns.recorditem')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.recorditemDisturbances.tableColumns.value')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.recorditemDisturbances.tableColumns.timestamp')));\r\n html.push('{0}'.format(i18next.t('explorer.disturbances.tabs.recorditemDisturbances.tableColumns.creator')));\r\n html.push('');\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.renderBody = function () {\r\n var html = [];\r\n\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.renderEmptyRow = function () {\r\n return '{0}'\r\n .format(i18next.t('explorer.disturbances.noDataAvailable'));\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.renderRow = function (recorditem) {\r\n var html = [];\r\n var locationPath = recorditem.getElementPath();\r\n\r\n html.push(''.format(\r\n recorditem.OID, recorditem.ID));\r\n\r\n html.push('');\r\n\r\n if (ressources.users.hasRightAtLocation('TMFT', CurrentEntity.OID)) {\r\n html.push(''.format(\r\n recorditem.IsSelected ? 'checked' : ''));\r\n }\r\n\r\n html.push('');\r\n html.push('{0}'.format(\r\n recorditem.Element.Title || i18next.t('misc.untitled')));\r\n\r\n if (locationPath) {\r\n html.push('

    {0}

    '.format(locationPath));\r\n }\r\n\r\n html.push(this.renderValue(recorditem));\r\n html.push(this.renderTimestamp(recorditem.ModificationTimestamp));\r\n html.push(this.renderUser(recorditem.Editor));\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.getParams = function () {\r\n var filter = this.Filter || {};\r\n\r\n return {\r\n Skip: this.Disturbances.length,\r\n Take: 50,\r\n Sorting: 'modificationtimestamp',\r\n SortingOrder: 'desc',\r\n IssueID: 0,\r\n LocationOID: filter.LocationOID,\r\n WithChildLocations: filter.WithChildLocations,\r\n WithDeactivatedElements: filter.WithDeactivatedElements\r\n };\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.load = function (params) {\r\n var that = this;\r\n\r\n that.MenuItem = Explorer.GetCurrentTab();\r\n\r\n if (!that.MenuItem) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n return Tools.http.post('reports/disturbances?resulttype=recorditems', params)\r\n .then(function (report) {\r\n that.TotalCount = report.TotalCount;\r\n\r\n recorditemDisturbances = report.TotalCount > 0;\r\n that.setTabCounter(report.TotalCount);\r\n updateTabCounter(that.MenuItem, null, true);\r\n\r\n var missingElements = [];\r\n\r\n report.Data = (report.Data || []).map(function (recorditem) {\r\n if (!DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(recorditem.ElementOID)) {\r\n missingElements.push({\r\n OID: recorditem.ElementOID,\r\n WithAncestors: true\r\n });\r\n }\r\n\r\n var disturbance = new RecorditemDisturbance(Tools.Escape.Recorditem(recorditem, true, true));\r\n\r\n disturbance.IsSelected = that.IsAllSelected;\r\n\r\n return disturbance;\r\n });\r\n\r\n report.Data.sort(function (a, b) {\r\n return a.ModificationTimestamp.getTime() - b.ModificationTimestamp.getTime();\r\n });\r\n\r\n report.Data.forEach(function (disturbance) {\r\n that.Disturbances = Tools.addUnique(that.Disturbances, disturbance, 'OID');\r\n });\r\n\r\n return missingElements;\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(function (missingElements) {\r\n if (!(missingElements instanceof Array) || !missingElements.length) {\r\n return;\r\n }\r\n\r\n return Tools.http.post('elements/', missingElements);\r\n })\r\n .then(function (elements) {\r\n var cache = Tools.element.createHierarchyForDownloadedElements(elements);\r\n\r\n if (!cache) {\r\n return;\r\n }\r\n\r\n for (var oid in cache) {\r\n if (!_cachedElements) {\r\n break;\r\n }\r\n\r\n _cachedElements[oid] = cache[oid];\r\n }\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.setTabCounter = function (count) {\r\n $explorerDisturbances\r\n .find('.tab[data-tab=\"2\"] .count')\r\n .text(count || '');\r\n };\r\n\r\n RecorditemDisturbancePanel.prototype.updateTabCounter = function () {\r\n var that = this;\r\n var params = this.getParams();\r\n\r\n params.Take = 0;\r\n\r\n that.MenuItem = Explorer.GetCurrentTab();\r\n\r\n this.load(params).then(function (data) {\r\n if (data) {\r\n recorditemDisturbances = data.TotalCount > 0;\r\n that.setTabCounter(data.TotalCount);\r\n }\r\n\r\n updateTabCounter(that.MenuItem, null, true);\r\n\r\n return data;\r\n }, function () {\r\n that.setTabCounter('!');\r\n });\r\n };\r\n\r\n return RecorditemDisturbancePanel;\r\n }());\r\n\r\n function init(options) {\r\n var filter = {\r\n LocationOID: CurrentEntity.OID,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n HideNonResponsibleIssues: hideNonResponsibleIssues\r\n };\r\n\r\n _cachedElements = {};\r\n userCanAssignAllTeamsAndUsers = ressources.users.hasRightAtLocation(\r\n Enums.Rights.IssueRights.AllowAssigningAllUsersToIssues,\r\n CurrentEntity.OID\r\n );\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n initTypes();\r\n initTab();\r\n initUsers();\r\n initTeams();\r\n initLanguage();\r\n unbindEvents();\r\n bindEvents();\r\n\r\n panels = panels || [];\r\n\r\n if (options && options.filter) {\r\n if (options.filter.PeriodFilter) {\r\n filter.Period = options.filter.PeriodFilter;\r\n }\r\n\r\n if (options.filter.Users instanceof Array) {\r\n filter.Users = options.filter.Users.map(function (user) {\r\n return user.OID;\r\n });\r\n }\r\n\r\n if (options.filter.Teams instanceof Array) {\r\n filter.Teams = options.filter.Teams.map(function (team) {\r\n return team.OID;\r\n });\r\n }\r\n }\r\n\r\n if (panels.length) {\r\n panels.forEach(function (panel) {\r\n panel.reset(filter);\r\n });\r\n } else {\r\n panels.push(new IssueRecorditemDisturbancePanel(filter));\r\n panels.push(new RecorditemDisturbancePanel(filter));\r\n }\r\n\r\n if (options && options.panel === 'IssueDisturbances') {\r\n currentPanel = panels[0];\r\n } else if (options && options.panel === 'RecorditemDisturbances') {\r\n currentPanel = panels[1];\r\n } else {\r\n currentPanel = currentPanel || panels[0];\r\n }\r\n\r\n panels.forEach(function (panel) {\r\n if (panel !== currentPanel) {\r\n panel.updateTabCounter();\r\n }\r\n });\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.removeClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n $tableView.find('.lbl').text(i18next.t('explorer.disturbances.view') + ':');\r\n $tableView.find('.tab[data-tab=\"1\"] .title').text(i18next.t('explorer.disturbances.tabs.issueRecorditemDisturbances.title'));\r\n $tableView.find('.tab[data-tab=\"2\"] .title').text(i18next.t('explorer.disturbances.tabs.recorditemDisturbances.title'));\r\n\r\n $action.find('.btn-title').text(i18next.t('explorer.disturbances.measures.label'));\r\n $disturbanceAction.find('.action-window-content-element[data-selection=\"1\"]').text(i18next.t('explorer.disturbances.measures.createCorrectiveAction'));\r\n $disturbanceAction.find('.action-window-content-element[data-selection=\"2\"]').text(i18next.t('explorer.disturbances.measures.closeDisturbance'));\r\n $disturbanceAction.find('.action-window-content-element[data-selection=\"3\"]').text(i18next.t('explorer.disturbances.measures.editIssues'));\r\n\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n\r\n $('#explorer-disturbances-type-filter-lbl').text(i18next.t('explorer.disturbances.typeFilter.label'));\r\n $('#explorer-disturbances-form-filter-lbl').text(i18next.t('explorer.disturbances.formFilter.label'));\r\n $('#explorer-disturbances-scheduling-filter-lbl').text(i18next.t('explorer.disturbances.schedulingFilter.label'));\r\n $('#explorer-disturbances-priority-filter-lbl').text(i18next.t('explorer.disturbances.priorityFilter.label'));\r\n\r\n $('#explorer-disturbances-creator-filter-lbl').text(i18next.t('explorer.disturbances.creatorFilter.label'));\r\n $('#explorer-disturbances-user-filter-lbl').text(i18next.t('explorer.disturbances.userFilter.label'));\r\n $('#explorer-disturbances-team-filter-lbl').text(i18next.t('explorer.disturbances.teamFilter.label'));\r\n $('#explorer-disturbances-contact-filter-lbl').text(i18next.t('explorer.disturbances.contactFilter.label'));\r\n $('#explorer-disturbances-contact-group-filter-lbl').text(i18next.t('explorer.disturbances.contactGroupFilter.label'));\r\n $('#explorer-disturbances-keyword-filter-lbl').text(i18next.t('explorer.disturbances.keywordFilter.label'));\r\n $('#explorer-disturbances-classification-filter-lbl').text(i18next.t('explorer.disturbances.classificationFilter.label'));\r\n $('#explorer-disturbances-status-filter-lbl').text(i18next.t('explorer.disturbances.statusFilter.label'));\r\n $('#explorer-disturbances-hide-non-responsible-issues-lbl').text(i18next.t('explorer.issues.hideNonResponsibleIssues'));\r\n\r\n $('#explorer-disturbances-period-filter-lbl').text(i18next.t('explorer.disturbances.periodFilter.label'));\r\n $periodFilter.find('.btn-title').text(i18next.t('explorer.disturbances.periodFilter.button'));\r\n }\r\n\r\n function initUsers() {\r\n users = Tools.GetSelectableUsers(CurrentEntity.OID);\r\n users.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initTeams() {\r\n var teamInformation = Tools.GetSelectableTeams(CurrentEntity.OID);\r\n\r\n teams = teamInformation.Teams;\r\n visibleTeams = teamInformation.VisibleTeams;\r\n selectableTeams = teamInformation.SelectableTeams;\r\n }\r\n\r\n function unbindEvents() {\r\n $tableView.off('click.switchPanel');\r\n }\r\n\r\n function bindEvents() {\r\n $tableView.on('click.switchPanel', '.tab:not(.selected)', onSwitchPanel);\r\n $tableView.find('img').on('error', Tools.OnImageNotFound);\r\n }\r\n\r\n function onSwitchPanel() {\r\n var idx = parseInt($(this).data('tab'), 10) - 1;\r\n\r\n currentPanel = panels[idx];\r\n currentPanel.show();\r\n }\r\n\r\n function onToggleControls(event) {\r\n if (event) {\r\n var $target = $(event.currentTarget);\r\n IsFilterVisible = !$target.hasClass('collapsed');\r\n }\r\n\r\n var $tableFilterSelection = $explorerDisturbances.find('.table-filter-selection');\r\n\r\n if ($tableFilterSelection == null) {\r\n return;\r\n }\r\n\r\n var $controls = $tableFilterSelection.find('.toggle-table-controls');\r\n var $firstTableRow = $tableFilterSelection.find('.table-filter-column-first-row');\r\n var $filterColumns = $tableFilterSelection.find('.table-filter-column:not(.last-row)');\r\n\r\n if ($tableFilterSelection.hasClass('reduced-filters') || IsFilterVisible) {\r\n $tableFilterSelection.removeClass('reduced-filters');\r\n $tableFilterSelection.addClass('grid-row');\r\n $firstTableRow.removeClass('reduced-row');\r\n $filterColumns.removeClass('hide');\r\n $filterColumns.find('.table-button').css('margin-bottom', 7);\r\n $firstTableRow.find('.table-button').css('margin-bottom', 7);\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.hideFilters'));\r\n $controls.addClass('collapsed');\r\n } else {\r\n $tableFilterSelection.addClass('reduced-filters');\r\n $firstTableRow.addClass('reduced-row');\r\n $filterColumns.addClass('hide');\r\n $firstTableRow.find('.table-button').css('margin-bottom', 0);\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n $controls.removeClass('collapsed');\r\n }\r\n\r\n $tableWrapper.css('top', $tableView.outerHeight() + $explorerDisturbances.children('.table-container').outerHeight() + 10);\r\n }\r\n\r\n function show(match, options) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init(options);\r\n currentPanel.show();\r\n }\r\n\r\n function initTypes() {\r\n types = [];\r\n\r\n types.push({ OID: '1-2', Title: i18next.t('explorer.disturbances.typeFilter.tasks') });\r\n\r\n if (Client.Licenses && Client.Licenses.Surveys) {\r\n types.push({ OID: '3-7', Title: i18next.t('explorer.disturbances.typeFilter.forms') });\r\n } else {\r\n types.push({ OID: '3', Title: i18next.t('explorer.disturbances.typeFilter.forms') });\r\n }\r\n\r\n types.push({ OID: '4', Title: i18next.t('explorer.disturbances.typeFilter.notes') });\r\n\r\n if (Client.Licenses && Client.Licenses.Inspections) {\r\n types.push({ OID: '6', Title: i18next.t('explorer.disturbances.typeFilter.inspections') });\r\n }\r\n\r\n if (Client.Licenses && Client.Licenses.Investigations) {\r\n types.push({ OID: '8', Title: i18next.t('explorer.disturbances.typeFilter.investigations') });\r\n }\r\n\r\n types.push({ OID: '5', Title: i18next.t('explorer.disturbances.typeFilter.disturbances') });\r\n types.push({ OID: '9', Title: i18next.t('explorer.disturbances.typeFilter.disturbancesCompleted') });\r\n }\r\n\r\n function resize() {\r\n if (currentPanel) {\r\n currentPanel.resize();\r\n }\r\n }\r\n\r\n function setTabCounterLoading(menuItemIdentifier) {\r\n $explorerTabMenu\r\n .find('.tab-view-tab[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .addClass('loading');\r\n\r\n $explorerTabMenu\r\n .find('.dropdown-item[data-tab-id=\"{0}\"]'.format(menuItemIdentifier))\r\n .addClass('loading');\r\n }\r\n\r\n function setTabCounter(menuItemIdentifier, newText) {\r\n var tab = Explorer.MenuItems[menuItemIdentifier];\r\n\r\n if (tab.ActionType !== Enums.CustomMenuItemActionType.ShowDisturbancesFromRecordings) {\r\n return;\r\n }\r\n\r\n // noinspection EqualityComparisonWithCoercionJS\r\n if (newText == 0) {\r\n newText = '';\r\n }\r\n\r\n var $menuItem = $explorerTabMenu\r\n .find('.tab-view-tab[data-tab-id=\"{0}\"]'.format(menuItemIdentifier));\r\n var $dropdownItem = $explorerTabMenu\r\n .find('.dropdown-item[data-tab-id=\"{0}\"]'.format(menuItemIdentifier));\r\n\r\n $menuItem\r\n .removeClass('loading')\r\n .attr('count', newText)\r\n .find('.count').html(newText);\r\n\r\n $dropdownItem\r\n .removeClass('loading')\r\n .attr('count', newText ? newText : '0');\r\n\r\n $menuItem\r\n .toggleClass('warning', !!newText);\r\n }\r\n\r\n function updateTabCounter(menuItem, additionalParams, internal) {\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n if (internal) {\r\n setTabCounter(\r\n menuItem.OID,\r\n issueRecorditemDisturbances || recorditemDisturbances ? '!' : ''\r\n );\r\n } else {\r\n setTabCounter(menuItem.OID, '');\r\n setTabCounterLoading(menuItem.OID);\r\n\r\n var params = {\r\n LocationOID: CurrentEntity.OID,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n IssueID: 0,\r\n };\r\n\r\n $.extend(true, params, additionalParams);\r\n\r\n if (disturbanceRequest) {\r\n disturbanceRequest.abort();\r\n }\r\n\r\n disturbanceRequest = Tools.http.post('reports/disturbances?resulttype=disturbances', params, function (report) {\r\n setTabCounter(menuItem.OID, report ? '!' : '');\r\n }, function (jqXHR, textStatus, errorThrown) {\r\n if (textStatus !== 'abort') {\r\n setTabCounter(menuItem.OID, '');\r\n }\r\n });\r\n\r\n return disturbanceRequest;\r\n }\r\n }\r\n\r\n function disposeTab() {\r\n _cachedElements = null;\r\n $tableBody.empty();\r\n }\r\n\r\n Disturbances.Show = show;\r\n Disturbances.Resize = resize;\r\n Disturbances.UpdateTabCounter = updateTabCounter;\r\n Disturbances.Dispose = disposeTab;\r\n\r\n global.Disturbances = Disturbances;\r\n\r\n return global.Disturbances;\r\n})(window.Explorer || (window.Explorer = {}));","/**\r\n * @require ./explorer.js\r\n */\r\n(function ( global ) {\r\n var Files = {};\r\n\r\n /**\r\n * @constant {number}\r\n */\r\n var DEFAULT_TAKE = 50;\r\n var take = DEFAULT_TAKE;\r\n\r\n var filesLoaded;\r\n var files;\r\n var fileFormatFilter, fileFormats;\r\n var issueTypesFilter, issueTypes;\r\n\r\n var fileElementsCache;\r\n\r\n var FILE_SOURCE = {\r\n /**\r\n * Vorgänge\r\n */\r\n Issues: 1,\r\n /**\r\n * Zusatzbilder an Erfassungen\r\n */\r\n AdditionalRecordFiles: 2,\r\n /**\r\n * Erfasste Foto-Prüfpunkte\r\n */\r\n RecordedPhotoValues: 3\r\n };\r\n\r\n /**\r\n * @type {FILE_SOURCE}\r\n */\r\n var _currentSource = FILE_SOURCE.Issues;\r\n\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $tableView = $explorerFiles.find('.table-view');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $listWrapper = $explorerFiles.find('.list-wrapper');\r\n var $listBody = $listWrapper.find('.list');\r\n var $resetFilters = $('#explorer-files-reset-filters');\r\n var $lblFileFormatFilter = $('#explorer-files-file-format-filter-lbl');\r\n var $fileFormatFilter = $('#explorer-files-file-format-filter');\r\n var $lblIssueTypeFilter = $('#explorer-issue-type-filter-lbl');\r\n var $issueTypeFilter = $('#explorer-issue-type-filter');\r\n var $btnLoadMoreFiles = $explorerFiles.find('.btn-load-files');\r\n var activeFilters = {\r\n FileFormat: false,\r\n IssueTypes: false\r\n };\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init();\r\n updateList();\r\n }\r\n\r\n function init() {\r\n initTab();\r\n initTake();\r\n\r\n fileElementsCache = {};\r\n filesLoaded = 0;\r\n files = [];\r\n\r\n $tree.tree(\r\n 'remove-class-from-all-nodes',\r\n 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red'\r\n );\r\n\r\n purgeFilesList();\r\n\r\n initLanguage();\r\n initFileFormats();\r\n initIssueTypes();\r\n initFilters();\r\n unbindEvents();\r\n bindEvents();\r\n\r\n resize();\r\n }\r\n\r\n function initTake() {\r\n // take auf einen Wert setzen, der die Galerie beim initialen Laden an Hand der aktuellen Abmessungen füllt\r\n // 150x150 entspricht einem Dummy-Wert für quadratische Bilder\r\n // fügt anschließend eine zusätzliche Zeile an Bildern hinzu\r\n var containerWidth = $explorerFiles.outerWidth(true);\r\n var containerHeight = $explorerFiles.outerHeight(true);\r\n var imageContainerArea = containerWidth * containerHeight;\r\n var dummyImageArea = 150 * 150;\r\n var fittedImagesCount = imageContainerArea / dummyImageArea;\r\n var extraRowItemsCount = containerWidth / 150;\r\n\r\n take = Math.ceil(fittedImagesCount + extraRowItemsCount);\r\n\r\n if (take < DEFAULT_TAKE) {\r\n take = DEFAULT_TAKE;\r\n }\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.removeClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n $tableView.find('.lbl').text(i18next.t('explorer.files.sources.view'));\r\n $tableView.find('.tab[data-source=\"1\"] .title').text(i18next.t('explorer.files.sources.issues.title'));\r\n $tableView.find('.tab[data-source=\"2\"] .title').text(i18next.t('explorer.files.sources.additionalRecordFiles.title'));\r\n $tableView.find('.tab[data-source=\"3\"] .title').text(i18next.t('explorer.files.sources.recordedPhotoValues.title'));\r\n\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $lblFileFormatFilter.text(i18next.t('explorer.files.fileFormatFilter.label'));\r\n $lblIssueTypeFilter.text(i18next.t('explorer.files.issueTypeFilter.label'));\r\n $btnLoadMoreFiles.text(i18next.t('explorer.files.loadMoreFiles'));\r\n }\r\n\r\n function initFileFormats() {\r\n fileFormats = [];\r\n\r\n fileFormats.push({ OID: '1', Title: i18next.t('explorer.files.fileFormatFilter.images') });\r\n fileFormats.push({ OID: '2', Title: i18next.t('explorer.files.fileFormatFilter.audio') });\r\n }\r\n\r\n function initIssueTypes() {\r\n issueTypes = [];\r\n\r\n issueTypes.push({ OID: '1-2', Title: i18next.t('explorer.files.issueTypeFilter.tasks') });\r\n issueTypes.push({ OID: '3-7', Title: i18next.t('explorer.files.issueTypeFilter.forms') });\r\n issueTypes.push({ OID: '4', Title: i18next.t('explorer.files.issueTypeFilter.notes') });\r\n issueTypes.push({ OID: '5', Title: i18next.t('explorer.files.issueTypeFilter.disturbances') });\r\n issueTypes.push({ OID: '6', Title: i18next.t('explorer.files.issueTypeFilter.inspections') });\r\n issueTypes.push({ OID: '8', Title: i18next.t('explorer.files.issueTypeFilter.investigations') });\r\n }\r\n\r\n function setFilterState() {\r\n var isActive = activeFilters.FileFormat;\r\n\r\n if (!isActive && _currentSource === FILE_SOURCE.Issues) {\r\n isActive = isActive || activeFilters.IssueTypes;\r\n }\r\n\r\n $resetFilters.toggleClass('active', isActive);\r\n }\r\n\r\n function initFilters() {\r\n initFileFormatFilter();\r\n initIssueTypeFilter();\r\n }\r\n\r\n function initFileFormatFilter() {\r\n var $btnTitle = $fileFormatFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (fileFormatFilter || []).map(function (fileFormat) {\r\n return fileFormat.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === fileFormats.length ?\r\n i18next.t('explorer.files.fileFormatFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.FileFormat = true;\r\n } else {\r\n text = i18next.t('explorer.files.fileFormatFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.FileFormat = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initIssueTypeFilter() {\r\n var $btnTitle = $issueTypeFilter.find('.btn-title');\r\n var text;\r\n\r\n var titles = $.map(issueTypes, function (issueType) {\r\n if (Tools.contains(issueTypesFilter, issueType.OID, 'OID')) {\r\n return issueType.Title;\r\n }\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === issueTypes.length ?\r\n i18next.t('explorer.files.issueTypeFilter.all') :\r\n titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.IssueTypes = true;\r\n } else {\r\n text = i18next.t('explorer.files.issueTypeFilter.noSelection');\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.IssueTypes = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function reset(refreshCounters) {\r\n refreshCounters = refreshCounters || false;\r\n\r\n filesLoaded = 0;\r\n files = [];\r\n\r\n RecorditemDetails.hide();\r\n\r\n initTake();\r\n setFilterState();\r\n purgeFilesList();\r\n\r\n if (refreshCounters) {\r\n updateList()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n\r\n return;\r\n }\r\n\r\n updateList();\r\n }\r\n\r\n function unbindEvents() {\r\n $tableView.off('click.selectTab');\r\n $listWrapper.off('scroll.infiniteScroll');\r\n $resetFilters.off('click.resetFilters');\r\n $fileFormatFilter.off('click.showFileFormatFilter');\r\n $issueTypeFilter.off('click.showIssueTypeFilter');\r\n $listBody.off('click.showFile');\r\n $listBody.off('click.showDetails');\r\n $explorerFiles.off('click.loadMoreFiles');\r\n }\r\n\r\n function bindEvents() {\r\n $tableView.on('click.selectTab', '.tab[data-source]', onSelectSourceItemClick);\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $fileFormatFilter.on('click.showFileFormatFilter', onShowFileFormatFilter);\r\n $issueTypeFilter.on('click.showIssueTypeFilter', onShowIssueTypeFilter);\r\n $listBody.on('click.showFile', '.file', onShowFile);\r\n $listBody.on('click.showDetails', '.list-item-details', onShowDetails);\r\n $explorerFiles.on('click.loadMoreFiles', '.btn-load-files', onBtnLoadMoreFilesClick);\r\n }\r\n\r\n function resize() {\r\n $explorerFiles.find('.table-control .resizable').css('max-width', 'none');\r\n\r\n $.each($explorerFiles.find('.table-control'), function (_, row) {\r\n var $row = $(row);\r\n var remainingWidth = $row.width();\r\n var resizableControls = [];\r\n\r\n $.each($row.children(), function (_, control) {\r\n var $control = $(control);\r\n var controlWidth;\r\n\r\n if ($control.hasClass('resizable')) {\r\n controlWidth = $control.width() + 1;\r\n remainingWidth -= $control.outerWidth(true) - controlWidth + 2;\r\n\r\n resizableControls.push([ $control, controlWidth ]);\r\n } else {\r\n remainingWidth -= $control.outerWidth(true);\r\n }\r\n });\r\n\r\n resizableControls.sort(function (a, b) { return a[1] - b[1]; });\r\n\r\n Tools.reduce(resizableControls, function (control, acc) {\r\n var $control = control[0];\r\n var controlWidth = control[1];\r\n var remainingWidth = acc[0];\r\n var controlCount = acc[1];\r\n var divider = Math.floor(remainingWidth / controlCount);\r\n\r\n if (controlWidth <= divider) {\r\n remainingWidth -= controlWidth;\r\n } else {\r\n $control.css('max-width', divider);\r\n remainingWidth -= divider;\r\n }\r\n\r\n return [ remainingWidth, controlCount - 1 ];\r\n }, [ remainingWidth, resizableControls.length ]);\r\n });\r\n }\r\n\r\n function onBtnLoadMoreFilesClick() {\r\n if ($btnLoadMoreFiles.hasClass('disabled')) {\r\n return;\r\n }\r\n\r\n updateList();\r\n }\r\n\r\n function updateList() {\r\n $listWrapper.off('scroll.infiniteScroll');\r\n\r\n Tools.Spinner.show();\r\n $btnLoadMoreFiles.addClass('disabled');\r\n\r\n var params = createParams();\r\n\r\n return load(params)\r\n .then(loadMissingElements)\r\n .then(prepareFiles, function (xhr) {\r\n $btnLoadMoreFiles.removeClass('disabled');\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(appendFiles)\r\n .then(function (files) {\r\n $btnLoadMoreFiles.removeClass('disabled');\r\n\r\n if (!(files instanceof Array)) {\r\n return null;\r\n }\r\n\r\n if (files.length === take) {\r\n $listWrapper.on('scroll.infiniteScroll', onScroll);\r\n } else {\r\n $btnLoadMoreFiles.remove();\r\n $btnLoadMoreFiles = null;\r\n }\r\n\r\n // take zurücksetzen auf initialen Wert\r\n take = DEFAULT_TAKE;\r\n\r\n $listBody.find('img, image')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n\r\n Tools.Spinner.hide();\r\n\r\n return files;\r\n });\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n fileFormatFilter = null;\r\n\r\n if (_currentSource === FILE_SOURCE.Issues) {\r\n issueTypesFilter = null;\r\n }\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n resize();\r\n reset(true);\r\n }\r\n\r\n function onShowFileFormatFilter() {\r\n var options = {\r\n title: i18next.t('explorer.files.fileFormatFilter.title'),\r\n onApply: onSelectFileFormatFilter,\r\n checkedEntities: fileFormatFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(fileFormats, options);\r\n }\r\n\r\n function onSelectFileFormatFilter(selectedFileFormats) {\r\n fileFormatFilter = (selectedFileFormats || []).map(function (oid) {\r\n return Tools.getFirst(fileFormats, oid, 'OID');\r\n });\r\n\r\n initFileFormatFilter();\r\n resize();\r\n reset(true);\r\n }\r\n\r\n function onShowIssueTypeFilter() {\r\n var options = {\r\n title: i18next.t('explorer.files.issueTypeFilter.title'),\r\n onApply: onSelectIssueTypeFilter,\r\n checkedEntities: issueTypesFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(issueTypes, options);\r\n }\r\n\r\n function onSelectIssueTypeFilter(selectedIssueTypes) {\r\n issueTypesFilter = (selectedIssueTypes || []).map(function (oid) {\r\n return Tools.getFirst(issueTypes, oid, 'OID');\r\n });\r\n\r\n initIssueTypeFilter();\r\n resize();\r\n reset(true);\r\n }\r\n\r\n function onShowFile(event) {\r\n var $this = $(this);\r\n var filename = $this.data('filename');\r\n var file = Tools.getFirst(files, filename, 'Filename');\r\n var altFilename;\r\n\r\n if (file) {\r\n if (/^image\\//.test(file.MimeType)) {\r\n ImageViewer.Init({\r\n filelist: files,\r\n indexFilename: filename,\r\n IssueOID: file.IsAssignedToIssue ? file.OriginOID : null,\r\n IssueID: file.IsAssignedToIssue ? file.OriginID : null,\r\n pTitle: 'OriginTitle',\r\n pUserOID: 'UserOID',\r\n pTimestamp: 'Date'\r\n });\r\n } else if (/^audio\\//.test(file.MimeType)) {\r\n if (file.Metadata && Tools.contains(file.Metadata.AlternativeMimeTypes, 'audio/ogg')) {\r\n altFilename = /\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12}/.exec(filename) + '.ogg';\r\n }\r\n\r\n var audioPlayerOptions = {\r\n M4AFilename: filename,\r\n OGGFilename: altFilename,\r\n Title: file.Title\r\n };\r\n\r\n if (file.IsAssignedToIssue) {\r\n audioPlayerOptions.RecordInformation = {\r\n Issue: {\r\n ID: file.OriginID,\r\n Title: file.OriginTitle,\r\n Type: file.OriginType\r\n }\r\n };\r\n }\r\n\r\n new Tools.Popups.AudioPlayer(audioPlayerOptions)\r\n .Show();\r\n }\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowDetails(event) {\r\n var $this = $(this);\r\n var type = $this.data('type');\r\n\r\n if (type === FILE_SOURCE.Issues) {\r\n var id = $this.data('id');\r\n\r\n IssueViewer.Show(id);\r\n } else {\r\n var oid = $this.data('oid');\r\n\r\n RecorditemDetails.show({\r\n OID: oid,\r\n $Target: $this,\r\n $Parent: $explorerFiles,\r\n $Container: $explorerFiles,\r\n IsReadonly: true\r\n });\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onScroll() {\r\n var wrapperHeight = $listWrapper.innerHeight();\r\n var listHeight = $listBody.outerHeight(false);\r\n var scrollPosition = $listWrapper.scrollTop();\r\n\r\n if (listHeight - wrapperHeight - scrollPosition <= 300) {\r\n $listWrapper.off('scroll.infiniteScroll');\r\n\r\n updateList();\r\n }\r\n }\r\n\r\n function loadMissingElements(files) {\r\n var missingElements = [];\r\n\r\n (files || []).forEach(function (file) {\r\n if (!file.LocationOID) {\r\n return;\r\n }\r\n\r\n if (DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(file.LocationOID) ||\r\n fileElementsCache.hasOwnProperty(file.LocationOID)) {\r\n return;\r\n }\r\n\r\n missingElements.push({ OID: file.LocationOID });\r\n });\r\n\r\n if (!missingElements.length) {\r\n return $.Deferred().resolve(files).promise();\r\n }\r\n\r\n return Tools.http.post('elements/', missingElements)\r\n .then(function (elements) {\r\n (elements || []).forEach(function (element) {\r\n fileElementsCache[element.OID] = element;\r\n });\r\n\r\n return files;\r\n });\r\n }\r\n\r\n function prepareFiles(files) {\r\n filesLoaded = (filesLoaded || 0) + (files || []).length;\r\n\r\n return $.map(files || [], prepareFile);\r\n }\r\n\r\n function prepareFile(file) {\r\n var tmp;\r\n\r\n file.Timestamp = new Date(file.Timestamp);\r\n file.Metrics = {\r\n s: { width: 200, height: 200 },\r\n m: { width: 200, height: 200 },\r\n l: { width: 0, height: 0 },\r\n o: { width: 0, height: 0 }\r\n };\r\n\r\n if (file.Metadata) {\r\n if ((tmp = (file.Metadata.SizeS || '').split('x')).length === 2) {\r\n file.Metrics.s.width = parseInt(tmp[0], 10) || 200;\r\n file.Metrics.s.height = parseInt(tmp[1], 10) || 200;\r\n }\r\n\r\n if ((tmp = (file.Metadata.SizeM || '').split('x')).length === 2) {\r\n file.Metrics.m.width = parseInt(tmp[0], 10) || 200;\r\n file.Metrics.m.height = parseInt(tmp[1], 10) || 200;\r\n }\r\n\r\n if ((tmp = (file.Metadata.SizeL || '').split('x')).length === 2) {\r\n file.Metrics.l.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.l.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n\r\n if ((tmp = (file.Metadata.SizeO || '').split('x')).length === 2) {\r\n file.Metrics.o.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.o.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n }\r\n\r\n files.push(file);\r\n\r\n return file;\r\n }\r\n\r\n function appendFiles(files) {\r\n var html = [];\r\n\r\n if (!filesLoaded) {\r\n html = [\r\n '
    ',\r\n '
    ',\r\n '

    {0}

    '.format(i18next.t('explorer.values.noDataAvailable')),\r\n '
    ',\r\n '
    '\r\n ];\r\n\r\n $listBody.html(html.join(''));\r\n return files;\r\n }\r\n\r\n html = $.map(files || [], renderFile);\r\n\r\n $listBody.find('.btn-load-files').before(html.join(''));\r\n\r\n return files;\r\n }\r\n\r\n function onSelectSourceItemClick() {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('selected')) {\r\n return;\r\n }\r\n\r\n $this\r\n .addClass('selected')\r\n .siblings()\r\n .removeClass('selected');\r\n\r\n _currentSource = $this.data('source');\r\n\r\n $resetFilters.toggleClass('hide', _currentSource === FILE_SOURCE.RecordedPhotoValues);\r\n $lblFileFormatFilter.toggleClass('hide', _currentSource === FILE_SOURCE.RecordedPhotoValues);\r\n $fileFormatFilter.toggleClass('hide', _currentSource === FILE_SOURCE.RecordedPhotoValues);\r\n\r\n $lblIssueTypeFilter.toggleClass('hide', _currentSource !== FILE_SOURCE.Issues);\r\n $issueTypeFilter.toggleClass('hide', _currentSource !== FILE_SOURCE.Issues);\r\n\r\n resize();\r\n reset(false);\r\n }\r\n\r\n function renderFile(file) {\r\n var html = [];\r\n\r\n html.push('
  • '.format(file.Filename));\r\n\r\n if (/^audio\\//.test(file.MimeType)) {\r\n html.push(renderMicrophone());\r\n } else if (file.Marks) {\r\n html.push(renderSvg(file));\r\n } else {\r\n html.push(renderImage(file));\r\n }\r\n\r\n html.push(renderDetails(file));\r\n\r\n html.push('
  • ');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderMicrophone() {\r\n return '';\r\n }\r\n\r\n function renderImage(file) {\r\n return ''.format(Config.BaseUri + 'images/m/' + file.Filename);\r\n }\r\n\r\n function renderSvg(file) {\r\n var html = [];\r\n var viewboxRegex = /]*width=\"(\\d+)\"[^>]*height=\"(\\d+)\"[^>]*>(.*)<\\/svg>/ig;\r\n var pathRegex = /\\/]+/ig;\r\n var paths = [];\r\n\r\n var match = viewboxRegex.exec(file.Marks);\r\n\r\n if (!match || match.length !== 4) {\r\n return;\r\n }\r\n\r\n var width = parseInt(match[1], 10);\r\n var height = parseInt(match[2], 10);\r\n var svgContent = match[3];\r\n\r\n do {\r\n if ((match = pathRegex.exec(file.Marks))) {\r\n paths.push(match[0].trim() + '>');\r\n }\r\n } while (match);\r\n\r\n if (paths.length) {\r\n html.push(''\r\n .format(width, height));\r\n html.push(''.format(Config.BaseUri, file.Filename));\r\n\r\n html.push(svgContent);\r\n html.push('');\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderDetails(file) {\r\n return file.IsAssignedToIssue ?\r\n renderIssueDetails(file) :\r\n renderRecorditemDetails(file);\r\n }\r\n\r\n function renderIssueDetails(file) {\r\n var abbr = Tools.GetIssueAbbreviation({ Type: file.OriginType });\r\n var title = file.OriginTitle || i18next.t('misc.untitled');\r\n\r\n return '
    {2}{3} – {4}
    '\r\n .format(file.OriginOID, file.OriginID, abbr, file.OriginID, Tools.escapeHtml(title));\r\n }\r\n\r\n function renderRecorditemDetails(file) {\r\n var element = DataManager.OrganizationUnitLoader.Data.DataMap[file.LocationOID];\r\n\r\n if (!element) {\r\n element = fileElementsCache[file.LocationOID];\r\n }\r\n\r\n if (!element) {\r\n element = { Title: i18next.t('misc.unknown') };\r\n }\r\n\r\n return '
    {2}: {3}
    '\r\n .format(\r\n file.OriginOID,\r\n file.OriginID,\r\n i18next.t('misc.recording'),\r\n Tools.escapeHtml(element.Title)\r\n );\r\n }\r\n\r\n function createParams() {\r\n var params = {\r\n Skip: filesLoaded || 0,\r\n Take: take,\r\n LocationOID: CurrentEntity.OID,\r\n WithChildlocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n OriginType: _currentSource\r\n };\r\n\r\n params.FileTypes = (fileFormatFilter || []).map(function (fileFormat) {\r\n return parseInt(fileFormat.OID, 10);\r\n });\r\n\r\n if (!params.FileTypes.length) {\r\n delete params.FileTypes;\r\n }\r\n\r\n if (_currentSource === FILE_SOURCE.Issues) {\r\n params.IssueTypes = [];\r\n\r\n (issueTypesFilter || []).forEach(function (issueType) {\r\n issueType.OID\r\n .split('-')\r\n .forEach(function (s) {\r\n params.IssueTypes = Tools.addUnique(params.IssueTypes, parseInt(s, 10));\r\n });\r\n });\r\n\r\n if (!params.IssueTypes.length) {\r\n delete params.IssueTypes;\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n\r\n function load(params) {\r\n return Tools.http.post('reports/files', params);\r\n }\r\n\r\n function purgeFilesList() {\r\n $listBody.empty();\r\n $listBody.append('
  • {0}
  • '\r\n .format(i18next.t('explorer.files.loadMoreFiles')));\r\n\r\n $btnLoadMoreFiles = $explorerFiles.find('.btn-load-files');\r\n }\r\n\r\n function disposeTab() {\r\n fileElementsCache = null;\r\n\r\n purgeFilesList();\r\n RecorditemDetails.hide();\r\n }\r\n\r\n Files.Show = show;\r\n Files.Resize = resize;\r\n Files.ResetFilters = resetFilters;\r\n Files.Dispose = disposeTab;\r\n\r\n return (global.Files = Files);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function ( global ) {\r\n\tvar Info = {};\r\n\r\n var organizationUnitElements;\r\n var correctiveActionGroups;\r\n var visibleMasterdataGroups;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $wrapper = $explorerInfo.find('.explorer-info-wrapper');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n\r\n var _formulaResolver;\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n Tools.Spinner.show();\r\n\r\n init();\r\n DataManager.FormLoader.GetAll()\r\n .then(load, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(prepareOrganizationUnitElements, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(render)\r\n .then(Tools.Spinner.hide);\r\n }\r\n\r\n function init() {\r\n organizationUnitElements = {};\r\n correctiveActionGroups = {};\r\n visibleMasterdataGroups = {};\r\n\r\n _formulaResolver = new Formula({\r\n functions: new Tools.FormulaFunctions({\r\n ouIdentifier: CurrentEntity.OID\r\n })\r\n });\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n initTab();\r\n unbindEvents();\r\n bindEvents();\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.removeClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function unbindEvents() {\r\n $explorerInfo.off('click.printForm');\r\n $explorerInfo.off('click.printMeasure');\r\n $explorerInfo.off('click.showImage');\r\n $explorerInfo.off('click.showRecorditem');\r\n $explorerInfo.off('click.exportMasterdata');\r\n $body.off('click.hideRecorditem');\r\n }\r\n\r\n function bindEvents() {\r\n $explorerInfo.on('click.printForm', '.form', onPrintForm);\r\n $explorerInfo.on('click.printMeasure', '.measure', onPrintMeasure);\r\n $explorerInfo.on('click.showImage', '.image', onShowImage);\r\n $explorerInfo.on('click.showRecorditem', '.parameter', onShowRecorditem);\r\n $explorerInfo.on('click.exportMasterdata', '.export-master-data-of-current-location', onExportMasterdataOfCurrentLocationClick);\r\n }\r\n\r\n function onPrintForm() {\r\n var oid = $(this).data('oid');\r\n\r\n Tools.http.get('elements/' + oid)\r\n .then(function (form) {\r\n form = Tools.Escape.Element(form);\r\n\r\n PrintPreview.Show({ Element: form, Type: 'PrintBlankForm' });\r\n });\r\n }\r\n\r\n function onPrintMeasure() {\r\n var oid = $(this).data('oid');\r\n\r\n PrintPreview.Show({ Element: organizationUnitElements[oid], Type: 'PrintBlankForm' });\r\n }\r\n\r\n function onShowImage() {\r\n var filename = $(this).data('filename');\r\n\r\n ImageViewer.Init({ filelist: CurrentEntity.Files, indexFilename: filename });\r\n }\r\n\r\n function onShowRecorditem(event) {\r\n var $this = $(this);\r\n var recorditemOID = $this.data('recorditem-oid');\r\n var checkpointOID = $this.data('parameter-oid');\r\n var checkpoint = organizationUnitElements[checkpointOID];\r\n\r\n if (!checkpoint) {\r\n return;\r\n }\r\n\r\n function updateRecorditem(recorditem) {\r\n $this.data('recorditem-oid', recorditem.OID);\r\n $this.find('.recorditem-value').html(Tools.values.render(recorditem, {\r\n suppressCategory: true,\r\n suppressInfos: true\r\n }));\r\n }\r\n\r\n event.stopPropagation();\r\n\r\n if (!Tools.contains(User.Rights, 'EMD', 'ID')) {\r\n return;\r\n }\r\n\r\n if (checkpoint.Type === Enums.elementType.Info) {\r\n return;\r\n }\r\n\r\n var checkpointGroup = checkpoint.Parent;\r\n\r\n var groupRolesThatMayRecordValues = (checkpointGroup.AdditionalSettings || {}).RolesThatMayRecordValues || [];\r\n var checkpointRolesThatMayRecordValues = (checkpoint.AdditionalSettings || {}).RolesThatMayRecordValues || [];\r\n\r\n var rolesThatMayRecordValues = groupRolesThatMayRecordValues\r\n .concat(checkpointRolesThatMayRecordValues)\r\n .filter(function (roleIdentifier) {\r\n return Roles.hasOwnProperty(roleIdentifier);\r\n });\r\n\r\n var rolesAtLocation = ressources.users.getRolesAtLocation(User.OID, CurrentEntity.OID);\r\n var canModifyMasterdata = CurrentEntity.Enabled && (!rolesThatMayRecordValues.length || rolesThatMayRecordValues.some(function (roleIdentifier) {\r\n return rolesAtLocation.includes(roleIdentifier);\r\n }));\r\n\r\n if (!(recorditemOID || canModifyMasterdata)) {\r\n return;\r\n }\r\n\r\n RecorditemDetails.show({\r\n OID: recorditemOID,\r\n Checkpoint: checkpoint,\r\n CreateRecorditem: !recorditemOID,\r\n $Target: $this,\r\n $Parent: $wrapper,\r\n $Container: $explorerInfo,\r\n OnChanged: updateRecorditem,\r\n IsReadonly: canModifyMasterdata === false\r\n });\r\n\r\n $body.off('click.hideRecorditem');\r\n $body.on('click.hideRecorditem', RecorditemDetails.hide);\r\n }\r\n\r\n function onExportMasterdataOfCurrentLocationClick() {\r\n exportMasterdata({\r\n LocationOID: CurrentEntity.OID,\r\n WithChildLocations: false,\r\n OnlyActive: Explorer.GetWithDeactivatedElements() === false\r\n });\r\n }\r\n\r\n function exportMasterdata(config) {\r\n if (!config) {\r\n return;\r\n }\r\n\r\n Tools.Spinner.show();\r\n\r\n Tools.http.post('export/masterdata/', config)\r\n .then(onExportSuccess)\r\n .fail(function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n Tools.Spinner.hide();\r\n });\r\n }\r\n\r\n function onExportSuccess(filename) {\r\n window.location = '{0}analysis/export/{1}'.format(Config.BaseUri, filename);\r\n Tools.Spinner.hide();\r\n }\r\n\r\n function load() {\r\n if (!(CurrentEntity.HasMasterdata || CurrentEntity.HasMeasures)) {\r\n return $.Deferred().resolve().promise();\r\n }\r\n\r\n var params = {\r\n withlastrecorditem: true,\r\n withchildelements: true,\r\n withdeactivatedelements: Explorer.GetWithDeactivatedElements()\r\n };\r\n\r\n return Tools.http.get('elements/' + CurrentEntity.OID, null, null, params);\r\n }\r\n\r\n function prepareOrganizationUnitElements(data) {\r\n for (var idx = 0, len = (data || []).length; idx < len; idx++) {\r\n var elem = data[idx];\r\n\r\n elem = Tools.Escape.Element(elem, true);\r\n elem.Parameters = [];\r\n\r\n organizationUnitElements[elem.OID] = elem;\r\n }\r\n\r\n for (var oid in organizationUnitElements) {\r\n if (!organizationUnitElements.hasOwnProperty(oid)) {\r\n continue;\r\n }\r\n\r\n var elem = organizationUnitElements[oid];\r\n\r\n if (!elem.Enabled) {\r\n continue;\r\n }\r\n\r\n if (elem.Type < 100) {\r\n continue;\r\n }\r\n\r\n if (!elem.hasOwnProperty('ParentOID')) {\r\n continue;\r\n }\r\n\r\n if (!organizationUnitElements.hasOwnProperty(elem.ParentOID)) {\r\n continue;\r\n }\r\n\r\n elem.Parent = organizationUnitElements[elem.ParentOID];\r\n\r\n if (elem.Type === Enums.elementType.EMailAddresses &&\r\n !Tools.IsEMailCpEnabled()) {\r\n continue;\r\n }\r\n\r\n if (elem.Parent.Attribute === 5) {\r\n if (!correctiveActionGroups.hasOwnProperty(elem.Parent.OID)) {\r\n correctiveActionGroups[elem.Parent.OID] = true;\r\n }\r\n } else if (elem.Parent.Type === Enums.elementType.MasterdataGroup) {\r\n if (!visibleMasterdataGroups.hasOwnProperty(elem.Parent.OID)) {\r\n visibleMasterdataGroups[elem.Parent.OID] = true;\r\n }\r\n }\r\n\r\n elem.Parent.Parameters.push(elem);\r\n elem.Parent.Parameters.sort(Tools.SortByPosition);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function render() {\r\n var html = [];\r\n\r\n var currentTab = Explorer.GetCurrentTab();\r\n var infoConfig = (currentTab.Configuration || {}).Information || {};\r\n\r\n html.push(renderTitle());\r\n\r\n if (infoConfig.ShowAddress) {\r\n html.push(renderAddress());\r\n }\r\n\r\n if (infoConfig.ShowCostCenter) {\r\n html.push(renderCostCenter());\r\n }\r\n\r\n if (infoConfig.ShowDescription) {\r\n html.push(renderDescription());\r\n }\r\n\r\n if (infoConfig.AdditionalPropertiesConfiguration &&\r\n infoConfig.AdditionalPropertiesConfiguration.ShowAdditionalProperties) {\r\n html.push(renderAdditionalProperties(infoConfig.AdditionalPropertiesConfiguration));\r\n }\r\n\r\n if (infoConfig.MasterDataConfiguration &&\r\n infoConfig.MasterDataConfiguration.ShowMasterData) {\r\n html.push(renderMasterdata(infoConfig.MasterDataConfiguration));\r\n }\r\n\r\n if (infoConfig.ShowKeywords) {\r\n html.push(renderKeywords());\r\n }\r\n\r\n if (infoConfig.ShowTeams) {\r\n html.push(renderTeams());\r\n }\r\n\r\n if (infoConfig.ShowFiles) {\r\n html.push(renderFiles());\r\n }\r\n\r\n if (infoConfig.ShowInfoText) {\r\n html.push(renderInfoText());\r\n }\r\n\r\n if (infoConfig.ShowForms) {\r\n html.push(renderForms());\r\n }\r\n\r\n if (infoConfig.ShowMeasures) {\r\n html.push(renderMeasures());\r\n }\r\n\r\n $wrapper\r\n .html(html.join(''))\r\n .find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n }\r\n\r\n function renderFieldset(legend, innerHtml) {\r\n var html = [\r\n '
    ',\r\n '
    ',\r\n ];\r\n\r\n if (!!legend) {\r\n html.push(\r\n '
    ',\r\n legend,\r\n '
    '\r\n );\r\n }\r\n\r\n html.push(\r\n innerHtml,\r\n '
    ',\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderTextFieldset(legend, text) {\r\n return renderFieldset(legend, '

    {0}

    '.format(text));\r\n }\r\n\r\n function renderListFieldset(legend, innerHtml) {\r\n return renderFieldset(legend, '
      {0}
    '.format(innerHtml));\r\n }\r\n\r\n function renderTitle() {\r\n return '
    ' + CurrentEntity.Title + '
    ';\r\n }\r\n\r\n function renderDescription() {\r\n return CurrentEntity.Description\r\n ? renderTextFieldset(\r\n i18next.t('explorer.info.description'),\r\n CurrentEntity.Description.replace(/(\\r\\n)|(\\n)|(\\r)/ig, '
    '))\r\n : '';\r\n }\r\n\r\n function renderAddress() {\r\n if (!CurrentEntity.Address) {\r\n return '';\r\n }\r\n\r\n var markup = [];\r\n\r\n if (CurrentEntity.Address.Street && CurrentEntity.Address.StreetNumber) {\r\n markup.push(Tools.escapeHtml(CurrentEntity.Address.Street) + ' ' + Tools.escapeHtml(CurrentEntity.Address.StreetNumber) + '
    ');\r\n }\r\n\r\n if (CurrentEntity.Address.ZipCode && CurrentEntity.Address.City) {\r\n markup.push(CurrentEntity.Address.ZipCode + ' ' + Tools.escapeHtml(CurrentEntity.Address.City) + '
    ');\r\n }\r\n\r\n if (CurrentEntity.Address.Phone) {\r\n markup.push(Tools.escapeHtml(CurrentEntity.Address.Phone) + '
    ');\r\n }\r\n\r\n if (CurrentEntity.Address.WebAddress) {\r\n var webAddress = Tools.escapeHtml(CurrentEntity.Address.WebAddress);\r\n\r\n if (!/^http(s)?:\\/\\//.test(webAddress)) {\r\n webAddress = 'http://' + webAddress;\r\n }\r\n\r\n markup.push('' + webAddress + '');\r\n }\r\n\r\n return markup.length\r\n ? renderTextFieldset(\r\n i18next.t('explorer.info.address'),\r\n markup.join(''))\r\n : '';\r\n }\r\n\r\n function renderCostCenter() {\r\n var costCenter, parent;\r\n\r\n parent = CurrentEntity;\r\n\r\n while (parent) {\r\n if (parent.CostCenter) {\r\n costCenter = parent.CostCenter;\r\n break;\r\n }\r\n\r\n parent = parent.Parent;\r\n }\r\n\r\n return costCenter\r\n ? renderTextFieldset(\r\n i18next.t('explorer.info.costCenter'),\r\n costCenter.replace(/(\\r\\n)|(\\n)|(\\r)/ig, '
    '))\r\n : '';\r\n }\r\n\r\n function renderTeams() {\r\n var teams = $.map(CurrentEntity.Teams || [], function (elemTeam) {\r\n if (Teams.hasOwnProperty(elemTeam.OID)) {\r\n return Teams[elemTeam.OID].Title;\r\n }\r\n });\r\n\r\n if (!teams.length) {\r\n return '';\r\n }\r\n\r\n teams.sort(Tools.SortStringArray);\r\n\r\n var html = $.map(teams, function (title) {\r\n return '
  • {0}
  • '.format(title);\r\n });\r\n\r\n return renderListFieldset(\r\n i18next.t('explorer.info.teams'),\r\n html.join(''));\r\n }\r\n\r\n function renderInfoText() {\r\n if (!CurrentEntity.InfoText) {\r\n return '';\r\n }\r\n\r\n return renderListFieldset(\r\n i18next.t('explorer.info.infoText'),\r\n DOMPurify.sanitize(CurrentEntity.InfoText)\r\n );\r\n }\r\n\r\n function renderForms() {\r\n var forms = $.map(CurrentEntity.Forms || [], function (oid) {\r\n if (DataManager.FormLoader.Data.DataMap.hasOwnProperty(oid)) {\r\n return DataManager.FormLoader.Data.DataMap[oid];\r\n }\r\n });\r\n\r\n if (!forms.length) {\r\n return '';\r\n }\r\n\r\n forms.sort(Tools.SortByTitle);\r\n\r\n var html = $.map(forms, function (form) {\r\n return ''\r\n .format(form.OID, form.Title);\r\n });\r\n\r\n return renderListFieldset(\r\n i18next.t('explorer.info.forms'),\r\n html.join(''));\r\n }\r\n\r\n function renderMeasures() {\r\n var measures = Object.keys(correctiveActionGroups || {}).map(function (oid) {\r\n return organizationUnitElements[oid];\r\n });\r\n\r\n if (!measures.length) {\r\n return '';\r\n }\r\n\r\n measures.sort(Tools.SortByTitle);\r\n\r\n var html = $.map(measures, function (measure) {\r\n return '{1}'\r\n .format(measure.OID, measure.Title);\r\n });\r\n\r\n return renderTextFieldset(\r\n i18next.t('explorer.info.measures'),\r\n html.join(', '));\r\n }\r\n\r\n function renderKeywords() {\r\n var keywords, html;\r\n\r\n keywords = $.map(CurrentEntity.Properties || [], function (oid) {\r\n if (Properties.hasOwnProperty(oid) && Properties[oid].Type === Enums.propertyType.Keyword) {\r\n return Properties[oid].Title;\r\n }\r\n });\r\n\r\n if (!keywords.length) {\r\n return '';\r\n }\r\n\r\n keywords.sort(Tools.SortStringArray);\r\n\r\n html = $.map(keywords, function (title) {\r\n return '
  • {0}
  • '.format(title);\r\n });\r\n\r\n return renderListFieldset(\r\n i18next.t('explorer.info.keywords'),\r\n html.join(''));\r\n }\r\n\r\n function renderAdditionalProperties(config) {\r\n if (!config) {\r\n return '';\r\n }\r\n\r\n var additionalProperties = Tools.element.prepareAdditionalProperties(CurrentEntity.AdditionalProperties);\r\n\r\n if (!additionalProperties.length) {\r\n return '';\r\n }\r\n\r\n var markup = [];\r\n var applyFilter = (config.Keywords || []).length;\r\n var excludeMatchedProperties = applyFilter && config.ExcludeMatchedEntities;\r\n\r\n for (var gCnt = 0, gLen = additionalProperties.length; gCnt < gLen; gCnt++) {\r\n var group = additionalProperties[gCnt];\r\n\r\n if (!(group.Children || []).length) {\r\n continue;\r\n }\r\n\r\n var groupHasKeywordIntersection = applyFilter ?\r\n Tools.HasIntersection(group.Keywords, config.Keywords) :\r\n true;\r\n\r\n if (excludeMatchedProperties && groupHasKeywordIntersection) {\r\n continue;\r\n }\r\n\r\n var properties = groupHasKeywordIntersection ? group.Children : group.Children.filter(\r\n child => Tools.HasIntersection(child.Keywords, config.Keywords) !== excludeMatchedProperties\r\n );\r\n\r\n if (properties.length === 0) {\r\n continue;\r\n }\r\n\r\n markup.push(\r\n renderFieldset(\r\n group.Title || i18next.t('misc.untitled'),\r\n properties.map(property => {\r\n return [\r\n '
    ',\r\n property.Type !== Enums.additionalPropertyType.Info ?\r\n ('
    ' + (property.Title || i18next.t('misc.untitled')) + '
    ') :\r\n '',\r\n '
    ', property.Value, '
    ',\r\n '
    '\r\n ].join('');\r\n }).join('')\r\n )\r\n );\r\n }\r\n\r\n return markup.join('');\r\n }\r\n\r\n function renderMasterdata(config) {\r\n var markup = [];\r\n var masterdataGroups = Object.keys(visibleMasterdataGroups)\r\n .map(function (groupIdentifier) {\r\n return organizationUnitElements[groupIdentifier];\r\n })\r\n .filter(filterByUserRoles)\r\n .sort(Tools.SortByPosition);\r\n\r\n var applyFilter = (config.Keywords || []).length;\r\n var excludeMatchedProperties = applyFilter && config.ExcludeMatchedEntities;\r\n\r\n for (var gCnt = 0, gLen = masterdataGroups.length; gCnt < gLen; gCnt++) {\r\n var group = masterdataGroups[gCnt];\r\n var groupHasKeywordIntersection = applyFilter ?\r\n Tools.HasIntersection(group.Properties, config.Keywords) :\r\n true;\r\n\r\n if (excludeMatchedProperties && groupHasKeywordIntersection) {\r\n continue;\r\n }\r\n\r\n var checkpoints = groupHasKeywordIntersection ? group.Parameters : group.Parameters.filter(\r\n child => Tools.HasIntersection(child.Properties, config.Keywords) !== excludeMatchedProperties &&\r\n filterByUserRoles(child) &&\r\n (child.Type !== Enums.elementType.EMailAddresses || Tools.IsEMailCpEnabled())\r\n );\r\n\r\n if (checkpoints.length === 0) {\r\n continue;\r\n }\r\n\r\n markup.push(\r\n renderFieldset(\r\n group.Title || i18next.t('misc.untitled'),\r\n checkpoints.map(checkpoint => {\r\n return [\r\n '
    ',\r\n '
    ',\r\n checkpoint.Type === Enums.elementType.Info ?\r\n renderInfoCheckpoint(checkpoint) :\r\n renderGatherableCheckpoint(checkpoint),\r\n '
    ',\r\n '
    '\r\n ].join('');\r\n }).join('')\r\n )\r\n );\r\n }\r\n\r\n return markup.join('');\r\n }\r\n\r\n function renderInfoCheckpoint(checkpoint) {\r\n if (!checkpoint) {\r\n return;\r\n }\r\n\r\n var description = (checkpoint.Description || '-/-')\r\n .replace(/(\\r\\n)|(\\n)|(\\r)/ig, '
    ');\r\n\r\n return '
    ' + description + '
    ';\r\n }\r\n\r\n function renderGatherableCheckpoint(checkpoint) {\r\n if (!checkpoint) {\r\n return;\r\n }\r\n\r\n var html = [];\r\n\r\n html.push(\r\n '
    ',\r\n checkpoint.Title,\r\n '
    '\r\n );\r\n\r\n var value = checkpoint.LastRecorditem ? Tools.values.render(\r\n checkpoint.LastRecorditem,\r\n {suppressCategory: true, suppressInfos: true, elements: organizationUnitElements}\r\n ) : '-/-';\r\n\r\n html.push(\r\n '
    ',\r\n value,\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function filterByUserRoles(elem) {\r\n if (!elem) {\r\n return false;\r\n }\r\n\r\n var rolesThatMaySeeThisElement = ((elem.AdditionalSettings || {}).RolesThatMaySeeThisElement || [])\r\n .filter(function (roleIdentifier) {\r\n return Roles.hasOwnProperty(roleIdentifier);\r\n });;\r\n\r\n if (!rolesThatMaySeeThisElement.length) {\r\n // Keine Einschränkungen vorhanden\r\n return true;\r\n }\r\n\r\n var rolesAtLocation = ressources.users.getRolesAtLocation(User.OID, CurrentEntity.OID);\r\n\r\n return rolesAtLocation.length && rolesThatMaySeeThisElement.some(function (roleIdentifier) {\r\n return rolesAtLocation.includes(roleIdentifier);\r\n });\r\n }\r\n\r\n function renderFiles() {\r\n if (!(CurrentEntity.Files || []).length) {\r\n return '';\r\n }\r\n\r\n CurrentEntity.Files.sort(function (a, b) {\r\n return Tools.SortAssignedFilesFromCatalogue(a, b, true);\r\n });\r\n\r\n var files = $.map(CurrentEntity.Files || [], function (elemFile) {\r\n if (Files.hasOwnProperty(elemFile.OID)) {\r\n return Files[elemFile.OID];\r\n }\r\n });\r\n\r\n if (!files.length) {\r\n return '';\r\n }\r\n\r\n var html = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n $.map(files, function (file) {\r\n return /image\\//.test(file.MimeType)\r\n ? renderImage(file)\r\n : renderFile(file);\r\n }).join(''),\r\n '',\r\n '
    '\r\n ];\r\n\r\n return renderFieldset(i18next.t('explorer.info.files'), html.join(''));\r\n }\r\n\r\n function renderImage(file) {\r\n var html = [];\r\n var src = '{0}images/s/{1}'.format(Config.BaseUri, file.Filename);\r\n\r\n html.push(\r\n ''.format(file.Filename),\r\n ''.format(src),\r\n '',\r\n '{0}'.format(file.Title || i18next.t('misc.untitled')),\r\n '',\r\n ''\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderFile(file) {\r\n var cssClass, href;\r\n var thumbnailHtml;\r\n\r\n if (file.Type === Enums.FileType.File) {\r\n if ((file.MimeType || '').contains('pdf')) {\r\n thumbnailHtml = '';\r\n } else {\r\n cssClass = Tools.Files.getFileIconForMimeType(file.MimeType);\r\n thumbnailHtml = '
    ';\r\n }\r\n\r\n var sanitizedFilename = Tools.Files.getSanitizedFilename(file.Title || file.Filename);\r\n\r\n href = '{0}files/{1}?friendlyDownloadName={2}'.format(Config.BaseUri, file.Filename, sanitizedFilename);\r\n } else if (file.Type === Enums.FileType.Link) {\r\n cssClass = 'file-link';\r\n\r\n try {\r\n href = !!file.URL.startsWith('\"') || Formula.containsFormulaFunctions(file.URL) ?\r\n _formulaResolver.evaluate(file.URL) :\r\n file.URL;\r\n }\r\n catch (e) {\r\n href = file.URL;\r\n }\r\n\r\n thumbnailHtml = '
    ';\r\n } else if (file.Type === Enums.FileType.YoutubeVideo) {\r\n cssClass = 'youtube-video';\r\n href = 'https://www.youtube.com/watch?v=' + file.VideoID;\r\n thumbnailHtml = '
    ';\r\n } else if (file.Type === Enums.FileType.VimeoPrivateVideo || file.Type === Enums.FileType.VimeoPublicVideo) {\r\n cssClass = 'vimeo-video';\r\n href = 'https://vimeo.com/' + file.VideoID;\r\n thumbnailHtml = '
    ';\r\n }\r\n\r\n var html = [\r\n '',\r\n '',\r\n ''.format(encodeURI(href)),\r\n thumbnailHtml,\r\n '',\r\n '',\r\n '',\r\n ''.format(encodeURI(href)),\r\n '{0}'.format(file.Title || i18next.t('misc.untitled')),\r\n '',\r\n '',\r\n ''\r\n ];\r\n\r\n return html.join('');\r\n }\r\n\r\n function disposeTab() {\r\n organizationUnitElements = {};\r\n visibleMasterdataGroups = {};\r\n\r\n $wrapper.empty();\r\n }\r\n\r\n Info.Show = show;\r\n Info.Dispose = disposeTab;\r\n\r\n return (global.Info = Info);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function (global) {\r\n\tvar Issues = {};\r\n\r\n var issuesLoaded, issues;\r\n var tableColumnSelection, tableColumns;\r\n var sorting, sortingorder;\r\n var typeFilter, types;\r\n var creatorFilter, userFilter, users;\r\n var teamFilter, teams;\r\n var contactFilter, contacts;\r\n var contactGroupFilter, contactGroups;\r\n var keywordFilter, keywords;\r\n var classificationFilter, classifications;\r\n var statusFilter, states;\r\n var priorityFilter, priorities;\r\n var formFilter;\r\n var schedulingFilter;\r\n var processingStatusFilter;\r\n var processingStatus;\r\n var selectAll;\r\n var periodFilter = {};\r\n var searchTimeout, searchValue, hideNonResponsibleIssues;\r\n var toggleControls = false;\r\n var userCanAssignAllTeamsAndUsers;\r\n var visibleTeams, selectableTeams;\r\n var activeFilters = {\r\n TypeFilter: false,\r\n CreatorFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PriorityFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n ProcessingStatusFilter: false,\r\n PeriodFilter: false,\r\n SearchValue: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n var interacts = {\r\n draggable: null,\r\n droppable: null\r\n };\r\n\r\n var updateRequest;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $tableWrapper = $explorerIssues.find('.tblContentWrapper');\r\n var $tableHeader = $explorerIssues.find('.tbl_header');\r\n var $selectAll = $tableHeader.find('.select-all');\r\n var $tableBody = $tableWrapper.find('.table > tbody');\r\n var $resetFilters = $('#explorer-issues-reset-filters');\r\n var $toggleControls = $('#explorer-issues-toggle-controls');\r\n var $newIssue = $('#explorer-issues-new-issue');\r\n var $printIssues = $('#explorer-issues-print-issues');\r\n var $editIssues = $('#explorer-issues-edit-issues');\r\n var $typeFilter = $('#explorer-issues-type-filter');\r\n var $tableColumnSelection = $('#explorer-issues-table-columns');\r\n var $creatorFilter = $('#explorer-issues-creator-filter');\r\n var $userFilter = $('#explorer-issues-user-filter');\r\n var $teamFilter = $('#explorer-issues-team-filter');\r\n var $contactFilter = $('#explorer-issues-contact-filter');\r\n var $contactGroupFilter = $('#explorer-issues-contact-group-filter');\r\n var $keywordFilter = $('#explorer-issues-keyword-filter');\r\n var $classificationFilter = $('#explorer-issues-classification-filter');\r\n var $statusFilter = $('#explorer-issues-status-filter');\r\n var $priorityFilter = $('#explorer-issues-priority-filter');\r\n var $formFilter = $('#explorer-issues-form-filter');\r\n var $schedulingFilter = $('#explorer-issues-scheduling-filter');\r\n var $search = $('#explorer-issues-search');\r\n var $periodFilter = $('#explorer-issues-period-filter');\r\n var $processingStatus = $('#locationheader .processing-status');\r\n var $processingStatusFilter = $('#explorer-issues-processing-status-filter');\r\n var $newIssueDropdown = $('#explorer-issues .newIssue');\r\n\r\n function show(match, options) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init(options);\r\n update()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function init(options) {\r\n userCanAssignAllTeamsAndUsers = ressources.users.hasRightAtLocation(\r\n Enums.Rights.IssueRights.AllowAssigningAllUsersToIssues,\r\n CurrentEntity.OID\r\n );\r\n issuesLoaded = 0;\r\n issues = {};\r\n selectAll = false;\r\n tableColumnSelection = [];\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n if (CurrentEntity.Enabled && Tools.contains(User.Rights, 'TMFT', 'ID')) {\r\n if (Tools.any(User.Rights, [ 'TMFT-TASKS', 'TMFT-FORMS', 'TMFT-NOTES', 'TMFT-DISTURBANCES',\r\n 'TMFT-TASKS-A', 'TMFT-FORMS-A', 'TMFT-NOTES-A', 'TMFT-DISTURBANCES-A',\r\n 'TMFT-TASKS-SC', 'TMFT-FORMS-SC', 'TMFT-NOTES-SC', 'TMFT-DISTURBANCES-SC'], 'ID') ||\r\n Client.Licenses &&\r\n Client.Licenses.Investigations &&\r\n Tools.any(User.Rights, ['TMFT-INVESTIGATIONS', 'TMFT-INVESTIGATIONS-A', 'TMFT-INVESTIGATIONS-SC'], 'ID')) {\r\n $newIssue.removeAttr('disabled');\r\n } else {\r\n $newIssue.attr('disabled', 'disabled');\r\n }\r\n } else {\r\n $newIssue.attr('disabled', 'disabled');\r\n }\r\n\r\n $printIssues.attr('disabled', 'disabled');\r\n $editIssues.attr('disabled', 'disabled');\r\n\r\n initTab();\r\n initLanguage();\r\n initIssueTypeSelection();\r\n initTypes();\r\n initTableColumns();\r\n initContacts();\r\n initContactGroups();\r\n initStatus();\r\n initPriorities();\r\n initKeywords();\r\n initClassifications();\r\n initProcessingStatus();\r\n\r\n if (options && options.filter) {\r\n initPreselectedFilter(options.filter);\r\n }\r\n\r\n initUsers();\r\n initTeams();\r\n\r\n initTableColumnSelection(false);\r\n initFilters();\r\n initTable();\r\n\r\n unbindEvents();\r\n bindEvents();\r\n\r\n resize();\r\n }\r\n\r\n function initFilters() {\r\n initTypeFilter();\r\n initCreatorFilter();\r\n initUserFilter();\r\n initTeamFilter();\r\n initContactFilter();\r\n initContactGroupFilter();\r\n initKeywordFilter();\r\n initClassificationFilter();\r\n initStatusFilter();\r\n initPriorityFilter();\r\n initFormFilter();\r\n initSchedulingFilter();\r\n initProcessingStatusFilter();\r\n initSearch();\r\n initPeriodFilter();\r\n initHideNonResponsibleIssuesFilter();\r\n setFilterState();\r\n }\r\n\r\n function setFilterState() {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.removeClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n var $controls = $explorerIssues.find('.table-control');\r\n\r\n if (!$controls.hasClass('collapsed')) {\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n } else {\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.hideFilters'));\r\n }\r\n\r\n $newIssue.find('.btn-title').text(i18next.t('explorer.issues.add.title'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"1\"]').text(i18next.t('explorer.issues.add.task'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"3\"]').text(i18next.t('explorer.issues.add.form'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"4\"]').text(i18next.t('explorer.issues.add.note'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"5\"]').text(i18next.t('explorer.issues.add.disturbance'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"8\"]').text(i18next.t('explorer.issues.add.investigation'));\r\n $newIssueDropdown.find('.action-window-content-element[data-selection=\"10\"]').text(i18next.t('explorer.issues.add.info'));\r\n $newIssueDropdown.find('.close').text(i18next.t('explorer.issues.add.close'));\r\n\r\n $printIssues.text(i18next.t('explorer.issues.print'));\r\n $editIssues.text(i18next.t('explorer.issues.edit'));\r\n\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $('#explorer-issues-type-filter-lbl').text(i18next.t('explorer.issues.typeFilter.label'));\r\n $('#explorer-issues-table-columns').attr('title', i18next.t('explorer.toolbar.selectTableColumns'));\r\n $('#explorer-issues-creator-filter-lbl').text(i18next.t('explorer.issues.creatorFilter.label'));\r\n $('#explorer-issues-user-filter-lbl').text(i18next.t('explorer.issues.userFilter.label'));\r\n $('#explorer-issues-team-filter-lbl').text(i18next.t('explorer.issues.teamFilter.label'));\r\n $('#explorer-issues-contact-filter-lbl').text(i18next.t('explorer.issues.contactFilter.label'));\r\n $('#explorer-issues-contact-group-filter-lbl').text(i18next.t('explorer.issues.contactGroupFilter.label'));\r\n $('#explorer-issues-keyword-filter-lbl').text(i18next.t('explorer.issues.keywordFilter.label'));\r\n $('#explorer-issues-classification-filter-lbl').text(i18next.t('explorer.issues.classificationFilter.label'));\r\n $('#explorer-issues-status-filter-lbl').text(i18next.t('explorer.issues.statusFilter.label'));\r\n $('#explorer-issues-priority-filter-lbl').text(i18next.t('explorer.issues.priorityFilter.label'));\r\n $('#explorer-issues-period-filter-lbl').text(i18next.t('explorer.issues.periodFilter.label'));\r\n $('#explorer-issues-form-filter-lbl').text(i18next.t('explorer.issues.formFilter.label'));\r\n $('#explorer-issues-scheduling-filter-lbl').text(i18next.t('explorer.issues.schedulingFilter.label'));\r\n $('#explorer-issues-processing-status-filter-lbl').text(i18next.t('explorer.issues.processingStatusFilter.label'));\r\n $('#explorer-issues-hide-non-responsible-issues-lbl').text(i18next.t('explorer.issues.hideNonResponsibleIssues'));\r\n $('#explorer-issues-search-lbl').text(i18next.t('explorer.issues.search'));\r\n $periodFilter.find('.btn-title').text(i18next.t('explorer.issues.periodFilter.button'));\r\n\r\n $tableHeader.find('th[data-columntitle=\"id\"]').text(i18next.t('explorer.issues.tableColumns.id'));\r\n $tableHeader.find('th[data-columntitle=\"custom-id\"]').text(i18next.t('explorer.issues.tableColumns.customId'));\r\n $tableHeader.find('th[data-columntitle=\"title\"]').text(i18next.t('explorer.issues.tableColumns.title'));\r\n $tableHeader.find('th[data-columntitle=\"elementcoding\"]').text(i18next.t('explorer.issues.tableColumns.elementCoding'));\r\n $tableHeader.find('th[data-columntitle=\"creationtimestamp\"]').text(i18next.t('explorer.issues.tableColumns.creationTimestamp'));\r\n $tableHeader.find('th[data-columntitle=\"modificationtimestamp\"]').text(i18next.t('explorer.issues.tableColumns.lastModification'));\r\n $tableHeader.find('th[data-columntitle=\"deadlinetimestamp\"]').text(i18next.t('explorer.issues.tableColumns.deadline'));\r\n $tableHeader.find('th[data-columntitle=\"state\"]').text(i18next.t('explorer.issues.tableColumns.status'));\r\n $tableHeader.find('th[data-columntitle=\"priority\"]').text(i18next.t('explorer.issues.tableColumns.priority'));\r\n $tableHeader.find('th[data-columntitle=\"teamsAndUsers\"]').text(i18next.t('explorer.issues.tableColumns.teamsAndUsers'));\r\n $tableHeader.find('th[data-columntitle=\"checkpointCount\"]').text(i18next.t('explorer.issues.tableColumns.checkpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedCheckpointCount\"]').text(i18next.t('explorer.issues.tableColumns.collectedCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"openCheckpointCount\"]').text(i18next.t('explorer.issues.tableColumns.openCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"requiredCheckpointCount\"]').text(i18next.t('explorer.issues.tableColumns.requiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedRequiredCheckpointCount\"]').text(i18next.t('explorer.issues.tableColumns.collectedRequiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"estimatedEffort\"]').text(i18next.t('explorer.issues.tableColumns.estimatedEffort'));\r\n\r\n $tableHeader.find('th[data-columntitle=\"id\"]').attr('title', i18next.t('explorer.issues.tableColumns.id'));\r\n $tableHeader.find('th[data-columntitle=\"custom-id\"]').attr('title', i18next.t('explorer.issues.tableColumns.customId'));\r\n $tableHeader.find('th[data-columntitle=\"title\"]').attr('title', i18next.t('explorer.issues.tableColumns.title'));\r\n $tableHeader.find('th[data-columntitle=\"elementcoding\"]').attr('title', i18next.t('explorer.issues.tableColumns.elementCoding'));\r\n $tableHeader.find('th[data-columntitle=\"creationtimestamp\"]').attr('title', i18next.t('explorer.issues.tableColumns.lastModification'));\r\n $tableHeader.find('th[data-columntitle=\"modificationtimestamp\"]').attr('title', i18next.t('explorer.issues.tableColumns.lastModification'));\r\n $tableHeader.find('th[data-columntitle=\"deadlinetimestamp\"]').attr('title', i18next.t('explorer.issues.tableColumns.deadline'));\r\n $tableHeader.find('th[data-columntitle=\"state\"]').attr('title', i18next.t('explorer.issues.tableColumns.status'));\r\n $tableHeader.find('th[data-columntitle=\"priority\"]').attr('title', i18next.t('explorer.issues.tableColumns.priority'));\r\n $tableHeader.find('th[data-columntitle=\"teamsAndUsers\"]').attr('title', i18next.t('explorer.issues.tableColumns.teamsAndUsers'));\r\n $tableHeader.find('th[data-columntitle=\"checkpointCount\"]').attr('title', i18next.t('explorer.issues.tableColumns.checkpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedCheckpointCount\"]').attr('title', i18next.t('explorer.issues.tableColumns.collectedCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"openCheckpointCount\"]').attr('title', i18next.t('explorer.issues.tableColumns.openCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"requiredCheckpointCount\"]').attr('title', i18next.t('explorer.issues.tableColumns.requiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"collectedRequiredCheckpointCount\"]').attr('title', i18next.t('explorer.issues.tableColumns.collectedRequiredCheckpointCount'));\r\n $tableHeader.find('th[data-columntitle=\"estimatedEffort\"]').attr('title', i18next.t('explorer.issues.tableColumns.estimatedEffort'));\r\n }\r\n\r\n function initIssueTypeSelection() {\r\n if (!Client.Licenses.EnableInfoBoard) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"10\"]')\r\n .remove();\r\n }\r\n\r\n if (Tools.any(User.Rights, ['TMFT-TASKS', 'TMFT-TASKS-A', 'TMFT-TASKS-SC'], 'ID')) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"1\"]')\r\n .removeAttr('disabled');\r\n } else {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"1\"]')\r\n .attr('disabled', 'disabled');\r\n }\r\n\r\n if (Tools.any(User.Rights, ['TMFT-FORMS', 'TMFT-FORMS-A', 'TMFT-FORMS-SC'], 'ID')) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"3\"]')\r\n .removeAttr('disabled');\r\n } else {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"3\"]')\r\n .attr('disabled', 'disabled');\r\n }\r\n\r\n if (Tools.any(User.Rights, ['TMFT-NOTES', 'TMFT-NOTES-A', 'TMFT-NOTES-SC'], 'ID')) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"4\"]')\r\n .removeAttr('disabled');\r\n } else {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"4\"]')\r\n .attr('disabled', 'disabled');\r\n }\r\n\r\n if (Tools.any(User.Rights, ['TMFT-DISTURBANCES', 'TMFT-DISTURBANCES-A', 'TMFT-DISTURBANCES-SC'], 'ID')) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"5\"]')\r\n .removeAttr('disabled');\r\n } else {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"5\"]')\r\n .attr('disabled', 'disabled');\r\n }\r\n\r\n if (!Client.Licenses || !Client.Licenses.Investigations) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"8\"]')\r\n .addClass('hide');\r\n } else if (Tools.any(User.Rights, ['TMFT-INVESTIGATIONS', 'TMFT-INVESTIGATIONS-A', 'TMFT-INVESTIGATIONS-SC'], 'ID')) {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"8\"]')\r\n .removeClass('hide')\r\n .removeAttr('disabled');\r\n } else {\r\n $newIssueDropdown\r\n .find('.action-window-content-element[data-selection=\"8\"]')\r\n .removeClass('hide')\r\n .attr('disabled', 'disabled');\r\n }\r\n }\r\n\r\n function initTypes() {\r\n types = [];\r\n\r\n types.push({ OID: '1-2', Title: i18next.t('explorer.issues.typeFilter.tasks') });\r\n\r\n if (Client.Licenses && Client.Licenses.Surveys) {\r\n types.push({ OID: '3-7', Title: i18next.t('explorer.issues.typeFilter.forms') });\r\n } else {\r\n types.push({ OID: '3', Title: i18next.t('explorer.issues.typeFilter.forms') });\r\n }\r\n\r\n types.push({ OID: '4', Title: i18next.t('explorer.issues.typeFilter.notes') });\r\n\r\n if (Client.Licenses && Client.Licenses.Inspections) {\r\n types.push({ OID: '6', Title: i18next.t('explorer.issues.typeFilter.inspections') });\r\n }\r\n\r\n if (Client.Licenses && Client.Licenses.Investigations) {\r\n types.push({ OID: '8', Title: i18next.t('explorer.issues.typeFilter.investigations') });\r\n }\r\n\r\n types.push({ OID: '5', Title: i18next.t('explorer.issues.typeFilter.disturbances') });\r\n types.push({ OID: '9', Title: i18next.t('explorer.issues.typeFilter.disturbancesCompleted') });\r\n }\r\n\r\n function initTableColumns() {\r\n tableColumns = [\r\n {OID: '0', Title: i18next.t('explorer.issues.tableColumns.id')},\r\n {OID: '1', Title: i18next.t('explorer.issues.tableColumns.customId')},\r\n {OID: '2', Title: i18next.t('explorer.issues.tableColumns.title')},\r\n {OID: '15', Title: i18next.t('explorer.issues.tableColumns.elementCoding')},\r\n {OID: '3', Title: i18next.t('explorer.issues.tableColumns.creationTimestamp')},\r\n {OID: '4', Title: i18next.t('explorer.issues.tableColumns.lastModification')},\r\n {OID: '5', Title: i18next.t('explorer.issues.tableColumns.deadline')},\r\n {OID: '6', Title: i18next.t('explorer.issues.tableColumns.status')},\r\n {OID: '7', Title: i18next.t('explorer.issues.tableColumns.priority')},\r\n {OID: '8', Title: i18next.t('explorer.issues.tableColumns.teamsAndUsers')},\r\n {OID: '9', Title: i18next.t('explorer.issues.tableColumns.checkpointCount')},\r\n {OID: '10', Title: i18next.t('explorer.issues.tableColumns.collectedCheckpointCount')},\r\n {OID: '11', Title: i18next.t('explorer.issues.tableColumns.openCheckpointCount')},\r\n {OID: '12', Title: i18next.t('explorer.issues.tableColumns.requiredCheckpointCount')},\r\n {OID: '13', Title: i18next.t('explorer.issues.tableColumns.collectedRequiredCheckpointCount')},\r\n {OID: '14', Title: i18next.t('explorer.issues.tableColumns.estimatedEffort')}\r\n ];\r\n }\r\n\r\n function initUsers() {\r\n users = Tools.GetSelectableUsers(CurrentEntity.OID);\r\n users.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initTeams() {\r\n var teamInformation = Tools.GetSelectableTeams(CurrentEntity.OID);\r\n\r\n teams = teamInformation.Teams;\r\n visibleTeams = teamInformation.VisibleTeams;\r\n selectableTeams = teamInformation.SelectableTeams;\r\n }\r\n\r\n function initContacts() {\r\n contacts = $.map(Contacts || {}, function (contact) { return contact; });\r\n contacts.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initContactGroups() {\r\n contactGroups = $.map(ContactGroups || {}, function (contactGroup) { return contactGroup; });\r\n contactGroups.sort(Tools.SortByTitle);\r\n }\r\n\r\n function initStatus() {\r\n states = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Status) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initPriorities() {\r\n priorities = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Priority) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initKeywords() {\r\n keywords = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Keyword) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initClassifications() {\r\n classifications = $.map(Properties || {}, function (property) {\r\n if (property.Type === Enums.propertyType.Classification) {\r\n return property;\r\n }\r\n });\r\n }\r\n\r\n function initProcessingStatus() {\r\n processingStatus = [\r\n { Title: i18next.t('changeMode.panels.properties.processingStatuses.notYetDue'), ID: 0 },\r\n { Title: i18next.t('changeMode.panels.properties.processingStatuses.todayDue'), ID: 1 },\r\n { Title: i18next.t('changeMode.panels.properties.processingStatuses.overdue'), ID: 2 }\r\n ];\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n\r\n activeFilters = {\r\n TypeFilter: false,\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n StatusFilter: false,\r\n PriorityFilter: false,\r\n FormFilter: false,\r\n SchedulingFilter: false,\r\n ProcessingStatusFilter: false,\r\n PeriodFilter: false,\r\n SearchValue: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n\r\n issuesLoaded = 0;\r\n typeFilter = null;\r\n creatorFilter = null;\r\n userFilter = null;\r\n teamFilter = null;\r\n contactFilter = null;\r\n contactGroupFilter = null;\r\n keywordFilter = null;\r\n classificationFilter = null;\r\n statusFilter = null;\r\n priorityFilter = null;\r\n formFilter = null;\r\n schedulingFilter = null;\r\n processingStatusFilter = null;\r\n periodFilter = {};\r\n searchValue = null;\r\n hideNonResponsibleIssues = false;\r\n }\r\n\r\n function initPreselectedFilter(filter) {\r\n if (!Object.keys(filter || {}).length) {\r\n return;\r\n }\r\n\r\n resetFilters();\r\n\r\n userFilter = filter.Users || null;\r\n teamFilter = filter.Teams || null;\r\n periodFilter = filter.PeriodFilter || null;\r\n\r\n if (filter.status) {\r\n statusFilter = filter.status\r\n .map(function (oid) {\r\n return Tools.getFirst(states, oid, 'OID');\r\n })\r\n .filter(function (status) { return !!status; });\r\n }\r\n\r\n if (filter.processingStatus) {\r\n processingStatusFilter = filter.processingStatus;\r\n }\r\n }\r\n\r\n function initTypeFilter() {\r\n var $btnTitle = $typeFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (typeFilter || []).map(function (type) {\r\n return type.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === types.length ?\r\n i18next.t('explorer.issues.typeFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TypeFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.typeFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TypeFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initTableColumnSelection(selectedColumnsChanged) {\r\n var $btnTitle = $tableColumnSelection.find('.btn-title');\r\n var width, titles, text;\r\n\r\n var columnIds = Tools.GetOfficeSettingValue(Explorer.GetColumnsSettingName());\r\n\r\n if (columnIds && !selectedColumnsChanged) {\r\n columnIds = columnIds.split(',') || [];\r\n\r\n if (columnIds.length > 0) {\r\n tableColumnSelection = [];\r\n\r\n columnIds.forEach(function (oid) {\r\n var column = Tools.getFirst(tableColumns, oid, 'OID');\r\n\r\n if (!column) {\r\n return;\r\n }\r\n\r\n tableColumnSelection.push(column);\r\n });\r\n }\r\n } else if (!(tableColumnSelection || []).length && !selectedColumnsChanged) {\r\n width = $explorerIssues.width();\r\n\r\n tableColumnSelection = [\r\n Tools.getFirst(tableColumns, '0', 'OID'),\r\n Tools.getFirst(tableColumns, '2', 'OID'),\r\n Tools.getFirst(tableColumns, '3', 'OID'),\r\n Tools.getFirst(tableColumns, '4', 'OID')\r\n ];\r\n\r\n if (width > 800) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '5', 'OID'));\r\n }\r\n\r\n if (width > 970) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '7', 'OID'));\r\n }\r\n\r\n if (width > 1080) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '6', 'OID'));\r\n }\r\n\r\n if (width > 1190) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '1', 'OID'));\r\n }\r\n\r\n if (width > 1245) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '8', 'OID'));\r\n }\r\n\r\n if (width > 1335) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '9', 'OID'));\r\n }\r\n\r\n if (width > 1415) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '10', 'OID'));\r\n }\r\n\r\n if (width > 1525) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '11', 'OID'));\r\n }\r\n\r\n if (width > 1680) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '12', 'OID'));\r\n }\r\n\r\n if (width > 1795) {\r\n tableColumnSelection.push(Tools.getFirst(tableColumns, '13', 'OID'));\r\n }\r\n }\r\n\r\n titles = $.map(tableColumnSelection, function (tableColumn) {\r\n return tableColumn.Title;\r\n });\r\n\r\n text = !titles.length || titles.length === tableColumns.length ?\r\n i18next.t('explorer.issues.tableColumns.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initCreatorFilter() {\r\n var $btnTitle = $creatorFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (creatorFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === users.length ?\r\n i18next.t('explorer.issues.creatorFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.CreatorFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.creatorFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.CreatorFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initUserFilter() {\r\n var $btnTitle = $userFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (userFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === users.length ?\r\n i18next.t('explorer.issues.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initTeamFilter() {\r\n var $btnTitle = $teamFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (teamFilter || []).map(function (team) {\r\n return team.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === teams.length ?\r\n i18next.t('explorer.issues.teamFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TeamFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.teamFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TeamFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initContactFilter() {\r\n var $btnTitle, titles, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-issues-contact-filter-lbl').addClass('hide');\r\n $contactFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactFilter.find('.btn-title');\r\n\r\n titles = (contactFilter || []).map(function (contact) {\r\n return contact.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contacts.length ?\r\n i18next.t('explorer.issues.contactFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.contactFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n\r\n $('#explorer-issues-contact-filter-lbl').removeClass('hide');\r\n $contactFilter.removeClass('hide');\r\n\r\n setFilterState();\r\n }\r\n\r\n function initContactGroupFilter() {\r\n var $btnTitle, titles, text;\r\n\r\n if (!(Client.Licenses && Client.Licenses.Contacts)) {\r\n $('#explorer-issues-contact-group-filter-lbl').addClass('hide');\r\n $contactGroupFilter.addClass('hide');\r\n return;\r\n }\r\n\r\n $btnTitle = $contactGroupFilter.find('.btn-title');\r\n\r\n titles = (contactGroupFilter || []).map(function (contactGroup) {\r\n return contactGroup.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === contactGroups.length ?\r\n i18next.t('explorer.issues.contactGroupFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactGroupFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.contactGroupFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactGroupFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n\r\n $('#explorer-issues-contact-group-filter-lbl').removeClass('hide');\r\n $contactGroupFilter.removeClass('hide');\r\n\r\n setFilterState();\r\n }\r\n\r\n function initKeywordFilter() {\r\n var $btnTitle = $keywordFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (keywordFilter || []).map(function (keyword) {\r\n return keyword.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === keywords.length ?\r\n i18next.t('explorer.issues.keywordFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.KeywordFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.keywordFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.KeywordFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initClassificationFilter() {\r\n var $btnTitle = $classificationFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (classificationFilter || []).map(function (classification) {\r\n return classification.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === classifications.length ?\r\n i18next.t('explorer.issues.classificationFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ClassificationFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.classificationFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ClassificationFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initStatusFilter() {\r\n var $btnTitle = $statusFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (statusFilter || []).map(function (status) {\r\n return status.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === states.length ?\r\n i18next.t('explorer.issues.statusFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.StatusFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.statusFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.StatusFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initPriorityFilter() {\r\n var $btnTitle = $priorityFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (priorityFilter || []).map(function (priority) {\r\n return priority.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === priorities.length ?\r\n i18next.t('explorer.issues.priorityFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.PriorityFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.priorityFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.PriorityFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initFormFilter() {\r\n var $btnTitle = $formFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (formFilter || []).map(function (form) {\r\n return form.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.FormFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.formFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.FormFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initSchedulingFilter() {\r\n var $btnTitle = $schedulingFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (schedulingFilter || []).map(function (scheduling) {\r\n return scheduling.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.sort().join(', ');\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.SchedulingFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.schedulingFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.SchedulingFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initProcessingStatusFilter() {\r\n var $btnTitle = $processingStatusFilter.find('.btn-title');\r\n var titles, text;\r\n\r\n titles = (processingStatusFilter || []).map(function (id) {\r\n return (Tools.getFirst(processingStatus, id, 'ID') || {}).Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === processingStatus.length ?\r\n i18next.t('explorer.issues.processingStatusFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ProcessingStatusFilter = true;\r\n } else {\r\n text = i18next.t('explorer.issues.processingStatusFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ProcessingStatusFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n setFilterState();\r\n }\r\n\r\n function initHideNonResponsibleIssuesFilter() {\r\n var hasNoRight = Tools.contains(User.AllRights, 'SCMI', 'ID') ?\r\n false :\r\n !Tools.contains(User.AllRights, 'SAI', 'ID');\r\n\r\n $explorerIssues\r\n .find('#cb-explorer-issues-hide-non-responsible-issues')\r\n .toggleClass('hide', hasNoRight)\r\n .prop('checked', hideNonResponsibleIssues);\r\n\r\n $explorerIssues\r\n .find('#explorer-issues-hide-non-responsible-issues-lbl')\r\n .toggleClass('hide', hasNoRight);\r\n\r\n activeFilters.HideNonResponsibleIssues = hideNonResponsibleIssues;\r\n setFilterState();\r\n }\r\n\r\n function initSearch() {\r\n $search.val(searchValue);\r\n $search.attr('placeholder', i18next.t('explorer.search'));\r\n\r\n activeFilters.SearchValue = !!searchValue;\r\n setFilterState();\r\n }\r\n\r\n function initPeriodFilter() {\r\n var text;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n $periodFilter.addClass('filter-selected');\r\n activeFilters.PeriodFilter = true;\r\n\r\n text =\r\n (periodFilter.Start != null ? i18next.t('datePicker.from') + ' ' + periodFilter.Start.toLocaleString() : '') +\r\n ' ' +\r\n (periodFilter.End != null ? i18next.t('datePicker.to') + ' ' + periodFilter.End.toLocaleString() : '');\r\n } else {\r\n text = i18next.t('explorer.issues.formFilter.noSelection');\r\n\r\n $periodFilter.removeClass('filter-selected');\r\n activeFilters.PeriodFilter = false;\r\n }\r\n\r\n $periodFilter.html(text);\r\n setFilterState();\r\n }\r\n\r\n function unsetInteracts() {\r\n if (interacts.draggable) {\r\n interacts.draggable.unset();\r\n interacts.draggable = null;\r\n }\r\n\r\n if (interacts.droppable) {\r\n interacts.droppable.unset();\r\n interacts.droppable = null;\r\n }\r\n }\r\n\r\n function initIssueDragAndDrop() {\r\n content.views.removeDragAndDropToTreeHandlers();\r\n\r\n var $info;\r\n var selectedIssues;\r\n var movableIssues;\r\n var unmovableIssues;\r\n\r\n interacts.draggable = interact('#explorer-issues .issue.move-issue-enabled')\r\n .draggable({\r\n inertia: true,\r\n autoScroll: false,\r\n listeners: {\r\n move: function (evt) {\r\n var $target = $(evt.currentTarget);\r\n\r\n selectedIssues = getSelectedIssues();\r\n\r\n if (!selectedIssues.length) {\r\n var oid = $target.data('oid');\r\n var issue = issues[oid];\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n selectedIssues = [issue];\r\n }\r\n\r\n $info = $('#issue-moving-info');\r\n\r\n if (!$info.length) {\r\n var html = createMoveIssuesInformation(selectedIssues);\r\n $('body').append(html);\r\n $info = $('#issue-moving-info');\r\n }\r\n\r\n var x = evt.clientX + 5;\r\n var y = evt.clientY + 5;\r\n\r\n $info\r\n .css({ top: y, left: x })\r\n .data({ 'x': x, 'y': y });\r\n },\r\n end: function () {\r\n selectedIssues = null;\r\n movableIssues = null;\r\n unmovableIssues = null;\r\n\r\n if (!($info instanceof $)) {\r\n return;\r\n }\r\n\r\n $info.remove();\r\n }\r\n }\r\n });\r\n\r\n interacts.droppable = interact('#center-tree li')\r\n .dropzone({\r\n accept: '.issue.move-issue-enabled',\r\n checker: Tools.InteractJs.IsBeingDraggedOverTreeNode,\r\n ondragenter: function (evt) {\r\n var $dropZoneElement = $(evt.currentTarget);\r\n var locationOID = $dropZoneElement.data('id');\r\n\r\n if (!locationOID) {\r\n return;\r\n }\r\n\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[locationOID];\r\n\r\n if (!location) {\r\n return;\r\n }\r\n\r\n if (!selectedIssues.length) {\r\n return;\r\n }\r\n\r\n movableIssues = [];\r\n unmovableIssues = [];\r\n\r\n selectedIssues.forEach(function (issue) {\r\n var currentOU = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n\r\n if (!(currentOU && currentOU.Enabled)) {\r\n unmovableIssues.push(issue);\r\n return;\r\n }\r\n\r\n var editIssueRight = Tools.issue.getRightToEditIssueType(issue.Type);\r\n var userHasRightToDropHere = (location.Enabled || false) &&\r\n ressources.users.hasIssueEditRight(editIssueRight, issue, location.OID) &&\r\n issue.AssignedElementOID !== locationOID;\r\n\r\n if (userHasRightToDropHere &&\r\n (+issue.AssignedRecorditemID > 0 || !!issue.AssignedRecorditemOID) &&\r\n !ressources.users.hasRightAtLocation('CMC-ISSUE', issue.AssignedElementOID)) {\r\n userHasRightToDropHere = false;\r\n }\r\n\r\n if (userHasRightToDropHere) {\r\n movableIssues.push(issue);\r\n } else {\r\n unmovableIssues.push(issue);\r\n }\r\n });\r\n\r\n $info\r\n .toggleClass('drop-ok', unmovableIssues.length === 0)\r\n .toggleClass('drop-partially-ok', movableIssues.length !== selectedIssues.length && movableIssues.length > 0)\r\n .toggleClass('drop-not-ok', movableIssues.length === 0);\r\n\r\n if (movableIssues.length > 0) {\r\n $dropZoneElement\r\n .addClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n }\r\n },\r\n ondragleave: function (evt) {\r\n var $dropZoneElement = $(evt.currentTarget);\r\n\r\n movableIssues = null;\r\n unmovableIssues = null;\r\n\r\n $info.removeClass('drop-ok drop-not-ok');\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n },\r\n ondrop: function (evt) {\r\n if ((selectedIssues || []).length === 0) {\r\n return;\r\n }\r\n\r\n var $dropZoneElement = $(evt.currentTarget);\r\n\r\n if (selectedIssues.length === 1) {\r\n onMoveSingleIssue(selectedIssues[0], $dropZoneElement);\r\n } else if (movableIssues.length > 0) {\r\n onMoveMultipleIssues(movableIssues, unmovableIssues, $dropZoneElement);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function createMoveIssuesInformation(issues) {\r\n if (!(issues instanceof Array) || issues.length === 0) {\r\n return null;\r\n }\r\n\r\n var html = [\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '',\r\n '
    ',\r\n '
    '\r\n ];\r\n\r\n if (issues.length === 1) {\r\n var issue = issues[0];\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n var locationInfo = [];\r\n\r\n if (location) {\r\n locationInfo = [\r\n '

    ',\r\n '',\r\n location.Title,\r\n '

    '\r\n ];\r\n }\r\n\r\n html.push(\r\n Tools.GetIssueAbbreviation(issue), issue.ID, '.', issue.Revision, '
    ',\r\n '', Tools.escapeHtml(issue.Title) || i18next.t('misc.untitled'), '
    ',\r\n locationInfo.join('')\r\n );\r\n } else {\r\n html.push(\r\n '',\r\n issues.length, ' ', i18next.t('misc.issue', { count: issues.length }),\r\n ''\r\n );\r\n }\r\n\r\n html.push(\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function onMoveSingleIssue(issue, $dropZoneElement) {\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n var previousOrganizationUnit = DataManager.OrganizationUnitLoader.Data.DataMap[issue.AssignedElementOID];\r\n\r\n if (!(previousOrganizationUnit && previousOrganizationUnit.Enabled)) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.cannotMoveIssueFromInactiveOU.title'),\r\n text: i18next.t('explorer.issues.messages.cannotMoveIssueFromInactiveOU.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n var newOrganizationUnitOID = $dropZoneElement.data('id');\r\n\r\n if (issue.AssignedElementOID === newOrganizationUnitOID) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.cannotMoveIssueToSameLocation.title'),\r\n text: i18next.t('explorer.issues.messages.cannotMoveIssueToSameLocation.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!newOrganizationUnitOID) {\r\n return;\r\n }\r\n\r\n var newOrganizationUnit = DataManager.OrganizationUnitLoader.Data.DataMap[newOrganizationUnitOID];\r\n\r\n if (!newOrganizationUnit) {\r\n return;\r\n }\r\n\r\n if (!newOrganizationUnit.Enabled) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.cannotMoveIssueToDisabledLocation.title'),\r\n text: i18next.t('explorer.issues.messages.cannotMoveIssueToDisabledLocation.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!$dropZoneElement.hasClass('jquery-tree-node-drop')) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.cannotMoveIssue.title'),\r\n text: i18next.t('explorer.issues.messages.cannotMoveIssue.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n\r\n issue.AssignedElementOID = newOrganizationUnitOID;\r\n\r\n issue = Tools.issue.prepareIssueForWebService(issue);\r\n\r\n Tools.Spinner.show();\r\n\r\n return Tools.http.put('issues/' + issue.OID, issue)\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n }\r\n\r\n function onMoveMultipleIssues(movableIssues, unmovableIssues, $dropZoneElement) {\r\n var newLocationOID = $dropZoneElement.data('id');\r\n var newLocation = DataManager.OrganizationUnitLoader.Data.DataMap[newLocationOID];\r\n\r\n if (!newLocation) {\r\n return;\r\n }\r\n\r\n function moveIssues() {\r\n var preparedIssues = [];\r\n\r\n Tools.Spinner.show();\r\n\r\n movableIssues.forEach(function (issue) {\r\n issue.AssignedElementOID = newLocationOID;\r\n\r\n preparedIssues.push(Tools.issue.prepareIssueForWebService(issue));\r\n });\r\n\r\n return Tools.http.post('issues', preparedIssues);\r\n }\r\n\r\n $dropZoneElement.removeClass('jquery-tree-node-drop jquery-tree-node-drop-to');\r\n\r\n if (unmovableIssues.length) {\r\n var messageBoxOptions = {\r\n title: i18next.t('explorer.issues.messages.moveMultipleIssuesInfo.title'),\r\n text: i18next.t('explorer.issues.messages.moveMultipleIssuesInfo.text', { locationTitle: newLocation.Title }),\r\n abort: true\r\n };\r\n\r\n if (movableIssues.length > 0) {\r\n messageBoxOptions.onYes = function () {\r\n moveIssues()\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n };\r\n }\r\n\r\n unmovableIssues.sort(function (a, b) {\r\n return a.ID - b.ID;\r\n });\r\n\r\n messageBoxOptions.assignments = unmovableIssues.map(function (issue) {\r\n return [\r\n Tools.GetIssueAbbreviation(issue),\r\n issue.ID, ' - ', issue.Title || i18next.t('misc.noTitle')\r\n ].join('');\r\n });\r\n\r\n Tools.Message.Show(messageBoxOptions);\r\n } else {\r\n moveIssues()\r\n .then(reset, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n }\r\n }\r\n\r\n function resize() {\r\n if ($body.width() >= 1200) {\r\n $explorerIssues.find('.table-filter-column').css('min-width', '250px');\r\n } else {\r\n $explorerIssues.find('.table-filter-column.last-row').css('min-width', '350px');\r\n }\r\n\r\n $tableWrapper.css('top', $explorerIssues.children('.table-container').outerHeight() + 10);\r\n\r\n $newIssueDropdown.removeClass('active');\r\n $tableHeader.width($tableBody.width());\r\n }\r\n\r\n function initTable() {\r\n var $sortingCol;\r\n\r\n $tableBody.empty();\r\n\r\n $sortingCol = $tableHeader.find('[data-sorting]');\r\n\r\n sorting = $sortingCol.data('columntitle');\r\n sortingorder = $sortingCol.data('sorting');\r\n\r\n $selectAll.prop('checked', !!selectAll);\r\n\r\n if (tableColumnSelection.length && tableColumnSelection.length !== tableColumns.length) {\r\n tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(tableColumnSelection, tableColumn.OID, 'OID');\r\n var $col = $explorerIssues.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID));\r\n\r\n if (isChecked) {\r\n $col.removeClass('hide');\r\n } else {\r\n $col.addClass('hide');\r\n }\r\n });\r\n } else {\r\n $explorerIssues.find('col, th, td').removeClass('hide');\r\n }\r\n }\r\n\r\n function reset() {\r\n issuesLoaded = 0;\r\n issues = {};\r\n selectAll = false;\r\n\r\n if (Tools.contains(User.Rights, 'TMFT', 'ID')) {\r\n if (Tools.any(User.Rights, ['TMFT-TASKS', 'TMFT-FORMS', 'TMFT-NOTES', 'TMFT-DISTURBANCES',\r\n 'TMFT-TASKS-A', 'TMFT-FORMS-A', 'TMFT-NOTES-A', 'TMFT-DISTURBANCES-A',\r\n 'TMFT-TASKS-SC', 'TMFT-FORMS-SC', 'TMFT-NOTES-SC', 'TMFT-DISTURBANCES-SC'], 'ID') ||\r\n Client.Licenses &&\r\n Client.Licenses.Investigations &&\r\n Tools.any(User.Rights, ['TMFT-INVESTIGATIONS', 'TMFT-INVESTIGATIONS-A', 'TMFT-INVESTIGATIONS-SC'], 'ID')) {\r\n $newIssue.removeAttr('disabled');\r\n } else {\r\n $newIssue.attr('disabled', 'disabled');\r\n }\r\n } else {\r\n $newIssue.attr('disabled', 'disabled');\r\n }\r\n\r\n $printIssues.attr('disabled', 'disabled');\r\n $editIssues.attr('disabled', 'disabled');\r\n $selectAll.prop('checked', false);\r\n $tableBody.empty();\r\n\r\n update()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function unbindEvents() {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n $explorerIssues.off('click.toggleDropdown');\r\n $tableHeader.off('click.toggleSorting');\r\n $selectAll.off('change.toggleSelection');\r\n\r\n $resetFilters.off('click.resetFilters');\r\n $toggleControls.off('click.toggleControls');\r\n $newIssueDropdown.off('click.newIssue');\r\n $printIssues.off('click.printIssues');\r\n $editIssues.off('click.editIssues');\r\n $typeFilter.off('click.showTypeFilter');\r\n $tableColumnSelection.off('click.showTableColumnSelection');\r\n $creatorFilter.off('click.showCreatorFilter');\r\n $userFilter.off('click.showUserFilter');\r\n $teamFilter.off('click.showTeamFilter');\r\n $contactFilter.off('click.showContactFilter');\r\n $contactGroupFilter.off('click.showContactGroupFilter');\r\n $keywordFilter.off('click.showKeywordFilter');\r\n $classificationFilter.off('click.showClassificationFilter');\r\n $statusFilter.off('click.showStatusFilter');\r\n $priorityFilter.off('click.showPriorityFilter');\r\n $formFilter.off('click.showFormFilter');\r\n $schedulingFilter.off('click.showSchedulingFilter');\r\n\r\n $periodFilter.off('click.togglePeriodFilter');\r\n $explorerIssues.off('click.toggleProcessingStatusFilter');\r\n $processingStatusFilter.off('click.showProcessingStatusFilter');\r\n $explorerIssues.off('change.toggleHideNonResponsibleIssues');\r\n\r\n $search.off('input.search');\r\n\r\n $tableBody.off('change.toggleSelection');\r\n $tableBody.off('click.changeOrganisationUnit');\r\n $tableBody.off('click.showIssue');\r\n $tableBody.off('click.showPrintPreview');\r\n $tableBody.off('click.showImage');\r\n $tableBody.off('click.toggleSubscription');\r\n $tableBody.off('click.showComments');\r\n $tableBody.off('click.stopPropagation');\r\n $tableBody.off('mouseenter.showSubscriptionsAndLikes');\r\n $tableBody.off('mouseleave.hideSubscriptionsAndLikes');\r\n }\r\n\r\n function bindEvents() {\r\n $explorerIssues.on('click.toggleDropdown', '.dropdown-button', onToggleDropdown);\r\n $tableHeader.on('click.toggleSorting', '.sortable', onToggleSorting);\r\n $selectAll.on('change.toggleSelection', onToggleSelection);\r\n\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $toggleControls.on('click.toggleControls', onToggleControls);\r\n $newIssueDropdown.on('click.newIssue', '.action-window-content-element', onNewIssue);\r\n $printIssues.on('click.printIssues', onPrintIssues);\r\n $editIssues.on('click.editIssues', onEditIssues);\r\n $typeFilter.on('click.showTypeFilter', onShowTypeFilter);\r\n $tableColumnSelection.on('click.showTableColumnSelection', onShowTableColumnSelection);\r\n $creatorFilter.on('click.showCreatorFilter', onShowCreatorFilter);\r\n $userFilter.on('click.showUserFilter', onShowUserFilter);\r\n $teamFilter.on('click.showTeamFilter', onShowTeamFilter);\r\n $contactFilter.on('click.showContactFilter', onShowContactFilter);\r\n $contactGroupFilter.on('click.showContactGroupFilter', onShowContactGroupFilter);\r\n $keywordFilter.on('click.showKeywordFilter', onShowKeywordFilter);\r\n $classificationFilter.on('click.showClassificationFilter', onShowClassificationFilter);\r\n $statusFilter.on('click.showStatusFilter', onShowStatusFilter);\r\n $priorityFilter.on('click.showPriorityFilter', onShowPriorityFilter);\r\n $formFilter.on('click.showFormFilter', onShowFormFilter);\r\n $schedulingFilter.on('click.showSchedulingFilter', onShowSchedulingFilter);\r\n $periodFilter.on('click.togglePeriodFilter', onTogglePeriodFilter);\r\n $explorerIssues.on('click.toggleProcessingStatusFilter', '.explorer-issues-processing-status-filter', onToggleProcessingStatusFilter);\r\n $explorerIssues.on('change.toggleHideNonResponsibleIssues', '#cb-explorer-issues-hide-non-responsible-issues', onToggleHideNonResponsibleIssues);\r\n $search.on('input.search', onSearch);\r\n $processingStatusFilter.on('click.showProcessingStatusFilter', onShowProcessingStatusFilter);\r\n\r\n $tableBody.on('click.toggleSelection', 'input:checkbox', onToggleSelection);\r\n $tableBody.on('click.changeOrganisationUnit', '.issue a', onSelectOrganisationUnit);\r\n $tableBody.on('click.showIssue', '.issue', onShowIssue);\r\n $tableBody.on('click.showPrintPreview', '.print', onShowPrintPreview);\r\n $tableBody.on('click.showImage', '.image', onShowImage);\r\n $tableBody.on('click.toggleSubscription', '.abos', onToggleSubscription);\r\n $tableBody.on('click.showComments', '.commentlink', onShowComments);\r\n $tableBody.on('mouseenter.showSubscriptionsAndLikes', '.abos .details', onShowSubscriptionsAndLikes);\r\n $tableBody.on('mouseleave.hideSubscriptionsAndLikes', '.abos .details', onHideSubscriptionsAndLikes);\r\n }\r\n\r\n function onShowProcessingStatusFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.processingStatusFilter.title'),\r\n onApply: onSelectProcessingStatusFilter,\r\n checkedEntities: processingStatusFilter,\r\n treeOptions: {\r\n schema: { text: 'Title', id: 'ID'},\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(processingStatus, options);\r\n }\r\n\r\n function onSelectProcessingStatusFilter(processingStatusses) {\r\n processingStatusFilter = (processingStatusses || []).map(function (id) {\r\n return id;\r\n });\r\n\r\n initProcessingStatusFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onToggleDropdown(event) {\r\n var isButtonDisabled = $newIssue.attr('disabled') === 'disabled';\r\n var isDropdownDisabled = $newIssueDropdown.attr('disabled') === 'disabled';\r\n var isActive = !$newIssueDropdown.hasClass('active');\r\n\r\n if (isButtonDisabled) {\r\n return;\r\n }\r\n\r\n $newIssueDropdown.removeClass('active');\r\n DatePicker.Close();\r\n\r\n if (!isDropdownDisabled) {\r\n if (isActive) {\r\n $newIssueDropdown.addClass('active');\r\n }\r\n\r\n $body.off('click.hideDropdown', onHideDropdown);\r\n $body.one('click.hideDropdown', onHideDropdown);\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onHideDropdown() {\r\n $newIssueDropdown.removeClass('active');\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n initTable();\r\n\r\n update()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function onToggleControls() {\r\n var $tableFilterSelection = $explorerIssues.find('.table-filter-selection');\r\n\r\n if ($tableFilterSelection == null) {\r\n return;\r\n }\r\n\r\n var $controls = $tableFilterSelection.find('.toggle-table-controls');\r\n var $firstTableRow = $tableFilterSelection.find('.table-filter-column-first-row');\r\n var $filterColumns = $tableFilterSelection.find('.table-filter-column:not(.last-row)');\r\n var $lastRow = $tableFilterSelection.find('.table-filter-column:last-child');\r\n var $lastRowFilters = $lastRow.find('.table-filter:not(:first-child)');\r\n\r\n if ($tableFilterSelection.hasClass('reduced-filters')) {\r\n toggleControls = true;\r\n $tableFilterSelection.removeClass('reduced-filters');\r\n $tableFilterSelection.addClass('grid-row');\r\n $firstTableRow.removeClass('reduced-row');\r\n $filterColumns.removeClass('hidden');\r\n $lastRowFilters.removeClass('hidden');\r\n $firstTableRow.addClass('flexColumn');\r\n $filterColumns.find('.table-button').css('margin-bottom', 7);\r\n $firstTableRow.find('.table-button').css('margin-bottom', 7);\r\n $lastRow.addClass('flexColumn');\r\n $lastRow.removeClass('right');\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.hideFilters'));\r\n $controls.addClass('collapsed');\r\n $newIssueDropdown.css('top', 32);\r\n } else {\r\n toggleControls = false;\r\n $tableFilterSelection.addClass('reduced-filters');\r\n $firstTableRow.addClass('reduced-row');\r\n $filterColumns.addClass('hidden');\r\n $lastRowFilters.addClass('hidden');\r\n $firstTableRow.removeClass('flexColumn');\r\n $lastRow.removeClass('flexColumn');\r\n $lastRow.addClass('right');\r\n $firstTableRow.find('.table-button').css('margin-bottom', 0);\r\n\r\n $toggleControls.attr('title', i18next.t('explorer.toolbar.showFilters'));\r\n $controls.removeClass('collapsed');\r\n $newIssueDropdown.css('top', 34);\r\n }\r\n\r\n resize();\r\n }\r\n\r\n function onNewIssue(event) {\r\n var $this = $(this);\r\n var selection = $this.data('selection');\r\n\r\n if ($this.attr('disabled') === 'disabled') {\r\n return;\r\n }\r\n\r\n switch (selection) {\r\n case Enums.issueType.Form:\r\n createFormIssue();\r\n\r\n $newIssueDropdown.removeClass('active');\r\n event.stopPropagation();\r\n break;\r\n case Enums.issueType.Note:\r\n createNoteIssue();\r\n break;\r\n case Enums.issueType.Disturbance:\r\n createDisturbanceIssue();\r\n break;\r\n case Enums.issueType.Investigation:\r\n createInvestigationIssue();\r\n\r\n $newIssueDropdown.removeClass('active');\r\n event.stopPropagation();\r\n break;\r\n case 10: // Dummy-Type für Auswahl\r\n createIssueTemplate();\r\n break;\r\n default:\r\n createTaskIssue();\r\n break;\r\n }\r\n }\r\n\r\n function createTaskIssue() {\r\n if (!states.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noStatusAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noStatusAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!priorities.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noPriorityAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noPriorityAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n IssueViewer.Create(Enums.issueType.Incident, reset);\r\n }\r\n\r\n function createFormIssue() {\r\n if (!states.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noStatusAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noStatusAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!priorities.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noPriorityAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noPriorityAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n Tools.Spinner.show();\r\n Tools.DataManager.FormLoader\r\n .GetAll()\r\n .then(function (data) {\r\n if (!data) {\r\n return;\r\n }\r\n\r\n if (!data.Data.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noFormAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noFormAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n Tools.WindowWrappers.ShowFormSelectionForLocation({\r\n selectMultiple: false,\r\n disableEmptyForms: true,\r\n disableSurveys: true,\r\n windowCaption: i18next.t('explorer.issues.formFilter.titleSingular'),\r\n buttons: {\r\n showAllForms: i18next.t('explorer.issues.formFilter.showAllForms'),\r\n showAssignedFormsOnly: i18next.t('explorer.issues.formFilter.showAssignedFormsOnly')\r\n },\r\n onApplySelection: function (formIdentifier) {\r\n showFormIssueViewer(data.Map[formIdentifier]);\r\n }\r\n });\r\n });\r\n }\r\n\r\n function createNoteIssue() {\r\n IssueViewer.Create(Enums.issueType.Note, reset);\r\n }\r\n\r\n function createDisturbanceIssue() {\r\n IssueViewer.Create(Enums.issueType.Disturbance, reset);\r\n }\r\n\r\n function createIssueTemplate() {\r\n IssueViewer.Create(Enums.issueType.Incident, reset, { IsTemplate: true });\r\n }\r\n\r\n function createInvestigationIssue() {\r\n if (!states.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noStatusAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noStatusAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!priorities.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noPriorityAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noPriorityAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n Tools.Spinner.show();\r\n Tools.DataManager.FormLoader\r\n .GetAll()\r\n .then(function (data) {\r\n Tools.Spinner.hide();\r\n\r\n if (!data) {\r\n return;\r\n }\r\n\r\n var investigationForms = (data.Data || []).filter(function (form) {\r\n return form.IsInvestigation && form.HasCheckpoints;\r\n });\r\n\r\n if (!investigationForms.length) {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.issues.messages.noFormAvailable.title'),\r\n text: i18next.t('explorer.issues.messages.noFormAvailable.text'),\r\n ok: true\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (investigationForms.length > 1) {\r\n var formsInHierarchy = [];\r\n\r\n if ((investigationForms || []).length) {\r\n for (var lCnt = 0, lLen = investigationForms.length; lCnt < lLen; lCnt++) {\r\n var form = investigationForms[lCnt];\r\n\r\n if (form) {\r\n do {\r\n if (!Tools.contains(formsInHierarchy, form.OID) && form.Type === Enums.elementType.Form) {\r\n formsInHierarchy.push(form.OID);\r\n }\r\n } while ((form = form.Parent));\r\n }\r\n }\r\n }\r\n\r\n var options = {\r\n title: i18next.t('explorer.issues.add.selectInvestigation'),\r\n selectMultiple: false,\r\n treeOptions: {\r\n opened: true,\r\n selectable: function (entity) {\r\n return Tools.contains(investigationForms, entity.OID, 'OID');\r\n },\r\n schema: function (entity) {\r\n return {\r\n id: entity.OID,\r\n text: entity.Title,\r\n color: entity.Color,\r\n children: entity.Children\r\n };\r\n },\r\n filter: function (entity) {\r\n return entity.Type === Enums.elementType.Form && Tools.contains(formsInHierarchy, entity.OID);\r\n }\r\n },\r\n onSelect: function (formIdentifier) {\r\n showFormIssueViewer(data.Map[formIdentifier]);\r\n }\r\n };\r\n\r\n TreePicker.Show(data.Root, options);\r\n } else {\r\n showFormIssueViewer(data.Map[investigationForms[0].OID]);\r\n }\r\n });\r\n }\r\n\r\n function showFormIssueViewer(form) {\r\n Tools.Spinner.hide();\r\n\r\n if (!form) {\r\n return;\r\n }\r\n\r\n var issueType = form.IsInspection ?\r\n Enums.issueType.Inspection :\r\n form.IsInvestigation ? Enums.issueType.Investigation :\r\n Enums.issueType.Form;\r\n\r\n IssueViewer.Create(issueType, reset, { FormOID: form.OID });\r\n }\r\n\r\n function onPrintIssues() {\r\n var selectedIssues = getSelectedIssues();\r\n\r\n if (selectedIssues.length) {\r\n PrintPreview.Show({\r\n Issues: selectedIssues,\r\n Type: 'Issue'\r\n });\r\n }\r\n }\r\n\r\n function onEditIssues() {\r\n var selectedIssues = getSelectedIssues();\r\n\r\n if (selectedIssues.length) {\r\n IssuesEditor.Show(selectedIssues, function(modifications) {\r\n if (!modifications) {\r\n return;\r\n }\r\n\r\n reset();\r\n });\r\n }\r\n }\r\n\r\n function getSelectedIssues() {\r\n var $selectedIssues = $tableBody.find('input:checked');\r\n\r\n return $.map($selectedIssues, function (cb) {\r\n var $tr = $(cb).closest('.issue');\r\n var issueOID = $tr.data('oid');\r\n\r\n return issues[issueOID];\r\n });\r\n }\r\n\r\n function onShowTypeFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.typeFilter.title'),\r\n onApply: onSelectTypeFilter,\r\n checkedEntities: typeFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(types, options);\r\n }\r\n\r\n function onSelectTypeFilter(selectedTypes) {\r\n typeFilter = (selectedTypes || []).map(function (oid) {\r\n return Tools.getFirst(types, oid, 'OID');\r\n });\r\n\r\n initTypeFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTableColumnSelection() {\r\n var options = {\r\n title: i18next.t('explorer.issues.tableColumns.selectColumns'),\r\n onApply: onSelectTableColumns,\r\n checkedEntities: tableColumnSelection,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(tableColumns, options);\r\n }\r\n\r\n function onSelectTableColumns(selectedTableColumns) {\r\n tableColumnSelection = $.map(selectedTableColumns || [], function (oid) {\r\n return Tools.getFirst(tableColumns, oid, 'OID');\r\n });\r\n\r\n if (tableColumnSelection.length && tableColumnSelection.length !== tableColumns.length) {\r\n tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(tableColumnSelection, tableColumn.OID, 'OID');\r\n var $col = $explorerIssues.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID));\r\n\r\n if (isChecked) {\r\n $col.removeClass('hide');\r\n } else {\r\n $col.addClass('hide');\r\n }\r\n });\r\n } else {\r\n $explorerIssues.find('col, th, td').removeClass('hide');\r\n }\r\n\r\n var allColumnIDs = tableColumns.map(function(entity) {\r\n return entity.OID\r\n }) || [];\r\n\r\n var selectedColumns = (selectedTableColumns || []).join(',') || allColumnIDs.join(',');\r\n\r\n Tools.UpdateOfficeUserSettings(Explorer.GetColumnsSettingName(), selectedColumns)\r\n .then(function () {\r\n initTableColumnSelection(true);\r\n resize();\r\n });\r\n }\r\n\r\n function onShowCreatorFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.creatorFilter.title'),\r\n onApply: onSelectCreatorFilter,\r\n checkedEntities: creatorFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n }\r\n\r\n function onSelectCreatorFilter(selectedUsers) {\r\n creatorFilter = (selectedUsers || []).map(function (oid) {\r\n return Tools.getFirst(users, oid, 'OID');\r\n });\r\n\r\n initCreatorFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowUserFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.userFilter.title'),\r\n onApply: onSelectUserFilter,\r\n checkedEntities: userFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(users, options);\r\n }\r\n\r\n function onSelectUserFilter(selectedUsers) {\r\n userFilter = (selectedUsers || []).map(function (oid) {\r\n return Tools.getFirst(users, oid, 'OID');\r\n });\r\n\r\n initUserFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTeamFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.teamFilter.title'),\r\n onApply: onSelectTeamFilter,\r\n checkedEntities: teamFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: {\r\n fullrow: true,\r\n disabled: userCanAssignAllTeamsAndUsers ? null : function (node) {\r\n if (!selectableTeams || !node || !node.entity) {\r\n return false;\r\n }\r\n\r\n var team = node.entity;\r\n\r\n return selectableTeams.indexOf(team.OID) === -1;\r\n }\r\n },\r\n filter: userCanAssignAllTeamsAndUsers ? null : function (team) {\r\n if (!visibleTeams || !team) {\r\n return false;\r\n }\r\n\r\n return visibleTeams.indexOf(team.OID) > -1;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(RootTeam, options);\r\n }\r\n\r\n function onSelectTeamFilter(selectedTeams) {\r\n teamFilter = (selectedTeams || []).map(function (oid) {\r\n return Tools.getFirst(teams, oid, 'OID');\r\n });\r\n\r\n initTeamFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowContactFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.contactFilter.title'),\r\n onApply: onSelectContactFilter,\r\n checkedEntities: contactFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contacts, options);\r\n }\r\n\r\n function onSelectContactFilter(selectedContacts) {\r\n contactFilter = (selectedContacts || []).map(function (oid) {\r\n return Tools.getFirst(contacts, oid, 'OID');\r\n });\r\n\r\n initContactFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowContactGroupFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.contactGroupFilter.title'),\r\n onApply: onSelectContactGroupFilter,\r\n checkedEntities: contactGroupFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contactGroups, options);\r\n }\r\n\r\n function onSelectContactGroupFilter(selectedContactGroups) {\r\n contactGroupFilter = (selectedContactGroups || []).map(function (oid) {\r\n return Tools.getFirst(contactGroups, oid, 'OID');\r\n });\r\n\r\n initContactGroupFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowKeywordFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.keywordFilter.title'),\r\n onApply: onSelectKeywordFilter,\r\n checkedEntities: keywordFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Keywords, options);\r\n }\r\n\r\n function onSelectKeywordFilter(selectedKeywords) {\r\n keywordFilter = (selectedKeywords || []).map(function (oid) {\r\n return Tools.getFirst(keywords, oid, 'OID');\r\n });\r\n\r\n initKeywordFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowClassificationFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.classificationFilter.title'),\r\n onApply: onSelectClassificationFilter,\r\n checkedEntities: classificationFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Classifications, options);\r\n }\r\n\r\n function onSelectClassificationFilter(selectedClassifications) {\r\n classificationFilter = (selectedClassifications || []).map(function (oid) {\r\n return Tools.getFirst(classifications, oid, 'OID');\r\n });\r\n\r\n initClassificationFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowStatusFilter() {\r\n Tools.WindowWrappers.ShowStatusSelection({\r\n selectedStatusses: statusFilter,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.issues.statusFilter.title'),\r\n showCheckbox: true,\r\n onApplySelection: onSelectStatusFilter,\r\n statusState: Enums.StatusState.Open\r\n });\r\n }\r\n\r\n function onSelectStatusFilter(selectedStatus) {\r\n statusFilter = (selectedStatus || []).map(function (oid) {\r\n return Tools.getFirst(states, oid, 'OID');\r\n });\r\n\r\n initStatusFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowPriorityFilter() {\r\n var options = {\r\n title: i18next.t('explorer.issues.priorityFilter.title'),\r\n onApply: onSelectPriorityFilter,\r\n checkedEntities: priorityFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(Priorities, options);\r\n }\r\n\r\n function onSelectPriorityFilter(selectedPriorities) {\r\n priorityFilter = (selectedPriorities || []).map(function (oid) {\r\n return Tools.getFirst(priorities, oid, 'OID');\r\n });\r\n\r\n initPriorityFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowFormFilter() {\r\n Tools.WindowWrappers.ShowFormSelectionForLocation({\r\n selectedForms: formFilter,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.issues.formFilter.title'),\r\n buttons: {\r\n showAllForms: i18next.t('explorer.issues.formFilter.showAllForms'),\r\n showAssignedFormsOnly: i18next.t('explorer.issues.formFilter.showAssignedFormsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: onSelectFormFilter\r\n });\r\n }\r\n\r\n function onSelectFormFilter(selectedForms) {\r\n formFilter = (selectedForms || []).map(function (oid) {\r\n return DataManager.FormLoader.Data.DataMap[oid];\r\n });\r\n\r\n initFormFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowSchedulingFilter() {\r\n Tools.WindowWrappers.ShowSchedulingSelectionForLocation({\r\n selectedSchedulings: schedulingFilter,\r\n selectMultiple: true,\r\n windowCaption: i18next.t('explorer.issues.schedulingFilter.title'),\r\n buttons: {\r\n showAllSchedulings: i18next.t('explorer.issues.schedulingFilter.showAllSchedulings'),\r\n showAssignedSchedulingsOnly: i18next.t('explorer.issues.schedulingFilter.showAssignedSchedulingsOnly')\r\n },\r\n showCheckbox: true,\r\n onApplySelection: onSelectSchedulingFilter\r\n });\r\n }\r\n\r\n function onSelectSchedulingFilter(selectedSchedulings) {\r\n schedulingFilter = (selectedSchedulings || []).map(function (oid) {\r\n return DataManager.SchedulingLoader.Data.DataMap[oid];\r\n });\r\n\r\n initSchedulingFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onTogglePeriodFilter(event) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('active')) {\r\n DatePicker.Close();\r\n return;\r\n }\r\n\r\n $this.addClass('active');\r\n $newIssueDropdown.removeClass('active');\r\n\r\n DatePicker.Show(this, {\r\n mode: 2,\r\n withTime: true,\r\n noDateAllowed: true,\r\n offsetY: 28,\r\n closeElement: 'body',\r\n deactivatable: true,\r\n titleElement: $this,\r\n dateTypes: [ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ],\r\n selectedType: Tools.contains([ Enums.DatePickerTypes.Creation, Enums.DatePickerTypes.Modification, Enums.DatePickerTypes.Deadline ], periodFilter.CurrentType) ?\r\n periodFilter.CurrentType :\r\n Enums.DatePickerTypes.Modification,\r\n beforeShow: function () {\r\n DatePicker.SetDate(periodFilter.Start, periodFilter.End);\r\n },\r\n end: function (filter) {\r\n periodFilter = filter;\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.Start) {\r\n periodFilter.Start = new Date(periodFilter.Start.setSeconds(0));\r\n }\r\n\r\n if (periodFilter.End) {\r\n periodFilter.End = new Date(periodFilter.End.setSeconds(59));\r\n }\r\n\r\n $periodFilter.addClass('filter-selected');\r\n activeFilters.PeriodFilter = true;\r\n } else {\r\n $periodFilter.removeClass('filter-selected');\r\n activeFilters.PeriodFilter = false;\r\n }\r\n\r\n DatePicker.Close();\r\n setFilterState();\r\n resize();\r\n reset();\r\n },\r\n onDatePickerClose: function () {\r\n $this.removeClass('active');\r\n }\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleProcessingStatusFilter() {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('selected')) {\r\n processingStatusFilter = Tools.remove(processingStatusFilter, $this.data('status'));\r\n } else {\r\n processingStatusFilter = Tools.addUnique(processingStatusFilter, $this.data('status'));\r\n }\r\n\r\n initProcessingStatusFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onSearch() {\r\n clearTimeout(searchTimeout);\r\n\r\n searchTimeout = setTimeout(function () {\r\n searchValue = $search.val().trim();\r\n activeFilters.SearchValue = !!searchValue;\r\n setFilterState();\r\n resize();\r\n reset();\r\n }, 500);\r\n }\r\n\r\n function onToggleHideNonResponsibleIssues() {\r\n hideNonResponsibleIssues = !hideNonResponsibleIssues;\r\n activeFilters.HideNonResponsibleIssues = hideNonResponsibleIssues;\r\n setFilterState();\r\n reset();\r\n }\r\n\r\n function onScroll() {\r\n var wrapperHeight = $tableWrapper.innerHeight();\r\n var tableHeight = $tableBody.outerHeight(false);\r\n var scrollPosition = $tableWrapper.scrollTop();\r\n\r\n if (tableHeight - wrapperHeight - scrollPosition <= 300) {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n update();\r\n }\r\n }\r\n\r\n function onToggleSorting() {\r\n var $this = $(this);\r\n\r\n sorting = $this.attr('data-columntitle');\r\n sortingorder = $this.attr('data-sorting');\r\n\r\n sortingorder = sortingorder === 'desc' ? 'asc' : 'desc';\r\n $this.siblings().removeAttr('data-sorting');\r\n $this.attr('data-sorting', sortingorder);\r\n\r\n reset();\r\n }\r\n\r\n function onToggleSelection(event) {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('select-all')) {\r\n selectAll = $selectAll.prop('checked');\r\n\r\n $tableBody.find('input:checkbox').prop('checked', !!selectAll);\r\n } else {\r\n selectAll = false;\r\n $selectAll.prop('checked', false);\r\n }\r\n\r\n if ($tableBody.find('input:checked').length) {\r\n $printIssues.removeAttr('disabled');\r\n\r\n if (User && User.LicenseType !== Enums.LicenseType.ViewRight) {\r\n $editIssues.removeAttr('disabled');\r\n }\r\n } else {\r\n $printIssues.attr('disabled', 'disabled');\r\n $editIssues.attr('disabled', 'disabled');\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n\r\n function onSelectOrganisationUnit(event) {\r\n event.stopPropagation();\r\n }\r\n\r\n function onShowIssue(event) {\r\n var $this = $(this);\r\n var issueID = $this.data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged);\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onCommentsChanged(changeInfo) {\r\n if (!changeInfo) {\r\n return;\r\n }\r\n\r\n var issue = issues[changeInfo.IssueOID];\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n issue.Comments = Tools.issue.prepareCommentsForWebApp(changeInfo.Comments);\r\n\r\n var $issue = $tableWrapper.find('tr[data-oid=\"' + issue.OID + '\"]');\r\n\r\n if (!$issue.length) {\r\n return;\r\n }\r\n\r\n $issue.find('.commentdetails').remove();\r\n\r\n var commentsMarkup = renderComments(issue);\r\n $issue.find('.location').after(commentsMarkup);\r\n }\r\n\r\n function onShowImage(event) {\r\n var $this = $(this);\r\n var filename = $this.data('filename');\r\n var issueOID = $this.parent().data('oid');\r\n var issue = issues[issueOID];\r\n\r\n if (issue) {\r\n var files = issue.Files || [];\r\n\r\n if (!files.length && issue.AdditionalData && issue.AdditionalData.CheckpointPreviewImages) {\r\n var previewImagesFromCheckpoints = issue.AdditionalData.CheckpointPreviewImages;\r\n // Indices für Vorschaubilder aufsteigend sortieren\r\n var indices = Object.keys(previewImagesFromCheckpoints).sort(function(a, b) { return +a - +b; });\r\n\r\n for (var i = 0; i < indices.length; i++) {\r\n var key = indices[i]\r\n\r\n const previewImage = previewImagesFromCheckpoints[key];\r\n if (previewImage && previewImage.Filename === filename) {\r\n files.push(previewImage);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n ImageViewer.Init({\r\n filelist: files,\r\n indexFilename: filename,\r\n sTitle: issue.Title || '',\r\n sUserOID: issue.Editor ? issue.Editor.OID : null,\r\n sTimestamp: issue.ModificationTimestamp\r\n });\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowPrintPreview(event) {\r\n var issueOID = $(this).closest('.issue').data('oid');\r\n var issue = issues[issueOID];\r\n\r\n PrintPreview.Show({\r\n Issue: issue,\r\n Type: 'Issue'\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleSubscription(event) {\r\n var $this = $(this);\r\n var $tr = $this.parents('tr');\r\n var issueOID = $tr.data('oid');\r\n var subscribe = !$this.data('isabo');\r\n var issue;\r\n\r\n $('#gfx-tooltip').addClass('hide');\r\n\r\n if ((issue = issues[issueOID])) {\r\n Tools.Spinner.show();\r\n\r\n var method = 'issues/{0}/{1}'.format(issue.ID, subscribe ? 'subscribenotifications' : 'unsubscribenotifications');\r\n\r\n Tools.http.post(method, null, function () {\r\n issue.Recipients = subscribe ?\r\n Tools.addUnique(issue.Recipients, User.OID) :\r\n Tools.remove(issue.Recipients, User.OID);\r\n\r\n $this.replaceWith(renderSubscription(issue.Recipients));\r\n\r\n Tools.Spinner.hide();\r\n }, Tools.Spinner.hide);\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowSubscriptionsAndLikes(event) {\r\n var $tooltip = $('#gfx-tooltip');\r\n var $this = $(this);\r\n var offset = $this.offset();\r\n var abos, subscribers;\r\n\r\n abos = ($this.data('abos') || '').split('|');\r\n\r\n subscribers = $.map(abos, function (oid) {\r\n var subscriber = Users[oid] || Contacts[oid];\r\n\r\n if (subscriber) {\r\n return subscriber.Fullname;\r\n }\r\n });\r\n\r\n subscribers.sort(Tools.SortStringArray);\r\n\r\n if (subscribers.length > 10) {\r\n subscribers = subscribers.slice(0, 10);\r\n subscribers.push('+ {0} {1}'.format(\r\n abos.length - 10,\r\n i18next.t('misc.more')));\r\n }\r\n\r\n $tooltip.html(subscribers.join('
    '));\r\n $tooltip.removeClass('hide');\r\n $tooltip.attr('arrow', 1);\r\n $tooltip.css({\r\n left: offset.left - $tooltip.outerWidth(false) / 2 + 8,\r\n top: offset.top - $tooltip.outerHeight(false) - 8\r\n });\r\n }\r\n\r\n function onHideSubscriptionsAndLikes() {\r\n $('#gfx-tooltip').addClass('hide');\r\n }\r\n\r\n function onShowComments(event) {\r\n var $this = $(this);\r\n var issueID = $this.parents('tr').data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged, { Panel: 'comments' });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function update() {\r\n if (updateRequest) {\r\n updateRequest.abort();\r\n updateRequest = null;\r\n }\r\n\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n Tools.Spinner.show();\r\n\r\n var currentMenuItem = Explorer.GetCurrentTab();\r\n var params = createParams(currentMenuItem);\r\n\r\n if (!params) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n Explorer.SetTabCounterLoading(currentMenuItem.OID);\r\n\r\n return (updateRequest = load(params))\r\n .then(prepareData, function (xhr) {\r\n Explorer.SetTabCounter(currentMenuItem.OID, 0);\r\n\r\n if (xhr) {\r\n Tools.Spinner.hide();\r\n }\r\n\r\n return Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(appendIssues)\r\n .then(function (data) {\r\n updateRequest = null;\r\n\r\n if (!data) {\r\n Explorer.SetTabCounter(currentMenuItem.OID, 0);\r\n\r\n return null;\r\n }\r\n\r\n Explorer.SetTabCounter(currentMenuItem.OID, data.IssueCount);\r\n setProcessingStatus(data.SelectedLocationProcessingStatus);\r\n\r\n $tableBody.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n\r\n initIssueDragAndDrop();\r\n\r\n if (data.Issues.length >= params[0].Take) {\r\n $tableWrapper.on('scroll.infiniteScroll', onScroll);\r\n }\r\n\r\n Tools.Spinner.hide();\r\n\r\n return data;\r\n });\r\n }\r\n\r\n function appendIssues(data) {\r\n var html = [];\r\n\r\n if (!issuesLoaded) {\r\n $tableBody.html('{0}'.format(\r\n i18next.t('explorer.issues.noDataAvailable')));\r\n } else {\r\n html = $.map(data.Issues || [], renderIssue);\r\n\r\n $tableBody.append(html.join(''));\r\n }\r\n\r\n $tableHeader.width($tableBody.width());\r\n\r\n return data;\r\n }\r\n\r\n function renderIssue(issue) {\r\n var html = [];\r\n var now = new Date();\r\n var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);\r\n var cssClasses;\r\n\r\n if (!issue.DeadlineTimestamp) {\r\n cssClasses = 'issue marker marker-yellow';\r\n } else if (issue.DeadlineTimestamp.getTime() < now.getTime()) {\r\n cssClasses = 'issue marker marker-red';\r\n } else if (issue.DeadlineTimestamp.getTime() < tomorrow.getTime()) {\r\n cssClasses = 'issue marker marker-yellow';\r\n } else {\r\n cssClasses = 'issue marker marker-green';\r\n }\r\n\r\n var editIssueRights = Tools.issue.getRightToEditIssueType(issue.Type);\r\n var editIssues = ressources.users.hasIssueEditRight(editIssueRights, issue);\r\n\r\n if (editIssues &&\r\n (+issue.AssignedRecorditemID > 0 || !!issue.AssignedRecorditemOID) &&\r\n !ressources.users.hasRightAtLocation('CMC-ISSUE', issue.AssignedElementOID)) {\r\n editIssues = false;\r\n }\r\n\r\n var editIssueLocation = editIssues && ressources.users.hasIssueEditRight('TMFT-LOCATION', issue);\r\n\r\n if (editIssueLocation) {\r\n cssClasses += ' move-issue-enabled';\r\n }\r\n\r\n html.push(''\r\n .format(cssClasses, issue.OID, issue.ID, issue.AssignedElementOID)\r\n );\r\n\r\n html.push(renderCheckbox(issue));\r\n\r\n html.push(renderGenericIssueInformation(issue));\r\n html.push(renderComments(issue));\r\n\r\n if (issue.Image) {\r\n html.push(renderImage(issue.Image));\r\n }\r\n\r\n html.push(renderCoding(issue.FormCoding));\r\n html.push(renderCreation(issue.CreationTimestamp, issue.Creator));\r\n html.push(renderModification(issue.ModificationTimestamp, issue.Editor));\r\n html.push(renderDeadline(issue.DeadlineTimestamp));\r\n html.push(renderState(issue.State));\r\n html.push(renderPriority(issue.Priority));\r\n\r\n var assignedUsers = (issue.ResponsibilityAssignments || {}).Users || {};\r\n var assignedTeams = (issue.ResponsibilityAssignments || {}).Teams || {};\r\n\r\n html.push(renderTeamsAndUsers(assignedUsers, assignedTeams));\r\n html.push(renderParameterCount(issue));\r\n html.push(renderCollectedParameterCount(issue));\r\n html.push(renderOpenParameterCount(issue));\r\n html.push(renderRequiredParameterCount(issue));\r\n html.push(renderCollectedRequiredParameterCount(issue));\r\n html.push(renderEstimatedEffort(issue));\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderCheckbox(issue) {\r\n var html = [];\r\n\r\n html.push('');\r\n html.push(''.format(issue.ID, selectAll ? ' checked' : ''));\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderGenericIssueInformation(issue) {\r\n var html = [];\r\n var abbr = Tools.GetIssueAbbreviation(issue);\r\n var icon = getIssueIcon(issue);\r\n var mailTokens = ((issue.AdditionalData || {}).MailToken || '').split('|');\r\n var show, mailAddresses;\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '0', 'OID');\r\n\r\n html.push('{1}{2}.{3}'\r\n .format(\r\n show ? '' : ' class=\"hide\"',\r\n abbr,\r\n issue.ID,\r\n issue.Revision));\r\n\r\n html.push(''.format(icon));\r\n html.push('');\r\n html.push('');\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '1', 'OID');\r\n\r\n html.push('{1}'\r\n .format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CustomID));\r\n\r\n show = !tableColumnSelection || Tools.contains(tableColumnSelection, '2', 'OID');\r\n\r\n html.push('{2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.Image ? '' : ' colspan=\"2\"',\r\n issue.Title || i18next.t('misc.untitled')));\r\n\r\n if (mailTokens.length > 1) {\r\n mailAddresses = mailTokens.slice(1).join(', ');\r\n\r\n html.push('

    {0}

    '.format(mailAddresses));\r\n }\r\n\r\n if (issue.InvestigationStatusInformation) {\r\n var errorText = issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ?\r\n Tools.issue.getInvestigationErrorText(issue.InvestigationStatusInformation.ErrorCode) :\r\n null;\r\n\r\n html.push('

    {2}{3}

    '\r\n .format(\r\n issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ? ' with-error' : '',\r\n i18next.t('misc.investigationStatus.helpText'),\r\n Tools.issue.getInvestigationStatusText(issue.InvestigationStatusInformation.Status),\r\n !!errorText ? (' (' + errorText + ')') : ''\r\n )\r\n );\r\n }\r\n\r\n if (issue.LocationPath) {\r\n html.push('

    {0}

    '.format(issue.LocationPath));\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderComments(issue) {\r\n var html = [];\r\n\r\n html.push('

    ');\r\n html.push(renderSubscription(issue.Recipients));\r\n html.push(' - {0}

    '.format(i18next.t('misc.comment_plural')));\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderSubscription(recipients) {\r\n if (Tools.contains(recipients, User.OID)) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.unsubscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n } else if ((recipients || []).length) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.subscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n }\r\n\r\n return '{0}'.format(i18next.t('misc.subscribe'));\r\n }\r\n\r\n function renderImage(image) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '2', 'OID');\r\n var html = [''.format(image.Filename, show ? '' : ' hide')];\r\n\r\n if (image.Marks) {\r\n var viewboxRegex = /]*width=\"(\\d+)\"[^>]*height=\"(\\d+)\"[^>]*>(.*)<\\/svg>/ig;\r\n var pathRegex = /\\/]+/ig;\r\n var paths = [];\r\n var match = viewboxRegex.exec(image.Marks);\r\n\r\n if (!match || match.length !== 4) {\r\n return;\r\n }\r\n\r\n var width = parseInt(match[1], 10);\r\n var height = parseInt(match[2], 10);\r\n var svgContent = match[3];\r\n\r\n do {\r\n if ((match = pathRegex.exec(image.Marks))) {\r\n paths.push(match[0].trim() + '>');\r\n }\r\n } while (match);\r\n\r\n if (paths.length) {\r\n html.push(''\r\n .format(width, height));\r\n html.push(''\r\n .format(Config.BaseUri, image.Filename));\r\n html.push(svgContent);\r\n html.push('');\r\n }\r\n } else {\r\n html.push(''.format(Config.BaseUri, image.Filename));\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderCoding(formCoding) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '15', 'OID');\r\n var coding = formCoding ?\r\n Tools.element.formatElementCoding(Tools.escapeHtml(formCoding.Prefix), formCoding.CodingIdent) :\r\n '-/-';\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"', coding\r\n );\r\n }\r\n\r\n function renderCreation(timestamp, creator) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '3', 'OID');\r\n\r\n return '{1}
    {2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n Tools.dateTime.getDifferenceString(timestamp),\r\n creator ? creator.Title : i18next.t('misc.unknown'));\r\n }\r\n\r\n function renderModification(timestamp, editor) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '4', 'OID');\r\n\r\n return '{1}
    {2}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n Tools.dateTime.getDifferenceString(timestamp),\r\n editor ? editor.Title : i18next.t('misc.unknown'));\r\n }\r\n\r\n function renderDeadline(timestamp) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '5', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n timestamp ? Tools.dateTime.getDifferenceString(timestamp) : 'n.a.');\r\n }\r\n\r\n function renderState(state) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '6', 'OID');\r\n\r\n if (state) {\r\n return '
     
    {2}'\r\n .format(show ? '' : ' class=\"hide\"', state.Color, state.Title);\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderPriority(priority) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '7', 'OID');\r\n\r\n if (priority) {\r\n return '
     
    {2}'\r\n .format(show ? '' : ' class=\"hide\"', priority.Color, priority.Title);\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderTeamsAndUsers(users, teams) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '8', 'OID');\r\n var html = [];\r\n var renderContent = false;\r\n var groupedTeamsAndUsers = {\r\n responsible: [],\r\n accountable: [],\r\n consulted: [],\r\n informed: []\r\n };\r\n\r\n for (var userIdentifier in users) {\r\n var userResponsibilityEntity = users[userIdentifier];\r\n var user = Users[userIdentifier];\r\n\r\n if (!user) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (userResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n\r\n if (userResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(user.Fullname));\r\n }\r\n }\r\n\r\n for (var teamIdentifier in teams) {\r\n var teamResponsibilityEntity = teams[teamIdentifier];\r\n var team = Teams[teamIdentifier];\r\n\r\n if (!team) {\r\n continue;\r\n }\r\n\r\n renderContent = true;\r\n\r\n if (teamResponsibilityEntity.IsResponsible) {\r\n groupedTeamsAndUsers.responsible.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsAccountable) {\r\n groupedTeamsAndUsers.accountable.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsConsulted) {\r\n groupedTeamsAndUsers.consulted.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n\r\n if (teamResponsibilityEntity.IsInformed) {\r\n groupedTeamsAndUsers.informed.push('
  • {0}
  • '.format(team.Title));\r\n }\r\n }\r\n\r\n groupedTeamsAndUsers.responsible.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.accountable.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.consulted.sort(Tools.SortStringArray);\r\n groupedTeamsAndUsers.informed.sort(Tools.SortStringArray);\r\n\r\n if (renderContent) {\r\n html.push(''.format(show ? '' : ' class=\"hide\"'));\r\n\r\n if (groupedTeamsAndUsers.responsible.length) {\r\n html.push('' + i18next.t('explorer.issues.responsibilities.r') + '');\r\n html.push(groupedTeamsAndUsers.responsible.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.responsible.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.responsible.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.accountable.length) {\r\n html.push('' + i18next.t('explorer.issues.responsibilities.a') + '');\r\n html.push(groupedTeamsAndUsers.accountable.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.accountable.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.accountable.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.consulted.length) {\r\n html.push('' + i18next.t('explorer.issues.responsibilities.c') + '');\r\n html.push(groupedTeamsAndUsers.consulted.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.consulted.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.consulted.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n if (groupedTeamsAndUsers.informed.length) {\r\n html.push('' + i18next.t('explorer.issues.responsibilities.i') + '');\r\n html.push(groupedTeamsAndUsers.informed.slice(0, 6).join(''));\r\n if (groupedTeamsAndUsers.informed.length > 6) {\r\n html.push('
  • + {0} {1}
  • '.format(\r\n groupedTeamsAndUsers.informed.length - 6,\r\n i18next.t('misc.more')));\r\n }\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n return '{1}'.format(show ? '' : ' class=\"hide\"', 'n.a.');\r\n }\r\n\r\n function renderParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '9', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.ParameterCount);\r\n }\r\n\r\n function renderCollectedParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '10', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CollectedParameterCount);\r\n }\r\n\r\n function renderOpenParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '11', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.OpenParameterCount);\r\n }\r\n\r\n function renderRequiredParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '12', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.RequiredParameterCount);\r\n }\r\n\r\n function renderCollectedRequiredParameterCount(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '13', 'OID');\r\n\r\n return '{1}'.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.CollectedRequiredParameterCount);\r\n }\r\n\r\n function renderEstimatedEffort(issue) {\r\n var show = !tableColumnSelection || Tools.contains(tableColumnSelection, '14', 'OID');\r\n var unit, unitOID, unitTitle;\r\n\r\n if (Client && Client.Settings && Client.Settings.EstimatedEffortSettings\r\n && Client.Settings.EstimatedEffortSettings.UnitOID\r\n && (issue.EstimatedEffort === 0 || issue.EstimatedEffort)) {\r\n unitOID = Client.Settings.EstimatedEffortSettings.UnitOID;\r\n unit = Properties[unitOID];\r\n unitTitle = unit.Title || '';\r\n }\r\n\r\n return '{1} {2} '.format(\r\n show ? '' : ' class=\"hide\"',\r\n issue.EstimatedEffort === 0 || issue.EstimatedEffort ? issue.EstimatedEffort : '-/-',\r\n unitTitle || '');\r\n }\r\n\r\n function createParams(menuItem, take) {\r\n menuItem = menuItem || Explorer.GetCurrentTab();\r\n\r\n if (!menuItem) {\r\n return null;\r\n }\r\n\r\n var menuItemConfig = menuItem.Configuration || {};\r\n var params = {\r\n Skip: issuesLoaded || 0,\r\n Take: (take == null || isNaN(take)) ? 50 : take,\r\n IncludeCounter: true,\r\n LoadIssues: true,\r\n Sorting: sorting,\r\n SortingOrder: sortingorder,\r\n LocationOID: CurrentEntity.OID,\r\n WithProcessingStatusInformation: true,\r\n WithChildLocations: Explorer.GetWithChildLocations(),\r\n WithDeactivatedElements: Explorer.GetWithDeactivatedElements(),\r\n HideNonResponsibleIssues: hideNonResponsibleIssues,\r\n Types: $.extend(true, [], menuItemConfig.IssueTypes),\r\n Users: $.extend(true, [], menuItemConfig.Users),\r\n Teams: $.extend(true, [], menuItemConfig.Teams),\r\n Contacts: $.extend(true, [], menuItemConfig.Contacts),\r\n ContactGroups: $.extend(true, [], menuItemConfig.ContactGroups),\r\n Keywords: $.extend(true, [], menuItemConfig.Keywords),\r\n Classifications: $.extend(true, [], menuItemConfig.Classifications),\r\n States: $.extend(true, [], menuItemConfig.Statuses),\r\n Priorities: $.extend(true, [], menuItemConfig.Priorities),\r\n Forms: $.extend(true, [], menuItemConfig.Forms),\r\n Schedulings: $.extend(true, [], menuItemConfig.Schedulings),\r\n ProcessingStatus: $.extend(true, [], menuItemConfig.ProcessingStatuses)\r\n };\r\n\r\n return [params, createUserFilterParams(menuItem)];\r\n }\r\n\r\n function createUserFilterParams(menuItem) {\r\n var params = {\r\n Creators: (creatorFilter || []).map(function (user) { return user.OID; }),\r\n Users: (userFilter || []).map(function (user) { return user.OID; }),\r\n Teams: (teamFilter || []).map(function (team) { return team.OID; }),\r\n Contacts: (contactFilter || []).map(function (contact) { return contact.OID; }),\r\n ContactGroups: (contactGroupFilter || []).map(function (contactGroup) { return contactGroup.OID; }),\r\n Keywords: (keywordFilter || []).map(function (keyword) { return keyword.OID; }),\r\n Classifications: (classificationFilter || []).map(function (classification) { return classification.OID; }),\r\n States: (statusFilter || []).map(function (status) { return status.OID; }),\r\n Priorities: (priorityFilter || []).map(function (priority) { return priority.OID; }),\r\n Forms: (formFilter || []).map(function (form) { return form.OID; }),\r\n Schedulings: (schedulingFilter || []).map(function (scheduling) { return scheduling.OID; })\r\n };\r\n\r\n params.Types = Array.prototype.concat.apply([], (typeFilter || []).map(function (typeFilter) {\r\n return typeFilter.OID\r\n .split('-')\r\n .map(function (type) {\r\n return parseInt(type, 10);\r\n });\r\n }));\r\n\r\n if (periodFilter && (periodFilter.Start || periodFilter.End)) {\r\n if (periodFilter.CurrentType === Enums.DatePickerTypes.Creation) {\r\n params.CreationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Modification) {\r\n params.ModificationPeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n } else if (periodFilter.CurrentType === Enums.DatePickerTypes.Deadline) {\r\n params.DeadlinePeriod = {\r\n PeriodStart: periodFilter.Start ? Tools.dateTime.toGMTString(periodFilter.Start) : null,\r\n PeriodEnd: periodFilter.End ? Tools.dateTime.toGMTString(periodFilter.End) : null\r\n };\r\n }\r\n }\r\n\r\n if ((processingStatusFilter || []).length && processingStatusFilter.length < 3) {\r\n params.ProcessingStatus = processingStatusFilter;\r\n }\r\n\r\n if (searchValue) {\r\n params.SearchString = searchValue;\r\n }\r\n\r\n if (menuItem && menuItem.Configuration) {\r\n params.IncludeTemplates = menuItem.Configuration.ShowIssueTemplatesAndDerivations || false;\r\n params.IncludeDerivations = menuItem.Configuration.ShowIssueTemplatesAndDerivations || false;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n function createSortFunction() {\r\n switch(sorting) {\r\n case 'title':\r\n return function (a, b) {\r\n var titleA = a.Title || '';\r\n var titleB = b.Title || '';\r\n\r\n titleA = titleA.toLowerCase();\r\n titleB = titleB.toLowerCase();\r\n\r\n if (titleA === titleB) {\r\n return 0;\r\n }\r\n\r\n if (titleA > titleB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'creationtimestamp':\r\n return function (a, b) {\r\n return (a.CreationTimestamp.getTime() - b.CreationTimestamp.getTime()) *\r\n (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'modificationtimestamp':\r\n return function (a, b) {\r\n return (a.ModificationTimestamp.getTime() - b.ModificationTimestamp.getTime()) *\r\n (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'deadlinetimestamp':\r\n return function (a, b) {\r\n var valA = a.DeadlineTimestamp ? a.DeadlineTimestamp.getTime() : 0;\r\n var valB = b.DeadlineTimestamp ? b.DeadlineTimestamp.getTime() : 0;\r\n\r\n return (valA - valB) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'state':\r\n return function (a, b) {\r\n var sortResult = sortByPropertyHierarchy(a.State, b.State);\r\n return sortingorder === 'asc' ? sortResult*-1 : sortResult;\r\n };\r\n case 'priority':\r\n return function (a, b) {\r\n var sortResult = sortByPropertyHierarchy(a.Priority, b.Priority);\r\n return sortingorder === 'asc' ? sortResult*-1 : sortResult;\r\n };\r\n case 'checkpointCount':\r\n return function (a, b) {\r\n return (a.ParameterCount - b.ParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'collectedCheckpointCount':\r\n return function (a, b) {\r\n return (a.CollectedParameterCount - b.CollectedParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'openCheckpointCount':\r\n return function (a, b) {\r\n return (a.OpenParameterCount - b.OpenParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'requiredCheckpointCount':\r\n return function (a, b) {\r\n return (a.RequiredParameterCount - b.RequiredParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'collectedRequiredCheckpointCount':\r\n return function (a, b) {\r\n return (a.CollectedRequiredParameterCount - b.CollectedRequiredParameterCount) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n case 'custom-id':\r\n return function (a, b) {\r\n var naturalizedCustomIDA = a.NaturalizedCustomID.toLowerCase();\r\n var naturalizedCustomIDB = b.NaturalizedCustomID.toLowerCase();\r\n\r\n if (naturalizedCustomIDA === naturalizedCustomIDB) {\r\n return 0;\r\n }\r\n\r\n if (naturalizedCustomIDA > naturalizedCustomIDB) {\r\n return sortingorder === 'asc' ? 1 : -1;\r\n }\r\n\r\n return sortingorder === 'asc' ? -1 : 1;\r\n };\r\n case 'estimatedEffort':\r\n return function (a, b) {\r\n return (a.EstimatedEffort - b.EstimatedEffort) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n default:\r\n return function (a, b) {\r\n return (a.ID - b.ID) * (sortingorder === 'asc' ? 1 : -1);\r\n };\r\n }\r\n }\r\n\r\n function sortByPropertyHierarchy(a, b) {\r\n if (a && !b) {\r\n return -1;\r\n } else if (!a && b) {\r\n return 1;\r\n } else if (!a || !b) {\r\n return 0;\r\n }\r\n\r\n if (a.OID === b.OID) {\r\n return 0;\r\n }\r\n\r\n if (a.ParentOID === b.ParentOID) {\r\n return a.Position - b.Position;\r\n }\r\n\r\n var stackA = [a];\r\n while (a.Parent) {\r\n stackA.unshift(a.Parent);\r\n a = a.Parent;\r\n }\r\n\r\n var stackB = [b];\r\n while (b.Parent) {\r\n stackB.unshift(b.Parent);\r\n b = b.Parent;\r\n }\r\n\r\n var maxDepth = Math.min(stackA.length, stackB.length);\r\n for (var i = 0; i < maxDepth; i++) {\r\n if(stackA[i].Position == stackB[i].Position) {\r\n continue;\r\n }\r\n return stackA[i].Position - stackB[i].Position;\r\n }\r\n\r\n return stackA.length - stackB.length;\r\n }\r\n\r\n function prepareData(data) {\r\n data.Issues = $.map(data.Issues || [], Tools.issue.prepareIssueForWebApp);\r\n data.Issues.sort(createSortFunction());\r\n\r\n issuesLoaded = (issuesLoaded || 0) + data.Issues.length;\r\n issues = issues || {};\r\n\r\n data.Issues.forEach(function (issue) {\r\n issues[issue.OID] = issue;\r\n\t\t\tif(issue.Files && issue.Files.length>1){\r\n\t\t\t\tissue.Files.sort(Tools.SortByPosition);\r\n\t\t\t}\r\n });\r\n\r\n return data;\r\n }\r\n\r\n function getIssueIcon(issue) {\r\n if (!issue) {\r\n return null;\r\n }\r\n\r\n if (issue.IsTemplate) {\r\n return './img/file-lines-regular.svg';;\r\n }\r\n\r\n switch (issue.Type) {\r\n case Enums.issueType.Note:\r\n return './img/notes.svg';\r\n case Enums.issueType.Disturbance:\r\n return './img/disturbance_reported.svg';\r\n case Enums.issueType.DisturbancesCompleted:\r\n return './img/archive-icon.png';\r\n case Enums.issueType.Inspection:\r\n return './img/jobsite.svg';\r\n case Enums.issueType.Investigation:\r\n case Enums.issueType.Form:\r\n case Enums.issueType.Survey:\r\n return './img/form.svg';\r\n case Enums.issueType.Resubmission:\r\n return './img/checklist.svg';\r\n default:\r\n return './img/task.svg';\r\n }\r\n }\r\n\r\n function load(params) {\r\n return Tools.http.post('reports/issues', params);\r\n }\r\n\r\n function setProcessingStatus(selectedLocationProcessingStatus) {\r\n var processingStatus = 0;\r\n\r\n $.each(selectedLocationProcessingStatus, function(_, s) {\r\n processingStatus = Math.max(s, processingStatus);\r\n });\r\n\r\n switch (processingStatus) {\r\n case 0:\r\n $processingStatus\r\n .removeClass('hidden yellow red')\r\n .addClass('green');\r\n break;\r\n case 1:\r\n $processingStatus\r\n .removeClass('hidden green red')\r\n .addClass('yellow');\r\n break;\r\n case 2:\r\n $processingStatus\r\n .removeClass('hidden green yellow')\r\n .addClass('red');\r\n break;\r\n }\r\n }\r\n\r\n function updateTabCounter(menuItemConfig) {\r\n if (!menuItemConfig) {\r\n return;\r\n }\r\n\r\n var params = createParams(menuItemConfig, 0);\r\n\r\n Explorer.SetTabCounterLoading(menuItemConfig.OID);\r\n\r\n var request = load(params);\r\n\r\n request.then(function (data) {\r\n Explorer.SetTabCounter(menuItemConfig.OID, data.IssueCount);\r\n }, function () {\r\n Explorer.SetTabCounter(menuItemConfig.OID, 0);\r\n });\r\n\r\n return request;\r\n }\r\n\r\n function disposeTab() {\r\n if (CurrentEntity) {\r\n delete CurrentEntity.Parametergroups;\r\n }\r\n\r\n $tableBody.empty();\r\n }\r\n\r\n Issues.Show = show;\r\n Issues.UpdateTabCounter = updateTabCounter;\r\n Issues.Resize = resize;\r\n Issues.ResetFilters = resetFilters;\r\n Issues.RemoveDragAndDropHandlers = unsetInteracts;\r\n Issues.Dispose = disposeTab;\r\n\r\n return (global.Issues = Issues);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function (global) {\r\n var News = {};\r\n var newsType = { Issue: 1, Recorditem: 2 };\r\n var typeFilter, types;\r\n var offset, issues, recorditems;\r\n\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerNotes = $('#explorer-notes');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $resetFilters = $('#explorer-news-reset-filters');\r\n var $typeFilter = $('#explorer-news-type-filter');\r\n var $tableWrapper = $explorerNews.find('.tblContentWrapper');\r\n var $tableBody = $tableWrapper.find('.table > tbody');\r\n var activeFilters = {\r\n TypeFilter: false\r\n };\r\n\r\n var cachedElements;\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init();\r\n updateTable();\r\n }\r\n\r\n function init() {\r\n offset = null;\r\n issues = {};\r\n recorditems = {};\r\n cachedElements = {};\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n initTab();\r\n initLanguage();\r\n initTypes();\r\n initFilters();\r\n unbindEvents();\r\n bindEvents();\r\n resize();\r\n\r\n $tableBody.empty();\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.removeClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerNotes.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n $('#explorer-news-type-filter-lbl').text(i18next.t('explorer.news.typeFilter.label'));\r\n\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $typeFilter.find('.reset').text(i18next.t('explorer.news.typeFilter.reset'));\r\n $typeFilter.find('.close').text(i18next.t('explorer.news.typeFilter.close'));\r\n }\r\n\r\n function initTypes() {\r\n types = [];\r\n\r\n types.push({ OID: '0', Title: i18next.t('explorer.news.typeFilter.recorditems') });\r\n types.push({ OID: '1-2', Title: i18next.t('explorer.news.typeFilter.tasks') });\r\n\r\n if (Client.Licenses && Client.Licenses.Surveys) {\r\n types.push({ OID: '3-7', Title: i18next.t('explorer.news.typeFilter.forms') });\r\n } else {\r\n types.push({ OID: '3', Title: i18next.t('explorer.news.typeFilter.forms') });\r\n }\r\n\r\n types.push({ OID: '4', Title: i18next.t('explorer.news.typeFilter.notes') });\r\n types.push({ OID: '5', Title: i18next.t('explorer.news.typeFilter.disturbances') });\r\n\r\n if (Client.Licenses && Client.Licenses.Inspections) {\r\n types.push({ OID: '6', Title: i18next.t('explorer.news.typeFilter.inspections') });\r\n }\r\n\r\n if (Client.Licenses && Client.Licenses.Surveys) {\r\n types.push({ OID: '7', Title: i18next.t('explorer.news.typeFilter.surveys') });\r\n }\r\n\r\n if (Client.Licenses && Client.Licenses.Investigations) {\r\n types.push({ OID: '8', Title: i18next.t('explorer.news.typeFilter.investigations') });\r\n }\r\n\r\n types.push({ OID: '9', Title: i18next.t('explorer.news.typeFilter.disturbancesCompleted') });\r\n }\r\n\r\n function initFilters() {\r\n initTypeFilter();\r\n setFilterState();\r\n }\r\n\r\n function setFilterState() {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n }\r\n\r\n function initTypeFilter() {\r\n var text;\r\n var titles = (typeFilter || []).map(function (type) {\r\n return type.Title;\r\n });\r\n\r\n activeFilters.TypeFilter = titles.length > 0;\r\n $typeFilter.toggleClass('filter-selected', activeFilters.TypeFilter);\r\n\r\n if (activeFilters.TypeFilter) {\r\n text = titles.length === types.length ?\r\n i18next.t('explorer.news.typeFilter.all') :\r\n titles.sort().join(', ');\r\n } else {\r\n text = i18next.t('explorer.news.typeFilter.noSelection');\r\n }\r\n\r\n $typeFilter.find('.btn-title').html(text);\r\n }\r\n\r\n function reset() {\r\n offset = null;\r\n issues = {};\r\n recorditems = {};\r\n\r\n setFilterState();\r\n $tableBody.empty();\r\n\r\n updateTable()\r\n .then(Explorer.UpdateTabCounters)\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function unbindEvents() {\r\n $resetFilters.off('click.resetFilters');\r\n $typeFilter.off('click.showTypeFilter');\r\n\r\n $tableBody.off('click.changeOrganisationUnit');\r\n $tableBody.off('click.showIssue');\r\n $tableBody.off('click.showRecorditem');\r\n $tableBody.off('click.showPrintPreview');\r\n $tableBody.off('click.toggleSubscription');\r\n $tableBody.off('click.showComments');\r\n $tableBody.off('click.stopPropagation');\r\n $tableBody.off('mouseenter.showSubscriptions');\r\n $tableBody.off('mouseleave.hideSubscriptions');\r\n }\r\n\r\n function bindEvents() {\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $typeFilter.on('click.showTypeFilter', onShowTypeFilter);\r\n\r\n $tableBody.on('click.changeOrganisationUnit', '.issue a, .recorditem a', onSelectOrganisationUnit);\r\n $tableBody.on('click.showIssue', '.issue', onShowIssue);\r\n $tableBody.on('click.showRecorditem', '.recorditem', onShowRecorditem);\r\n $tableBody.on('click.showPrintPreview', '.print', onShowPrintPreview);\r\n $tableBody.on('click.toggleSubscription', '.abos', onToggleSubscription);\r\n $tableBody.on('click.showComments', '.commentlink', onShowComments);\r\n $tableBody.on('mouseenter.showSubscriptions', '.abos .details', onShowSubscriptions);\r\n $tableBody.on('mouseleave.hideSubscriptions', '.abos .details', onHideSubscriptions);\r\n }\r\n\r\n function onShowPrintPreview(event) {\r\n var issueOID = $(this).closest('.issue').data('oid');\r\n\r\n PrintPreview.Show({\r\n Issue: issues[issueOID],\r\n Type: 'Issue'\r\n });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onToggleSubscription(event) {\r\n var $this = $(this);\r\n var $tr = $this.parents('tr');\r\n var issueOID = $tr.data('oid');\r\n var subscribe = !$this.data('isabo');\r\n var issue;\r\n\r\n $('#gfx-tooltip').addClass('hide');\r\n\r\n if ((issue = issues[issueOID])) {\r\n Tools.Spinner.show();\r\n\r\n var method = 'issues/{0}/{1}'.format(issue.ID, subscribe ? 'subscribenotifications' : 'unsubscribenotifications');\r\n\r\n Tools.http.post(method, null, function () {\r\n issue.Recipients = subscribe ?\r\n Tools.addUnique(issue.Recipients, User.OID) :\r\n Tools.remove(issue.Recipients, User.OID);\r\n\r\n $this.replaceWith(renderIssueSubscription(issue));\r\n\r\n Tools.Spinner.hide();\r\n }, Tools.Spinner.hide);\r\n }\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowSubscriptions(event) {\r\n var $tooltip = $('#gfx-tooltip');\r\n var $this = $(this);\r\n var offset = $this.offset();\r\n var abos, subscribers;\r\n\r\n abos = ($this.data('abos') || '').split('|');\r\n\r\n subscribers = $.map(abos, function (oid) {\r\n var subscriber = Users[oid] || Contacts[oid];\r\n\r\n if (subscriber) {\r\n return subscriber.Fullname;\r\n }\r\n });\r\n\r\n subscribers.sort(Tools.SortStringArray);\r\n\r\n if (subscribers.length > 10) {\r\n subscribers = subscribers.slice(0, 10);\r\n subscribers.push('+ {0} {1}'.format(abos.length - 10, i18next.t('misc.more')));\r\n }\r\n\r\n $tooltip.html(subscribers.join('
    '));\r\n $tooltip.removeClass('hide');\r\n $tooltip.attr('arrow', 1);\r\n $tooltip.css({\r\n left: offset.left - $tooltip.outerWidth(false) / 2 + 8,\r\n top: offset.top - $tooltip.outerHeight(false) - 8\r\n });\r\n }\r\n\r\n function onHideSubscriptions() {\r\n $('#gfx-tooltip').addClass('hide');\r\n }\r\n\r\n function onShowComments(event) {\r\n var $this = $(this);\r\n var issueID = $this.parents('tr').data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged, { Panel: 'comments' });\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function updateTable() {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n if (!Explorer.GetCurrentTab()) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n Tools.Spinner.show();\r\n\r\n var params = createParams();\r\n\r\n return load(params)\r\n .then(prepareNews, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(appendNews, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(function (news) {\r\n if (!(news instanceof Array) || !news.length) {\r\n return;\r\n }\r\n\r\n $tableBody.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n\r\n if (news.length) {\r\n offset = news[news.length - 1].Timestamp;\r\n }\r\n\r\n if (news.length === 50) {\r\n $tableWrapper.on('scroll.infiniteScroll', onScroll);\r\n }\r\n\r\n news.forEach(function (newsItem) {\r\n switch (newsItem.Type) {\r\n case newsType.Issue:\r\n issues[newsItem.Issue.OID] = newsItem.Issue;\r\n break;\r\n case newsType.Recorditem:\r\n recorditems[newsItem.Recorditem.OID] = newsItem.Recorditem;\r\n break;\r\n }\r\n });\r\n\r\n Tools.Spinner.hide();\r\n\r\n return news;\r\n });\r\n }\r\n\r\n function resize() {\r\n var maxWidth = $explorerNews.find('.table-control').width() / 3;\r\n\r\n $explorerNews.find('.table-control .table-button').css('max-width', maxWidth);\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n\r\n activeFilters = {\r\n TypeFilter: false\r\n };\r\n\r\n typeFilter = null;\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowTypeFilter() {\r\n var options = {\r\n title: i18next.t('explorer.news.typeFilter.title'),\r\n onApply: onSelectTypeFilter,\r\n checkedEntities: typeFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(types, options);\r\n }\r\n\r\n function onSelectTypeFilter(selectedTypes) {\r\n typeFilter = (selectedTypes || []).map(function (oid) {\r\n return Tools.getFirst(types, oid, 'OID');\r\n });\r\n\r\n initTypeFilter();\r\n resize();\r\n reset();\r\n }\r\n\r\n function onScroll() {\r\n var wrapperHeight = $tableWrapper.innerHeight();\r\n var listHeight = $tableBody.outerHeight(false);\r\n var scrollPosition = $tableWrapper.scrollTop();\r\n\r\n if (listHeight - wrapperHeight - scrollPosition <= 300) {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n updateTable();\r\n }\r\n }\r\n\r\n function onSelectOrganisationUnit(event) {\r\n event.stopPropagation();\r\n }\r\n\r\n function onShowIssue(event) {\r\n var $this = $(this);\r\n var issueID = $this.data('id');\r\n\r\n IssueViewer.Show(issueID, reset, onCommentsChanged);\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onCommentsChanged(changeInfo) {\r\n if (!changeInfo) {\r\n return;\r\n }\r\n\r\n var issue = issues[changeInfo.IssueOID];\r\n\r\n if (!issue) {\r\n return;\r\n }\r\n\r\n issue.Comments = Tools.issue.prepareCommentsForWebApp(changeInfo.Comments);\r\n\r\n var $issue = $tableWrapper.find('tr[data-oid=\"' + issue.OID + '\"]');\r\n\r\n if (!$issue.length) {\r\n return;\r\n }\r\n\r\n $issue.find('.commentdetails').remove();\r\n\r\n var commentsMarkup = renderIssueComments(issue);\r\n $issue.find('.location').after(commentsMarkup);\r\n }\r\n\r\n function onShowRecorditem(event) {\r\n var $this = $(this);\r\n var $parent = $tableBody;\r\n var left = $parent.scrollLeft();\r\n var top = $parent.scrollTop();\r\n var recorditemOID = $this.data('oid');\r\n\r\n event.stopPropagation();\r\n\r\n RecorditemDetails.show({\r\n OID: recorditemOID,\r\n $Target: $this,\r\n $Parent: $parent,\r\n $Container: $parent,\r\n IsReadonly: !CurrentEntity.Enabled,\r\n Offset: {\r\n X: left,\r\n Y: top\r\n }\r\n });\r\n\r\n $('body').one('click.closeRecorditemDetails', RecorditemDetails.hide);\r\n }\r\n\r\n function createParams() {\r\n var params = {\r\n offset: offset ? Tools.dateTime.toGMTString(offset) : null,\r\n take: 50,\r\n locationoid: CurrentEntity.OID,\r\n withchildlocations: Explorer.GetWithChildLocations(),\r\n withdeactivatedelements: Explorer.GetWithDeactivatedElements()\r\n };\r\n\r\n (typeFilter || []).forEach(function (type) {\r\n var oid = type.OID.replace('-', '|');\r\n\r\n if (oid === '0') {\r\n params.types = Tools.addUnique(params.types, newsType.Recorditem);\r\n } else {\r\n params.types = Tools.addUnique(params.types, newsType.Issue);\r\n params.issuetypes = Tools.addUnique(params.issuetypes, oid);\r\n }\r\n });\r\n\r\n if (params.types) {\r\n params.types = params.types.join('|');\r\n\r\n if (params.issuetypes) {\r\n params.issuetypes = params.issuetypes.join('|');\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n\r\n function prepareNews(news) {\r\n var missingElements = (news || []).filter(function (news) {\r\n return news.Type === newsType.Recorditem &&\r\n news.Recorditem &&\r\n !cachedElements.hasOwnProperty(newsType.ElementOID);\r\n })\r\n .map(function (news) {\r\n return {\r\n OID: news.Recorditem.ElementOID,\r\n WithAncestors: true\r\n };\r\n });\r\n\r\n var deferred = $.Deferred();\r\n\r\n if (!missingElements.length) {\r\n return deferred.resolve($.map(news || [], prepareNewsItem)).promise();\r\n }\r\n\r\n Tools.http.post('elements/', missingElements)\r\n .then(function (elements) {\r\n var cache = Tools.element.createHierarchyForDownloadedElements(elements);\r\n\r\n if (!cache) {\r\n return;\r\n }\r\n\r\n for (var oid in cache) {\r\n cachedElements[oid] = cache[oid];\r\n }\r\n }, deferred.reject)\r\n .then(function () {\r\n return deferred.resolve($.map(news || [], prepareNewsItem));\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n function prepareNewsItem(newsItem) {\r\n newsItem.Timestamp = new Date(newsItem.Timestamp);\r\n\r\n switch (newsItem.Type) {\r\n case newsType.Issue:\r\n newsItem.Issue = Tools.issue.prepareIssueForWebApp(newsItem.Issue);\r\n break;\r\n case newsType.Recorditem:\r\n newsItem.Recorditem = prepareRecorditem(newsItem.Recorditem);\r\n break;\r\n }\r\n\r\n return newsItem;\r\n }\r\n\r\n function prepareRecorditem(recorditem) {\r\n recorditem.CreationTimestamp = new Date(recorditem.CreationTimestamp);\r\n recorditem.ModificationTimestamp = new Date(recorditem.ModificationTimestamp);\r\n\r\n recorditem.Creator = Users[recorditem.CreatorOID];\r\n recorditem.Editor = Users[recorditem.EditorOID];\r\n recorditem.Element = cachedElements[recorditem.ElementOID];\r\n recorditem.Category = recorditem.CategoryOID ? Properties[recorditem.CategoryOID] : null;\r\n recorditem.LocationPath = Explorer.CreateOrganisationUnitPath(recorditem.ElementOID, cachedElements);\r\n\r\n return Tools.Escape.Recorditem(recorditem);\r\n }\r\n\r\n function appendNews(news) {\r\n var html;\r\n\r\n if (!(news || []).length) {\r\n if (!offset) {\r\n html = [\r\n '',\r\n '',\r\n '
    ',\r\n '
    ',\r\n '

    {0}

    '.format(i18next.t('explorer.values.noDataAvailable')),\r\n '
    ',\r\n '
    ',\r\n '',\r\n ''\r\n ];\r\n\r\n $tableBody.append(html.join(''));\r\n }\r\n\r\n return news;\r\n }\r\n\r\n news.sort(function (a, b) {\r\n return b.Timestamp.getTime() - a.Timestamp.getTime();\r\n });\r\n\r\n html = $.map(news || [], renderNews);\r\n\r\n $tableBody.append(html.join(''));\r\n\r\n return news;\r\n }\r\n\r\n function renderNews(newsItem) {\r\n return newsItem.Type === newsType.Issue ?\r\n renderIssueNews(newsItem) :\r\n renderRecorditemNews(newsItem);\r\n }\r\n\r\n function renderIssueNews(newsItem) {\r\n var html = [];\r\n var issue = newsItem.Issue;\r\n\r\n html.push(\r\n ''\r\n .format(issue.OID, issue.ID, issue.EditorOID),\r\n '',\r\n renderIssueId(issue),\r\n renderIssueIcon(issue),\r\n '',\r\n '',\r\n '',\r\n renderIssueTitle(issue),\r\n renderIssueMailAddresses(issue),\r\n renderInvestigationStatus(issue),\r\n renderIssueParameterCount(issue),\r\n renderIssueLocationPath(issue),\r\n renderIssueComments(issue),\r\n '',\r\n '',\r\n renderIssueEditor(issue),\r\n renderIssueModificationTimestamp(issue),\r\n renderIssueState(issue),\r\n '',\r\n ''\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderRecorditemNews(newsItem) {\r\n var html = [];\r\n var recorditem = newsItem.Recorditem;\r\n\r\n html.push(\r\n ''.format(recorditem.OID, recorditem.EditorOID),\r\n '',\r\n renderRecorditemId(recorditem),\r\n '',\r\n '',\r\n '',\r\n renderRecorditemTitle(recorditem),\r\n renderRecorditemValue(recorditem),\r\n renderRecorditemLocationPath(recorditem),\r\n '',\r\n '',\r\n renderRecorditemEditor(recorditem),\r\n renderRecorditemModificationTimestamp(recorditem),\r\n renderRecorditemCategory(recorditem),\r\n '',\r\n ''\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderIssueId(issue) {\r\n return '{0}{1}.{2}'.format(\r\n Tools.GetIssueAbbreviation(issue),\r\n issue.ID,\r\n issue.Revision);\r\n }\r\n\r\n function renderIssueIcon(issue) {\r\n return ''.format(getIssueIcon(issue.Type));\r\n }\r\n\r\n function renderIssueTitle(issue) {\r\n return '{0} {1}'.format(\r\n issue.Title || i18next.t('misc.untitled'),\r\n getIssueModificationDescription(issue));\r\n }\r\n\r\n function renderIssueDescription(issue) {\r\n return issue.Description ?\r\n '

    {0}

    '.format(issue.Description) :\r\n '';\r\n }\r\n\r\n function renderIssueParameterCount(issue) {\r\n var html = [];\r\n\r\n if (!issue.ParameterCount) {\r\n return '';\r\n }\r\n\r\n html.push('

    ');\r\n\r\n html.push(i18next.t('explorer.news.collectedCheckpointCount', {\r\n collectedCheckpointCount: issue.CollectedParameterCount || 0,\r\n checkpointCount: issue.ParameterCount\r\n }));\r\n\r\n if (issue.RequiredParameterCount) {\r\n html.push('
    ');\r\n html.push(i18next.t('explorer.news.collectedRequiredCheckpointCount', {\r\n collectedCheckpointCount: issue.CollectedRequiredParameterCount || 0,\r\n checkpointCount: issue.RequiredParameterCount\r\n }));\r\n }\r\n\r\n html.push('

    ');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderIssueLocationPath(issue) {\r\n return issue.LocationPath ?\r\n '

    {0}

    '.format(issue.LocationPath) :\r\n '';\r\n }\r\n\r\n function renderIssueMailAddresses(issue) {\r\n var mailTokens = ((issue.AdditionalData || {}).MailToken || '').split('|');\r\n var mailAddresses;\r\n\r\n if (mailTokens.length <= 1) {\r\n return '';\r\n }\r\n\r\n mailAddresses = mailTokens.slice(1).join(', ');\r\n\r\n return '

    {0}

    '.format(mailAddresses);\r\n }\r\n\r\n function renderInvestigationStatus(issue) {\r\n if (!issue.InvestigationStatusInformation) {\r\n return '';\r\n }\r\n\r\n var errorText = issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ?\r\n Tools.issue.getInvestigationErrorText(issue.InvestigationStatusInformation.ErrorCode) :\r\n null;\r\n\r\n return '

    {2}{3}

    '\r\n .format(\r\n issue.InvestigationStatusInformation.Status === Enums.Investigations.Status.Error ? ' with-error' : '',\r\n i18next.t('misc.investigationStatus.helpText'),\r\n Tools.issue.getInvestigationStatusText(issue.InvestigationStatusInformation.Status),\r\n !!errorText ? (' (' + errorText + ')') : ''\r\n );\r\n }\r\n\r\n function renderIssueComments(issue) {\r\n var html = [];\r\n\r\n html.push('

    ');\r\n html.push(renderIssueSubscription(issue));\r\n html.push(' - {0}

    '.format(i18next.t('misc.comment_plural')));\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderIssueSubscription(issue) {\r\n var recipients = issue.Recipients;\r\n\r\n if (Tools.contains(recipients, User.OID)) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.unsubscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n } else if ((recipients || []).length) {\r\n return '{0} ({2})'\r\n .format(\r\n i18next.t('misc.subscribe'),\r\n recipients.join('|'),\r\n recipients.length);\r\n }\r\n\r\n return '{0}'.format(i18next.t('misc.subscribe'));\r\n }\r\n\r\n function renderIssueEditor(issue) {\r\n var html = [];\r\n var editor = issue.Editor;\r\n\r\n html.push(''.format(Tools.Users.getProfilePicturePath(editor)));\r\n html.push('

    {0}

    '.format(editor ? editor.Title : i18next.t('misc.unknown')));\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderIssueModificationTimestamp(issue) {\r\n return '

    {0}

    '.format(\r\n Tools.dateTime.getDifferenceString(issue.ModificationTimestamp));\r\n }\r\n\r\n function renderIssueState(issue) {\r\n return issue.State ?\r\n '

     
    {1}

    '\r\n .format(issue.State.Color, issue.State.Title) :\r\n '';\r\n }\r\n\r\n function renderRecorditemId(recorditem) {\r\n return '{0}.{1}'.format(recorditem.ID, recorditem.Revision);\r\n }\r\n\r\n function renderRecorditemTitle(recorditem) {\r\n var title = (recorditem.Element || {}).Title || i18next.t('misc.untitled');\r\n\r\n return i18next.t('explorer.news.checkpointHasBeenCollected', { checkpointTitle: title });\r\n }\r\n\r\n function renderRecorditemValue(recorditem) {\r\n var settings = {\r\n alignLeft: true,\r\n suppressInfos: true,\r\n suppressCategory: true\r\n };\r\n\r\n if (!recorditem || typeof recorditem.Value === 'undefined') {\r\n return '

    -/-

    ';\r\n }\r\n\r\n var value = Tools.values.render($.extend(recorditem), settings);\r\n\r\n return '

    ' + value + '

    ';\r\n }\r\n\r\n function renderRecorditemLocationPath(recorditem) {\r\n return recorditem.LocationPath ?\r\n '

    {0}

    '.format(recorditem.LocationPath) :\r\n '';\r\n }\r\n\r\n function renderRecorditemEditor(recorditem) {\r\n var html = [];\r\n var editor = recorditem.Editor;\r\n\r\n html.push(''.format(Tools.Users.getProfilePicturePath(editor)));\r\n html.push('

    {0}

    '.format(editor ? editor.Title : i18next.t('misc.unknown')));\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderRecorditemModificationTimestamp(recorditem) {\r\n return '

    {0}

    '.format(\r\n Tools.dateTime.getDifferenceString(recorditem.ModificationTimestamp));\r\n }\r\n\r\n function renderRecorditemCategory(recorditem) {\r\n return recorditem.Category ?\r\n '

     
    {1}

    '\r\n .format(recorditem.Category.Color, recorditem.Category.Title) :\r\n '';\r\n }\r\n\r\n function getIssueIcon(type) {\r\n switch (type) {\r\n case Enums.issueType.Note:\r\n return './img/notes.svg';\r\n case Enums.issueType.Disturbance:\r\n return './img/disturbance_reported.svg';\r\n case Enums.issueType.DisturbancesCompleted:\r\n return './img/archive-icon.png';\r\n case Enums.issueType.Inspection:\r\n return './img/jobsite.svg';\r\n case Enums.issueType.Investigation:\r\n case Enums.issueType.Form:\r\n case Enums.issueType.Survey:\r\n return './img/form.svg';\r\n case Enums.issueType.Resubmission:\r\n return './img/checklist.svg';\r\n default:\r\n return './img/task.svg';\r\n }\r\n }\r\n\r\n function getIssueModificationDescription(issue) {\r\n if (issue.State && issue.State.ChangeDescription) {\r\n return issue.State.ChangeDescription;\r\n }\r\n\r\n if (issue.Revision === 1) {\r\n return i18next.t('explorer.news.hasBeenCreated');\r\n }\r\n\r\n return issue.IsArchived ?\r\n i18next.t('explorer.news.hasBeenArchived') :\r\n i18next.t('explorer.news.hasBeenModified');\r\n }\r\n\r\n function load(params) {\r\n return Tools.http.get('reports/news', null, null, params);\r\n }\r\n\r\n function disposeTab() {\r\n cachedElements = null;\r\n $tableBody.empty();\r\n }\r\n\r\n News.Show = show;\r\n News.Resize = resize;\r\n News.ResetFilters = resetFilters;\r\n News.Dispose = disposeTab;\r\n\r\n return (global.News = News);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function ( global ) {\r\n var Scheduling = {};\r\n\r\n var tabs = {\r\n SchedulingList: 1,\r\n EffortByUser: 2\r\n };\r\n\r\n var _searchRegExp;\r\n var _tableColumnSelection, _tableColumns;\r\n var _sorting, _sortingorder;\r\n var _schedulings, _locationSchedulings, _currentSchedulings, _virtualSchedules;\r\n var _userFilter;\r\n var _teamFilter;\r\n var _contactFilter;\r\n var _contactGroupFilter;\r\n var _offset;\r\n var _userCanAssignAllTeamsAndUsers;\r\n var _users, _teams;\r\n var _visibleTeams, _selectableTeams;\r\n /**\r\n * @type {ApexChart}\r\n */\r\n var _effortByUserChart;\r\n var _currentTabId = tabs.SchedulingList;\r\n\r\n var _schedulingElements;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $tableWrapper = $explorerScheduling.find('.tblContentWrapper');\r\n var $tableHeader = $explorerScheduling.find('.tbl_header');\r\n var $tableBody = $tableWrapper.find('.table > tbody');\r\n var $execute = $('#explorer-scheduling-execute');\r\n var $tableColumnSelection = $('#explorer-scheduling-table-columns');\r\n var $resetFilters = $('#explorer-scheduling-reset-filters');\r\n var $search = $('#explorer-scheduling-search');\r\n var $userFilter = $('#explorer-scheduling-user-filter');\r\n var $teamFilter = $('#explorer-scheduling-team-filter');\r\n var $contactFilter = $('#explorer-scheduling-contact-filter');\r\n var $contactGroupFilter = $('#explorer-scheduling-contact-group-filter');\r\n var $tableView = $explorerScheduling.find('.table-view');\r\n var activeFilters = {\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroup: false\r\n };\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init()\r\n .then(renderCurrentTab);\r\n }\r\n\r\n function init() {\r\n _userCanAssignAllTeamsAndUsers = ressources.users.hasRightAtLocation(\r\n Enums.Rights.IssueRights.AllowAssigningAllUsersToIssues,\r\n CurrentEntity.OID\r\n );\r\n\r\n _schedulings = {};\r\n _schedulingElements = {};\r\n\r\n _offset = 0;\r\n _currentSchedulings = null;\r\n _searchRegExp = null;\r\n\r\n $tableBody.empty();\r\n $search.val('');\r\n $search.attr('placeholder', i18next.t('explorer.search'));\r\n\r\n $tree.tree('remove-class-from-all-nodes', 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red');\r\n\r\n initTab();\r\n initLanguage();\r\n initTableColumns();\r\n initTableColumnSelection(false);\r\n initUsers();\r\n initTeams();\r\n initFilters();\r\n\r\n Tools.Spinner.show();\r\n\r\n return loadSchedulingData();\r\n }\r\n\r\n function loadSchedulingData() {\r\n return loadUserScheduling()\r\n .then(function (scheduling) {\r\n initSchedulings(scheduling);\r\n }, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(function () {\r\n return initLocationSchedulings(true);\r\n })\r\n .then(function() {\r\n initTable();\r\n unbindEvents();\r\n bindEvents();\r\n resize();\r\n setBtnExecuteState();\r\n Tools.Spinner.hide();\r\n }, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n }\r\n\r\n function loadUserScheduling() {\r\n var params = createParams();\r\n\r\n return Tools.http.post('scheduling/current-user/' + CurrentEntity.OID, params);\r\n }\r\n\r\n function loadUserSchedulingCounters(menuItemConfig) {\r\n if (!menuItemConfig) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n var params = createParams();\r\n\r\n return Tools.http.post('custommenuitems/' + menuItemConfig.OID + '/counter/' + CurrentEntity.OID, params);\r\n }\r\n\r\n function createParams() {\r\n var params = {\r\n Users: (_userFilter || []).map(function (u) { return u.OID; }),\r\n Teams: (_teamFilter || []).map(function (t) { return t.OID; }),\r\n Contacts: (_contactFilter || []).map(function (c) { return c.OID; }),\r\n ContactGroups: (_contactGroupFilter || []).map(function (cg) { return cg.OID; })\r\n };\r\n\r\n if (!params.Users.length) {\r\n delete params.Users;\r\n }\r\n\r\n if (!params.Teams.length) {\r\n delete params.Teams;\r\n }\r\n\r\n if (!params.Contacts.length) {\r\n delete params.Contacts;\r\n }\r\n\r\n if (!params.ContactGroups.length) {\r\n delete params.ContactGroups;\r\n }\r\n\r\n if (!Object.keys(params).length) {\r\n params = null;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n function loadMissingElements(scheduling) {\r\n var deferred = $.Deferred();\r\n\r\n if (!scheduling) {\r\n return deferred.reject().promise();\r\n }\r\n\r\n var missingElements = [];\r\n var elementsToBeCached = {};\r\n\r\n (scheduling.Elements|| []).forEach(function (element) {\r\n if (DataManager.OrganizationUnitLoader.Data.DataMap.hasOwnProperty(element.OID) ||\r\n _schedulingElements.hasOwnProperty(element.OID) ||\r\n elementsToBeCached[element.OID]) {\r\n return;\r\n }\r\n\r\n missingElements.push({\r\n OID: element.OID,\r\n WithAncestors: false\r\n });\r\n\r\n elementsToBeCached[element.OID] = true;\r\n });\r\n\r\n if (!(missingElements instanceof Array) || !missingElements.length) {\r\n return deferred.resolve().promise();\r\n }\r\n\r\n Tools.Spinner.show();\r\n Tools.http.post('elements/', missingElements)\r\n .then(function (elements) {\r\n var cache = Tools.element.createHierarchyForDownloadedElements(elements);\r\n\r\n if (!cache) {\r\n return;\r\n }\r\n\r\n for (var oid in cache) {\r\n _schedulingElements[oid] = cache[oid];\r\n }\r\n\r\n Tools.Spinner.hide();\r\n deferred.resolve();\r\n }, function (xhr) {\r\n deferred.reject();\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n function setBtnExecuteState() {\r\n if (CurrentEntity.Enabled && Tools.contains(User.Rights, 'TMFT', 'ID') &&\r\n Tools.any(User.Rights, ['TMFT-SCHEDULINGS', 'TMFT-SCHEDULINGS-A', 'TMFT-SCHEDULINGS-SC'], 'ID') &&\r\n Object.keys(_schedulings).length) {\r\n $execute.removeAttr('disabled');\r\n } else {\r\n $execute.attr('disabled', 'disabled');\r\n }\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.addClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.removeClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function initLanguage() {\r\n $tableView.find('.lbl').text(i18next.t('explorer.schedulings.tabs.view'));\r\n $tableView.find('.tab[data-tab=\"1\"] .title').text(i18next.t('explorer.schedulings.tabs.schedulingList.title'));\r\n $tableView.find('.tab[data-tab=\"2\"] .title').text(i18next.t('explorer.schedulings.tabs.estimatedEffortByUser.title'));\r\n\r\n $execute.text(i18next.t('explorer.schedulings.executeScheduling'));\r\n\r\n $('#explorer-scheduling-table-columns-lbl').text(i18next.t('explorer.schedulings.tableColumns.label'));\r\n $resetFilters.attr('title', i18next.t('explorer.toolbar.resetFilters'));\r\n $('#explorer-scheduling-user-filter-lbl').text(i18next.t('explorer.schedulings.userFilter.label'));\r\n $('#explorer-scheduling-team-filter-lbl').text(i18next.t('explorer.schedulings.teamFilter.label'));\r\n $('#explorer-scheduling-contact-filter-lbl').text(i18next.t('explorer.schedulings.contactFilter.label'));\r\n $('#explorer-scheduling-contact-group-filter-lbl').text(i18next.t('explorer.schedulings.contactGroupFilter.label'));\r\n $('#explorer-scheduling-table-columns').attr('title', i18next.t('explorer.toolbar.selectTableColumns'));\r\n\r\n $tableHeader.find('th[data-columntitle=\"title\"]').text(i18next.t('explorer.schedulings.tableColumns.title'));\r\n $tableHeader.find('th[data-columntitle=\"what\"]').text(i18next.t('explorer.schedulings.tableColumns.what'));\r\n $tableHeader.find('th[data-columntitle=\"where\"]').text(i18next.t('explorer.schedulings.tableColumns.where'));\r\n $tableHeader.find('th[data-columntitle=\"teams\"]').text(i18next.t('explorer.schedulings.tableColumns.teams'));\r\n $tableHeader.find('th[data-columntitle=\"users\"]').text(i18next.t('explorer.schedulings.tableColumns.users'));\r\n $tableHeader.find('th[data-columntitle=\"contactGroups\"]').text(i18next.t('explorer.schedulings.tableColumns.contactGroups'));\r\n $tableHeader.find('th[data-columntitle=\"contacts\"]').text(i18next.t('explorer.schedulings.tableColumns.contacts'));\r\n $tableHeader.find('th[data-columntitle=\"estimated-effort\"]').text(i18next.t('explorer.schedulings.tableColumns.estimatedEffort'));\r\n $tableHeader.find('th[data-columntitle=\"rotations\"]').text(i18next.t('explorer.schedulings.tableColumns.rotations'));\r\n $tableHeader.find('th[data-columntitle=\"nextDeadlines\"]').text(i18next.t('explorer.schedulings.tableColumns.nextDeadlines'));\r\n }\r\n\r\n function initTableColumns() {\r\n _tableColumns = [];\r\n\r\n _tableColumns.push({ OID: '1', Title: i18next.t('explorer.schedulings.tableColumns.title') });\r\n _tableColumns.push({ OID: '2', Title: i18next.t('explorer.schedulings.tableColumns.what') });\r\n _tableColumns.push({ OID: '3', Title: i18next.t('explorer.schedulings.tableColumns.where') });\r\n _tableColumns.push({ OID: '4', Title: i18next.t('explorer.schedulings.tableColumns.teams') });\r\n _tableColumns.push({ OID: '5', Title: i18next.t('explorer.schedulings.tableColumns.users') });\r\n _tableColumns.push({ OID: 'contact-groups', Title: i18next.t('explorer.schedulings.tableColumns.contactGroups') });\r\n _tableColumns.push({ OID: 'contacts', Title: i18next.t('explorer.schedulings.tableColumns.contacts') });\r\n _tableColumns.push({ OID: 'estimated-effort', Title: i18next.t('explorer.schedulings.tableColumns.estimatedEffort') });\r\n _tableColumns.push({ OID: '6', Title: i18next.t('explorer.schedulings.tableColumns.rotations') });\r\n _tableColumns.push({ OID: '7', Title: i18next.t('explorer.schedulings.tableColumns.nextDeadlines') });\r\n }\r\n\r\n function initUsers() {\r\n _users = Tools.GetSelectableUsers(CurrentEntity.OID);\r\n _users.sort(Tools.SortByFullname);\r\n }\r\n\r\n function initTeams() {\r\n var teamInformation = Tools.GetSelectableTeams(CurrentEntity.OID);\r\n\r\n _teams = teamInformation.Teams;\r\n _visibleTeams = teamInformation.VisibleTeams;\r\n _selectableTeams = teamInformation.SelectableTeams;\r\n }\r\n\r\n function onFiltersInit() {\r\n var $tableFilterSelection = $explorerScheduling.find('.table-filter-selection');\r\n\r\n if ($tableFilterSelection == null) {\r\n return;\r\n }\r\n\r\n var $firstTableRow = $tableFilterSelection.find('.table-filter-column-first-row');\r\n var $filterColumns = $tableFilterSelection.find('.table-filter-column:not(.last-row)');\r\n var $lastRow = $tableFilterSelection.find('.table-filter-column:last-child');\r\n var $lastRowFilters = $lastRow.find('.table-filter:not(:first-child)');\r\n\r\n $tableFilterSelection.addClass('grid-row');\r\n $lastRowFilters.removeClass('hide');\r\n $firstTableRow.addClass('flexColumn');\r\n $filterColumns.find('.table-button').css('margin-bottom', 8);\r\n $filterColumns.find('.text-column .gfx-t-tc-text').css('margin-bottom', 8);\r\n $firstTableRow.find('.table-button').css('margin-bottom', 8);\r\n $lastRow.removeClass('right');\r\n $tableWrapper.css('top', 102);\r\n }\r\n\r\n function initSchedulings(scheduling) {\r\n _schedulings = (scheduling || []).reduce(function (dict, sched) {\r\n dict[sched.OID] = Tools.Escape.Scheduling(sched);\r\n\r\n return dict;\r\n }, {});\r\n }\r\n\r\n function initLocationSchedulings(withVirtualSchedules) {\r\n var showChildlocations = Explorer.GetWithChildLocations();\r\n var locationMap = {};\r\n var schedulingMap = {};\r\n\r\n (function walk(element) {\r\n switch (element.Type) {\r\n case Enums.elementType.Root:\r\n case Enums.elementType.Location:\r\n locationMap[element.OID] = true;\r\n\r\n (element.Parametergroups || []).forEach(walk);\r\n\r\n if (showChildlocations) {\r\n (element.Children || []).forEach(walk);\r\n }\r\n break;\r\n case Enums.elementType.Parametergroup:\r\n (element.Scheduling || []).forEach(function (elementScheduling) {\r\n var sched = _schedulings[elementScheduling.OID];\r\n\r\n if (sched) {\r\n schedulingMap[sched.OID] = sched;\r\n }\r\n });\r\n break;\r\n }\r\n })(CurrentEntity);\r\n\r\n Object\r\n .keys(_schedulings)\r\n .forEach(function (oid) {\r\n schedulingMap[oid] = _schedulings[oid];\r\n });\r\n\r\n if (!withVirtualSchedules) {\r\n // auf das zusätzliche Laden virtueller Zeitpläne verzichten\r\n _locationSchedulings = Object\r\n .keys(schedulingMap)\r\n .map(function (oid) { return prepareScheduling(schedulingMap[oid]); });\r\n\r\n return $.Deferred().resolve();\r\n }\r\n\r\n var selectedSchedules = Object\r\n .keys(schedulingMap)\r\n .map(function (oid) { return schedulingMap[oid]; });\r\n\r\n return appendVirtualSchedules(selectedSchedules)\r\n .then(null, function() {\r\n return $.Deferred().resolve();\r\n })\r\n .then(function() {\r\n _locationSchedulings = Object\r\n .keys(schedulingMap)\r\n .map(function (oid) { return prepareScheduling(schedulingMap[oid]); });\r\n });\r\n }\r\n\r\n function updateTabCounter(menuItemConfig) {\r\n if (!menuItemConfig) {\r\n return new $.Deferred().resolve().promise();\r\n }\r\n\r\n if (!_locationSchedulings) {\r\n Explorer.SetTabCounterLoading(menuItemConfig.OID);\r\n\r\n var request = loadUserSchedulingCounters(menuItemConfig);\r\n\r\n request.then(function (counter) {\r\n Explorer.SetTabCounter(menuItemConfig.OID, counter);\r\n }, function (xhr) {\r\n Explorer.SetTabCounter(menuItemConfig.OID, 0);\r\n });\r\n\r\n return request;\r\n } else {\r\n if (!_currentSchedulings) {\r\n _currentSchedulings = sortSchedulingList(filterSchedulingList(_locationSchedulings));\r\n }\r\n\r\n var counter = (_currentSchedulings || []).length;\r\n\r\n Explorer.SetTabCounter(menuItemConfig.OID, counter);\r\n\r\n return new $.Deferred().resolve().promise();\r\n }\r\n }\r\n\r\n function appendVirtualSchedules(schedulings) {\r\n // finde \"Zeitpläne nach Statusänderung\"\r\n var schedulesToLoad = {};\r\n\r\n for (var i = 0; i < schedulings.length; i++) {\r\n var scheduling = schedulings[i];\r\n\r\n if (!scheduling.Schedules || !scheduling.Schedules.length) {\r\n continue;\r\n }\r\n\r\n for (var b = 0; b < scheduling.Schedules.length; b++) {\r\n var schedule = scheduling.Schedules[b];\r\n\r\n if (schedule && schedule.FrequencySubdayType === Enums.FrequencySubdayTypes.RepeatOnStateChange) {\r\n // zur liste zufügen\r\n schedulesToLoad[schedule.OID] = schedule;\r\n }\r\n }\r\n }\r\n\r\n var scheduleOIDs = Object.keys(schedulesToLoad);\r\n if (!scheduleOIDs.length) {\r\n return $.Deferred().resolve();\r\n }\r\n\r\n Tools.Spinner.show();\r\n\r\n return Tools.http\r\n .post('schedules?withvirtualschedules=true', {\r\n LocationOID: CurrentEntity.OID,\r\n Schedules: scheduleOIDs\r\n })\r\n .then(function (superSchedules) {\r\n if (!superSchedules || !superSchedules.length) {\r\n return;\r\n }\r\n\r\n _virtualSchedules = {};\r\n for (var j = 0; j < superSchedules.length; j++) {\r\n var schedule = superSchedules[j];\r\n\r\n _virtualSchedules[schedule.OID] = schedule.VirtualSchedules;\r\n }\r\n })\r\n .always(Tools.Spinner.hide);\r\n }\r\n\r\n function initTableColumnSelection(selectedColumnsChanged) {\r\n var $btnTitle = $tableColumnSelection.find('.btn-title');\r\n var titles, text;\r\n\r\n var columnIds = Tools.GetOfficeSettingValue(Explorer.GetColumnsSettingName());\r\n\r\n if (columnIds && !selectedColumnsChanged) {\r\n columnIds = columnIds.split(',') || [];\r\n\r\n if (columnIds.length > 0) {\r\n _tableColumnSelection = [];\r\n\r\n columnIds.forEach(function (oid) {\r\n var column = Tools.getFirst(_tableColumns, oid, 'OID');\r\n\r\n if (column)\r\n {\r\n _tableColumnSelection.push(column);\r\n }\r\n });\r\n }\r\n } else if (!columnIds) {\r\n _tableColumnSelection = _tableColumns.slice();\r\n }\r\n\r\n titles = (_tableColumnSelection || []).map(function (tableColumn) {\r\n return tableColumn.Title;\r\n });\r\n\r\n if (titles.length) {\r\n text = titles.length === _tableColumns.length ?\r\n i18next.t('explorer.schedulings.tableColumns.all') :\r\n titles.sort().join(', ');\r\n } else {\r\n text = i18next.t('explorer.schedulings.tableColumns.noSelection');\r\n }\r\n\r\n $btnTitle.html(text);\r\n\r\n if ((_tableColumnSelection || []).length && (_tableColumnSelection || []).length !== (_tableColumns || []).length) {\r\n _tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(_tableColumnSelection, tableColumn.OID, 'OID');\r\n\r\n if (isChecked) {\r\n $explorerScheduling.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID)).removeClass('hide');\r\n } else {\r\n $explorerScheduling.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID)).addClass('hide');\r\n }\r\n });\r\n }\r\n }\r\n\r\n function resetSchedulingCache() {\r\n _locationSchedulings = null;\r\n _currentSchedulings = null;\r\n }\r\n\r\n function resetFilters() {\r\n $resetFilters.removeClass('active');\r\n\r\n activeFilters = {\r\n UserFilter: false,\r\n TeamFilter: false,\r\n ContactFilter: false,\r\n ContactGroupFilter: false,\r\n KeywordFilter: false,\r\n ClassificationFilter: false,\r\n PeriodFilter: false,\r\n HideNonResponsibleIssues: false\r\n };\r\n\r\n _userFilter = null;\r\n _teamFilter = null;\r\n _contactFilter = null;\r\n _contactGroupFilter = null;\r\n _searchRegExp = null;\r\n $search.val('');\r\n }\r\n\r\n function initFilters() {\r\n onFiltersInit();\r\n initUserFilter();\r\n initTeamFilter();\r\n initContactFilter();\r\n initContactGroupFilter();\r\n }\r\n\r\n function initUserFilter() {\r\n var $btnTitle = $userFilter.find('.btn-title');\r\n var titles, text, userCount;\r\n\r\n titles = (_userFilter || []).map(function (user) {\r\n return user.Title;\r\n });\r\n\r\n if (titles.length) {\r\n userCount = Object.keys(window.Users).length;\r\n text = titles.length === userCount ?\r\n i18next.t('explorer.schedulings.userFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.UserFilter = true;\r\n } else {\r\n text = i18next.t('explorer.schedulings.userFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.UserFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initTeamFilter() {\r\n var $btnTitle = $teamFilter.find('.btn-title');\r\n var titles, text, teamCount;\r\n\r\n titles = (_teamFilter || []).map(function (team) {\r\n return team.Title;\r\n });\r\n\r\n if (titles.length) {\r\n teamCount = Object.keys(window.Teams).length;\r\n text = titles.length === teamCount ?\r\n i18next.t('explorer.schedulings.teamFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.TeamFilter = true;\r\n } else {\r\n text = i18next.t('explorer.schedulings.teamFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.TeamFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initContactFilter() {\r\n var $btnTitle = $contactFilter.find('.btn-title');\r\n\r\n var titles = (_contactFilter || []).map(function (contact) {\r\n return contact.Title;\r\n });\r\n\r\n var text, contactCount;\r\n\r\n if (titles.length) {\r\n contactCount = Object.keys(Contacts).length;\r\n text = titles.length === contactCount ?\r\n i18next.t('explorer.schedulings.contactFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactFilter = true;\r\n } else {\r\n text = i18next.t('explorer.schedulings.contactFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initContactGroupFilter() {\r\n var $btnTitle = $contactGroupFilter.find('.btn-title');\r\n\r\n var titles = (_contactGroupFilter || []).map(function (contactGroup) {\r\n return contactGroup.Title;\r\n });\r\n\r\n var text, contactGroupText;\r\n\r\n if (titles.length) {\r\n contactGroupText = Object.keys(ContactGroups).length;\r\n text = titles.length === contactGroupText ?\r\n i18next.t('explorer.schedulings.contactGroupFilter.all') :\r\n titles.sort().join(', ');\r\n\r\n $btnTitle.parent().addClass('filter-selected');\r\n activeFilters.ContactGroupFilter = true;\r\n } else {\r\n text = i18next.t('explorer.schedulings.contactGroupFilter.noSelection');\r\n\r\n $btnTitle.parent().removeClass('filter-selected');\r\n activeFilters.ContactGroupFilter = false;\r\n }\r\n\r\n $btnTitle.html(text);\r\n }\r\n\r\n function initTable() {\r\n var $sortingCol;\r\n\r\n $tableBody.empty();\r\n\r\n $sortingCol = $tableHeader.find('[data-sorting]');\r\n\r\n _sorting = $sortingCol.data('columntitle');\r\n _sortingorder = $sortingCol.data('sorting');\r\n }\r\n\r\n function unbindEvents() {\r\n $tableView.off('click.selectTab');\r\n $tableHeader.off('click.toggleSorting');\r\n $tableColumnSelection.off('click.showTableColumnSelection');\r\n $resetFilters.off('click.resetFilters');\r\n $search.off('keyup.search input.search');\r\n $userFilter.off('click.showUserFilter');\r\n $teamFilter.off('click.showTeamFilter');\r\n $contactFilter.off('click.showContactFilter');\r\n $contactGroupFilter.off('click.showContactGroupFilter');\r\n $explorerScheduling.off('click.print');\r\n $tableBody.off('click.showScheduling click.toggleDetails click.hideDetails');\r\n $execute.off('click.showSchedulingPicker');\r\n }\r\n\r\n function bindEvents() {\r\n $tableView.on('click.selectTab', '.tab[data-tab]', onTabControlItemClick);\r\n $tableHeader.on('click.toggleSorting', '.sortable', onToggleSorting);\r\n $tableColumnSelection.on('click.showTableColumnSelection', onShowTableColumnSelection);\r\n $resetFilters.on('click.resetFilters', onResetFilters);\r\n $search.on('keyup.search input.search', onSearch);\r\n $userFilter.on('click.showUserFilter', onShowUserFilter);\r\n $teamFilter.on('click.showTeamFilter', onShowTeamFilter);\r\n $contactFilter.on('click.showContactFilter', onShowContactFilter);\r\n $contactGroupFilter.on('click.showContactGroupFilter', onShowContactGroupFilter);\r\n $explorerScheduling.on('click.print', '.print', onPrint);\r\n $tableBody.on('click.showScheduling', '.table-link[data-link=\"title\"]', onShowScheduling);\r\n $tableBody.on('click.toggleDetails', '.table-link[data-link=\"what\"], .table-link[data-link=\"locations\"]', onToggleDetails);\r\n $tableBody.on('click.hideDetails', '.inner-table .gfx-i-t-link', onHideDetails);\r\n $execute.on('click.showSchedulingPicker', onShowSchedulingPicker);\r\n }\r\n\r\n function setFilterState() {\r\n var isActive;\r\n\r\n for (var filter in activeFilters) {\r\n isActive = activeFilters[filter];\r\n\r\n if (isActive) {\r\n break;\r\n }\r\n }\r\n\r\n isActive ? $resetFilters.addClass('active') : $resetFilters.removeClass('active');\r\n }\r\n\r\n function reset() {\r\n _offset = 0;\r\n _currentSchedulings = null;\r\n\r\n destroyCharts();\r\n $tableBody.empty();\r\n setFilterState();\r\n renderCurrentTab();\r\n\r\n Explorer.UpdateTabCounters()\r\n .then(Explorer.ResizeTabMenu);\r\n }\r\n\r\n function updateTable() {\r\n var newOffset = _offset + 50;\r\n var html;\r\n\r\n if (!_currentSchedulings) {\r\n _currentSchedulings = sortSchedulingList(filterSchedulingList(_locationSchedulings));\r\n }\r\n\r\n html = _currentSchedulings\r\n .slice(_offset, newOffset)\r\n .map(renderRow)\r\n .join('');\r\n\r\n if (!html && !_offset) {\r\n html = renderEmptyRow();\r\n }\r\n\r\n $tableBody.append(html);\r\n $tableHeader.width($tableBody.width());\r\n\r\n _offset = newOffset;\r\n\r\n if (_currentSchedulings.length > _offset) {\r\n $tableWrapper.on('scroll.infiniteScroll', onScroll);\r\n }\r\n }\r\n\r\n function filterSchedulingList(schedulings) {\r\n return schedulings.filter(function (scheduling) {\r\n return !_searchRegExp || _searchRegExp.test(scheduling.Title);\r\n });\r\n }\r\n\r\n function sortSchedulingList(schedulings) {\r\n if(!schedulings) {\r\n return [];\r\n }\r\n\r\n switch (_sorting) {\r\n case 'title':\r\n schedulings.sort(function (a, b) {\r\n var titleA = a.Title.toLowerCase();\r\n var titleB = b.Title.toLowerCase();\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n }\r\n\r\n if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n case 'what':\r\n schedulings.sort(function (a, b) {\r\n var countA = (a.Parametergroups || []).length + (a.LocationForms || []).length;\r\n var countB = (b.Parametergroups || []).length + (b.LocationForms || []).length;\r\n\r\n return (countA - countB) * (_sortingorder === 'desc' ? -1 : 1);\r\n });\r\n break;\r\n case 'where':\r\n schedulings.sort(function (a, b) {\r\n var titleA, titleB, titles;\r\n\r\n titleA = $.map(a.Locations, function (location) {\r\n return location.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n titleB = $.map(b.Locations, function (location) {\r\n return location.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n } else if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n case 'teams':\r\n schedulings.sort(function (a, b) {\r\n var titleA, titleB;\r\n\r\n titleA = $.map(a.Teams || [], function (team) {\r\n return team.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n titleB = $.map(b.Teams || [], function (team) {\r\n return team.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n } else if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n case 'users':\r\n schedulings.sort(function (a, b) {\r\n var titleA = $\r\n .map(a.Users || [], function (user) { return user.Fullname.toLowerCase(); })\r\n .sort()\r\n .join('');\r\n\r\n var titleB = $\r\n .map(b.Users || [], function (user) { return user.Fullname.toLowerCase(); })\r\n .sort()\r\n .join('');\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n } else if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n case 'contactGroups':\r\n schedulings.sort(function (a, b) {\r\n var titleA, titleB;\r\n\r\n titleA = $.map(a.ContactGroups || [], function (contactGroup) {\r\n return contactGroup.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n titleB = $.map(b.ContactGroups || [], function (contactGroup) {\r\n return contactGroup.Title.toLowerCase();\r\n }).sort().join('');\r\n\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n } else if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n case 'contacts':\r\n schedulings.sort(function (a, b) {\r\n var titleA = $\r\n .map(a.Contacts || [], function (contact) { return contact.Title.toLowerCase(); })\r\n .sort()\r\n .join('');\r\n\r\n var titleB = $\r\n .map(b.Contacts || [], function (contact) { return contact.Title.toLowerCase(); })\r\n .sort()\r\n .join('');\r\n\r\n if (titleA > titleB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n } else if (titleA < titleB) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n return 0;\r\n });\r\n break;\r\n default:\r\n schedulings.sort(function (a, b) {\r\n var dateA, dateB;\r\n\r\n if ((a.DeadlineTimestamps || []).length) {\r\n dateA = _sortingorder === 'desc' ?\r\n a.DeadlineTimestamps[a.DeadlineTimestamps.length - 1] :\r\n a.DeadlineTimestamps[0];\r\n }\r\n\r\n if ((b.DeadlineTimestamps || []).length) {\r\n dateB = _sortingorder === 'desc' ?\r\n b.DeadlineTimestamps[b.DeadlineTimestamps.length - 1] :\r\n b.DeadlineTimestamps[0];\r\n }\r\n\r\n if (!dateA && !dateB) {\r\n return 0;\r\n }\r\n\r\n if (!dateA) {\r\n return _sortingorder === 'desc' ? 1 : -1;\r\n }\r\n\r\n if (!dateB) {\r\n return _sortingorder === 'desc' ? -1 : 1;\r\n }\r\n\r\n return (dateA.getTime() - dateB.getTime()) * (_sortingorder === 'desc' ? -1 : 1);\r\n });\r\n break;\r\n }\r\n\r\n return schedulings;\r\n }\r\n\r\n function renderRow(scheduling) {\r\n var html = [];\r\n\r\n html.push(''.format(scheduling.OID));\r\n html.push('');\r\n\r\n html.push(drawColorAndTitle(scheduling));\r\n html.push(drawWhat(scheduling));\r\n html.push(drawLocations(scheduling));\r\n html.push(drawTeams(scheduling));\r\n html.push(drawUsers(scheduling));\r\n html.push(drawContactGroups(scheduling));\r\n html.push(drawContacts(scheduling));\r\n html.push(drawEstimatedEffort(scheduling));\r\n html.push(drawRotations(scheduling));\r\n html.push(drawDeadlineTimestamps(scheduling));\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderEmptyRow() {\r\n var colspan = (_tableColumns || []).length + 1;\r\n\r\n return '{1}'.format(\r\n colspan, i18next.t('explorer.schedulings.noDataAvailable')\r\n );\r\n }\r\n\r\n function drawColorAndTitle(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '1', 'OID');\r\n\r\n return '{2}'\r\n .format(\r\n show ? '' : 'hide ',\r\n scheduling.Color || '#7E1210',\r\n scheduling.Title);\r\n }\r\n\r\n function drawWhat(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '2', 'OID');\r\n var text = '';\r\n\r\n var parameterGroupCount = 0;\r\n var formCount = 0;\r\n\r\n (scheduling.Elements || []).forEach(function (element) {\r\n if (element.Type === Enums.elementType.Parametergroup) {\r\n parameterGroupCount++;\r\n return;\r\n }\r\n\r\n if (element.Type === Enums.elementType.Form &&\r\n (element.Locations || []).length) {\r\n formCount += element.Locations.length;\r\n }\r\n });\r\n\r\n if (parameterGroupCount) {\r\n if (parameterGroupCount === 1) {\r\n text = i18next.t('elementTypes.testgroup_article');\r\n } else {\r\n text = parameterGroupCount + ' ' + i18next.t('elementTypes.testgroup_plural');\r\n }\r\n }\r\n\r\n if (formCount) {\r\n if (text) {\r\n text += '
    ';\r\n }\r\n\r\n if (formCount === 1) {\r\n text += i18next.t('elementTypes.form_article');\r\n } else {\r\n text += formCount + ' ' + i18next.t('elementTypes.form_plural');\r\n }\r\n }\r\n\r\n return '{1}'\r\n .format(show ? '' : 'hide ', text);\r\n }\r\n\r\n function drawLocations(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '3', 'OID');\r\n var titles = (scheduling.Locations || [])\r\n .map(function (identifier) {\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[identifier];\r\n\r\n return location ? location.Title : null;\r\n })\r\n .filter(function (text) { return !!text; })\r\n .sort(Tools.SortStringArray);\r\n\r\n return '{1}{2}'.format(\r\n show ? '' : 'hide ',\r\n titles.slice(0, 4).join(', '),\r\n titles.length > 4 ? ' ...' : '');\r\n }\r\n\r\n function drawTeams(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '4', 'OID');\r\n var html = [];\r\n var titles;\r\n\r\n titles = (scheduling.Teams || []).map(function (team) {\r\n return team.Title;\r\n });\r\n\r\n titles.sort(Tools.SortStringArray);\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if (titles.length) {\r\n html.push('
    • ');\r\n html.push(titles.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawUsers(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '5', 'OID');\r\n var html = [];\r\n var names;\r\n\r\n names = (scheduling.Users || []).map(function (user) {\r\n return user.Fullname;\r\n });\r\n\r\n names.sort(Tools.SortStringArray);\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if (names.length) {\r\n html.push('
    • ');\r\n html.push(names.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawRotations(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '6', 'OID');\r\n var rotations = scheduling.Rotations;\r\n var html = [];\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if ((rotations || []).length) {\r\n html.push('
    • ');\r\n html.push(rotations.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawContactGroups(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, 'contact-groups', 'OID');\r\n var html = [];\r\n\r\n var titles = (scheduling.ContactGroups || []).map(function (contactGroup) {\r\n return contactGroup.Title;\r\n });\r\n\r\n titles.sort(Tools.SortStringArray);\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if (titles.length) {\r\n html.push('
    • ');\r\n html.push(titles.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawContacts(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, 'contacts', 'OID');\r\n var html = [];\r\n\r\n var names = (scheduling.Contacts || []).map(function (contact) {\r\n return contact.Fullname;\r\n });\r\n\r\n names.sort(Tools.SortStringArray);\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if (names.length) {\r\n html.push('
    • ');\r\n html.push(names.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawEstimatedEffort(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, 'estimated-effort', 'OID');\r\n var unit = Client.Settings.EstimatedEffortSettings ?\r\n Properties[Client.Settings.EstimatedEffortSettings.UnitOID] :\r\n null;\r\n\r\n var estimatedEffort = scheduling.EstimatedEffort ?\r\n scheduling.EstimatedEffort.toFixed(2).replace('.', ',') :\r\n null;\r\n\r\n var unitText = unit ? (unit.Description || unit.Title) : '';\r\n var html = [];\r\n\r\n html.push(\r\n ''.format(show ? '' : 'hide'),\r\n !!estimatedEffort ? (estimatedEffort + ' ' + unitText).trim() : '-/-',\r\n ''\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function drawDeadlineTimestamps(scheduling) {\r\n var show = !_tableColumnSelection || Tools.contains(_tableColumnSelection, '7', 'OID');\r\n var html = [];\r\n var deadlineTimestampStrings;\r\n\r\n deadlineTimestampStrings = $.map(scheduling.DeadlineTimestamps || [], Tools.dateTime.getDifferenceString);\r\n\r\n html.push(''.format(show ? '' : 'hide'));\r\n\r\n if (deadlineTimestampStrings.length) {\r\n html.push('
    • ');\r\n html.push(deadlineTimestampStrings.join('
    • '));\r\n html.push('
    ');\r\n } else {\r\n html.push(' ');\r\n }\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n }\r\n\r\n function onToggleSorting() {\r\n var $this = $(this);\r\n\r\n _sorting = $this.attr('data-columntitle');\r\n _sortingorder = $this.attr('data-sorting');\r\n\r\n _sortingorder = _sortingorder === 'desc' ? 'asc' : 'desc';\r\n $this.siblings().removeAttr('data-sorting');\r\n $this.attr('data-sorting', _sortingorder);\r\n\r\n reset();\r\n }\r\n\r\n function onShowTableColumnSelection() {\r\n var options = {\r\n title: i18next.t('explorer.schedulings.tableColumns.selectColumns'),\r\n onApply: onSelectTableColumns,\r\n checkedEntities: _tableColumnSelection,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(_tableColumns, options);\r\n }\r\n\r\n function onScroll() {\r\n var wrapperHeight = $tableWrapper.innerHeight();\r\n var tableHeight = $tableBody.outerHeight(false);\r\n var scrollPosition = $tableWrapper.scrollTop();\r\n\r\n if (tableHeight - wrapperHeight - scrollPosition <= 300) {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n updateTable();\r\n }\r\n }\r\n\r\n function onSelectTableColumns(selectedTableColumns) {\r\n _tableColumnSelection = (selectedTableColumns || []).map(function (oid) {\r\n return Tools.getFirst(_tableColumns, oid, 'OID');\r\n });\r\n\r\n if (_tableColumnSelection.length && _tableColumnSelection.length !== _tableColumns.length) {\r\n _tableColumns.forEach(function (tableColumn) {\r\n var isChecked = Tools.contains(_tableColumnSelection, tableColumn.OID, 'OID');\r\n\r\n if (isChecked) {\r\n $explorerScheduling.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID)).removeClass('hide');\r\n } else {\r\n $explorerScheduling.find('col[data-columnid=\"{0}\"], th[data-columnid=\"{0}\"], td[data-columnid=\"{0}\"]'.format(tableColumn.OID)).addClass('hide');\r\n }\r\n });\r\n } else {\r\n $explorerScheduling.find('col, th, td').removeClass('hide');\r\n }\r\n\r\n Tools.UpdateOfficeUserSettings(Explorer.GetColumnsSettingName(), (selectedTableColumns || []).join(','))\r\n .then(function () {\r\n initTableColumnSelection(true);\r\n resize();\r\n });\r\n }\r\n\r\n function onResetFilters() {\r\n resetFilters();\r\n initFilters();\r\n\r\n Tools.Spinner.show();\r\n loadSchedulingData()\r\n .then(resize)\r\n .then(reset);\r\n }\r\n\r\n function onSearch() {\r\n var val = $.trim($search.val());\r\n\r\n _searchRegExp = val ?\r\n new RegExp(Tools.escRegExp(val), 'i') :\r\n null;\r\n\r\n resize();\r\n reset();\r\n }\r\n\r\n function onShowUserFilter() {\r\n var options = {\r\n title: i18next.t('explorer.schedulings.userFilter.title'),\r\n onApply: onSelectUserFilter,\r\n checkedEntities: _userFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true },\r\n createContentHtml: function() {\r\n var html;\r\n\r\n html = this.createCheckboxHtml();\r\n html += this.createTextHtml();\r\n\r\n if (this.entity && this.entity.IsLocked) {\r\n html += '';\r\n }\r\n\r\n return html;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(_users, options);\r\n }\r\n\r\n function onSelectUserFilter(selectedUsers) {\r\n _userFilter = (selectedUsers || []).map(function (oid) {\r\n return window.Users[oid];\r\n });\r\n\r\n initUserFilter();\r\n\r\n Tools.Spinner.show();\r\n loadSchedulingData()\r\n .then(resize)\r\n .then(reset);\r\n }\r\n\r\n function onShowTeamFilter() {\r\n var options = {\r\n title: i18next.t('explorer.schedulings.teamFilter.title'),\r\n onApply: onSelectTeamFilter,\r\n checkedEntities: _teamFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', children: 'Children', text: 'Title', color: 'Color' },\r\n opened: true,\r\n checkbox: {\r\n fullrow: true,\r\n disabled: _userCanAssignAllTeamsAndUsers ? null : function (node) {\r\n if (!_selectableTeams || !node || !node.entity) {\r\n return false;\r\n }\r\n\r\n var team = node.entity;\r\n\r\n return _selectableTeams.indexOf(team.OID) === -1;\r\n }\r\n },\r\n filter: _userCanAssignAllTeamsAndUsers ? null : function (team) {\r\n if (!_visibleTeams || !team) {\r\n return false;\r\n }\r\n\r\n return _visibleTeams.indexOf(team.OID) > -1;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(RootTeam, options);\r\n }\r\n\r\n function onSelectTeamFilter(selectedTeams) {\r\n _teamFilter = (selectedTeams || []).map(function (oid) {\r\n return window.Teams[oid];\r\n });\r\n\r\n initTeamFilter();\r\n\r\n Tools.Spinner.show();\r\n loadSchedulingData()\r\n .then(resize)\r\n .then(reset);\r\n }\r\n\r\n function onShowContactFilter() {\r\n var contacts = Object\r\n .keys(Contacts)\r\n .map(function (oid) { return Contacts[oid]; });\r\n\r\n contacts.sort(Tools.SortByFullname);\r\n\r\n var options = {\r\n title: i18next.t('explorer.schedulings.contactFilter.title'),\r\n onApply: onSelectContactFilter,\r\n checkedEntities: _contactFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Fullname' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n TreePicker.Show(contacts, options);\r\n }\r\n\r\n function onSelectContactFilter(selectedContacts) {\r\n _contactFilter = (selectedContacts || []).map(function (oid) {\r\n return Contacts[oid];\r\n });\r\n\r\n initContactFilter();\r\n\r\n Tools.Spinner.show();\r\n loadSchedulingData()\r\n .then(resize)\r\n .then(reset);\r\n }\r\n\r\n function onShowContactGroupFilter() {\r\n var options = {\r\n title: i18next.t('explorer.archive.contactGroupFilter.title'),\r\n onApply: onSelectContactGroupFilter,\r\n checkedEntities: _contactGroupFilter,\r\n treeOptions: {\r\n schema: { id: 'OID', text: 'Title' },\r\n opened: true,\r\n checkbox: { fullrow: true }\r\n }\r\n };\r\n\r\n var contactGroups = Object.values(ContactGroups);\r\n contactGroups.sort(Tools.SortByTitle);\r\n\r\n TreePicker.Show(contactGroups, options);\r\n }\r\n\r\n function onSelectContactGroupFilter(selectedContacts) {\r\n _contactGroupFilter = (selectedContacts || []).map(function (oid) {\r\n return ContactGroups[oid];\r\n });\r\n\r\n initContactGroupFilter();\r\n\r\n Tools.Spinner.show();\r\n loadSchedulingData()\r\n .then(resize)\r\n .then(reset);\r\n }\r\n\r\n function onPrint() {\r\n var schedulingOID = $(this).closest('tr').data('oid');\r\n\r\n PrintPreview.Show({\r\n SchedulingOID: schedulingOID,\r\n Type: 'PrintSchedulingInformation'\r\n });\r\n }\r\n\r\n function onShowScheduling() {\r\n var oid, options;\r\n\r\n if (!ressources.users.hasRight('AEM')) {\r\n return;\r\n }\r\n\r\n oid = $(this).closest('tr').data('oid');\r\n\r\n if (changemode.active) {\r\n window.location.hash = '#events\\/' + oid;\r\n } else {\r\n options = {};\r\n\r\n options.title = i18next.t('explorer.schedulings.messages.startChangeMode.title');\r\n options.text = i18next.t('explorer.schedulings.messages.startChangeMode.text');\r\n options.no = true;\r\n options.onYes = function () {\r\n changemode.activate(function () {\r\n window.location.hash = ('#events\\/' + oid);\r\n });\r\n };\r\n\r\n Tools.Message.Show(options);\r\n }\r\n }\r\n\r\n function onToggleDetails() {\r\n var $tr = $(this).closest('tr');\r\n var oid = $tr.data('oid');\r\n var scheduling = _schedulings[oid];\r\n\r\n if (!scheduling) {\r\n return;\r\n }\r\n\r\n loadMissingElements(scheduling)\r\n .then(function () {\r\n var html = [];\r\n var colspan;\r\n\r\n var checkpointGroups = (scheduling.Elements || []).filter(function (elem) {\r\n return elem.Type === Enums.elementType.Parametergroup;\r\n });\r\n\r\n var forms = (scheduling.Elements || []).filter(function (elem) {\r\n return elem.Type === Enums.elementType.Form;\r\n });\r\n\r\n if ($tableBody.find('tr[data-what-list=\"{0}\"]'.format(oid)).length) {\r\n $tableBody.find('tr[data-what-list=\"{0}\"]'.format(oid)).remove();\r\n } else {\r\n colspan = _tableColumnSelection.length;\r\n\r\n html.push(''.format(oid));\r\n html.push('');\r\n html.push(''.format(colspan));\r\n html.push('
    ');\r\n html.push('{0}'.format(i18next.t('misc.close')));\r\n html.push('');\r\n html.push(renderAssignedCheckpointGroups(checkpointGroups));\r\n html.push(renderAssignedForms(forms));\r\n html.push('
    ');\r\n html.push('
    ');\r\n html.push('');\r\n html.push('');\r\n\r\n $tr.after(html.join(''));\r\n }\r\n });\r\n }\r\n\r\n function renderAssignedCheckpointGroups(checkpointGroups) {\r\n if (!(checkpointGroups instanceof Array) || !checkpointGroups.length) {\r\n return;\r\n }\r\n\r\n var html = [];\r\n var groupsInfo = [];\r\n\r\n for (var i = 0; i < checkpointGroups.length; i++) {\r\n var element = checkpointGroups[i];\r\n\r\n if (!_schedulingElements[element.OID]) {\r\n continue;\r\n }\r\n\r\n var group = _schedulingElements[element.OID];\r\n\r\n groupsInfo.push({\r\n Title: group.Title || '',\r\n OrganisationUnit: Explorer.CreateOrganisationUnitPath(element.OID, _schedulingElements) || ''\r\n });\r\n }\r\n\r\n groupsInfo.sort(Tools.SortByTitle);\r\n\r\n for (var ix = 0; ix < groupsInfo.length; ix++) {\r\n var gInfo = groupsInfo[ix];\r\n\r\n html.push('');\r\n html.push('{0}'.format(i18next.t('elementTypes.testgroup')));\r\n html.push('{0}
    {1}'\r\n .format(gInfo.Title, gInfo.OrganisationUnit));\r\n html.push('');\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderAssignedForms(forms) {\r\n if (!(forms instanceof Array) || !forms.length) {\r\n return;\r\n }\r\n\r\n var html = [];\r\n var executables = [];\r\n\r\n for (var i = 0; i < forms.length; i++) {\r\n var item = forms[i];\r\n var form = ((DataManager.FormLoader.Data || {}).DataMap || {})[item.OID] ||\r\n _schedulingElements[item.OID];\r\n\r\n if (form) {\r\n item.Locations.forEach(function (locationOID) {\r\n var location = DataManager.OrganizationUnitLoader.Data.DataMap[locationOID];\r\n\r\n if (!location) {\r\n return;\r\n }\r\n\r\n executables.push({\r\n Title: form.Title || '',\r\n OrganisationUnit: Explorer.CreateOrganisationUnitPath(location.OID) || ''\r\n });\r\n });\r\n }\r\n }\r\n\r\n executables.sort(Tools.SortByTitle);\r\n\r\n for (var iy = 0; iy < executables.length; iy++) {\r\n var entry = executables[iy];\r\n\r\n html.push('');\r\n html.push('{0}'.format(i18next.t('elementTypes.form')));\r\n html.push('{0} @ {1}'\r\n .format(entry.Title, entry.OrganisationUnit));\r\n\r\n if (entry.Hierarchy) {\r\n html.push('
    {0}'.format(entry.Hierarchy))\r\n }\r\n\r\n html.push('');\r\n html.push('');\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function onHideDetails() {\r\n $(this).closest('tr').remove();\r\n }\r\n\r\n function onShowSchedulingPicker() {\r\n if ($(this).attr('disabled')) {\r\n return;\r\n }\r\n\r\n Tools.Spinner.show();\r\n Tools.DataManager.SchedulingLoader\r\n .GetAll()\r\n .then(function (schedulingData) {\r\n Tools.Spinner.hide();\r\n\r\n if (!schedulingData) {\r\n return;\r\n }\r\n\r\n var entities = (function walk (scheduling) {\r\n var selectable = Tools.contains(_locationSchedulings, scheduling.OID, 'OID');\r\n var children = (scheduling.Children || [])\r\n .map(walk)\r\n .filter(function (child) {\r\n return !!child;\r\n });\r\n\r\n if (selectable || children.length) {\r\n return {\r\n id: scheduling.OID,\r\n text: scheduling.Title,\r\n color: scheduling.Color,\r\n children: children,\r\n selectable: !!selectable,\r\n classes: selectable ? '' : 'jquery-tree-node-disabled'\r\n };\r\n }\r\n })(schedulingData.Root);\r\n\r\n var options = {\r\n title: i18next.t('explorer.schedulings.selectScheduling'),\r\n selectMultiple: false,\r\n onSelect: function (schedulingOID) {\r\n var scheduling = schedulingData.Map[schedulingOID];\r\n\r\n if (scheduling.HasActiveAssignments) {\r\n IssueViewer.ExecuteScheduling(schedulingOID, function () {\r\n Explorer.UpdateTabCounters()\r\n .then(Explorer.ResizeTabMenu);\r\n });\r\n } else {\r\n Tools.Message.Show({\r\n title: i18next.t('explorer.schedulings.messages.hasNoActiveAssignments.title'),\r\n text: i18next.t('explorer.schedulings.messages.hasNoActiveAssignments.text'),\r\n ok: true\r\n });\r\n }\r\n },\r\n treeOptions: {\r\n opened: true,\r\n selectable: true\r\n }\r\n };\r\n\r\n TreePicker.Show(entities, options);\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n Tools.Spinner.hide();\r\n });\r\n }\r\n\r\n function onTabControlItemClick() {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('selected')) {\r\n return;\r\n }\r\n\r\n $this\r\n .addClass('selected')\r\n .siblings()\r\n .removeClass('selected');\r\n\r\n var tabId = $this.data('tab');\r\n var $tab = $explorerScheduling.find('.tabs .tab[data-tab=\"{0}\"]'.format(tabId));\r\n\r\n $tab\r\n .removeClass('hide')\r\n .siblings()\r\n .addClass('hide');\r\n\r\n $explorerScheduling\r\n .find('.table-container .tbl_header')\r\n .toggleClass('hide', tabId === tabs.EffortByUser);\r\n\r\n _currentTabId = tabId;\r\n\r\n renderCurrentTab();\r\n }\r\n\r\n function renderCurrentTab() {\r\n updateTabCounter(Explorer.GetCurrentTab());\r\n\r\n switch (_currentTabId) {\r\n case tabs.SchedulingList:\r\n updateTable();\r\n break;\r\n case tabs.EffortByUser:\r\n initEstimatedEffortChartTab();\r\n break;\r\n }\r\n }\r\n\r\n function initEstimatedEffortChartTab() {\r\n destroyCharts();\r\n\r\n var aggregatedData = getAggregatedEstimatedEfforts();\r\n\r\n if (!Object.keys(aggregatedData).length) {\r\n $('#explorer-scheduling-effort-by-user-chart')\r\n .html(renderNoDataAvailableContainer());\r\n return;\r\n }\r\n\r\n renderEstimatedEffortByUsersChart(aggregatedData);\r\n }\r\n\r\n function destroyCharts() {\r\n if (_effortByUserChart) {\r\n _effortByUserChart.destroy();\r\n _effortByUserChart = null;\r\n }\r\n }\r\n\r\n function getAggregatedEstimatedEfforts() {\r\n var aggregatedEstimatedEfforts = {};\r\n\r\n if (!_currentSchedulings) {\r\n _currentSchedulings = sortSchedulingList(filterSchedulingList(_locationSchedulings));\r\n }\r\n\r\n _currentSchedulings.forEach(function (scheduling) {\r\n if (!scheduling.EstimatedEffort) {\r\n return;\r\n }\r\n\r\n var aggregatedUsers = {};\r\n\r\n (scheduling.Users || []).forEach(function (user) {\r\n if (!aggregatedEstimatedEfforts.hasOwnProperty(user.OID)) {\r\n aggregatedEstimatedEfforts[user.OID] = {\r\n UserOID: user.OID,\r\n Fullname: user.Fullname,\r\n From: 0,\r\n To: 0\r\n };\r\n }\r\n\r\n aggregatedEstimatedEfforts[user.OID].From += scheduling.EstimatedEffort;\r\n aggregatedEstimatedEfforts[user.OID].To += scheduling.EstimatedEffort;\r\n aggregatedUsers[user.OID] = true;\r\n });\r\n\r\n (scheduling.Teams || []).forEach(function (team) {\r\n (team.Users || []).forEach(function (teamUser) {\r\n if (aggregatedUsers.hasOwnProperty(teamUser.OID)) {\r\n return;\r\n }\r\n\r\n var user = Users[teamUser.OID];\r\n\r\n if (!user) {\r\n return;\r\n }\r\n\r\n if (!aggregatedEstimatedEfforts.hasOwnProperty(user.OID)) {\r\n aggregatedEstimatedEfforts[user.OID] = {\r\n UserOID: user.OID,\r\n Fullname: user.Fullname,\r\n From: 0,\r\n To: 0\r\n };\r\n }\r\n\r\n aggregatedEstimatedEfforts[user.OID].To += scheduling.EstimatedEffort;\r\n });\r\n });\r\n });\r\n\r\n return aggregatedEstimatedEfforts;\r\n }\r\n\r\n function renderNoDataAvailableContainer() {\r\n return [\r\n '
    ',\r\n '

    ',\r\n i18next.t('explorer.schedulings.noDataAvailable'),\r\n '

    ',\r\n '
    '\r\n ].join('');\r\n }\r\n\r\n function renderEstimatedEffortByUsersChart(aggregatedData) {\r\n if (!aggregatedData) {\r\n return;\r\n }\r\n\r\n var data = [[], []];\r\n var yAxisLabels = [];\r\n\r\n Object.values(aggregatedData)\r\n .sort(Tools.SortByFullname)\r\n .forEach(function (effortData) {\r\n data[0].push(effortData.From);\r\n\r\n if (effortData.From !== effortData.To) {\r\n data[1].push(effortData.To - effortData.From);\r\n } else {\r\n data[1].push(0);\r\n }\r\n\r\n yAxisLabels.push(effortData.Fullname);\r\n });\r\n\r\n var unit = Client.Settings.EstimatedEffortSettings ?\r\n Properties[Client.Settings.EstimatedEffortSettings.UnitOID] :\r\n null;\r\n\r\n var unitTitle = Tools.createUnitTitle(unit);\r\n\r\n _effortByUserChart = Tools.charts.createChart(Tools.charts.chartType.StackedBar, {\r\n series: [{\r\n name: i18next.t('explorer.schedulings.tabs.estimatedEffortByUser.chart.directlyAssigned'),\r\n data: data[0]\r\n }, {\r\n name: i18next.t('explorer.schedulings.tabs.estimatedEffortByUser.chart.assignedThroughTeams'),\r\n data: data[1]\r\n }],\r\n element: document.getElementById('explorer-scheduling-effort-by-user-chart'),\r\n showLegend: true,\r\n xAxisCategories: yAxisLabels,\r\n valueFormatter: function (value) {\r\n return !!unitTitle ? (value + ' ' + unitTitle) : value;\r\n }\r\n });\r\n\r\n _effortByUserChart.render();\r\n }\r\n\r\n function resize() {\r\n if ($body.width() >= 1200) {\r\n $explorerScheduling.find('.table-filter-column').css('min-width', '250px');\r\n } else {\r\n $explorerScheduling.find('.table-filter-column.last-row').css('min-width', '350px');\r\n }\r\n\r\n $tableWrapper.css('top', $tableView.outerHeight() + $explorerScheduling.children('.table-container').outerHeight() + 10);\r\n $tableHeader.width($tableBody.width());\r\n\r\n $.each($explorerScheduling.find('.inner-table'), function (_, table) {\r\n $(table).parent().attr('colspan', _tableColumnSelection.length);\r\n });\r\n }\r\n\r\n function prepareScheduling(scheduling) {\r\n var retval = $.extend({}, scheduling);\r\n\r\n retval.Teams = prepareSchedulingTeams(scheduling.Teams);\r\n retval.Users = prepareSchedulingUsers(scheduling.Users);\r\n retval.Contacts = prepareSchedulingContacts(scheduling.Contacts);\r\n retval.ContactGroups = prepareSchedulingContactGroups(scheduling.ContactGroups);\r\n retval.DeadlineTimestamps = prepareSchedulingDeadlineTimestamps(scheduling.Schedules);\r\n retval.Rotations = prepareSchedulingRotations(scheduling.Schedules);\r\n\r\n return retval;\r\n }\r\n\r\n function prepareSchedulingTeams(teams) {\r\n var retval = $.map(teams || [], function (oid) {\r\n return window.Teams[oid];\r\n });\r\n\r\n retval.sort(function (a, b) {\r\n var titleA = (a.Title || '').toLowerCase();\r\n var titleB = (b.Title || '').toLowerCase();\r\n\r\n if (titleA > titleB) {\r\n return 1;\r\n }\r\n\r\n if (titleA < titleB) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n return retval;\r\n }\r\n\r\n function prepareSchedulingUsers(users) {\r\n var retval = $.map(users || [], function (oid) {\r\n return window.Users[oid];\r\n });\r\n\r\n retval.sort(function (a, b) {\r\n var nameA = (a.Lastname || '').toLowerCase();\r\n var nameB = (b.Lastname || '').toLowerCase();\r\n\r\n if (nameA > nameB) {\r\n return 1;\r\n }\r\n\r\n if (nameA < nameB) {\r\n return -1;\r\n }\r\n\r\n nameA = (a.Firstname || '').toLowerCase();\r\n nameB = (b.Firstname || '').toLowerCase();\r\n\r\n if (nameA > nameB) {\r\n return 1;\r\n }\r\n\r\n if (nameA < nameB) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n return retval;\r\n }\r\n\r\n function prepareSchedulingContacts(contactOIDs) {\r\n var contacts = $.map(contactOIDs || [], function (oid) {\r\n return Contacts[oid];\r\n });\r\n\r\n contacts.sort(Tools.SortByTitle);\r\n\r\n return contacts;\r\n }\r\n\r\n function prepareSchedulingContactGroups(contactGroupOIDs) {\r\n var contactGroups = $.map(contactGroupOIDs || [], function (oid) {\r\n return ContactGroups[oid];\r\n });\r\n\r\n contactGroups.sort(function (a, b) {\r\n var titleA = (a.Title || '').toLowerCase();\r\n var titleB = (b.Title || '').toLowerCase();\r\n\r\n if (titleA > titleB) {\r\n return 1;\r\n }\r\n\r\n if (titleA < titleB) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n return contactGroups;\r\n }\r\n\r\n function prepareSchedulingDeadlineTimestamps(schedules) {\r\n var retval = [];\r\n\r\n (schedules || []).forEach(function (schedule) {\r\n if (schedule.FrequencySubdayType !== Enums.FrequencySubdayTypes.RepeatOnStateChange) {\r\n retval = Tools.addUnique(retval, schedule.DeadlineTimestamps);\r\n } else if (_virtualSchedules) {\r\n var virtuals = _virtualSchedules[schedule.OID];\r\n if (!virtuals || !virtuals.length) {\r\n return;\r\n }\r\n\r\n for (var vi = 0; vi < virtuals.length; vi++) {\r\n var virt = virtuals[vi];\r\n if (virt.IsExecuted) {\r\n continue;\r\n }\r\n\r\n var deadline = new Date(virt.NextExecution);\r\n deadline = new Date(deadline.getTime() - schedule.CreationOffset * 60000);\r\n retval = Tools.addUnique(retval, Tools.dateTime.toGMTString(deadline));\r\n }\r\n }\r\n });\r\n\r\n retval = $.map(retval, function (value) { return new Date(value); });\r\n\r\n retval.sort(function (a, b) { return a.getTime() - b.getTime(); });\r\n\r\n return retval;\r\n }\r\n\r\n function prepareSchedulingRotations(schedules) {\r\n var today = Tools.dateTime.getDateFromObject(new Date());\r\n\r\n return $.map(schedules || [], function (schedule) {\r\n if (schedule.EndingDate && schedule.EndingDate < today) {\r\n return;\r\n }\r\n\r\n return scheduling.createScheduleRotationText(schedule);\r\n });\r\n }\r\n\r\n function disposeTab() {\r\n destroyCharts();\r\n $tableBody.empty();\r\n }\r\n\r\n Scheduling.Show = show;\r\n Scheduling.Resize = resize;\r\n Scheduling.PrepareScheduling = prepareScheduling;\r\n Scheduling.ResetFilters = resetFilters;\r\n Scheduling.ResetSchedulingCache = resetSchedulingCache;\r\n Scheduling.UpdateTabCounter = updateTabCounter;\r\n Scheduling.Dispose = disposeTab;\r\n\r\n return (global.Scheduling = Scheduling);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function (global) {\r\n var ExplorerTabs = {};\r\n\r\n var $tabMenu = $('#explorer-tab-menu');\r\n var $moreMenu = $('#explorer-tab-menu-more');\r\n var $tabItems = $tabMenu.children('.tab-view-tab').not($moreMenu);\r\n var $moreItems = $moreMenu.find('.dropdown-item');\r\n var $optionMenu = $('#explorer-tab-menu-options');\r\n\r\n function generate(availableMenuItems) {\r\n $tabItems.addClass('hide disabled');\r\n $moreItems.addClass('hide disabled');\r\n\r\n renderMenu(availableMenuItems);\r\n }\r\n\r\n function renderMenu(menuItems) {\r\n menuItems = menuItems || [];\r\n\r\n var tabItems = menuItems.map(renderMenuItem);\r\n\r\n if (menuItems.length) {\r\n tabItems.push(createMoreItem());\r\n }\r\n\r\n tabItems.push(createTabMenuOptionsItem());\r\n\r\n $tabMenu.html(tabItems.join(''));\r\n\r\n $moreMenu = $('#explorer-tab-menu-more');\r\n $optionMenu = $('#explorer-tab-menu-options');\r\n\r\n var optionsSet = !Explorer.GetWithChildLocations() || Explorer.GetWithDeactivatedElements();\r\n\r\n $optionMenu\r\n .find('> span')\r\n .toggleClass('items-selected', optionsSet);\r\n\r\n $moreMenu.find('ul').html(menuItems.map(renderMoreMenuItem));\r\n\r\n $moreItems = $moreMenu.find('.dropdown-item');\r\n\r\n $tabMenu.find('img')\r\n .off('error')\r\n .on('error', onIconNotFoundError);\r\n\r\n Explorer.ResizeTabMenu();\r\n }\r\n\r\n function onIconNotFoundError() {\r\n var $icon = $(this);\r\n var $button = $icon.parents('.tab-view-tab');\r\n var menuItem = Explorer.MenuItems[$button.data('tab-id')];\r\n\r\n if (!menuItem) {\r\n return;\r\n }\r\n\r\n var defaultIconFilePath = CustomMenuItems.GetDefaultOfficeIconFilePath(menuItem.ActionType);\r\n\r\n if (!defaultIconFilePath) {\r\n return;\r\n }\r\n\r\n $icon.attr('src', defaultIconFilePath);\r\n }\r\n\r\n function renderMenuItem(menuItem) {\r\n if (!menuItem) {\r\n return '';\r\n }\r\n\r\n var currentTab = Explorer.GetCurrentTab();\r\n var tabIsActive = currentTab && currentTab.OID === menuItem.OID;\r\n var additionalListItemAttrs = [];\r\n\r\n if (menuItem.ActionType === Enums.CustomMenuItemActionType.ShowIssueReport) {\r\n additionalListItemAttrs.push('count=\"0\"');\r\n }\r\n\r\n return [\r\n '
  • ',\r\n ''.format(menuItem.Icon),\r\n '{0}'.format(menuItem.Title),\r\n '
  • '\r\n ].join('');\r\n }\r\n\r\n function renderMoreMenuItem(menuItem) {\r\n if (!menuItem) {\r\n return '';\r\n }\r\n\r\n return [\r\n '
  • '.format(menuItem.OID),\r\n '{0}'.format(menuItem.Title),\r\n '
  • '\r\n ].join('');\r\n }\r\n\r\n function createMoreItem() {\r\n return [\r\n '
  • ',\r\n '
    {0}
    '.format(i18next.t('tabs.more')),\r\n '
      ',\r\n '
    • '\r\n ].join('');\r\n }\r\n\r\n function createTabMenuOptionsItem() {\r\n var withChildLocations = Explorer.GetWithChildLocations();\r\n var withDeactivatedElements = Explorer.GetWithDeactivatedElements();\r\n\r\n return [\r\n '
    • ',\r\n '{0}'.format(i18next.t('tabs.options')),\r\n '
        ',\r\n '
      • {0}
      • '.format(i18next.t('tabs.showQRCode')),\r\n '
      • {1}
      • '\r\n .format(withChildLocations ? ' dropdown-checkbox-item-checked' : '', i18next.t('tabs.withChildLocations')),\r\n '
      • {1}
      • '\r\n .format(withDeactivatedElements ? ' dropdown-checkbox-item-checked' : '', i18next.t('tabs.withDeactivatedElements')),\r\n '
      ',\r\n '
    • ',\r\n ].join('');\r\n }\r\n\r\n ExplorerTabs.Generate = generate;\r\n\r\n return (global.Tabs = ExplorerTabs);\r\n})( window.Explorer || (window.Explorer = {}) );","/**\r\n * @require ./explorer.js\r\n */\r\n(function ( global ) {\r\n\tvar Values = {};\r\n\r\n var elements;\r\n var visibleParametergroups;\r\n\r\n var $body = $('body');\r\n var $tree = $('#center-tree');\r\n var $explorerDashboard = $('#explorer-dashboard');\r\n var $explorerInfo = $('#explorer-info');\r\n var $explorerValues = $('#explorer-values');\r\n var $explorerNews = $('#explorer-news');\r\n var $explorerIssues = $('#explorer-issues');\r\n var $explorerDisturbances = $('#explorer-disturbances');\r\n var $explorerScheduling = $('#explorer-scheduling');\r\n var $explorerFiles = $('#explorer-files');\r\n var $explorerArchive = $('#explorer-archive');\r\n var $properties = $('#properties');\r\n var $explorerTabMenu = $('#explorer-tab-menu');\r\n var $explorerOptionMenu = $('#explorer-tab-menu-options');\r\n var $tableWrapper = $explorerValues.find('.content-wrapper');\r\n\r\n function show(match) {\r\n var initResult = Explorer.Init(match);\r\n\r\n if (!initResult.CurrentTabIsAvailable) {\r\n var currentTab = Explorer.GetCurrentTab();\r\n\r\n if (currentTab && initResult.NewTab && initResult.NewTab.OID !== currentTab.OID) {\r\n Explorer.ShowTab(initResult.NewTab);\r\n return;\r\n }\r\n }\r\n\r\n init();\r\n updateTable();\r\n }\r\n\r\n function init() {\r\n elements = {};\r\n visibleParametergroups = {};\r\n\r\n $tree.tree(\r\n 'remove-class-from-all-nodes',\r\n 'jquery-tree-node-marker-green jquery-tree-node-marker-yellow jquery-tree-node-marker-red'\r\n );\r\n\r\n $tableWrapper.empty();\r\n\r\n initTab();\r\n unbindEvents();\r\n bindEvents();\r\n updateTabCounter(Explorer.GetCurrentTab());\r\n }\r\n\r\n function initTab() {\r\n $explorerDashboard.addClass('hide');\r\n $explorerInfo.addClass('hide');\r\n $explorerValues.removeClass('hide');\r\n $explorerNews.addClass('hide');\r\n $explorerIssues.addClass('hide');\r\n $explorerDisturbances.addClass('hide');\r\n $explorerScheduling.addClass('hide');\r\n $explorerFiles.addClass('hide');\r\n $explorerArchive.addClass('hide');\r\n $properties.removeClass('active');\r\n\r\n $explorerTabMenu.find('.open').removeClass('open');\r\n\r\n $explorerOptionMenu.removeClass('active');\r\n }\r\n\r\n function unbindEvents() {\r\n $body.off('click.hideRecorditem');\r\n $tableWrapper.off('click.expandCollapse');\r\n $tableWrapper.off('click.showAnalysis');\r\n $tableWrapper.off('click.showRecorditem');\r\n }\r\n\r\n function bindEvents() {\r\n $tableWrapper.on('click.expandCollapse', '.arrow', onExpandCollapse);\r\n $tableWrapper.on('click.showAnalysis', '.parametergroup, .parameter', onShowAnalysis);\r\n $tableWrapper.on('click.showRecorditem', '.recorditem[data-oid]', onShowRecorditem);\r\n }\r\n\r\n function onExpandCollapse(event) {\r\n var $parametergroup = $(this).closest('.parametergroup');\r\n var oid = $parametergroup.data('oid');\r\n var $parameters = $tableWrapper.find('.parameter[data-parametergroup-oid=\"{0}\"]'.format(oid));\r\n\r\n $parametergroup.toggleClass('expanded');\r\n $parameters.toggleClass('expanded');\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function onShowAnalysis() {\r\n var oid = $(this).data('oid');\r\n\r\n CheckpointAnalysis.Show(oid, null, elements);\r\n }\r\n\r\n function onShowRecorditem(event) {\r\n var $this = $(this);\r\n var $parameter = $this.closest('.parameter');\r\n var parameterOID = $parameter.data('oid');\r\n var recorditemOID = $this.data('oid');\r\n var checkpoint = elements[parameterOID];\r\n\r\n var checkpointGroup = checkpoint.Parent;\r\n\r\n var groupRolesThatMayRecordValues = (checkpointGroup.AdditionalSettings || {}).RolesThatMayRecordValues || [];\r\n var checkpointRolesThatMayRecordValues = (checkpoint.AdditionalSettings || {}).RolesThatMayRecordValues || [];\r\n\r\n var rolesThatMayRecordValues = groupRolesThatMayRecordValues\r\n .concat(checkpointRolesThatMayRecordValues)\r\n .filter(function (roleIdentifier) {\r\n return Roles.hasOwnProperty(roleIdentifier);\r\n });\r\n\r\n var rolesAtLocation = ressources.users.getRolesAtLocation(User.OID, CurrentEntity.OID);\r\n var canModifyCheckpoint = CurrentEntity.Enabled && (!rolesThatMayRecordValues.length || rolesThatMayRecordValues.some(function (roleIdentifier) {\r\n return rolesAtLocation.includes(roleIdentifier);\r\n }));\r\n\r\n RecorditemDetails.show({\r\n OID: recorditemOID,\r\n $Target: $this,\r\n $Parent: $tableWrapper,\r\n $Container: $tableWrapper,\r\n IsReadonly: canModifyCheckpoint === false,\r\n OnChanged: function (recorditem) {\r\n if (checkpoint.hasOwnProperty('LastRecorditem')) {\r\n checkpoint.LastRecorditem.Value = recorditem.Value;\r\n checkpoint.LastRecorditem.IsModified = true;\r\n\r\n $this\r\n .data('oid', recorditem.OID)\r\n .html(Tools.values.render(recorditem, { suppressCategory: true }));\r\n\r\n $tableWrapper.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n }\r\n },\r\n OnCommentsChanged: function (recorditem) {\r\n $this\r\n .data('oid', recorditem.OID)\r\n .html(Tools.values.render(recorditem, { suppressCategory: true }));\r\n\r\n $tableWrapper.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n }\r\n });\r\n\r\n $body.off('click.hideRecorditem');\r\n $body.on('click.hideRecorditem', RecorditemDetails.hide);\r\n\r\n event.stopPropagation();\r\n return false;\r\n }\r\n\r\n function updateTable() {\r\n $tableWrapper.off('scroll.infiniteScroll');\r\n\r\n Tools.Spinner.show();\r\n\r\n load()\r\n .then(prepareData, function (xhr) {\r\n Tools.Spinner.hide();\r\n Tools.handleHttpError(Enums.HttpActionType.Read, xhr);\r\n })\r\n .then(renderData)\r\n .then(function (data) {\r\n $tableWrapper.find('img')\r\n .off('error')\r\n .on('error', Tools.OnImageNotFound);\r\n\r\n Tools.Spinner.hide();\r\n\r\n return data;\r\n });\r\n }\r\n\r\n function load() {\r\n if (CurrentEntity.HasCheckpoints) {\r\n var params = {\r\n withlastrecorditem: true,\r\n withchildelements: true,\r\n withdeactivatedelements: Explorer.GetWithDeactivatedElements()\r\n };\r\n\r\n return Tools.http.get('elements/' + CurrentEntity.OID, null, null, params);\r\n }\r\n\r\n return $.Deferred().resolve().promise();\r\n }\r\n\r\n function prepareData(data) {\r\n for (var idx = 0, len = (data || []).length; idx < len; idx++) {\r\n var elem = data[idx];\r\n\r\n elem = Tools.Escape.Element(elem, true);\r\n elem.Parameters = [];\r\n\r\n elements[elem.OID] = elem;\r\n }\r\n\r\n for (var oid in elements) {\r\n if (!elements.hasOwnProperty(oid)) {\r\n continue;\r\n }\r\n\r\n var elem = elements[oid];\r\n\r\n if (!elem.Enabled) {\r\n continue;\r\n }\r\n\r\n if (elem.Type < 99) {\r\n continue;\r\n }\r\n\r\n if (!elem.hasOwnProperty('ParentOID')) {\r\n continue;\r\n }\r\n\r\n if (!elements.hasOwnProperty(elem.ParentOID)) {\r\n continue;\r\n }\r\n\r\n elem.Parent = elements[elem.ParentOID];\r\n\r\n if (elem.Parent && elem.Parent.Type !== Enums.elementType.Parametergroup) {\r\n continue;\r\n }\r\n\r\n if (filterByUserRoles(elem)) {\r\n continue;\r\n }\r\n\r\n if (filterByKeywords(elem)) {\r\n continue;\r\n }\r\n\r\n if (elem.Type === Enums.elementType.EMailAddresses &&\r\n !Tools.IsEMailCpEnabled()) {\r\n continue;\r\n }\r\n\r\n if (!visibleParametergroups.hasOwnProperty(elem.Parent.OID)) {\r\n if (elem.Parent.Attribute === 5) {\r\n continue;\r\n }\r\n\r\n visibleParametergroups[elem.Parent.OID] = true;\r\n }\r\n\r\n elem.Parent.Parameters.push(elem);\r\n elem.Parent.Parameters.sort(Tools.SortByPosition);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function filterByUserRoles(elem) {\r\n if (!elem) {\r\n return true;\r\n }\r\n\r\n var rolesThatMaySeeThisElement = ((elem.AdditionalSettings || {}).RolesThatMaySeeThisElement || [])\r\n .filter(function (roleIdentifier) {\r\n return Roles.hasOwnProperty(roleIdentifier);\r\n });;\r\n\r\n if (!rolesThatMaySeeThisElement.length) {\r\n // Keine Einschränkungen vorhanden\r\n return false;\r\n }\r\n\r\n var rolesAtLocation = ressources.users.getRolesAtLocation(User.OID, CurrentEntity.OID);\r\n\r\n return !(rolesAtLocation.length && rolesThatMaySeeThisElement.some(function (roleIdentifier) {\r\n return rolesAtLocation.includes(roleIdentifier);\r\n }));\r\n }\r\n\r\n function filterByKeywords(elem) {\r\n if (!elem) {\r\n return true;\r\n }\r\n\r\n var selectedKeywords = ((Explorer.GetCurrentTab() || {}).Configuration || {}).Keywords || [];\r\n\r\n if (!selectedKeywords.length) {\r\n return false;\r\n }\r\n\r\n if (elem.Type >= 100 && elem.Parent && (elem.Parent.Properties || []).length) {\r\n return !(elem.Parent.Properties || []).some(function (identifier) {\r\n return selectedKeywords.indexOf(identifier) !== -1;\r\n });\r\n }\r\n\r\n return !(elem.Properties || []).some(function (identifier) {\r\n return selectedKeywords.indexOf(identifier) !== -1;\r\n });\r\n }\r\n\r\n function renderData(data) {\r\n var html = [];\r\n var groups = Object.keys(visibleParametergroups)\r\n .map(function (groupIdentifier) {\r\n return elements[groupIdentifier];\r\n })\r\n .sort(Tools.SortByPosition);\r\n\r\n if (!groups.length) {\r\n html = [\r\n '
      ',\r\n '
      ',\r\n '

      {0}

      '.format(i18next.t('explorer.values.noDataAvailable')),\r\n '
      ',\r\n '
      '\r\n ];\r\n\r\n $tableWrapper.html(html.join(''));\r\n return data;\r\n }\r\n\r\n groups.forEach(function (group) {\r\n html.push('
      ');\r\n html.push(renderParametergroup(group));\r\n\r\n (group.Parameters || []).forEach(function (param) {\r\n html.push(renderParameter(param));\r\n });\r\n\r\n html.push('
      ');\r\n });\r\n\r\n $tableWrapper.html(html.join(''));\r\n\r\n return data;\r\n }\r\n\r\n function renderParametergroup(group) {\r\n if (!group) {\r\n return null;\r\n }\r\n\r\n var html = [];\r\n\r\n html.push(\r\n '
      '.format(group.OID),\r\n '
      ',\r\n '
      '.format(group.Color || '#7E1210'),\r\n '{0}'.format(group.Title || i18next.t('misc.untitled')),\r\n '
      '\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function renderParameter(param) {\r\n if (!param) {\r\n return null;\r\n }\r\n\r\n var html = [];\r\n\r\n html.push(\r\n '
      '\r\n .format(param.OID, param.ParentOID),\r\n '
      ',\r\n '{0}'.format(param.Title || i18next.t('misc.untitled'))\r\n );\r\n\r\n if (param.Description) {\r\n html.push(\r\n '

      ',\r\n param.Description.replace(/(\\r\\n)|(\\n)|(\\r)/ig, '
      '),\r\n '

      '\r\n );\r\n }\r\n\r\n html.push('
      ');\r\n\r\n if (param.Type !== Enums.elementType.Info) {\r\n if (param.LastRecorditem) {\r\n var category = Properties[param.LastRecorditem.CategoryOID];\r\n\r\n html.push(\r\n '
      '\r\n );\r\n } else {\r\n html.push('
      ');\r\n }\r\n\r\n html.push(\r\n Tools.values.render(param.LastRecorditem, {suppressCategory: true, elements: elements}),\r\n '
      '\r\n );\r\n }\r\n\r\n html.push('
      ');\r\n\r\n return html.join('');\r\n }\r\n\r\n function updateTabCounter(menuItemConfig) {\r\n if (!menuItemConfig) {\r\n return $.Deferred().reject().promise();\r\n }\r\n\r\n if (!CurrentEntity.HasCheckpoints) {\r\n return $.Deferred().resolve().promise();\r\n }\r\n\r\n Explorer.SetTabCounterLoading(menuItemConfig.OID);\r\n\r\n var request = Tools.http.post('custommenuitems/' + menuItemConfig.OID + '/counter/' + CurrentEntity.OID);\r\n\r\n request.then(function (counter) {\r\n Explorer.SetTabCounter(menuItemConfig.OID, counter || 0);\r\n }, function (xhr, textStatus) {\r\n if (textStatus !== 'abort') {\r\n Explorer.SetTabCounter(menuItemConfig.OID, 0);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n function disposeTab() {\r\n $tableWrapper.empty();\r\n }\r\n\r\n Values.Show = show;\r\n Values.UpdateTabCounter = updateTabCounter;\r\n Values.Dispose = disposeTab;\r\n\r\n return (global.Values = Values);\r\n})( window.Explorer || (window.Explorer = {}) );"],"sourceRoot":"js/explorer"}