{"version":3,"sources":["components lazy /^/.//Dashboard.*$/ groupOptions: {} namespace object","components/Report/ReactReport/Templates lazy /^/.//.*$/ groupOptions: {} namespace object","components/Icons/ScaleBalance.js","controller/preferences/useListPropsPreferencesLocal.js","components/Layout/list/ListProrsPreferences.js","components/Layout/list/List.js","controller/preferences/PreferenceContext.js","controller/preferences/usePreferenceContext.js","controller/preferences/usePreferences.js","controller/preferences/useColumnsPreferences.js","components/Layout/preferences/SelectColumnsMenu.js","components/Layout/list/ExportButtonAsMenuItem.js","components/Layout/list/ListActionsMoreButton.js","components/Layout/list/ListActionsWithSelectColumnsButton.js","exporter/booleanFormatter.js","exporter/dateFormatter.js","exporter/enumFormatter.js","exporter/numberFormatter.js","exporter/index.js","components/BalanceRegion/useBalanceRegionExporter.js","dataProvider/Core/removeToTrash.js","components/Buttons/BulkRemoveButton.js","dataProvider/Core/removeManyToTrash.js","components/Buttons/BulkUpdateTagsButton.js","dataProvider/Core/updataManyTags.js","abilityProvider/index.js","components/BalanceRegion/BalanceRegionBulkActionButtons.js","components/Layout/filter/FilterFormInput.js","components/Layout/filter/ManualSubmitFilterForm.js","components/Layout/filter/ManualSubmitFilterButton.js","components/Icons/FilterAdd.js","controller/preferences/useFilterSetsPreferences.js","components/Layout/filter/AddFilterSetDialog.js","components/Layout/filter/RemoveFilterSetDialog.js","components/Layout/filter/FilterButtonWithSave.js","components/Layout/filter/ManualSubmitFilter.js","components/Inputs/SearchInput.js","components/Report/ReportIcon.js","components/Report/ReportAutocompleteSuggestionItem.js","components/Report/ReportChip.js","components/Report/ReportReferenceArrayInput.js","components/BalanceRegion/BalanceRegionFilter.js","components/Buttons/EditButtonAsMenuItem.js","components/Buttons/MoreButton.js","components/Fields/sanitizeFieldRestProps.js","components/Fields/Link.js","components/Fields/ResourceLinkField.js","components/Buttons/RemoveButtonAsMenuItem.js","components/Buttons/ShowBlankButtonAsMenuItem.js","components/Tag/TagArrayField.js","components/Tag/TagChip.js","components/Layout/list/useListStyles.js","controller/preferences/useSelectedColumnsPreferences.js","controller/preferences/useColumns.js","components/BalanceRegion/BalanceRegionDatagrid.js","components/BalanceRegion/BalanceRegionList.js","components/Fields/AisChip.js","components/Inputs/ResourceAutocompleteSuggestionItem.js","components/Inputs/ResourceAutocompleteSelectedItem.js","components/Report/ReportReferenceArrayInputWithDefault.js","components/Icons/CheckboxBlank.js","components/Tag/TagAutocompleteSuggestionItem.js","components/Tag/TagAutocompleteSelectedItem.js","components/Tag/TagReferenceArrayInput.js","components/BalanceRegion/BalanceRegionCreate.js","components/Layout/EditView.js","components/Layout/Edit.js","components/Layout/ToolbarSpacer.js","components/Layout/CardBlankLayout.js","components/Buttons/RemoveButton.js","components/Buttons/CancelButton.js","components/BalanceRegion/BalanceRegionBanner.js","components/BalanceRegion/BalanceRegionEdit.js","components/Fields/DividerField.js","components/Layout/CardShowLayout.js","components/GasDistrict/GasDistrictDatagrid.js","components/Layout/MoreContent.js","components/Fields/NestedField.js","components/Layout/GridLayoutSimple.js","components/Fields/NestedGridField.js","components/Inputs/EnumInput.js","components/Fields/EnumField.js","components/History/HistoryList.js","components/Buttons/ReferenceListLinkButton.js","components/Fields/referenceManyField/ReferenceManyActions.js","components/Fields/referenceManyField/ReferenceManyToolbar.js","components/Fields/referenceManyField/ReferenceManyField.js","controller/preferences/useStateShowStorageProps.js","controller/preferences/useEffectShowStorageProps.js","components/Fields/referenceManyField/ReferenceManyFilterForm.js","hooks/useDebouncedFunction.js","components/Fields/referenceManyField/ReferenceManyFilter.js","components/Report/ReportAvatar.js","components/Report/ReportCard.js","components/Layout/Separator.js","components/Layout/ShowView.js","components/Layout/Show.js","components/BalanceRegion/BalanceRegionShow.js","components/BalanceRegion/index.js","components/Counterparty/useCounterpartyExporter.js","components/Counterparty/CounterpartyBulkActionButtons.js","components/Layout/filter/QuickFilter.js","components/Counterparty/CounterpartyFilter.js","components/Fields/PhoneField.js","components/Counterparty/CounterpartyDatagrid.js","components/Counterparty/CounterpartyList.js","components/Inputs/sanitizeRestProps.js","components/Inputs/PhoneInput.js","components/Counterparty/AccessResourceInput.js","components/Inputs/CheckboxCheckAllInputItem.js","components/Inputs/CheckboxGroupInputItem.js","components/Inputs/CheckboxGroupInput.js","components/Counterparty/AccessReferenceArrayInput.js","components/Fields/GridField.js","components/Counterparty/CounterpartyCreate.js","components/Counterparty/CounterpartyBanner.js","components/Counterparty/CounterpartyEdit.js","components/Layout/SimpleShowLayout.js","components/Fields/NestedArrayField.js","components/Counterparty/CounterpartyShow.js","components/Counterparty/index.js","components/Icons/Consumer.js","components/GasConsumer/GasConsumerBulkActionButtons.js","components/Inputs/AutoompleteInput.js","components/Inputs/ResourceAutocompleteInputText.js","components/GasConsumer/GasConsumerFilter.js","components/GasConsumer/GasConsumerDatagrid.js","components/GasConsumer/useGasConsumerExporter.js","components/Icons/DocumentationIcon.js","components/Layout/DocumentationLinkButton.js","components/GasConsumer/GasConsumerList.js","components/GasConsumer/GasConsumerCreate.js","components/GasConsumer/GasConsumerBanner.js","components/GasConsumer/GasConsumerEdit.js","components/GasMeterPad/GasMeterPadDisabledChip.js","components/GasMeterPad/GasMeterPadProviderChip.js","components/Tag/TagArrayEnhancedField.js","components/Fields/GasQualityCertificateWritableChip.js","components/GasMeterPad/GasMeterPadDatagrid.js","components/GasConsumer/OwnershipGasMeterPadsDatagrid.js","components/GasConsumer/GasConsumerShow.js","components/GasConsumer/index.js","components/Icons/GRO.js","components/GasDistributorOrganization/useGasDistributorOrganizationExporter.js","components/GasDistributorOrganization/GasDistributorOrganizationBulkActionButtons.js","components/GasDistributorOrganization/GasDistributorOrganizationFilter.js","components/GasDistributorOrganization/GasDistributorOrganizationDatagrid.js","components/GasDistributorOrganization/GasDistributorOrganizationList.js","components/GasDistributorOrganization/GasDistributorOrganizationCreate.js","components/GasDistributorOrganization/GasDistributorOrganizationBanner.js","components/GasDistributorOrganization/GasDistributorOrganizationEdit.js","components/GasDistributorOrganization/GasDistributorOrganizationShow.js","components/GasDistributorOrganization/index.js","components/Icons/GRS.js","components/GasDistributorStation/useGasDistributorStationExporter.js","components/GasDistributorStation/GasDistributorStationBulkActionButtons.js","components/GasDistributorStation/GasDistributorStationFilter.js","components/GasDistributorStation/GasDistributorStationDatagrid.js","components/GasDistributorStation/GasDistributorStationList.js","components/Buttons/QuickCreateButton.js","components/GasDistributorStationOutput/GasDistributorStationOutputCreate.js","components/GasDistributorStation/ReferenceArrayGasDistributorStationOutput.js","components/GasDistributorStation/GasDistributorStationCreate.js","components/GasDistributorStation/GasDistributorStationBanner.js","components/GasDistributorStation/GasDistributorStationEdit.js","components/GasDistributorStationOutput/GasDistributorStationOutputDatagrid.js","components/GasQualityCertificate/GasQualityCertificateN2Field.js","components/GasQualityCertificate/GasQualityCertificateCO2Field.js","components/GasQualityCertificate/GasQualityCertificateDensityField.js","components/Layout/preferences/useColumns.js","components/GasQualityCertificate/GasQualityCertificateDatagrid.js","components/GasDistributorStation/GasDistributorStationShow.js","components/GasDistributorStation/index.js","components/Icons/GRSOutput.js","components/GasDistributorStationOutput/GasDistributorStationOutputBanner.js","components/GasDistributorStationOutput/GasDistributorStationOutputEdit.js","components/GasDistributorStationOutput/GasDistributorStationOutputShow.js","components/GasDistributorStationOutput/index.js","components/Icons/District.js","components/GasDistrict/useGasDistrictExporter.js","components/GasDistrict/GasDistrictBulkActionButtons.js","components/GasDistrict/GasDistrictFilter.js","components/GasDistrict/GasDistrictList.js","components/GasDistrict/GasDistrictCreate.js","components/GasDistrict/GasDistrictBanner.js","components/GasDistrict/GasDistrictEdit.js","components/GasDistrict/GasDistrictShow.js","components/GasDistrict/index.js","components/Icons/ValvePad.js","components/GasMeterPad/useGasMeterPadExporter.js","components/GasMeterPad/GasDistributorStationOutputSuggestionItem.js","components/GasMeterPad/GasMeterPadFilter.js","components/GasMeterPad/GasMeterPadDisabledPeriodsArrayInput.js","dataProvider/Core/typeDefs.js","components/GasMeterPad/GasMeterPadBulkUpdateDisabledPeriodsButton.js","dataProvider/Core/updateManyDisabledPeriods.js","components/GasMeterPad/GasMeterPadBulkActionButtons.js","components/GasMeterPad/GasMeterPadList.js","components/Inputs/BooleanInput.js","components/GasMeterPad/GasMeterPadCreate.js","components/GasMeterPad/GasMeterPadBanner.js","components/GasMeterPad/GasMeterPadEdit.js","components/GasMeterPad/GasMeterPadDisabledPeriodChip.js","components/GasMeterUnit/GasMeterUnitEnabledWriteChip.js","components/GasMeterUnit/analitics/DeviceStatusField.js","components/GasMeterUnit/MetricGasMeterDateField.js","components/GasMeterUnit/GasMeterUnitDatagrid.js","components/GasMeterPad/GasMeterPadShow.js","components/GasMeterPad/index.js","components/GasMeterPoint/GasMeterPointBanner.js","components/GasMeterPoint/GasMeterPointEdit.js","components/Fields/BooleanField.js","components/GasMeterPoint/GasMeterPointShow.js","components/GasMeterPoint/index.js","components/Icons/Valve.js","components/GasMeterUnit/useGasMeterUnitExporter.js","components/Inputs/IPInput.js","dataProvider/Analitics/apolloClient.js","components/GasMeterUnit/analitics/DeviceStatusBackReferenceInput.js","dataProvider/Analitics/useEnum.js","components/GasMeterUnit/GasMeterUnitFilter.js","components/GasMeterUnit/GasMeterUnitBulkActionButtons.js","components/GasMeterUnit/GasMeterUnitList.js","components/GasMeterPoint/GasMeterPointCreate.js","components/GasMeterUnit/ReferenceArrayGasMeterPointInput.js","components/GasMeterUnit/GasMeterUnitCreate.js","components/GasMeterUnit/GasMeterUnitBanner.js","components/GasMeterUnit/GasMeterUnitEdit.js","components/GasMeterPoint/GasMeterPointList.js","components/Report/ReportNestedGridField.js","dataProvider/Prometheus/useLastupdateGasMeter.js","dataProvider/Core/getOneDevice.js","components/GasMeterUnit/GasMeterUnitDeviceLinkField.js","components/GasMeterUnit/analitics/DeviceStatusLayout.js","components/GasMeterUnit/analitics/DeviceStatusDatailsField.js","dataProvider/Analitics/typeDefs.js","components/GasMeterUnit/analitics/DeviceStatusRefreshButton.js","dataProvider/Analitics/refreshDeviceStatus.js","components/GasMeterUnit/GasMeterUnitShow.js","components/GasMeterUnit/index.js","components/Layout/Dropzone.js","components/GasQualityCertificate/GasDistributorStationChipField.js","components/GasQualityCertificate/GasQualityCertificateImportDatagrid.js","components/GasQualityCertificate/GasQualityCertificateImportDialog.js","components/GasQualityCertificate/GasQualityCertificateImportButton.js","dataProvider/Core/importGasQualityCertificates.js","components/GasQualityCertificate/GasQualityCertificateEmpty.js","components/GasQualityCertificate/GasQualityCertificateListActions.js","components/GasQualityCertificate/useGasQualityCertificateExporter.js","components/GasQualityCertificate/getGasQualityCertificateWriteValues.js","dataProvider/Databus/writeGasQualityCertificate.js","dataProvider/Core/addHistory.js","components/GasQualityCertificate/GasQualityCertificateWriteBulkActionsButton.js","components/GasQualityCertificate/GasQualityCertificateBulkActionButtons.js","components/GasQualityCertificate/GasQualityCertificateFilter.js","components/GasQualityCertificate/GasQualityCertificateList.js","components/GasQualityCertificate/GasQualityCertificateCreate.js","components/GasQualityCertificate/GasQualityCertificateBanner.js","components/GasQualityCertificate/GasQualityCertificateEdit.js","components/GasQualityCertificate/GasQualityCertificateWriteButton.js","components/GasQualityCertificate/GasQualityCertificateShow.js","components/GasQualityCertificate/index.js","components/GasRegion/useGasRegionExporter.js","components/GasRegion/GasRegionBulkActionButtons.js","components/GasRegion/GasRegionFilter.js","components/GasRegion/GasRegionDatagrid.js","components/GasRegion/GasRegionList.js","components/GasRegion/GasRegionCreate.js","components/GasRegion/GasRegionBanner.js","components/GasRegion/GasRegionEdit.js","components/GasRegion/GasRegionShow.js","components/GasRegion/index.js","components/Layout/BlankShowLayout.js","components/Fields/JsonField.js","components/History/LinkField.js","components/Fields/ListFieldToolbar.js","components/Buttons/ReferenceListLinkButton2.js","components/Fields/ListFieldActions.js","components/Fields/ListField.js","components/History/HistoryField.js","components/History/HistoryShow.js","components/History/index.js","components/Report/ReportList.js","components/Layout/Report.js","components/Report/ReactReport/index.js","components/Report/ReportShow.js","components/Report/index.js","components/Icons/Despatch.js","components/Fields/CronField.js","components/ReportDespatch/ReportDespatchList.js","components/Inputs/CronInput2.js","components/ReportDespatch/ReportDespatchSchedulerInput.js","components/Contact/ContactUserReferenceInput.js","components/Contact/ContactEmailInput.js","components/Contact/ContactCreate.js","components/Contact/ContactReferenceArrayInput.js","components/ReportDespatch/ReportDespatchCreate.js","components/ReportDespatch/ReportDespatchEdit.js","components/Contact/ContactChip.js","components/Icons/SendEmailNow.js","dataProvider/ReportDespatch/utils.js","dataProvider/ReportDespatch/apolloClient.js","dataProvider/ReportDespatch/typeDefs.js","dataProvider/ReportDespatch/ReportDespatch/runNow.js","components/Buttons/RunNowReportDespatchButton.js","components/ReportDespatch/ReportDespatchShow.js","components/ReportDespatch/index.js","components/Tag/TagResourceInput.js","components/Fields/ColorField.js","components/Tag/TagList.js","components/Inputs/ColorInput/ColorPicker.js","components/Inputs/ColorInput/Swatch.js","components/Inputs/ColorInput/index.js","components/Inputs/ColorInput/ColorInput.js","components/Tag/TagCreate.js","components/Tag/TagEdit.js","components/Tag/TagBanner.js","components/Tag/TagShow.js","components/Tag/index.js","components/Layout/RowToolbar.js","dataProvider/Core/deleteManyFromTrash.js","dataProvider/Core/deleteFromTrash.js","components/Buttons/BulkDeleteButton.js","dataProvider/Core/restoreFromTrash.js","components/Buttons/BulkRestoreButton.js","dataProvider/Core/restoreManyFromTrash.js","components/Buttons/RestoreButton.js","components/TrashItem/TrashItemList.js","components/TrashItem/index.js","components/User/useUserExporter.js","components/User/UserBulkActionButtons.js","components/User/UserFilter.js","components/Fields/AvatarField.js","components/Fields/OnlineBadge.js","components/User/UserDatagrid.js","components/User/UserList.js","components/Inputs/PasswordInput.js","components/User/AccessResourceInput.js","components/User/AccessReferenceArrayInput.js","components/User/UserCreate.js","components/Buttons/BanButton.js","components/Fields/EnumChip.js","components/Fields/OnlineChip.js","components/User/AccessChip.js","components/User/UserBanner.js","components/User/UserEdit.js","components/User/UserShow.js","components/User/index.js","components/Icons/Logo.js","defaultTheme.js","components/Auth/LoginForm.js","components/Auth/Login.js","files/MainBanner.svg","components/Main/WidgetBanner.js","components/Main/NewReleaseCard.js","components/Device/inputs/DeviceGasMeterPointArrayInput.js","components/Device/inputs/ControllerTypeInput.js","components/Device/inputs/GasMeterTypeInput.js","components/Device/inputs/StatusInput.js","components/Device/inputs/ControllerConfigurationStatusChip.js","components/Device/inputs/ControllerConfigurationSuggestion.js","components/Device/inputs/ReferenceControllerConfigurationInput.js","components/Device/inputs/ReferenceGasMeterConfigurationInput.js","components/Inputs/JsonVariableInputs.js","components/Inputs/JsonVariableInput.js","components/Device/ControllerWarning.js","components/Device/GasMeterWarning.js","dataProvider/Core/createDeviceWizard.js","dataProvider/Core/getOneGasMeter.js","components/Form/validate.js","components/Device/DeviceCreateWizardDialog.js","components/Icons/MagicWand.js","components/Device/DeviceCreateWizardCard.js","components/Device/DeviceCreateWizardCardButton.js","components/Main/index.js","dataProvider/Core/onlineUsersSubscription.js","dataProvider/Core/getOnlineUsers.js","dataProvider/Core/getProfile.js","redux/access/actions.js","redux/onlineUsers/actions.js","redux/user/actions.js","components/Layout/UserMenu.js","components/Layout/UserApp.js","components/Layout/UserApps.js","components/Layout/AppBar.js","components/Layout/Sidebar.js","components/Layout/MenuGroup.js","components/AboutApp/Show.js","components/Documentation/lib/getDocumentationPath.js","components/Documentation/lib/MenuItemIcon.js","components/Documentation/lib/MenuItem.js","components/Documentation/lib/Menu.js","components/Documentation/lib/Sidebar.js","components/Documentation/lib/Aside.js","components/Documentation/lib/Content.js","components/Documentation/lib/Layout.js","components/Documentation/index.js","components/Documentation/lib/MarkdownView.js","components/Documentation/Changelog.js","components/Documentation/ChangelogIcon.js","components/Documentation/docs/Ведение.md","components/Documentation/docs/Вход в систему.md","components/Documentation/docs/Описание интерфейса.md","components/AboutApp/Version.js","components/AboutApp/useInfo.js","components/Documentation/docs/CHANGELOG.md","components/Documentation/config.js","components/AboutApp/AboutAppShow.js","components/AboutApp/index.js","components/Layout/Menu.js","components/Layout/Notification.js","controller/preferences/usePreferenceController.js","controller/preferences/PreferenceContextProvider.js","components/Layout/index.js","redux/access/reducer.js","authPrivider/login.js","dataProvider/Core/loginCoreUser.js","dataProvider/Core/banCoreUser.js","abilityProvider/apolloCaslClient.js","abilityProvider/getAbilityRules.js","authPrivider/index.js","components/Buttons/SaveProfileButton.js","components/Profile/ProfileEdit.js","customRoutes.js","authPrivider/createClient.js","authPrivider/updateClient.js","dataProvider/Core/decorate.js","dataProvider/Core/builtQuery.js","dataProvider/Core/graphqlProvider.js","dataProvider/Auth/utils.js","dataProvider/Auth/apolloClient.js","dataProvider/Auth/typeDefs.js","dataProvider/Auth/AuthUser/getList.js","dataProvider/Auth/AuthUser/getMany.js","dataProvider/Auth/AuthUser/getManyReference.js","dataProvider/Auth/AuthUser/getOne.js","dataProvider/Auth/AuthUser/index.js","dataProvider/Auth/dataProvider.js","dataProvider/Prometheus/prometheusFetchClient.js","dataProvider/Prometheus/decorate.js","dataProvider/Prometheus/builtQuery.js","dataProvider/Prometheus/prometheusProvider.js","dataProvider/Analitics/decorate.js","dataProvider/Analitics/builtQuery.js","dataProvider/Analitics/graphqlProvider.js","dataProvider/ReportDespatch/Contact/create.js","dataProvider/ReportDespatch/Contact/getList.js","dataProvider/ReportDespatch/Contact/getMany.js","dataProvider/ReportDespatch/Contact/getManyReference.js","dataProvider/ReportDespatch/Contact/getOne.js","dataProvider/ReportDespatch/Contact/index.js","dataProvider/ReportDespatch/ReportDespatch/create.js","dataProvider/ReportDespatch/ReportDespatch/getList.js","dataProvider/ReportDespatch/ReportDespatch/getMany.js","dataProvider/ReportDespatch/ReportDespatch/getManyReference.js","dataProvider/ReportDespatch/ReportDespatch/getOne.js","dataProvider/ReportDespatch/ReportDespatch/update.js","dataProvider/ReportDespatch/ReportDespatch/delete.js","dataProvider/ReportDespatch/ReportDespatch/getEnum.js","dataProvider/ReportDespatch/ReportDespatch/index.js","dataProvider/ReportDespatch/dataProvider.js","dataProvider/dataProviderFactory.js","i18n/en.js","i18n/raFormLayoutLanguageRussian.js","i18n/raPreferencesLanguageRussian.js","i18n/ru.js","i18n/i18nProvider.js","redux/onlineUsers/reducer.js","redux/user/reducer.js","App.js","index.js","serviceWorker/index.js","dataProvider/Core/useResourceHierarchy.js","components/Layout/Breadcrumbs.js","utils.js","authPrivider/apolloAuthClient.js","appsettings.js","components/Dashboard/index.js","components/Inputs/AutocompleteArrayInput.js","components/Icons/Certificate.js","components/Layout/Remove.js","components/Layout/TitleForRecord.js","components/Layout/Error.js","components/Layout/Loading.js","dataProvider/Core/useDashboard.js","controller/dashboard/useDashboardController.js","components/Layout/Dashboard.js","components/Dashboard/DashboardShow.js","components/Dashboard/DashboardReferenceArrayInput.js","components/Dashboard/DashboardNestedGridField.js","components/Dashboard/DashboardCard.js","components/Dashboard/DashboardReferenceArrayInputWithDefault.js","components/Inputs/AutocompleteSuggestionList.js","components/Inputs/AutocompleteSuggestionItem.js","controller/dashboard/useDashboardModule.js","components/Layout/DashboardScadaModule.js","dataProvider/Core/apolloCoreClient.js","dataProvider/Databus/apolloDatabusClient.js","components/Layout/Breadcrumb.js","authPrivider/tokenRefresh.js","authPrivider/getAccessToken.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","keys","Object","module","exports","Icon","props","SvgIcon","d","useListPropsPreferencesLocal","useListContext","resource","perPage","setPerPage","currentSort","setSort","filterValues","displayedFilters","setFilters","listPropsContext","listPropsContextSignature","JSON","stringify","useEffect","storageProps","parse","localStorage","getItem","LOCAL_STORAGE","listPropsPreferences","get","set","setItem","isEqual","field","order","ListProrsPreferences","List","controllerProps","useListController","ListContextProvider","value","ListView","defaultProps","filter","PreferenceContext","createContext","displayName","usePreferenceContext","useContext","usePreferences","path","defaultValue","data","loading","loaded","readStorage","writeStorage","split","key","undefined","writeState","useCallback","useColumnsPreferences","initialValue","SelectColumnsMenu","columns","rest","translate","useTranslate","useResourceContext","columnsPref","setColumnsPref","addColumn","event","name","target","includes","removeColumn","length","Box","mx","my","FormControlLabel","disabled","alwaysOn","control","Checkbox","checked","onClick","color","label","getFieldLabelTranslationArgs","source","sanitizeRestProps","basePath","ExportButtonAsMenuItem","maxResults","customExporter","exporter","sort","exporterFromContext","total","dataProvider","useDataProvider","notify","useNotify","handleClick","getList","pagination","page","fetchRelatedRecords","error","console","ListItemIcon","fontSize","Typography","variant","MoreButton","children","cellClassName","preference","React","useState","anchorEl","setAnchorEl","open","Boolean","style","marginRight","Tooltip","title","_","enterDelay","IconButton","aria-label","aria-controls","aria-haspopup","stopPropagation","currentTarget","size","Popover","onClose","anchorOrigin","vertical","horizontal","transformOrigin","Children","isValidElement","cloneElement","ListActions","className","filters","isMobile","useMediaQuery","theme","breakpoints","down","selectedIds","showFilter","hasCreate","useResourceDefinition","useMemo","TopToolbar","sanitizeListRestProps","context","CreateButton","ExportButton","ListActionsMoreButton","ListSubheader","lineHeight","Divider","MenuList","onUnselectItems","booleanFormatter","model","record","dateFormatter","moment","format","enumFormatter","__resource","numberFormatter","Intl","NumberFormat","maximumFractionDigits","parseHeaders","externalKey","object","reduce","result","nested","push","item","parseHeadesTitles","externalObject","parseRecord","forEach","valueRecord","Array","options","records","headers","rename","jsonExport","rowDelimiter","err","csv","downloadCSV","useExporter","fileName","smart_count","aisId","description","createdBy","createdAt","updatedAt","gasDistributorStations","reports","tags","where","apolloCoreClient","mutate","mutation","gql","variables","onError","alert","useStyles","makeStyles","removeButton","palette","main","backgroundColor","fade","BulkRemoveButton","classesOverride","classes","dispatch","useDispatch","refresh","useRefresh","unselectAll","useUnselectAll","setLoading","Button","fetchStart","removeToTrash","results","acc","removeManyToTrash","message","fetchEnd","handleSubmit","handleSubmitWithRedirect","invalid","pristine","saving","undoable","redirect","submitOnEnter","mt3","marginTop","referenceArrayInput","zIndex","defaultSubscription","submitting","valid","BulkUpdateTagsButton","setOpen","setRecords","intersectionTags","setIntersectionTags","handleOpen","getMany","items","gasMeterPad","intersectionBy","apply","handleClose","handleUpdateManyInOneRequest","indexedTags","newTags","log","index","tag","join","updateManyTags","pad","prevTags","resultTags","find","indexedTag","some","intersectioned","el","values","Dialog","aria-labelledby","fullWidth","maxWidth","DialogTitle","initialValues","tagsIds","onSubmit","mutators","arrayMutators","subscription","keepDirtyOnReinitialize","render","formProps","padding","ReferenceArrayInput","reference","AutocompleteArrayInput","suggestionsContainerProps","DialogActions","ability","Ability","rulesToFields","action","subject","rulesFor","rule","inverted","conditions","fields","fieldName","defineAbilityFor","rules","r","can","BalanceRegionBulkActionButtons","BulkExportButton","emptyRecord","body","display","alignItems","pointerEvents","position","spacer","width","spacing","hideButton","height","top","right","hideIcon","FilterFormInput","filterElement","handleHide","margin","data-source","classnames","allowEmpty","helperText","data-key","disableRipple","form","paddingTop","flexWrap","minHeight","clearFix","clear","ManualSubmitFilterForm","hideFilter","formRef","dataset","active","dirty","dirtyFields","dirtyFieldsSinceLastSubmit","dirtySinceLastSubmit","errors","hasSubmitErrors","hasValidationErrors","modified","modifiedSinceLastSubmit","submitError","submitErrors","submitFailed","submitSucceeded","touched","validating","visited","ref","lodashGet","type","EnhancedFilterForm","mergedInitialValuesWithDefaultValues","lodashSet","mergeInitialValuesWithDefaultValues","root","ManualSubmitFilterButton","handleFilter","preventDefault","current","requestSubmit","dispatchEvent","Event","cancelable","disableElevation","useFilterSetsPreferences","AddFilterSetDialog","filterSets","setFilterSets","queryName","setQueryName","addQuery","concat","DialogContent","TextField","autoFocus","onChange","RemoveFilterSetDialog","aria-describedby","DialogContentText","findIndex","filterSet","menu","background","paper","FilterButtonMenuItem","forwardRef","onShow","handleShow","data-default-value","FieldTitle","FilterButtonWithSave","useRef","history","useHistory","hasFilterValues","hasSavedCurrentFilterSet","hiddenFilters","handleClickButton","handleRequestClose","addFilterSetDialogOpen","setAddFilterSetDialogOpen","removeFilterSetDialogOpen","setRemoveFilterSetDialogOpen","showRemoveFilterSetDialog","FilterAdd","MenuListProps","subheader","search","button","Filter","toArray","renderButton","renderForm","input","SearchInput","TextInput","resettable","InputProps","endAdornment","InputAdornment","Hourly","Daily","Other","Summary","GasQualityCertificate","ReportIcon","icon","status","Certificate","getIcon","selected","fontWeight","highlight","suggestionText","flex","suggestionChip","marginLeft","Suggestion","suggestion","highlightedIndex","isSelected","filterValue","getSuggestionText","isHighlighted","matches","match","parts","gasMeterType","verticalAlign","part","text","ReportChip","onDelete","Chip","matchTrue","ReportReferenceArrayInput","selectedItem","suggestionItem","matchSuggestion","mediumWidth","BalanceRegionFilter","ManualSubmitFilter","optionText","EditButton","component","Link","to","linkToRecord","sanitizeFieldRestProps","addLabel","emptyText","formClassName","headerClassName","linkType","link","locale","sortable","sortBy","sortByOrder","textAlign","translateChoice","primary","textDecoration","dark","classNames","ResourceLinkField","memo","linkTo","RemoveButton","redirectTo","useRedirect","LinkRef","innerRef","ShowButton","defaultIcon","TagsField","only","chip","grey","getContrastText","emphasize","TagChip","useSelector","state","admin","resources","list","params","clickable","useListStyles","row","cellMinWidth","noWrap","whiteSpace","cellButton","useSelectedColumnsPreferences","columnsFromPrefs","setColumnsFromPref","isEmpty","hideDefault","column","sanitizedField","useColumns","compact","BalanceRegionDatagrid","SelectedColumns","SimpleList","primaryText","tertiaryText","Datagrid","rowClick","BalanceRegionList","useBalanceRegionExporter","manualSubmitForm","TagArrayField","DateField","useDefaultDatagridColumns","actions","bulkActionButtons","chipWarning","AisChip","SelectedItem","useForm","useFormState","useGetList","useDefault","enabled","change","x","y","rx","CheckboxBlank","TagReferenceArrayInput","BalanceRegionCreate","SimpleForm","validate","required","multiline","balanceRegion","ReportReferenceArrayInputWithDefault","EditView","aside","Content","useEditContext","defaultTitle","hasList","hasShow","save","version","deleted","Remove","finalActions","TitleForRecord","noActions","card","hasEdit","location","onFailureRef","onSuccessRef","permissions","setOnFailure","setOnSuccess","setTransform","successMessage","transformRef","Edit","useCheckMinimumRequiredProps","useEditController","EditContextProvider","ToolbarSpacer","marginBottom","CardBlankLayout","gutterBottom","Card","onSave","CancelButton","BalanceRegionBanner","Grid","container","xs","toolbar","BalanceRegionToolbar","Toolbar","SaveButton","BalanceRegionEdit","DividerField","CardShowLayout","GasDistrictReferenceDatagrid","GasDistrictDatagrid","cardActions","justifyContent","secondary","expandButton","expandIcon","transform","transition","transitions","create","duration","shortest","expandOpen","MoreContent","showMoreButton","more","setMore","Portal","aria-expanded","Collapse","in","timeout","unmountOnExit","NestedField","referenceRecord","rootPath","replace","resourceLinkPath","encodeURIComponent","parseGridValue","parseGridSize","isArray","generateGrid","breakpoint","count","up","gridTemplateColumns","grid","gridGap","GridLayoutSimple","classNameOverride","lg","md","sm","xl","gridClassNames","NestedGridField","gridItem","choices","choice","EnumInput","option","useEnum","enums","setEnums","calcEnumName","upperFirst","a","getEnum","fetchData","Set","SelectInput","optionValue","EnumField","enumValue","knownResources","filterResources","HistoryFilter","ReferenceInput","DateInput","DefaultDatagrid","dateTimeOptions","ReferenceDatagrid","Date","toLocaleDateString","ReferenceFieldDatagrid","useRecordContext","historyRowStyle","rowStyle","HistoryList","resource_in","ReferenceListLinkButton","pathname","ReferenceManyActions","ReferenceManyToolbar","setFilter","ReferenceManyField","useStateShowStorageProps","useReferenceManyFieldController","useDeepCompareEffect","storageResourceShowProps","useEffectShowStorageProps","ResourceContextProvider","ReferenceManyFieldView","Paper","anyTouched","asyncValidate","asyncValidating","autofill","blur","clearAsyncError","clearFields","clearSubmit","clearSubmitErrors","destroy","initialize","initialized","pure","reset","resetSection","submit","submitAsSideEffect","touch","triggerSubmit","untouch","__versions","handleFinalFormSubmit","FormSpySubscription","ReferenceManyFilterForm","debouncedSetFilters","func","delay","cleanUp","timeoutRef","clearTimer","clearTimeout","args","setTimeout","useDebouncedFunction","handleChange","ReferenceManyFilter","ReportAvatar","Avatar","colorDefault","cardActionArea","flexDirection","ml2","ReportCard","lastUpdate","timestamp","unix","Number","CardActionArea","CardHeader","avatar","titleTypographyProps","CardContent","secondaryContent","content","Separator","align","ShowView","breadcrumbs","useShowContext","Show","useShowController","ShowContextProvider","ReferenceManyFilters","ReferenceManyActionButtons","BalanceRegionShow","showHistoryButton","Pagination","BalanceRegionIcon","inn","kpp","okpo","ogrn","fio","passport","passdateissue","parentId","addressLegal","addressActual","addressPostal","phone","phoneMobile","email","users","access","CounterpartyBulkActionButtons","QuickFilter","CounterpartyFilter","regexp","PhoneField","maskedPhone","CounterpartyDatagrid","CounterpartyList","useCounterpartyExporter","validatePhone","regex","phoneParse","PhoneMaskInput","inputRef","other","inputElement","mask","keepCharPositions","placeholderChar","guide","PhoneFilterInput","PhoneInput","onBlur","onFocus","inputProps","useInput","isRequired","meta","InputHelperText","inputComponent","AccessResourceInput","checkbox","CheckboxGroupInputItem","useChoices","getChoiceText","getChoiceValue","choiceName","choiceValue","htmlFor","String","v","direction","CheckboxGroupInput","finalFormOnChange","finalFormOnBlur","handleCheckAll","isChecked","union","handleCheck","newValue","b","FormControl","setPagination","limitChoicesToValue","defaultSanitizeRestProps","FormLabel","FormGroup","CheckboxCheckAllInputItem","FormHelperText","AccessReferenceArrayInput","accessResource","referenceResource","searchFilter","q","filterResource","getFilterResource","id_in","SelectArrayInput","minWidth","zeroMinWidth","gridItemProps","validateEmail","CounterpartyCreate","TabbedForm","FormTab","FormDataConsumer","formData","GridField","emptyValue","counterparty","CounterpartyBanner","accessReferenceArrayInput","CounterpartyToolbar","CounterpartyEdit","SimpleShowLayout","Component","NestedArrayField","CounterpartyShow","ChipField","ReferenceArrayField","SingleFieldList","CounterpartyIcon","fillRule","clipRule","GasConsumerBulkActionButtons","flexGrow","AutocompleteInput","idOverride","inputOverride","isRequiredOverride","metaOverride","labelProps","inputText","shouldRenderSuggestionsOverride","shouldRenderSuggestions","suggestionLimit","AutocompleteSuggestionItem","warning","inputEl","setFilterValue","getSuggestionFromValue","useSuggestions","getSuggestions","handleFilterChange","eventOrValue","storeInputRef","inputPosition","getBoundingClientRect","anchorPosition","updateAnchorEl","handleBlur","handleFocus","openMenu","inputValue","itemToString","val","getInputProps","getItemProps","getLabelProps","getMenuProps","isOpen","isMenuOpen","suggestions","InputLabelProps","AutocompleteSuggestionList","menuProps","suppressRefError","InputText","GasConsumerReferenceDatagrid","GasConsumerDatagrid","addrManual","gasMeterPads","DocumentationLinkButton","documentationApp","user","apps","app","shallowEqual","url","document","getElementById","href","createPortal","DocumentationIcon","GasConsumerList","useGasConsumerExporter","GasConsumerFilter","GasConsumerCreate","gasConsumer","GasConsumerBanner","GasConsumerToolbar","GasConsumerEdit","useChipStyles","GasMeterPadDisabledChip","hideWhen","GasMeterPadProviderChip","isProvider","TagArrayEnhancedField","tagComponent","enhancedComponents","writable","GasMeterPadReferenceDatagrid","GasQualityCertificateWritableChip","GasMeterPadDatagrid","GasMeterPadsReferenceDatagrid","ownership","dateFrom","dateTo","keyBy","secondaryText","GasConsumerShow","showOwnershipButton","OwnershipGasMeterPadsDatagrid","GasConsumerIcon","GasDistributorOrganizationBulkActionButtons","GasDistributorOrganizationFilter","GasDistributorOrganizationDatagrid","GasDistributorOrganizationList","useGasDistributorOrganizationExporter","GasDistributorOrganizationCreate","gasDistributorOrganization","GasDistributorOrganizationBanner","GasDistributorOrganizationToolbar","GasDistributorOrganizationEdit","GasDistributorOrganizationShow","GasDistributorOrganizationIcon","gasDistributorStationOutputs","GasDistributorStationBulkActionButtons","GasDistributorStationFilter","GasDistributorStationReferenceDatagrid","GasDistributorStationDatagrid","GasDistributorStationList","useGasDistributorStationExporter","drawerForm","drawerToolbar","QuickCreateButton","useCreate","referenceName","inflection","humanize","singularize","handleCloseClick","crudGetMatching","handleSave","payload","onSuccess","onFailure","Drawer","anchor","GasDistributorStationOutputQuickCreateForm","GasDistributorStationOutputCreate","gasDistributorStationOutput","ReferenceArrayGasDistributorStationOutput","GasDistributorStationCreate","gasDistributorStation","GasDistributorStationBanner","GasDistributorStationToolbar","GasDistributorStationEdit","flexReferenceArrayInput","GasDistributorStationOutputReferenceDatagrid","typography","fontWeightBold","checkOutOfRange","N2Field","NumberField","CO2Field","DensityField","GasQualityCertificateReferenceDatagrid","gqsId","GasQualityCertificateDatagrid","GasDistributorStationShow","GasDistributorStationIcon","GasDistributorStationOutputBanner","GasDistributorStationOutputToolbar","GasDistributorStationOutputEdit","GasDistributorStationOutputBreadcrumbs","Breadcrumbs","Breadcrumb","GasDistributorStationOutputShow","GasDistributorStationOutputIcon","gasRegion","GasDistrictBulkActionButtons","GasDistrictFilter","GasDistrictList","useGasDistrictExporter","GasDistrictCreate","accessRegion","gasDistrict","GasDistrictBanner","GasDistrictToolbar","GasDistrictEdit","GasDistrictBreadcrumbs","GasDistrictShow","GasDistrictIcon","gasMeterUnits","disabledPeriods","gasDistributorStationOutputOptionText","gdsName","gdso","gasDistributorStationName","gasDistributorStationOutputFilterToQuery","searchText","searchWithGDS","GasMeterPadFilter","filterToQuery","GasDistributorStationOutputSuggestionItem","dateToInput","reasonInput","GasMeterPadDisabledPeriodsArrayInput","ArrayInput","SimpleFormIterator","scopedFormData","getSource","max","min","EMBEDDED_ASKUG_TYPE","EMBEDDED_USER_TYPE","EMBEDDED_DASHBOARD_TYPE","EMBEDDED_REPORT_TYPE","EMBEDDED_TAG_TYPE","GAS_REGION_TEMPLATE","GET_LIST_GAS_REGION","GET_MANY_GAS_REGIONS","GET_ONE_GAS_REGION","UPDATE_GAS_REGION","DELETE_GAS_REGION","GAS_DISTRICT_TEMPLATE","GET_LIST_GAS_DISTRICT","GET_MANY_GAS_DISTRICTS","GET_ONE_GAS_DISTRICT","UPDATE_GAS_DISTRICT","DELETE_GAS_DISTRICT","BALANCE_REGION_TEMPLATE","GET_LIST_BALANCE_REGION","GET_MANY_BALANCE_REGIONS","GET_ONE_BALANCE_REGION","UPDATE_BALANCE_REGION","DELETE_BALANCE_REGION","GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE","GET_LIST_GAS_DISTRIBUTOR_ORGANIZATION","GET_MANY_GAS_DISTRIBUTOR_ORGANIZATIONS","GET_ONE_GAS_DISTRIBUTOR_ORGANIZATION","UPDATE_GAS_DISTRIBUTOR_ORGANIZATION","DELETE_GAS_DISTRIBUTOR_ORGANIZATION","GAS_DISTRIBUTOR_STATION_TEMPLATE","GET_LIST_GAS_DISTRIBUTOR_STATION","GET_MANY_GAS_DISTRIBUTOR_STATIONS","GET_ONE_GAS_DISTRIBUTOR_STATION","UPDATE_GAS_DISTRIBUTOR_STATION","DELETE_GAS_DISTRIBUTOR_STATION","GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE","GET_LIST_GAS_DISTRIBUTOR_STATION_OUTPUT","GET_MANY_GAS_DISTRIBUTOR_STATION_OUTPUTS","GET_ONE_GAS_DISTRIBUTOR_STATION_OUTPUT","UPDATE_GAS_DISTRIBUTOR_STATION_OUTPUT","DELETE_GAS_DISTRIBUTOR_STATION_OUTPUT","GAS_CONSUMER_TEMPLATE_LIST","GAS_CONSUMER_TEMPLATE_ONE","GET_LIST_GAS_CONSUMER","GET_MANY_GAS_CONSUMERS","GET_ONE_GAS_CONSUMER","UPDATE_GAS_CONSUMER","DELETE_GAS_CONSUMER","GAS_METER_PAD_TEMPLATE","GET_LIST_GAS_METER_PAD","GET_MANY_GAS_METER_PADS","GET_ONE_GAS_METER_PAD","UPDATE_GAS_METER_PAD","DELETE_GAS_METER_PAD","GAS_METER_UNIT_TEMPLATE","GET_LIST_GAS_METER_UNIT","GET_MANY_GAS_METER_UNITS","GET_ONE_GAS_METER_UNIT","UPDATE_GAS_METER_UNIT","DELETE_GAS_METER_UNIT","GAS_METER_POINT_TEMPLATE","GET_ONE_GAS_METER_POINT","UPDATE_GAS_METER_POINT","DELETE_GAS_METER_POINT","GAS_METER_TEMPLATE","GAS_QUALITY_SERTIFICATE_TEMPLATE","GET_LIST_GAS_QUALITY_SERTIFICATE","GET_MANY_GAS_QUALITY_SERTIFICATES","GET_ONE_GAS_QUALITY_SERTIFICATE","UPDATE_GAS_QUALITY_SERTIFICATE","DELETE_GAS_QUALITY_SERTIFICATE","COUNTERPARTY_TEMPLATE","GET_LIST_COUNTERPARTY","GET_MANY_COUNTERPARTIES","GET_ONE_COUNTERPARTY","UPDATE_COUNTERPARTY","DELETE_COUNTERPARTY","USER_TEMPLATE","GET_LIST_USER","GET_MANY_USERS","GET_ONE_USER","UPDATE_USER","DELETE_USER","UPDATE_PROFILE","HISTORY_TEMPLATE","GET_LIST_HISTORY","GET_MANY_HISTORIES","GET_ONE_HISTORY","TRASHITEM_TEMPLATE","GET_LIST_TRASHITEM","GET_MANY_TRASHITEMS","GET_ONE_TRASHITEM","CONTROLLER_CONFIGURATION_TEMPLATE","GET_LIST_CONTROLLER_CONFIGURATION","GET_MANY_CONTROLLER_CONFIGURATIONS","GAS_METER_CONFIGURATION_TEMPLATE","GET_LIST_GAS_METER_CONFIGURATION","GET_MANY_GAS_METER_CONFIGURATIONS","GET_PREFERENCES","SET_PREFERENCES","GET_ENUMS","GasMeterPadBulkUpdateDisabledPeriodsButton","setGasMeterPads","intersectionDisabledPeriods","setIntersectionDisabledPeriods","query","gasMeterPadsWithIndexedDisabledPeriods","indexedDisabledPeriods","period","gasMeterPadsDisabledPeriods","indexedDisablePeriods","newDisablePeriods","pads","updateManyDisabledPeriods","prevDisablePeriods","resultDisabledPeriods","indexedPeriod","p","GasMeterPadBulkActionButtons","GasMeterPadList","useGasMeterPadExporter","getBooleanFromString","getStringFromBoolean","NullableBooleanInput","displayNull","enhancedOptions","SelectProps","displayEmpty","shrink","select","GasMeterPadCreate","BooleanInput","GasMeterPadBanner","GasMeterPadToolbar","GasMeterPadEdit","GasMeterPadDisabledPeriodChip","GasMeterUnitEnabledWriteChip","onlyDisabled","enable","enableWriteGasQualityCertificate","statusColors","CRITICAL","light","red","ERROR","orange","WARNING","yellow","OK","green","NOTCHECKED","dot","DeviceStatusField","labeled","body2","deprecated","MetricGasMeterDateField","locales","showTime","lastTimeUpdatedAt","isDeprecated","subtract","isAfter","GasMeterUnitReferenceDatagrid","ReferenceField","GasMeterUnitDatagrid","GasMeterPadBreadcrumbs","GasMeterPadShow","GasMeterPadIcon","GasMeterPointBanner","redirectAfterDelete","gasMeterUnitId","gasMeterUnit","GasMeterPointToolbar","GasMeterPointEdit","NumberInput","BooleanField","valueLabelTrue","valueLabelFalse","valueText","Memorized","GasMeterPointBreadcrumbs","GasMeterPointShow","GasMeterPointIcon","getRelatedIds","from","metricsMap","metrics","inventoryNumber","gasMeterPoints","controller","serialNumber","phoneNumber","gasMeter","dbId","fixedAsset","linkToir","validateIP","IPMaskInput","fill","pipe","endsWith","IPInput","httpLink","createHttpLink","uri","URI_ANALITICS","authLink","setContext","getAccessToken","token","authorization","wsLink","WebSocketLink","WS_ANALITICS","lazy","reconnect","reconnectionAttempts","connectionParams","getMainDefinition","kind","operation","ApolloClient","cache","InMemoryCache","defaultOptions","watchQuery","fetchPolicy","dataStatus","referenceSource","validation","afterSubmit","allowNull","beforeSubmit","formatOnBlur","initializeForm","multiple","validateFields","DeviceStatusBackReferenceInput","useField","filterField","referenceFilter","getManyReference","sourceFilter","setBackFilter","GasMeterUnitFilter","GasMeterUnitBulkActionButtons","GasMeterUnitList","useGasMeterUnitExporter","GasMeterPointQuickCreateForm","ReferenceArrayGasMeterPointInput","textField","GasMeterUnitCreate","placeholder","GasMeterUnitBanner","GasMeterUnitToolbar","GasMeterUnitEdit","DashboardReferenceArrayInput","ReportNestedGridField","setState","dbIds","filterPrometheus","start","end","fetch","URI_PROMETHEUS","method","credentials","referrerPolicy","mode","response","ok","json","metric","orderBy","useLastupdateGasMeter","GET_ONE_DEVICE","GasMeterUnitDeviceLinkField","device","setDevice","serviceApp","responce","DeviceStatusLayout","useQueryWithStore","Loading","caption","DeviceStatusDatailsField","date","__typename","py","mr","flowResults","flowResult","index2","ml","flow","diagnostics","shortAction","FLOWRESULT_FRAGMENT","GENERALRESULT_FRAGMENT","GET_MANY_DEVICESTATUSES","GET_ONE_DEVICESTATUS","REFRESH_DEVICESTATUS","DeviceStatusRefreshButton","apolloClient","refreshDeviceStatus","GasMeterUnitBreadcrumbs","GasMeterUnitShow","showAnaliticsButton","DashboardNestedGridField","rowsPerPageOptions","UrlField","GasMeterUnitIcon","dropZone","isDragAccept","isDragReject","borderRadius","cursor","Dropzone","onDrop","useDropzone","accept","getRootProps","chipError","GasDistributorStationChipField","paddingCell","paddingLeft","paddingRight","GasQualityCertificateImportDatagrid","headerCell","rowCell","GasQualityCertificateImportDialog","warnings","onImport","onExited","confirm","setConfirm","handleConfirm","handleExited","handleImport","handleDrop","acceptedFiles","scroll","LinearProgress","Alert","severity","AlertTitle","GasQualityCertificateImportButton","setWarnings","setErrors","checkN2","range","parameter","validateN2","prev","checkCO2","validateCO2","checkDensity","validateDensity","gasQualityCertificates","importGasQualityCertificates","gqs","validFrom","validTo","n2","co2","density","gasExtractionPoint","gasSelectionPoint_name","gasDistributorStationsIds","file","reader","FileReader","onabort","onerror","onload","Uint8Array","workbook","XLSX","read","sheetPasportPoint","Sheets","sheetPointGrs","dataPasportPoint","utils","sheet_to_json","raw","defval","dataPointGrs","gasSelectionPointGroup","groupBy","allGasDistributorStations","allGasDistributorStationsAisIds","aisId_in","coreGasDistributorStations","gasSelectionPoint_aisId","grs","gasDistributorStation_aisId","findGasDistributorStation","gasDistributorStation_name","gasQualityCertificate","number","num","toISOString","parseFloat","readAsArrayBuffer","opacity","Empty","resourceName","pluralize","emptyMessage","inviteMessage","paragraph","flatArrayOfObjects","array","otherParts","i","flatMap","getGasMeters","_gasDistributorStations","gasMeters","_gasDistributorStation","gmu","gasQualityCertificateId","getWriteValues","_gasQualityCertificates","writeTags","ns","configuration","scadaSet","findGasQualityCertificateTags","findGasQualityCertificate","toString","serial","idRef_wr","serialid","WRITE_GAS_QUALITY_CERTIFICATE","apolloDatabusClient","ADD_HISTORY_MUTATION","GasQualityCertificateWriteBulkActionsButton","handleWrite","allGasQualityCertificates","gasQualityCertificateItems","writeGasQualityCertificate","addHistory","writeValues","GasQualityCertificateBulkActionButtons","GasQualityCertificateFilter","GasQualityCertificateList","useGasQualityCertificateExporter","empty","GasQualityCertificateEmpty","GasQualityCertificateCreate","DateTimeInput","GasQualityCertificateBanner","GasQualityCertificateToolbar","GasQualityCertificateEdit","GasQualityCertificateWriteButton","GasQualityCertificateActions","GasQualityCertificateShow","GasQualityCertificateIcon","gasDistricts","GasRegionBulkActionButtons","GasRegionFilter","GasRegionDatagrid","GasRegionList","useGasRegionExporter","GasRegionCreate","GasRegionBanner","GasRegionToolbar","GasRegionEdit","GasRegionShow","GasRegionIcon","BlankShowLayout","JsonField","borderTopLeftRadius","shape","borderTopRightRadius","shorter","easing","easeOut","jsObject","viewOnly","confirmGood","colors","contentBox","default","background_warning","string","colon","keys_whiteSpace","primitive","LinkField","referenceId","paddingBottom","ListToolbar","ListFieldActions","ReferenceListLinkButton2","ListField","ListBase","ListFieldToolbar","filterDefaultValues","onSelect","onToggleItem","setPage","syncWithLocation","jsonField","HistoryField","Labeled","HistoryShow","HistoryIcon","ReportFilter","ReportList","ReportView","ReactReport","statusloader","setStatusloader","setModule","template","def","onUpdateStatusProcess","notifyStatus","Snackbar","ContentProps","CircularProgress","thickness","ReportBreadcrumbs","ReportShow","CronField","cron","cronHumanize","cronstrue","use24HourTimeFormat","verbose","ReportDespatchList","modelExport","croneValidation","allValues","createFilterOptions","CronInput","filterOptions","filtered","getOptionLabel","renderOption","Autocomplete","selectOnFocus","clearOnBlur","handleHomeEndKeys","renderInput","getCronHumanizeLabel","ReportDespatchSchedulerInput","CronInput2","ContactUserReferenceInput","User","handleChangeUser","ContactEmailInput","userId","userEmail","validateUser","ContactQuickCreateForm","optionRenderer","ContactReferenceArrayInput","validateName","validateTo","validateReportsIds","validateCron","ReportDespatchCreate","external","ReportDespatchEdit","ContactChip","buildArrayInput","previous","connect","difference","disconnect","sanitizeResource","startsWith","dataKey","omitDeepArrayWalk","arr","omitDeep","obj","newObj","URI_REPORT_DESPATCH","cleanTypenameLink","ApolloLink","forward","CONTACT_FRAGMENT","REPORT_DESPATCH_FRAGMENT","RUN_REPORT_DESPATCH","RunNowReportDespatchButton","handleRunNow","SendEmailNow","ReportDespatchShowActions","ReportDespatchShow","ArrayField","ReportDespatchIcon","TagResourceInput","ColorField","hex","TagBulkActionButtons","TagFilter","TagList","outline","focus","boxShadow","onHover","optionalEvents","onMouseOver","tabIndex","onKeyDown","keyCode","gridTemplateRows","swatch","float","ColorPicker","onSwatchHover","handleSwatch","hexcode","isValidHex","c","focusStyle","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","lightGreen","lime","amber","deepOrange","brown","blueGrey","colorArray","ColorWrap","ColorInput","relatedTarget","parentElement","startAdornment","TagCreate","TagToolbar","isSystem","DeleteButton","TagEdit","TagBanner","TagShow","TagIcon","RowToolbar","deleteFromTrash","deleteButton","BulkDeleteButton","trashItems","TrashItem","deleteManyFromTrash","restoreButton","BulkRestoreButton","restoreFromTrash","restoreManyFromTrash","RestoreButton","TrashItemBulkActionButtons","TrashItemFilter","EmbededRestoreButton","EmbededDeleteButton","TrashItemList","TrashItemIcon","login","phoneContact","role","UserBulkActionButtons","filterRoles","role_in","UserFilter","getInitials","initials","first","shift","second","pop","charAt","toUpperCase","small","large","AvatarField","fullname","alt","src","badge","banned","online","success","OnlineBadge","onlineUsers","Badge","invisible","UserDatagrid","UserList","useUserExporter","passwordValidation","checkLength","checkLowerCase","test","checkUpperCase","checkSymbol","checkNumber","PasswordInput","initiallyVisible","visible","setVisible","autoComplete","$in","validateLogin","minLength","validateRole","validatePassword","UserCreate","banButton","borderColor","unbanButton","BanButton","useUpdate","handleBan","banLoading","handleUnban","unbanLoading","overflow","textOverflow","EnumChip","OnlineChip","isOnline","lastLogin","info","AccessChip","isUserAccess","isUserCounterpartyAccess","isWarning","chipBanned","UserBanner","UserToolbar","UserEdit","itsMe","UserShow","UserIcon","ry","createMuiTheme","sidebar","closedWidth","overrides","MuiFilledInput","MuiButtonBase","MuiAvatar","rounded","MuiPaper","elevation1","MuiTableCell","sizeSmall","MuiListItemIcon","MuiChip","MuiFormHelperText","RaLayout","Input","LoginForm","useSafeSetState","useLogin","graphQLError","graphQLErrors","extensions","countAttempt","username","password","noValidate","CardActions","backgroundRepeat","backgroundSize","welcome","logo","shadows","welcomeText","block","Login","staticContext","backgroundImage","muiTheme","checkAuth","useCheckAuth","ThemeProvider","Logo","defaultTheme","banner","WidgetBanner","NewReleaseCard","getCookie","PACKAGE_VERSION_COOKIE","PACKAGE_VERSION","flexInput","width128","getIndex","DeviceGasMeterPointArrayInput","TypeInput","StatusInput","getStatusColor","StatusChip","ml1","ListItemText","ReferenceConfigurationInput","selectConfigurationsObject","status_not","metaTemplate","JsonVariableInputs","jsonVariables","JsonVariableInput","jsonVariable","ControllerWarning","GasMeterWarning","CREATE_GAS_METER_UNIT","CREATE_GAS_METER_POINT","CREATE_CONTROLLER","CREATE_GAS_METER","CREATE_DEVICE","GET_ONE_GAS_METER","memoize","fn","lodashMemoize","dbIdValidation","asyncUniqueGasMeter","closeButton","defaultValues","timeZone","commercialHour","CreateDialog","gasMeterPointsIds","dashboardsIds","dashboards","reportsIds","requests","gasMeterPoint","responses","createGasMeterPoints","controllerId","gasMeterId","createDevice","deviceId","disableBackdropClick","disableEscapeKeyDown","ControllerTypeInput","ReferenceControllerConfigurationInput","GasMeterTypeInput","ReferenceGasMeterConfigurationInput","step","DashboardReferenceArrayInputWithDefault","DeviceCreateWizardCard","MagicWand","DeviceCreateWizardCardButton","DeviceCreateWizardDialog","MainScreen","Title","TITLE_APP","SUBSCRIBE_ONLINE_USERS","ONLINE_USERS","SET_ACCESS","setAccess","setOnlineUsers","SET_USER","setUser","userPreview","headerAvatar","contrastText","ConfigurationMenu","MenuItemLink","leftIcon","MyUserMenu","useSubscription","client","onSubscriptionData","subscriptionData","node","previousValues","filterArray","getOnlineUsers","_onlineUsers","onlineUsersIds","decodeJwt","AUTH_TOKEN_COOKIE","getProfile","authId","profile","UserMenu","menuItem","underline","UserApp","rel","ListItemAvatar","USER_APPS","UserApps","useQuery","keepMounted","appbar","MyAppBar","AppBar","userMenu","docked","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedTop","paperAnchorDockedRight","paperAnchorDockedBottom","modal","fixed","overflowX","scrollbarWidth","msOverflowStyle","drawerPaper","sharp","leavingScreen","borderRight","border","Sidebar","closedSize","isXSmall","ui","sidebarOpen","useLocale","toggleSidebar","setSidebarVisibility","PaperProps","menuGroupTitle","MenuGroup","withStyles","cardWrapper","useAuthenticated","getDocumentationPath","baseUrl","MenuItemIcon","listItemText","depth","MenuItem","useLocation","useRouteMatch","route","expand","setExpand","resultProps","ListItem","dense","menuItemIconProps","disablePadding","child","Menu","ComponentMenuItem","routes","Aside","flexBasis","exact","Layout","SidebarComponent","ContentComponent","MarkdownView","markdownText","setMarkdownText","res","escapeHtml","Changelog","setCookie","ChangelogIcon","Version","useVersion","useInfo","infoApps","PACKAGE_NAME","Info","CHANGELOG","AboutAppShow","Documentation","AboutAppIcon","closed","hasDashboard","onMenuClick","logout","resourcesReactAdmin","getResources","accessResourses","accessResources","router","menuAboutApp","menuGroup","filteredResources","groupedResources","DashboardMenuItem","sidebarIsOpen","group","undo","Notification","autoHideDuration","notification","getNotification","styles","complete","undoableEventEmitter","emit","isUndo","hideNotification","handleUndo","messageArgs","disableWindowBlurListener","usePreferenceController","setData","setLoaded","subkeys","getPreferences","preferences","newPreferences","setPreferences","PreferenceContextProvider","сonntrollerProps","Provider","MyLayout","appBar","previousState","accessByUser","accessByResource","GasRegion","GasDistrict","GasMeterPad","GasMeterUnit","GasConsumer","GasDistributorOrganization","GasDistributorStation","GasDistributorStationOutput","LOGIN_MUTATION","LOGIN_USER_MUTATION","GUEST","getGuestToken","apolloAuthClient","guest","URI_CORE","errorPolicy","BAN_USER","URI_CASL","appName","PERMISSIONS_NAMESPACE","GET_ABILITY_RULES","apolloCaslClient","authProvider","refreshToken","domain","DOMAIN_COOKIE","REFRESH_TOKEN_COOKIE","loginCoreUser","getAbilityRules","reject","update","deleteCookie","banCoreUser","checkError","tokenExpired","getPermissions","decodedToken","SaveProfileButton","formState","onMouseDown","previousData","editFields","multiValidate","ProfileToolbar","ProfileEdit","ProfileHOC","CREATE_CLIENT","apolloAuthClientWithAuth","UPDATE_CLIENT","CREATE","UPDATE","gasDistrictsIds","gasMeterPadsIds","gasMeterUnitsIds","gasDistributorStationOutputsIds","usersIds","accessIds","createClient","auth","updateClient","authUser","customBuildQuery","introspection","fetchType","GET_ONE","builtQuery","buildQuery","GET_LIST","GET_MANY_REFERENCE","GET_MANY","DELETE","parseResponse","enumValues","buildGraphQLProvider","schema","provider","decorate","paramsD","URI_AUTH","USER_FRAGMENT","GET_LIST_USERS","GET_MANY_REFERENCE_CONTACTS","AuthUser","toLowerCase","pageInfo","totalItems","getOne","mappingType","UPDATE_MANY","DELETE_MANY","getMethod","fetchRequest","prometheusFetchClient","dbid","_type","_resource","_params","networkStatus","CREATE_CONTACT","GET_LIST_CONTACTS","GET_MANY_CONTACTS","GET_ONE_CONTACT","Contact","CREATE_REPORT_DESPATCH","GET_LIST_REPORT_DESPATCHES","GET_MANY_REPORT_DESPATCHES","GET_MANY_REFERENCE_REPORT_DESPATCHES","GET_ONE_REPORT_DESPATCH","UPDATE_REPORT_DESPATCH","DELETE_REPORT_DESPATCH","ReportDespatch","toIds","cc","ccIds","bcc","bccIds","omit","delete","deleteMutation","deleteMany","dataProviders","dataProviderCore","dataProviderAuth","dataProviderPrometheus","dataProviderAnalitics","en","englishMessages","raFormLayoutLanguageEnglish","raFormLayoutLanguageRussian","next","raPreferencesLanguageRussian","choose_columns","toggle_theme","saved_queries","query_name","new_label","new_dialog_title","remove_label","remove_label_with_name","remove_dialog_title","remove_message","help","raLanguageRussian","ra","russianMessages","show_blank","bulk_actions","create_and_continue","save_and_continue","show_ownership","show_history","show_analitics","restore","check_all","trash_open","import","print","upload","exportexcel","exportpdf","exportexcelnovokubansk","one_of_fields_is_required","exportword","ban","unban","disable","write_GasQualityCertificate","tags_update","write","apply_filter","despatch_run","boolean","null","no_data","invite","removed","copy","analitics_not_found","navigation","user_apps","skip_nav","open_documentation","permissions_error","access_error","User_is_not_access","role_SERVICE_not_allowed","profile_saved","selected_disabled_periods_updated","moved_to_trash","restored_from_trash","deleted_from_trash","gas_quality_certificate_imported","gas_quality_certificate_written","gas_quality_certificate_write_error","user_banned","user_unbanned","device_wizard_created","status_refreshed","despatch_runned","unique","ip_invalid","phone_invalid","password_invalid","messages","ru","id_ais_regiongaz","gasConsumers","BalanceRegion","gasMeterPadAisId","DisabledPeriod","current_variable","gas_quality_certificate","dasMeterPadAisId","fixedAssetShort","linkToDevice","deviceStatus","Controller","alias_contains","sn","phoneNumber_is_null","ip","ip_is_null","TELEOFIS","AXI1","AXI2","AXITEL","AXI1MR","AXIS","KAM200","KAM25","KAM214","FX","WS","BECKHOFF","AXITELJSONRPC","DRAFT","TEST","ACTIVE","SWAP","ControllerConfiguration","RELEASE","GasMeter","port","dst","BK","EK260","EK270","EK280","EK290","ELSTERSERVICE","IRVISRS4ULTRA","IRVISRSK300","VKG2","VKG3T","VKG3D","SPG741","SPG742","SPG761","GASDEVICESERVICE","GASDEVICEOMEGAEK","GIPERFLOW3PM","GIPERFLOWUS","GRANDSPI","TECHNOMER","TECHNOMERSERVICE","TURBODONSERVICE","SUPERFLOW21V","SUPERFLOW2E","SUPERFLOW2ET","FLOBOSS","FLOWGAS","TC220","TURBOFLOWUFG","TURBOFLOWGFG","TURBOFLOWTFG","TELEFLOWEGM3530","FLOWSIC600","ROSTELECOM","SGT16E","VYMPEL500","JSONRPC","ERZ2000DI","GasMeterConfiguration","GasMeterPoint","season","true","false","n2_short","co2_short","density_short","gasDistributorStation_some","gasMeterUnit_some","writtenAt","out_of_range","writeDialogTitle","writeDialogContent","Dashboard","dashboards_and","dashboards_not_and","Report","reports_and","reports_not_and","scheduler","rangeOption","lastExecutionAt","nextExecutionAt","TODAY","TODAYSOFAR","THISWEEK","THISWEEKSOFAR","THISMONTH","THISMONTHSOFAR","THISYEAR","THISYEARSOFAR","YESTERDAY","DAYBEFOREYESTERDAY","THISDAYLASTWEEK","PREVIOUSWEEK","PREVIOUSMONTH","PREVIOUSQUARTER","PREVIOUSYEAR","LASTDAY","LAST2DAYS","LAST7DAYS","LASTWEEK","LASTMONTH","LASTQUARTER","LASTYEAR","LASTCOMMERCIALDAY","LASTCOMMERCIALDAYSOFAR","Tag","tag_some","tag_none","tags_and","tags_not_and","USER","SYSTEM","deletedBy","deletedAt","deletedAt_gte","deletedAt_lte","Counterparty","History","createdAt_gte","createdAt_lte","CREATED","UPDATED","DELETED","REMOVED","RESTORED","IMPORTED","SWAPPED","WRITTEN","LOGIN","LOGOUT","INSTALLED","UNINSTALLED","access_is_null","filterGasRegion","filterGasDistrict","filterGasConsumer","filterGasMeterPad","accessGasRegion","accessGasDistrict","accessGasConsumer","accessGasMeterPad","accessGasMeterUnit","LEGALENTITY","INDIVIDUAL","SEPARATEDIVISION","GOVERNMENTAGENCY","tabs","general","regions","accessCounterparty","users_and","users_not_and","SERVICE","SUPERADMIN","ADMIN","ENGINEER","CONSUMER","DISPATCHER","Access","About","Main","scope","DeviceStatus","details","MetricGasMeter","groups","directories","reporttemplates","close","runExport","districts","modeline","modecolumns","maxintervalall","maxinterval","filesuccess","helpertext","districts_error","i18nProvider","polyglotI18nProvider","App","setDataProvider","findDataProvider","dp","Admin","disableTelemetry","layout","loginPage","LoginPage","dashboard","customReducers","customRoutes","Resource","edit","show","DashboardShow","DashboardIcon","ReactDOM","navigator","window","addEventListener","serviceWorker","register","sw","GASREGION","GASDISTRICT","GASCONSUMER","GASMETERPAD","GASMETERUNIT","GASMETERPOINT","GASDISTRIBUTORSTATION","GASDISTRIBUTORSTATIONOUTPUT","getInfo","skeleton","separator","ResourceBreadcrumbs","resourcesState","useResourceHierarchy","Skeleton","breadcrumb","year","month","day","hour","minute","cookie","RegExp","decodeURIComponent","expires","toUTCString","updatedCookie","optionKey","require","config","global_env","ENV","REACT_APP_TITLE_APP","GROUP_NAME_APP","REACT_APP_DOMAIN_COOKIE","REACT_APP_NAME","REACT_APP_VERSION","CURRENT_DATERANGE","REPORT_DATE_MIN_YEAR","REACT_APP_REPORT_DATE_MIN_YEAR","parseInt","REPORT_HOURS_MAX_DATERANGE_YEARS","REACT_APP_REPORT_HOURS_MAX_DATERANGE_YEARS","REACT_APP_URI_CORE","WS_CORE","REACT_APP_WS_CORE","REACT_APP_URI_CASL","REACT_APP_URI_AUTH","URI_DATA","REACT_APP_URI_DATA","URI_DATA_ANALYTICS","REACT_APP_URI_DATA_ANALYTICS","URI_DATABUS","REACT_APP_URI_DATABUS","WS_DATABUS","REACT_APP_WS_DATABUS","REACT_APP_URI_PROMETHEUS","URI_IMPORTEXPORT","REACT_APP_URI_IMPORTEXPORT","URI_SCADAJS","REACT_APP_URI_SCADAJS","REACT_APP_URI_ANALITICS","REACT_APP_WS_ANALITICS","REACT_APP_URI_REPORT_DESPATCH","URI_DEVICEGAPS","REACT_APP_URI_DEVICEGAPS","chipBackgroundColor","chipContainerFilled","inputRoot","inputRootFilled","inputInput","allowDuplicates","selectedItems","handleKeyDown","newSelectedItems","handleDelete","splice","indexOf","suggestionFilter","fontFamily","ml3","resourceText","sourceText","GET_ONE_DASHBOARD","useDashboardController","prevState","useDashboard","DashboardView","executeApp","dashboardModuleProps","useDashboardModule","dashboardScadaModule","DashboardBreadcrumbs","DashboardNestedGridItem","useDashboardModuleProps","dashboardScadaProps","DashboardPreview","resultGridItemProps","cardContent","header","DashboardCard","iconPreview","resultIcon","linkprops","CardInner","suggestionsContainer","suggestionsPaper","maxHeight","overflowY","modifiers","clientWidth","highlightedSuggestionText","hasDashboardPreview","onModuleLoad","scadaheader","unit","switchedit","locationurl","setUrl","createUrl","isEdit","fix_url_scadajs","substring","labelPlacement","frameBorder","prop","dataIdFromObject","hover","placement","REFRESH_TOKEN_MUTATION","authTokenCookie","refreshTokenCookie","tokenRefresh","arg","current_time","now","exp"],"mappings":"2HAAA,IAAIA,EAAM,CACT,cAAe,CACd,KAED,eAAgB,CACf,KAED,4BAA6B,CAC5B,KAED,+BAAgC,CAC/B,KAED,uCAAwC,CACvC,KAED,0CAA2C,CAC1C,KAED,2CAA4C,CAC3C,KAED,8CAA+C,CAC9C,KAED,sDAAuD,CACtD,KAED,yDAA0D,CACzD,KAED,4BAA6B,CAC5B,KAED,+BAAgC,CAC/B,KAED,uCAAwC,CACvC,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,iDAAkD,CACjD,IACA,IAED,oDAAqD,CACpD,IACA,IAED,oCAAqC,CACpC,IACA,IAED,uCAAwC,CACvC,IACA,IAED,oBAAqB,CACpB,KAED,uBAAwB,CACvB,MAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAON,QAAQQ,IAAIF,EAAIG,MAAM,GAAGd,IAAIG,EAAoBK,IAAID,MAAK,WAChE,OAAOJ,EAAoBS,MAG7BX,EAAoBc,KAAO,WAC1B,OAAOC,OAAOD,KAAKf,IAEpBC,EAAoBW,GAAK,KACzBK,EAAOC,QAAUjB,G,+DCtFjB,IAAID,EAAM,CACT,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,IAED,uCAAwC,CACvC,IACA,EACA,EACA,EACA,IAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,EACA,EACA,EACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,EACA,EACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,IAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,EACA,EACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,IAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,EACA,IAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,IAED,+BAAgC,CAC/B,IACA,EACA,EACA,EACA,EACA,IAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,IAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,IAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,iBAAkB,CACjB,IACA,EACA,EACA,EACA,EACA,IAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,IAED,6BAA8B,CAC7B,IACA,IAED,gCAAiC,CAChC,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,iCAAkC,CACjC,IACA,IAED,oCAAqC,CACpC,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,kCAAmC,CAClC,IACA,IAED,oCAAqC,CACpC,IACA,GACA,IAED,uCAAwC,CACvC,IACA,GACA,IAED,oCAAqC,CACpC,IACA,GACA,IAED,uCAAwC,CACvC,IACA,GACA,IAED,4CAA6C,CAC5C,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,4CAA6C,CAC5C,IACA,IAED,+CAAgD,CAC/C,IACA,IAED,0CAA2C,CAC1C,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,kCAAmC,CAClC,IACA,GACA,IAED,qCAAsC,CACrC,IACA,GACA,IAED,qCAAsC,CACrC,IACA,GACA,IAED,wCAAyC,CACxC,IACA,GACA,IAED,qCAAsC,CACrC,IACA,GACA,IAED,wCAAyC,CACxC,IACA,GACA,IAED,6CAA8C,CAC7C,IACA,IAED,gDAAiD,CAChD,IACA,IAED,6CAA8C,CAC7C,IACA,IAED,gDAAiD,CAChD,IACA,IAED,2CAA4C,CAC3C,IACA,IAED,8CAA+C,CAC9C,IACA,IAED,mCAAoC,CACnC,IACA,GACA,IAED,sCAAuC,CACtC,IACA,GACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,GAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,GAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,GAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,EACA,GAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,GAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,EACA,GAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,GAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,GAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,GAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,GAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,GAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,IAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,IAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,IAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,KAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAON,QAAQQ,IAAIF,EAAIG,MAAM,GAAGd,IAAIG,EAAoBK,IAAID,MAAK,WAChE,OAAOJ,EAAoBS,MAG7BX,EAAoBc,KAAO,WAC1B,OAAOC,OAAOD,KAAKf,IAEpBC,EAAoBW,GAAK,KACzBK,EAAOC,QAAUjB,G,6JCvvBFkB,MARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,+Y,gGC0BCC,EAtBsB,WAAO,IAAD,EACqEC,cAApGC,EAD+B,EAC/BA,SAAUC,EADqB,EACrBA,QAASC,EADY,EACZA,WAAYC,EADA,EACAA,YAAaC,EADb,EACaA,QAASC,EADtB,EACsBA,aAAcC,EADpC,EACoCA,iBAAkBC,EADtD,EACsDA,WACvFC,EAAmB,CAAEP,UAASE,cAAaE,eAAcC,oBACzDG,EAA4BC,KAAKC,UAAUH,GAEjDI,qBAAU,WACN,IAAMC,EAAeH,KAAKI,MAAMC,aAAaC,QAAQC,OAAmB,GAClEC,EAAuBC,IAAIN,EAAc,CAACb,EAAU,OAAQ,SAAU,IAC5EoB,IAAIP,EAAc,CAACb,EAAU,OAAQ,SAAlC,YAAC,eAAgDkB,GAAjD,IAAuEjB,UAASE,cAAaE,eAAcC,sBAC9GS,aAAaM,QAAQJ,IAAeP,KAAKC,UAAUE,MACpD,CAACJ,IAEJG,qBAAU,WACN,IAAMC,EAAeH,KAAKI,MAAMC,aAAaC,QAAQC,OAAmB,GAClEC,EAAuBC,IAAIN,EAAc,CAACb,EAAU,OAAQ,SAAUQ,GACxEc,IAAQd,EAAkBU,KAC9BhB,EAAWgB,EAAqBjB,SAChCG,EAAQc,EAAqBf,YAAYoB,MAAOL,EAAqBf,YAAYqB,OACjFjB,EAAWW,EAAqBb,aAAca,EAAqBZ,qBACpE,KCpBQmB,EALc,SAAA9B,GAEzB,OADAG,IACO,MCCL4B,EAAO,SAAA/B,GACT,IAAMgC,EAAkBC,YAAkBjC,GAE1C,OACI,eAACkC,EAAA,EAAD,CAAqBC,MAAOH,EAA5B,UACI,cAAC,EAAD,IACA,cAACI,EAAA,EAAD,2BAAcpC,GAAWgC,QAgCrCD,EAAKM,aAAe,CAChBC,OAAQ,GACRhC,QAAS,IAGEyB,Q,yLChDTQ,G,QAAoBC,2BAE1BD,EAAkBE,YAAc,oBAEjBF,QCDAG,EAFc,kBAAMC,qBAAWJ,ICIjCK,GAAiB,WAGxB,IAFFC,EAEC,uDAFM,GACPC,EACC,yCAC4DJ,IAArDK,EADP,EACOA,KAAMC,EADb,EACaA,QAASC,EADtB,EACsBA,OAAQC,EAD9B,EAC8BA,YAAaC,EAD3C,EAC2CA,aAD3C,EAEaN,EAAKO,MAAM,KAFxB,mBAEMC,EAFN,KAKDpC,qBAAU,gBACYqC,IAAdP,EAAKM,IAAuBL,GAC5BE,EAAYL,KAEjB,CAACE,EAAMM,EAAKJ,IAEf,IAAMM,EAAaC,uBAAY,SAAArB,GAC3BgB,EAAaN,EAAMV,KACpB,CAACkB,IAGJ,MAAO,CAAC7B,IAAIuB,EAAMF,EAAMC,GAAeS,EAAYN,EAAQD,ICrBhDS,GAFe,SAACpD,EAAUqD,GAAX,OAA4Bd,GAAe,GAAD,OAAIvC,EAAJ,iBAA6BqD,ICkEtFC,GA1DW,SAAC,GAGpB,IAFHC,EAEE,EAFFA,QACGC,EACD,2BAEIC,EAAYC,cACZ1D,EAAW2D,cAHf,EAIoCP,GAAsBpD,EAAUT,OAAOD,KAAKiE,IAJhF,mBAIKK,EAJL,KAIkBC,EAJlB,KAMIC,EAAY,SAACC,GACfF,EACItE,OAAOD,KAAKiE,GAAStB,QACjB,SAAA+B,GAAI,OAAIA,IAASD,EAAME,OAAOD,MAAQJ,EAAYM,SAASF,QAKjEG,EAAe,SAACJ,GAEdH,EAAYQ,OAAS,GACrBP,EACID,EAAY3B,QAAO,SAAA+B,GAAI,OAAIA,IAASD,EAAME,OAAOD,UAK7D,OACI,cAACK,EAAA,EAAD,yBAAKC,GAAI,EAAGC,GAAI,GAAOf,GAAvB,aACKjE,OAAOD,KAAKiE,GAAShF,KAAI,SAAAyF,GAAI,OAC1B,8BACI,cAACQ,EAAA,EAAD,CACIC,SAAUlB,EAAQS,GAAMrE,MAAM+E,SAC9BC,QACI,cAACC,EAAA,EAAD,CACIZ,KAAMA,EACNa,QAASjB,EAAYM,SAASF,GAC9Bc,QACIlB,EAAYM,SAASF,GACfG,EACAL,EAEViB,MAAM,YAGdC,MAAOvB,EAAS,WAAT,cACAwB,YAA6B,CAC5BD,MAAOzB,EAAQS,GAAMrE,MAAMqF,MAC3BhF,WACAkF,OAAQlB,SAnBdA,U,iFCwDpBmB,GAAoB,SAAC,GAAD,EACtBC,SADsB,EAEtB/E,aAFsB,EAGtBL,SAHsB,8DASXqF,GAvFgB,SAAA1F,GAAU,IAAD,EAQhCA,EANA2F,kBAFgC,MAEnB,IAFmB,EAGhCR,EAKAnF,EALAmF,QAHgC,EAQhCnF,EAJAqF,aAJgC,MAIxB,mBAJwB,EAKtBO,EAGV5F,EAHA6F,SACAC,EAEA9F,EAFA8F,KACGjC,EAP6B,YAQhC7D,EARgC,sDAehCI,YAAeJ,GALfsC,EAVgC,EAUhCA,OACA5B,EAXgC,EAWhCA,aACAF,EAZgC,EAYhCA,YACUuF,EAbsB,EAahCF,SACAG,EAdgC,EAchCA,MAEElC,EAAYC,cACZ1D,EAAW2D,YAAmBhE,GAC9B6F,EAAWD,GAAkBG,EAC7BE,EAAeC,eACfC,EAASC,eACTC,EAAc7C,uBAChB,SAAAY,GACI6B,EACKK,QAAQjG,EAAU,CACfyF,KAAMtF,GAAesF,EACrBxD,OAAQA,EAAM,2BACH5B,GAAiB4B,GACtB5B,EACN6F,WAAY,CAAEC,KAAM,EAAGlG,QAASqF,KAEnCxG,MACG,gBAAG4D,EAAH,EAAGA,KAAH,OACI8C,GACAA,EACI9C,EACA0D,aAAoBR,GACpBA,EACA5F,MAfhB,OAkBW,SAAAqG,GACHC,QAAQD,MAAMA,GACdP,EAAO,6BAA8B,cAEtB,oBAAZhB,GACPA,EAAQf,KAGhB,CACI5D,EACAyF,EACAJ,EACAvD,EACA5B,EACAiF,EACAQ,EACAhB,EACA9E,EACAyF,IAIR,OACI,eAAC,KAAD,yBACIX,QAASkB,EACTvB,SAAoB,IAAVkB,GACNR,GAAkB3B,IAH1B,cAKI,cAAC+C,GAAA,EAAD,UACI,cAAC,KAAD,CAAcC,SAAS,YAE3B,cAACC,GAAA,EAAD,CAAYC,QAAQ,UAApB,SAA+BjD,EAAUuB,UCZtC2B,GArEI,SAAC,GAMF,EALd3B,MAKe,IAJf4B,EAIc,EAJdA,SAIGpD,GAAW,EAHdqD,cAGc,EAFdC,WAEc,EADdvD,QACc,4EACRE,EAAYC,cADJ,EAEkBqD,IAAMC,SAAS,MAFjC,mBAEPC,EAFO,KAEGC,EAFH,KAGRC,EAAOC,QAAQH,GAYrB,OACI,sBAAKI,MAAO,CAAEC,YAAa,IAA3B,UACI,cAACC,EAAA,EAAD,CAASC,MAAO/D,EAAU,iBAAkB,CAAEgE,EAAG,SAAWC,WAAY,IAAxE,SACI,cAACC,EAAA,EAAD,CACIC,aAAYnE,EAAU,iBAAkB,CAAEgE,EAAG,SAC7CI,gBAAc,YACdC,gBAAc,OACdhD,QAjBI,SAACf,GACjBA,EAAMgE,kBACNb,EAAYnD,EAAMiE,gBAgBNC,KAAK,QACLlD,MAAM,UANV,SAQI,cAAC,IAAD,QAGR,cAACmD,EAAA,EAAD,CACI/I,GAAG,YACHgI,KAAMA,EACNF,SAAUA,EACVkB,QAvBQ,SAACpE,GACjBA,EAAMgE,kBACNb,EAAY,OAsBJkB,aAAc,CACVC,SAAU,SACVC,WAAY,UAEhBC,gBAAiB,CACbF,SAAU,MACVC,WAAY,UAXpB,SAeKE,WAASjK,IAAIqI,GAAU,SAAArF,GAAK,OACzBA,GAASkH,yBAAelH,GAClBwF,IAAM2B,aAAanH,EAAnB,eAA+BiC,IAC/B,cChDpBmF,GAAc,SAAChJ,GAAW,IACpBiJ,EAAmDjJ,EAAnDiJ,UAAWpD,EAAwC7F,EAAxC6F,SAAUqD,EAA8BlJ,EAA9BkJ,QAAStF,EAAqB5D,EAArB4D,QAAYC,EADvB,YACgC7D,EADhC,8CAErBmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SAFpC,EAWvBnJ,YAAeJ,GAPfQ,EAJuB,EAIvBA,YACAG,EALuB,EAKvBA,iBACAD,EANuB,EAMvBA,aACA+E,EAPuB,EAOvBA,SACA+D,EARuB,EAQvBA,YACAC,EATuB,EASvBA,WACAzD,EAVuB,EAUvBA,MAEE3F,EAAW2D,YAAmBH,GAC5B6F,EAAcC,YAAsB9F,GAApC6F,UACF5F,EAAYC,cAElB,OAAO6F,mBACH,kBAAMT,EACF,eAACU,EAAA,EAAD,yBAAYZ,UAAWA,GAAea,YAAsBjG,IAA5D,cACKqF,GACGH,uBAAaG,EAAS,CAClB7I,WACAoJ,aACA9I,mBACAD,eACAqJ,QAAS,WAEhBL,GAAa,cAACM,EAAA,EAAD,CAAcvE,SAAUA,KACxB,IAAbI,GACG,cAACoE,EAAA,EAAD,CACInF,SAAoB,IAAVkB,EACV3F,SAAUA,EACVyF,KAAMtF,EACNE,aAAcA,QAK1B,eAACmJ,EAAA,EAAD,yBAAYZ,UAAWA,GAAea,YAAsBjG,IAA5D,cACKqF,GACGH,uBAAaG,EAAS,CAClB7I,WACAoJ,aACA9I,mBACAD,eACAqJ,QAAS,WAEhBL,GAAa,cAACM,EAAA,EAAD,CAAcvE,SAAUA,IACtC,eAACyE,GAAD,WACI,cAACC,EAAA,EAAD,CAAezC,MAAO,CAAE0C,WAAY,GAApC,SAA0CtG,EAAU,uCAAwC,CACxFgE,EAAG,qBAEP,cAAC,GAAD,CAAmBlE,QAASA,IAC5B,cAACyG,EAAA,EAAD,IACA,cAACC,EAAA,EAAD,WACkB,IAAbzE,GACG,cAAC,GAAD,CACIf,SAAoB,IAAVkB,EACV3F,SAAUA,EACVyF,KAAMtF,EACNE,aAAcA,eAOtC,CAACL,EAAUM,EAAkBD,EAAc8I,EAAaN,EAASlD,EAAOmD,KAwBhFH,GAAY3G,aAAe,CACvBmH,YAAa,GACbe,gBAAiB,kBAAM,OAIZvB,I,MAAAA,M,+BC1GAwB,GALU,SAACnH,EAAKlB,EAAOsI,EAAOC,EAAQ5G,GACjD,OAAc,IAAV3B,EAAuB,gBACb,IAAVA,EAAwB,0BAA5B,G,oBCMWwI,GANO,SAACtH,EAAKlB,EAAOsI,EAAOC,EAAQ5G,GAC9C,OAAO8G,KAAOzI,GAAO0I,OAAO,wBCIjBC,GAPO,SAACzH,EAAKlB,EAAOsI,EAAOC,EAAQ5G,GAAe,IACrDiH,EAAeN,EAAfM,WACR,OAAOjH,EAAU,aAAD,OAAciH,EAAd,kBAAkC1H,EAAlC,YAAyClB,GAAS,CAAC2F,EAAG3F,KCM3D6I,GAPS,SAAC3H,EAAKlB,EAAOsI,EAAOC,EAAQ5G,GAEhD,OADkB,IAAImH,KAAKC,aAAa,QAAS,CAAEC,sBAAuB,IACzDN,OAAO1I,ICOtBiJ,GAAe,SAAfA,EAAgBX,EAAOY,GACSZ,EAA1BM,WADkC,IACnBO,EADkB,YACPb,EADO,gBAkBzC,OAfc7K,OAAOD,KAAK2L,GAAQC,QAAO,SAACC,EAAQnI,GAC9C,IAAMlB,EAAQmJ,EAAOjI,GACrB,GAAqB,kBAAVlB,EAAoB,CAC3B,IAAMsJ,EAASL,EAAajJ,EAAOkB,GACnCmI,EAAOE,KAAP,MAAAF,EAAM,YAASC,SAEf,GAAIhE,QAAQtF,GAAQ,CAChB,IAAMwJ,EAAON,EAAW,UAAMA,EAAN,YAAqBhI,GAAQA,EACrDmI,EAAOE,KAAKC,GAIpB,OAAOH,IACR,KAKDI,GAAoB,SAApBA,EAAqBnB,EAAO3G,EAAW+H,EAAgBR,GAAiB,IAClEN,EAA0BN,EAA1BM,WAAeO,EADkD,YACvCb,EADuC,gBAkBzE,OAfc7K,OAAOD,KAAK2L,GAAQC,QAAO,SAACC,EAAQnI,GAC9C,IAAMlB,EAAQmJ,EAAOjI,GACrB,GAAqB,kBAAVlB,EAAoB,CAC3B,IAAMsJ,EAASG,EAAkBzJ,EAAO2B,EAAW2G,EAAOpH,GAC1DmI,EAAOE,KAAP,MAAAF,EAAM,YAASC,SAEf,GAAIhE,QAAQtF,GAAQ,CAChB,IAAMwJ,EAAOE,EAAc,UAAM/H,EAAU,aAAD,OAAc+H,EAAed,WAA7B,mBAAkDM,IAAjE,YAAmFvH,EAAU,aAAD,OAAciH,EAAd,mBAAmC1H,KAAWS,EAAU,aAAD,OAAciH,EAAd,mBAAmC1H,IACjNmI,EAAOE,KAAKC,GAIpB,OAAOH,IACR,KAKDM,GAAc,SAAdA,EAAerB,EAAOC,EAAQ5G,GACE2G,EAA1BM,WADuC,IACxBO,EADuB,YACZb,EADY,gBAExC1H,EAAO,GAkBb,OAjBAnD,OAAOD,KAAK2L,GAAQS,SAAQ,SAAA1I,GACxB,IAAMlB,EAAQmJ,EAAOjI,GACf2I,EAActB,EAAOrH,GACN,kBAAVlB,EACH6J,aAAuBC,MACvBlJ,EAAKM,GAAO2I,EAAYpN,KAAI,SAAA+M,GAAI,OAAIG,EAAY3J,EAAOwJ,EAAM7H,MAC/B,kBAAhBkI,IACdjJ,EAAKM,GAAOyI,EAAY3J,EAAO6J,EAAalI,IAG5C2D,QAAQtF,KACRY,EAAKM,GAAyB,oBAAVlB,EAAwBA,EAAMkB,EAAK2I,EAAavB,EAAOC,EAAQ5G,GAAakI,MAMrGjJ,GAuBI8C,GApBE,SAACgC,EAAO4C,EAAR,OAAiB3G,EAAjB,EAAiBA,UAAcoI,EAA/B,oCAA6C,SAACC,EAAS1F,EAAqBR,EAAc5F,GAEvG,IAAM+L,EAAUhB,GAAaX,GACvB4B,EAAST,GAAkBnB,EAAO3G,GAClCf,EAAOoJ,EAAQvN,KAAI,SAAA8L,GAAM,OAAIoB,GAAYrB,EAAOC,EAAQ5G,MAI9DwI,KAAWvJ,EAAD,aACNwJ,aAAc,IACdH,UACAC,UACGH,IACJ,SAACM,EAAKC,GACLC,aARQ,SAQUD,EAAK5E,QC3ChB8E,GAzCK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAiCxE,OAFiBjH,GAAegH,EA9BZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXwC,uBAAwB,CACpB3N,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,yBAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,iBAEuC,CAAEjH,e,6HCnC9C,eAAwB,IAAtBzD,EAAqB,EAArBA,SAAUiN,EAAW,EAAXA,MACvB,OAAOC,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,0KAAuBrN,EAAoBA,EACjCA,GAIlBsN,UAAW,CAAEL,SACbM,QAAS,SAAClH,GACNmH,MAAMnH,OCaZoH,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2E,aAAc,CACV5I,MAAOiE,EAAM4E,QAAQvH,MAAMwH,KAC3B,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,KAChD,uBAAwB,CACpBC,gBAAiB,qBA4DlBE,GAtDU,SAAC,GAOR,EANd5I,SAMe,IArCe,EAgC9BpF,EAKc,EALdA,SACSiO,EAIK,EAJdC,QACAtF,EAGc,EAHdA,UAEAO,GACc,EAFd9I,aAEc,EADd8I,aACG3F,EAAW,0FAER2K,EAAWC,eACXC,EAAUC,eACVxI,EAASC,eACTwI,EAAcC,eACdN,EAAUT,GAAU,CAAES,QAASD,IANvB,EAOgBjH,oBAAS,GAPzB,mBAOPrE,EAPO,KAOE8L,EAPF,KAgCd,OACI,cAACC,GAAA,EAAD,yBACI5J,QAzBY,WAEhB2J,GAAW,GACXN,EAASQ,gBCtDF,YAAwB,IAArBzP,EAAoB,EAApBA,IAAKc,EAAe,EAAfA,SACnB,OAAOpB,QAAQQ,IACXF,EAAIX,KAAI,SAAAY,GAAE,OACNyP,GAAc,CAAC5O,WAAUiN,MAAO,CAAC9N,YAEvCL,MAAK,SAAA+P,GAKH,MAAO,CAAEnM,KAJImM,EAAQ3D,QACjB,SAAC4D,EAAD,OAAQpM,EAAR,EAAQA,KAAR,4BAAuBoM,GAAvB,CAA4BpM,EAAKvD,OACjC,QDgDJ4P,CAAkB,CACd/O,WACAd,IAAKiK,IACNrK,MAAK,WACJuP,IACAvI,EAAQ,iCAAkC,OAAQ,CAAE0G,YAAarD,EAAY/E,SAC7EmK,EAAYvO,MANhB,OASO,SAACqG,GACJP,EAAyB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAV/F,SAYS,WACLP,GAAW,GACXN,EAASc,oBAOTxK,SAAU9B,EACVqC,MAAM,mBACN4D,UAAS,2BAAsBsF,EAAQP,aAA9B,YAA8C/E,MA1EjC,EA4EApF,GA3E9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,sMAsEzB,aAQI,cAAC,KAAD,MAHI,W,uIEjDVhC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC0G,IAAK,CAAEC,UAAW,IAClBC,oBAAqB,CACjBC,OAAQ,SAIVC,GAAsB,CACxBC,YAAY,EACZV,UAAU,EACVW,OAAO,EACPZ,SAAS,GAoJEa,GAjJc,SAAC,GAA4F,IAA1F9G,EAAyF,EAAzFA,YAA+BnJ,GAA0D,EAA5EoF,SAA4E,EAAlEiF,OAAkE,EAA1DrK,UAAU4I,EAAgD,EAAhDA,UAC/DyF,GAD+G,EAArCmB,SAAqC,qFACrGlB,gBACVxI,EAASC,eAEToI,GADcK,eACHJ,gBAJoG,GAKrGX,KACQzG,oBAAS,IANoF,mBAM9GG,EAN8G,KAMxG+I,EANwG,OAOvFlJ,mBAAS,IAP8E,mBAO9G8E,EAP8G,KAOrGqE,EAPqG,OAQrEnJ,mBAAS,IAR4D,mBAQ9GoJ,EAR8G,KAQ5FC,EAR4F,KAS/GzK,EAAeC,eAEfyK,EAAanN,uBAAY,WAC3B+M,GAAQ,GACR/B,EAASQ,gBACT/I,EAAa2K,QAAQvQ,EAAU,CAC3Bd,IAAKiK,IAEJrK,MAAK,SAAAqM,GACF,IAAMqF,EAAQrF,EAAOzI,KAEfsK,EAAOwD,EAAMjS,KAAI,SAAAkS,GAAW,OAAIA,EAAYzD,QAC5CoD,EAAmBM,KAAeC,MAAM,KAArB,sBAA+B3D,GAA/B,CAAqC,QAE9DqD,EAAoBD,GACpBD,EAAWK,MAVnB,OAYW,SAACnK,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAblG,SAea,WACLb,EAASc,qBAGjB,CAAC9F,EAAagF,IAIZyC,EAAc,WAChBV,GAAQ,GACRC,EAAW,IACXE,EAAoB,KAGlBQ,EAA+B,SAACC,EAAaC,GAmB/C,OCzGO,YAAoC,IAAlCjF,EAAiC,EAAjCA,QAAS9L,EAAwB,EAAxBA,SAEtB,OAF8C,sCAC9CsG,QAAQ0K,IAAIlF,GACLoB,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,gHAEGvB,EAAQvN,KAAI,SAAC8L,EAAQ4G,GAAT,oBAA0BA,EAA1B,mBAA0CjR,EAA1C,0BAAoEqK,EAAOlL,GAA3E,sBAA2FkL,EAAO2C,MAAQ3C,EAAO2C,KAAK5I,OAASiG,EAAO2C,KAAKzO,KAAI,SAAA2S,GAAG,uBAAcA,EAAI/R,GAAlB,UAA8B,GAAhL,oCAAmNgS,KAAK,OAG/O7D,UAAW,GACXC,QAAS,SAAClH,GACNmH,MAAMnH,MD+FH+K,CAAe,CAAEtF,QAlBVA,EAAQvN,KAAI,SAAA8S,GACtB,IAAMC,EAAWD,EAAIrE,KACfuE,EAAU,sBACTR,GADS,YAETO,EAAS/S,KAAI,SAAA2S,GACZ,IAAMjN,EAAS8M,EAAQS,MAAK,SAAAC,GAAU,OAAIA,EAAWtS,KAAO+R,EAAI/R,MAChEmH,QAAQ0K,IAAI/M,GACZ,IAAMkH,EAASlH,IAAmBmM,EAAiBsB,MAAK,SAAAC,GAAc,OAAIA,EAAexS,KAAO+R,EAAI/R,OAAO+R,EAC3G,OAAO/F,EAAS,CACZhM,GAAIgM,EAAOhM,IACX,QACL8C,QAAO,SAAA2P,GAAE,OAAIA,OAEpB,MAAQ,CACJzS,GAAIkS,EAAIlS,GACR6N,KAAMuE,MAG0BvR,aAAYlB,MAAK,SAAAqM,GAErD,IAAMzI,EAAOnD,OAAOsS,OAAO1G,EAAOzI,MAAMnE,KAAI,SAAAqT,GAAE,OAAIA,EAAGzS,MAGrD,OAFAgP,EAASE,KACTvI,EAAO,0BAA2B,OAAQ,CAAE0G,YAAa9J,EAAK0B,SACvD,CAAE1B,WALN,OAOI,SAAA2D,GACHP,EAAOO,OAuBnB,OACI,qCACI,cAAC,KAAD,CACIvB,QAASwL,EAETtL,MAAM,wBACN4D,UAAS,iCAA4BA,GAJzC,SAOI,cAAC,KAAD,KAFI,UAIR,eAACkJ,GAAA,EAAD,CAAQ3K,KAAMA,EAAMgB,QAASyI,EAAamB,kBAAgB,oBAAoBC,WAAS,EAACC,SAAS,KAAjG,UACI,cAACC,GAAA,EAAD,CAAa/S,GAAG,oBAAhB,iIAMA,cAAC,KAAD,CACIgT,cAAe,CACXnF,KAAMoD,EACNgC,QAAShC,EAAiB7R,KAAI,SAAA2S,GAAG,OAAIA,EAAI/R,OAE7CkT,SA1CK,SAAAR,GAEGA,EAAO7E,KAA3B,IACM+D,EAAUc,EAAOO,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,SAE5CgP,EAASQ,gBAGTkC,EAA6BC,EAAaC,GAA1C,SACa,WACL5C,EAASc,mBAIjBiB,GAAQ,GACRC,EAAW,IACXE,EAAoB,KA2BRiC,SAAQ,eAAOC,MACfC,aAAc1C,GAEd2C,yBAAuB,EACvBC,OAAQ,SAAAC,GAAS,OACb,iCACI,cAACtO,EAAA,EAAD,CAAKuO,QAAQ,SAAb,SACKxC,GAAoB,cAACyC,GAAA,EAAD,CAAqB3N,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAUA,GAC3FgF,MAAM,oCACNgN,WAAS,EAFQ,SAGjB,cAACe,GAAA,EAAD,CAAwBlH,QAAS,CAAEmH,0BAA2B,CAAE3L,MAAO,CAAEwI,OAAQ,cAGzF,eAACoD,GAAA,EAAD,WACI,cAAC,KAAD,CAAQnO,QAAS8L,EAAjB,kDAGA,cAAC,KAAD,CAAQ9L,QAAS6N,EAAUzD,aAAcnK,MAAM,UAA/C,8E,UE7KnBmO,I,OAAU,IAAIC,KAAQ,KAEtBC,GAAgB,SAACC,EAAQC,GAGpC,OAFcJ,GAAQK,SAASF,EAAQC,GAE1BrR,QAAO,SAAAuR,GAAI,OAAKA,EAAKC,UAAYD,EAAKE,cAAYxI,QAAO,SAAC2G,EAAQ2B,GAAT,OAAkBjU,OAAOD,KAAKkU,EAAKE,YAAYxI,QAAO,SAACyI,EAAQC,GACnI,IAAM9R,EAAQ0R,EAAKE,WAAWE,GAI9B,OAFAxS,IAAIuS,EAAQC,EAAW9R,GAEhB6R,IACN9B,KAAS,KAGDgC,GAAmB,SAAUC,GAIxC,OAFAA,EAAM7R,QAAO,SAAA8R,GAAC,OAAIA,EAAEL,cAAYhI,SAAQ,SAAAqI,GAAO,IAAK,IAAI/Q,KAAO+Q,EAAEL,WAAwC,cAAtBK,EAAEL,WAAW1Q,KAAwB+Q,EAAEL,WAAW1Q,QAAOC,MAErI6Q,GAOIE,GAAM,SAACX,EAAQC,EAAS/R,EAAOuR,GAC1C,OAAOA,EAAYI,GAAQc,IAAIX,EAAQC,EAAS/R,IAAU2R,GAAQc,IAAI,UAAWlB,GAAaI,GAAQc,IAAIX,EAAQC,EAAS/R,ICjB9G0S,GAVwB,SAAAtU,GAAK,OACxC,qCACKqU,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IAC3EqU,GAAI,UAAW,kBAAoB,cAACE,GAAA,EAAD,eAAsBvU,IACzDqU,GAAI,SAAU,kBAAoB,cAAC,GAAD,eAAsBrU,Q,4DCJ3DwU,GAAc,GAEd1G,GAAYC,cACd,SAAA1E,GAAK,MAAK,CACNoL,KAAM,CACFC,QAAS,OACTC,WAAY,WACZC,cAAe,OACfC,SAAU,YAEdC,OAAQ,CAAEC,MAAO1L,EAAM2L,QAAQ,IAC/BC,WAAY,CACRC,OAAQ,GACRH,MAAO,GACP9B,QAAS,EACT4B,SAAU,WACVM,IAAK,EACLC,MAAO,GAEXC,SAAU,CACNH,OAAQ,GACRH,MAAO,OAGf,CAAE1Q,KAAM,sBAsDGiR,GAnDS,SAAAtV,GAAU,IACtBuV,EAA+CvV,EAA/CuV,cAAeC,EAAgCxV,EAAhCwV,WAAYzO,EAAoB/G,EAApB+G,QAAS0O,EAAWzV,EAAXyV,OACtCpV,EAAW2D,YAAmBhE,GAC9B8D,EAAYC,cACZwK,EAAUT,GAAU9N,GAG1B,OACI,sBACI0V,cAAaH,EAAcvV,MAAMuF,OACjC0D,UAAW0M,KAAW,eAAgBpH,EAAQkG,MAFlD,UAIKrN,IAAM2B,aAAawM,EAAe,CAC/BK,gBACuCtS,IAAnCiS,EAAcvV,MAAM4V,YAEdL,EAAcvV,MAAM4V,WAC9BvV,WACAqK,OAAQ8J,GACRzN,UACA0O,SACAI,YAAY,EAEZ/S,kBAAcQ,KAEhBiS,EAAcvV,MAAM+E,UAClB,cAACiD,EAAA,EAAD,CACIiB,UAAW0M,KAAW,cAAepH,EAAQ0G,YAC7C9P,QAASqQ,EACTM,WAAUP,EAAcvV,MAAMuF,OAC9BsC,MAAO/D,EAAU,2BACjBiS,eAAa,EALjB,SAQI,cAAC,KAAD,CAAkB9M,UAAWsF,EAAQ8G,aAG7C,qBAAKpM,UAAWsF,EAAQuG,OAAxB,sBC7DNhH,GAAYC,cACd,SAAA1E,GAAK,MAAK,CACN2M,KAAM,CACFhG,WAAY3G,EAAM2L,QAAQ,GAC1BiB,WAAY,EACZvB,QAAS,OACTC,WAAY,WACZuB,SAAU,OACVC,UAAW9M,EAAM2L,QAAQ,IACzBJ,cAAe,QAEnBwB,SAAU,CAAEC,MAAO,YAEvB,CAAEhS,KAAM,2BAmCCiS,GAAyB,SAAC,GAahC,IAAD,IAZF/H,eAYE,MAZQ,GAYR,EAXFtF,EAWE,EAXFA,UACA5I,EAUE,EAVFA,SACAoV,EASE,EATFA,OACA1O,EAQE,EARFA,QACAmC,EAOE,EAPFA,QAOE,IANFvI,wBAME,MANiB,GAMjB,EALF4V,EAKE,EALFA,WACA/D,EAIE,EAJFA,cACAjD,EAGE,EAHFA,aACAiH,EAEE,EAFFA,QACG3S,EACD,wJACF5C,qBAAU,WACNiI,EAAQ6C,SAAQ,SAACzJ,GACb,GAAIA,EAAOtC,MAAM+E,UAAYzC,EAAOtC,MAAM8C,aACtC,MAAM,IAAIzD,MACN,wIAIb,CAAC6J,IAEJ,IAxDuB,EAiEjBsM,EAAahS,uBACf,SAAAY,GAAK,OAAImS,EAAWnS,EAAMiE,cAAcoO,QAAQpT,OAChD,CAACkT,IAGL,OACI,+CACItN,UAAW0M,KAAW1M,EAAWsF,EAAQyH,SAxE1B,EAyEOnS,GAxE9B6S,OADsB,EAEtBC,MAFsB,EAGtBC,YAHsB,EAItBC,2BAJsB,EAKtBC,qBALsB,EAMtBpQ,MANsB,EAOtBqQ,OAPsB,EAQtBrW,aARsB,EAStBsV,KATsB,EAUtBzG,aAVsB,EAWtByH,gBAXsB,EAYtBC,oBAZsB,EAatBxH,QAbsB,EActByH,SAdsB,EAetBC,wBAfsB,EAgBtBzH,SAhBsB,EAiBtB9O,WAjBsB,EAkBtBwW,YAlBsB,EAmBtBC,aAnBsB,EAoBtBC,aApBsB,EAqBtBC,gBArBsB,EAsBtBnH,WAtBsB,EAuBtBoH,QAvBsB,EAwBtBnH,MAxBsB,EAyBtBoH,WAzBsB,EA0BtBvF,OA1BsB,EA2BtBwF,QA3BsB,wYAuElB,IAGIhF,SAAUnD,EACVoI,IAAKnB,EAJT,UAdAtN,EAAQ5G,QACJ,SAACiT,GAAD,OACIA,EAAcvV,MAAM+E,UACpBpE,EAAiB4U,EAAcvV,MAAMuF,SAErC,qBADOqS,IAAUpF,EAAe+C,EAAcvV,MAAMuF,WAiBrC3G,KAAI,SAAC2W,GAAD,OACnB,cAAC,GAAD,CAEIA,cAAeA,EACfC,WAAYA,EACZnV,SAAUA,EACVoV,OAAQA,EACR1O,QAASA,GALJwO,EAAcvV,MAAMuF,WAQjC,qBAAK0D,UAAWsF,EAAQ6H,WACxB,wBAAQyB,KAAK,SAASnQ,MAAO,CAAEgN,QAAS,QAAxC,yBA8DGoD,GAxBY,SAAA9X,GACkDA,EAAjEuO,QAAiEvO,EAAvCwS,cADD,IACgB5R,EAAwBZ,EAAxBY,WAAeiD,EADhC,YACyC7D,EADzC,0CAE1BuO,EAAUT,GAAU9N,GAEpB+X,EAzByC,SAAC,GAAD,IAC/CvF,EAD+C,EAC/CA,cACAtJ,EAF+C,EAE/CA,QAF+C,mBAAC,eAI7CA,EACE5G,QACG,SAACiT,GAAD,OACIA,EAAcvV,MAAM+E,UAAYwQ,EAAcvV,MAAM8C,gBAE3DyI,QACG,SAAC4D,EAAKoG,GAAN,OACIyC,IAAU,eACD7I,GACLoG,EAAcvV,MAAMuF,OACpBgQ,EAAcvV,MAAM8C,gBAE5B,KAEL0P,GAO0CyF,CAAoCjY,GAQjF,OACI,cAAC,KAAD,CACI0S,SAPa,SAAAR,GACjBtR,EAAWsR,IAOPM,cAAeuF,EACfpF,SAAQ,eAAOC,MACfG,OAAQ,SAAAC,GAAS,OACb,cAAC,GAAD,yBAAwBzE,QAASA,GAAayE,GAAenP,Q,qBCrKvEiK,GAAYC,aACd,CACImK,KAAM,CAAExD,QAAS,iBAErB,CAAErQ,KAAM,6BAqCG8T,GAlCkB,SAAC,GAM3B,IALH3B,EAKE,EALFA,QAEAvN,GAGE,EAJFsF,QAIE,EAHFtF,WAEGjJ,GACD,EAFFK,SAEE,6DAGIkO,EAAUT,GAAU9N,GAGpBoY,EAAe5U,uBAAY,SAAAY,GAC7BA,EAAMiU,iBACoC,oBAAlC7B,EAAQ8B,QAAQC,cAAgC/B,EAAQ8B,QAAQC,gBAAkB/B,EAAQ8B,QAAQE,cAAc,IAAIC,MAAM,SAAU,CAAEC,YAAY,OAC3J,CAAClC,IAGJ,OACI,6CAAKvN,UAAW0M,KAAWpH,EAAQ2J,KAAMjP,IAAgBjJ,GAAzD,aACI,cAAC+O,GAAA,EAAD,CACI9F,UAAU,eACV5D,MAAM,yBACNsT,kBAAgB,EAChB5R,QAAQ,YACR8Q,KAAK,SACL1S,QAASiT,EANb,SAQI,cAAC,KAAD,U,UC/BDrY,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,yI,6BCFC0Y,GAFkB,SAACvY,EAAUqD,GAAX,OAA4Bd,GAAe,GAAD,OAAIvC,EAAJ,oBAAgCqD,I,qBCmG5FmV,GAvFY,SAAC,GAGrB,IAFHrR,EAEE,EAFFA,KACAgB,EACE,EADFA,QAEM1E,EAAYC,cADhB,EAQE3D,cALAC,EAHF,EAGEA,SACAK,EAJF,EAIEA,aACAC,EALF,EAKEA,iBACAH,EANF,EAMEA,YACAF,EAPF,EAOEA,QAPF,EAUkCsY,GAAyBvY,EAAU,IAVrE,mBAUKyY,EAVL,KAUiBC,EAVjB,OAagC1R,mBAAS,IAbzC,mBAaK2R,EAbL,KAagBC,EAbhB,KAyBIC,EAAW,WACbH,EACID,EAAWK,OAAO,CACd9T,MAAO2T,EACP7W,MAAO,CACHG,OAAQ5B,EACRoF,KAAMtF,EACNF,UACAK,uBAIZsY,EAAa,IACbzQ,KAGJ,OACI,eAAC2J,GAAA,EAAD,CACI3K,KAAMA,EACNgB,QAASA,EACT4J,kBAAgB,oBAHpB,UAKI,cAACG,GAAA,EAAD,CAAa/S,GAAG,oBAAhB,SACKsE,EAAU,gDAAiD,CACxDgE,EAAG,4BAGX,cAACsR,GAAA,EAAD,UACI,sBAAM1G,SAjCO,SAACtT,GACtBA,EAAEiZ,iBACFa,KA+BQ,SACI,cAACG,GAAA,EAAD,CAEIC,WAAS,EACT7D,OAAO,QACPjW,GAAG,OACH6F,MAAOvB,EACH,0CACA,CACIgE,EAAG,eAGXuK,WAAS,EACTlQ,MAAO6W,EACPO,SArDU,SAC1BnV,GAEA6U,EAAa7U,EAAME,OAAOnC,cAsDtB,eAACmR,GAAA,EAAD,WACI,cAAC,KAAD,CAAQnO,QAASqD,EAAjB,SACK1E,EAAU,sBAEf,cAAC,KAAD,CAAQqB,QAAS+T,EAAU9T,MAAM,UAAjC,SACKtB,EAAU,2B,WCRhB0V,GAvEe,SAAC,GAIxB,IAHHhS,EAGE,EAHFA,KACAgB,EAEE,EAFFA,QAGM1E,EAAYC,cADhB,EAQE3D,cALAC,EAHF,EAGEA,SACAK,EAJF,EAIEA,aACAF,EALF,EAKEA,YACAF,EANF,EAMEA,QACAK,EAPF,EAOEA,iBAPF,EAUkCiY,GAAyBvY,EAAU,IAVrE,mBAUKyY,EAVL,KAUiBC,EAVjB,KA4BF,OACI,eAAC5G,GAAA,EAAD,CACI3K,KAAMA,EACNgB,QAASA,EACT4J,kBAAgB,qBAChBqH,mBAAiB,2BAJrB,UAMI,cAAClH,GAAA,EAAD,CAAa/S,GAAG,qBAAhB,SACKsE,EAAU,mDAAoD,CAC3DgE,EAAG,0BAGX,cAACsR,GAAA,EAAD,UACI,cAACM,GAAA,EAAD,UACK5V,EAAU,8CAA+C,CACtDgE,EACI,mFAIhB,eAACwL,GAAA,EAAD,WACI,cAAC,KAAD,CAAQnO,QAASqD,EAAjB,SACK1E,EAAU,sBAEf,cAAC,KAAD,CACIqB,QAzCI,WAChB,IAAMmM,EAAQwH,EAAWa,WAAU,SAAAC,GAAS,OACxCjY,IAAQiY,EAAUzX,MAAO,CACrBG,OAAQ5B,EACRoF,KAAMtF,EACNF,UACAK,wBAGRoY,EAAc,GAAD,mBACND,EAAWpZ,MAAM,EAAG4R,IADd,YAENwH,EAAWpZ,MAAM4R,EAAQ,MAEhC9I,KA6BYpD,MAAM,UAENkU,WAAS,EAJb,SAMKxV,EAAU,8BC7CzBgK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CAAExD,QAAS,gBACjBmF,KAAM,CACF1L,gBAAiB9E,EAAM4E,QAAQ6L,WAAWC,UAE9C,CAAE1V,KAAM,mBAwLN2V,GAAuBC,sBACzB,SAACja,EAAO2X,GAAS,IACLrV,EAA6BtC,EAA7BsC,OAAQ4X,EAAqBla,EAArBka,OAAQ7Z,EAAaL,EAAbK,SAClB8Z,EAAa3W,uBAAY,WAC3B0W,EAAO,CACH3U,OAAQjD,EAAOtC,MAAMuF,OACrBzC,aAAcR,EAAOtC,MAAM8C,iBAEhC,CAACR,EAAOtC,MAAM8C,aAAcR,EAAOtC,MAAMuF,OAAQ2U,IAEpD,OACI,cAAC,KAAD,CACIjR,UAAU,kBACV6M,WAAUxT,EAAOtC,MAAMuF,OACvB6U,qBAAoB9X,EAAOtC,MAAM8C,aAEjCqC,QAASgV,EACTxC,IAAKA,EANT,SAQI,cAAC0C,GAAA,EAAD,CACIhV,MAAO/C,EAAOtC,MAAMqF,MACpBE,OAAQjD,EAAOtC,MAAMuF,OACrBlF,SAAUA,KAPTiC,EAAOtC,MAAMuF,WAoBnB+U,GAzNqB,SAACta,GAAW,IACpCkJ,EAAgClJ,EAAhCkJ,QAASD,EAAuBjJ,EAAvBiJ,UAAcpF,EADY,YACH7D,EADG,2BASvCI,cANAM,EAHuC,EAGvCA,aACAF,EAJuC,EAIvCA,YACAF,EALuC,EAKvCA,QALuC,IAMvCK,wBANuC,MAMpB,GANoB,EAOvC8I,EAPuC,EAOvCA,WACApJ,EARuC,EAQvCA,SAEEyD,EAAYC,cAVyB,EAWnBsD,oBAAS,GAXU,mBAWpCG,EAXoC,KAW9B+I,EAX8B,KAYrCjJ,EAAWiT,mBACXhM,EAAUT,GAAU9N,GAbiB,EActB4Y,GAAyBvY,EAAU,IAAjDyY,EAdoC,oBAerC0B,EAAUC,eAEVC,GAAmB/Y,IAAQjB,EAAc,IACzCia,EAA2B7B,EAAW/G,MAAK,SAAA6H,GAAS,OACtDjY,IAAQiY,EAAUzX,MAAO,CACrBG,OAAQ5B,EACRoF,KAAMtF,EACNF,UACAK,wBAIFia,EAAgB1R,EAAQ5G,QAC1B,SAACiT,GAAD,OACKA,EAAcvV,MAAM+E,WACpBpE,EAAiB4U,EAAcvV,MAAMuF,SAEtC,qBADOqS,IAAUlX,EAAc6U,EAAcvV,MAAMuF,WAKrDsV,EAAoBrX,uBACtB,SAAAY,GAEIA,EAAMiU,iBACN9H,GAAQ,GACRjJ,EAASgR,QAAUlU,EAAMiE,gBAE7B,CAACf,EAAUiJ,IAETuK,EAAqBtX,uBAAY,WACnC+M,GAAQ,KACT,CAACA,IACE4J,EAAa3W,uBACf,YAA+B,IAA5B+B,EAA2B,EAA3BA,OAAQzC,EAAmB,EAAnBA,aACP2G,EAAWlE,EAAQzC,GACnByN,GAAQ,KAEZ,CAAC9G,EAAY8G,IArD0B,EAyDiBlJ,oBACxD,GA1DuC,mBAyDpC0T,EAzDoC,KAyDZC,EAzDY,OAwEvC3T,oBAAS,GAxE8B,mBAsEvC4T,EAtEuC,KAuEvCC,EAvEuC,KA4ErCC,EAA4B,WAC9B5K,GAAQ,GACR2K,GAA6B,IAGjC,OACI,8CAAKjS,UAAW0M,KAAWpH,EAAQ2J,KAAMjP,IAAgBpF,GAAzD,cACI,cAACkL,GAAA,EAAD,CACI9F,UAAU,aACV5D,MAAM,uBACNF,QAAS0V,EAHb,SAKI,cAACO,GAAD,MAEJ,eAAC,KAAD,CACI5T,KAAMA,EACNF,SAAUA,EAASgR,QACnB9P,QAASsS,EACTO,cAAe,CACXpS,UAAWsF,EAAQsL,KACnByB,UAAW,wBANnB,UASI,cAACnR,EAAA,EAAD,UAAgBrG,EAAU,wCACzBgV,EAAWla,KAAI,SAACgb,EAAWtI,GAAZ,OACZ3P,IAAQiY,EAAUzX,MAAO,CACrBG,OAAQ5B,EACRoF,KAAMtF,EACNF,UACAK,qBAEA,cAAC,KAAD,CACIwE,QAASgW,EADb,SAIKrX,EACG,sDACA,CACIgE,EAAG,yBACHzD,KAAMuV,EAAUvU,SANnBiM,GAWT,cAAC,KAAD,CACInM,QAAS,WACLqV,EAAQ9O,KAAK,CACT6P,OAAQva,qBAAU,CACdsB,OAAQvB,KAAKC,UACT4Y,EAAUzX,MAAMG,QAEpBwD,KAAM8T,EAAUzX,MAAM2D,KAAKlE,MAC3BC,MAAO+X,EAAUzX,MAAM2D,KAAKjE,MAC5B2E,KAAM,EACNlG,QAASsZ,EAAUzX,MAAM7B,QACzBK,iBAAkBI,KAAKC,UACnB4Y,EAAUzX,MAAMxB,sBAI5B4P,GAAQ,IAhBhB,SAoBKqJ,EAAUvU,OAFNiM,MAMhBoJ,IAAoBC,EACjB,cAAC,KAAD,CAAUxV,QAlFK,WAC3BoL,GAAQ,GACRyK,GAA0B,IAgFd,SACKlX,EAAU,yCAA0C,CACjDgE,EAAG,4BAGX,KACHL,QAAQmT,EAAcnW,SAAW,cAAC0F,EAAA,EAAD,yDACjCyQ,EAAchc,KAAI,SAAC2W,GAAD,OACf,cAACyE,GAAD,CAEI1X,OAAQiT,EACR2E,OAAQC,EACR9Z,SAAUA,GAHLkV,EAAcvV,MAAMuF,cAOrC,cAAC,GAAD,CACIiC,KAAMuT,EACNvS,QAvGmB,WAC3BwS,GAA0B,MAwGtB,cAAC,GAAD,CACIxT,KAAMyT,EACNzS,QA9FsB,WAC9B0S,GAA6B,WCtG/BpN,GAAYC,aACd,CACIyN,OAAQ,GACRxF,KAAM,IAEV,CAAE3R,KAAM,uBAgFGoX,GA3EA,SAAAzb,GACX,IAAMuO,EAAUT,GAAU9N,GADN,EAShBI,YAAeJ,GANfK,EAHgB,EAGhBA,SAEAkW,EALgB,EAKhBA,WACA3V,EANgB,EAMhBA,WACAD,EAPgB,EAOhBA,iBACAD,EARgB,EAQhBA,aA0DJ,MAAyB,WAAlBV,EAAM+J,QAtDQ,WAQb/J,EANAuO,QAMAvO,EALA+J,QAHoB,IAIpB9C,EAIAjH,EAJAiH,SAEAuP,GAEAxW,EAHA+G,QAGA/G,EAFAwW,SACG3S,EAPgB,YAQnB7D,EARmB,sDAUvB,OACI,qCACI,cAAC,GAAD,aACIiJ,UAAWsF,EAAQiN,OACnBnb,SAAUA,EACVmW,QAASA,GACL1M,YAAsBjG,KAW9B,cAAC,GAAD,aACIoF,UAAWsF,EAAQiN,OACnBtS,QAAS9B,IAAMyB,SAAS6S,QAAQzU,IAC5B6C,YAAsBjG,QAwBN8X,GAlBjB,WAC2D3b,EAAlEuO,QAAkEvO,EAAxC+J,QADZ,IACqB9C,EAA+BjH,EAA/BiH,SAAUuP,EAAqBxW,EAArBwW,QAAY3S,EAD5C,YACqD7D,EADrD,4CAGrB,OACI,cAAC,GAAD,aACIiJ,UAAWsF,EAAQyH,KACnB3V,SAAUA,EACV6I,QAAS9B,IAAMyB,SAAS6S,QAAQzU,GAChCsP,WAAYA,EACZ5V,iBAAkBA,EAClB6R,cAAe9R,EACfE,WAAYA,EACZ4V,QAASA,GACL1M,YAAsBjG,KAKe+X,I,+BC/EnD9N,GAAYC,aACd,CACI8N,MAAO,CACH7L,UAAW,KAGnB,CAAE3L,KAAM,kBAkCGyX,GA/BK,SAAA9b,GAC8BA,EAAtCuO,QADkB,IACW1K,EADZ,YACqB7D,EADrB,aAEnB8D,EAAYC,cACZwK,EAAUT,GAAU9N,GAC1B,GAAIA,EAAMqF,MACN,MAAM,IAAIhG,MACN,mGAIR,OACI,cAAC0c,GAAA,EAAD,aACI1W,MAAOvB,EAAU,oBACjBkY,YAAU,EACVC,WAAY,CACRC,aACI,cAACC,GAAA,EAAD,CAAgBtH,SAAS,MAAzB,SACI,cAAC,KAAD,CAAYzP,MAAM,gBAI9B6D,UAAWsF,EAAQsN,OACfhY,K,iJCVViK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CAAEzC,OAAQ,WAChB2G,OAAQ,CAAEhX,MAAO,WACjBiX,MAAO,CAAEjX,MAAO,WAChBqT,MAAO,CAAErT,MAAO,WAChBkX,MAAO,CAAElX,MAAO,WAChBmX,QAAS,CAAEnX,MAAO,WAClBoX,sBAAuB,CAAEpX,MAAO,eAerBqX,GAZI,SAAC,GAA+D,IAA7DxT,EAA4D,EAA5DA,UAAoBqF,EAAwC,EAAjDC,QAA0B7D,EAAuB,EAAvBA,OAAW1K,EAAY,gDACxEuO,EAAUT,GAAU,CAAES,QAASD,IAErC,IAAK5D,EAAQ,OAAO,KACpB,IAAMgS,EAjCM,SAAAC,GACZ,OAAQA,GACJ,IAAK,SACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QAEL,IAAK,UACD,OAAQ,cAAC,KAAD,IACZ,IAAK,wBACD,OAAQ,cAACC,GAAA,EAAD,IACZ,QACI,OAAQ,cAAC,KAAD,KAkBHC,CAAQnS,EAAOmN,MAE5B,OAAOzQ,IAAM2B,aAAa2T,EAAnB,aACHzT,UAAU,GAAD,OAAKA,EAAL,YAAkBsF,EAAQ7D,EAAOmN,QACvC7X,KClCL8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,GACN4E,SAAU,CAAEC,WAAY,KACxBC,UAAW,CACPD,WAAY,IACZ3X,MAAO,QAEX6X,eAAgB,CACZC,KAAM,YAEVC,eAAgB,CACZC,WAAY,EACZ3H,OAAQ,MAGZ,CAAEpR,KAAM,iCA4CGgZ,GAzCI,SAAC,GASb,IARHC,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QACAmP,EAEE,EAFFA,kBACG1d,EACD,kHACI8D,EAAYC,cACZwK,EAAUT,GAAU,CAAES,QAASD,IAC/B2O,EAAiBS,EAAkBJ,GACzC,IAAKA,EAAW9d,GAAI,OAAO,cAAC,KAAD,2BAAkCQ,GAAlC,aAA0Cid,IAA3BK,EAAW9d,IACrD,IAAMme,EAAgBJ,IAAqBjM,EACrCsM,EAAUC,KAAMZ,EAAgBQ,GAChCK,EAAQ3c,KAAM8b,EAAgBW,GAEtBvd,GAA2Bid,EAAjCjZ,KAAiCiZ,EAA3Bjd,UAAU0d,EAAiBT,EAAjBS,aAClB1Y,EAAK,WAAOvB,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,KAA9D,OAAqEkR,EAAY,WAAOja,EAAU,iCAAD,OAAkCia,KAAoB,IAIlK,OACI,eAAC,KAAD,yBAEIjB,SAAUa,EACV1U,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQuO,SAAWU,KAEpBxd,GANR,cAQI,cAAC,GAAD,CAAY0K,OAAQ4S,EAAY5V,MAAO,CAAEsW,cAAe,SAAUrW,YAAa,KAC/E,eAACb,GAAA,EAAD,CAAYC,QAAQ,QAAQkC,UAAWsF,EAAQ0O,eAA/C,UACKa,EAAMlf,KAAI,SAACqf,EAAM3M,GAAP,OAAkB,sBAAkBrI,UAAYgV,EAAKjB,UAAazO,EAAQyO,UAAY,GAApE,SAAyEiB,EAAKC,MAAnE5M,MACvCjM,QAVAiY,EAAW9d,K,UC/CtBsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,OAqBKiG,GAlBI,SAAC,GAAyE,IAAvElV,EAAsE,EAAtEA,UAAoBqF,EAAkD,EAA3DC,QAA0B7D,EAAiC,EAAjCA,OAAQ0T,EAAyB,EAAzBA,SACzDta,GADkF,2DACtEC,eACZwK,EAAUT,GAAU,CAAES,QAASD,IACrC,IAAK5D,EAAQ,OAAO,KAHoE,IAIhFrG,EAAiCqG,EAAjCrG,KAAMhE,EAA2BqK,EAA3BrK,SAAU0d,EAAiBrT,EAAjBqT,aAClB1Y,EAAK,UAAMhB,EAAN,YAAcP,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,KAArE,OAA4EkR,EAAY,WAAOja,EAAU,iCAAD,OAAkCia,KAAoB,IAEzK,OACI,cAACM,GAAA,EAAD,CACI9P,QAAS,CAAE2J,KAAM3J,EAAQ2J,MACzBwE,KAAM,cAAC,GAAD,CAAYhS,OAAQA,IAC1BrF,MAAOA,EACP4D,UAAWA,EACXmV,SAAUA,KCjBhBE,GAAY,kBAAM,GAWTC,GATmB,SAAAve,GAE9B,OACI,cAACkT,GAAA,EAAD,2BAAyBlT,GAAzB,aACI,cAAC,KAAD,CAAwBwe,aAAc,cAAC,GAAD,IAAgBC,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,S,SCFjHxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SA+BzB4J,GA5Ba,SAAC5e,GACzB,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,gBAAiB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAO7GtK,GAAI,UAAW,gBAAiB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAArM,SAC/C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,gBAAiB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA7M,SAC/C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAG9DjK,GAAI,UAAW,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC/QvB,GAAI,UAAW,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,S,oFCC9RxN,IAFe,KAEG,SAAAhJ,GAAC,OAAIA,EAAEgJ,oBAShB2W,GAnCI,SAAC,GAMb,IAAD,IALFtZ,gBAKE,MALS,GAKT,MAJFJ,aAIE,MAJM,iBAIN,EAHFqF,EAGE,EAHFA,OAEG7G,GACD,EAFF6Y,KAEE,qDACI5Y,EAAYC,cAElB,OACI,eAAC,KAAD,yBACIib,UAAWC,KACXC,GAAIC,aAAa1Z,EAAUiF,GAAUA,EAAOlL,IAC5C2F,QAASiD,IACLvE,GAJR,cAMI,cAAC+C,GAAA,EAAD,UACI,cAAC,KAAD,CAAeC,SAAS,YAE5B,cAACC,GAAA,EAAD,CAAYC,QAAQ,UAApB,SAA+BjD,EAAUuB,UCsBtC2B,GA7CI,SAAC,GAAoE,EAAlE3B,MAAmE,IAAzC4B,EAAwC,EAAxCA,SAA4BjH,GAAY,EAA9BkH,cAA8B,qDAC9EpD,EAAYC,cADkE,EAEpDqD,IAAMC,SAAS,MAFqC,mBAE7EC,EAF6E,KAEnEC,EAFmE,KAG9EC,EAAOC,QAAQH,GAYrB,OACI,gCACI,cAACM,EAAA,EAAD,CAASC,MAAO/D,EAAU,iBAAkB,CAAEgE,EAAG,SAAWC,WAAY,IAAxE,SACI,cAACC,EAAA,EAAD,CACIC,aAAYnE,EAAU,iBAAkB,CAAEgE,EAAG,SAC7CI,gBAAc,YACdC,gBAAc,OACdhD,QAjBI,SAACf,GACjBA,EAAMgE,kBACNb,EAAYnD,EAAMiE,gBAgBNC,KAAK,QALT,SAOI,cAAC,IAAD,QAGR,cAAC,KAAD,CACI9I,GAAG,YACH8H,SAAUA,EAEVE,KAAMA,EACNgB,QAvBQ,SAACpE,GACjBA,EAAMgE,kBACNb,EAAY,OAgBR,SAOKsB,WAASjK,IAAIqI,GAAU,SAAArF,GAAK,OACzBA,GAASkH,yBAAelH,GAClBwF,IAAM2B,aAAanH,EAAnB,eAA+B5B,IAC/B,cCpBXof,GAzBgB,SAAC,GAAD,EAC3BC,SAD2B,EAE3BzJ,WAF2B,EAG3BnQ,SAH2B,EAI3ByB,cAJ2B,EAK3B+B,UAL2B,EAM3BqW,UAN2B,EAO3BC,cAP2B,EAQ3BlN,UAR2B,EAS3BmN,gBAT2B,EAU3Bna,MAV2B,EAW3Boa,SAX2B,EAY3BC,KAZ2B,EAa3BC,OAb2B,EAc3BjV,OAd2B,EAe3BrK,SAf2B,EAgB3Buf,SAhB2B,EAiB3BC,OAjB2B,EAkB3BC,YAlB2B,EAmB3Bva,OAnB2B,EAoB3Bwa,UApB2B,EAqB3BC,gBArB2B,kRCKzBlS,GAAYC,cACd,SAAA1E,GAAK,MAAK,CACNqW,KAAM,CACFta,MAAOiE,EAAM4E,QAAQgS,QAAQ/R,KAC7BgS,eAAgB,OAChB,UAAW,CACPA,eAAgB,aAEpB,YAAa,CACT9a,MAAOiE,EAAM4E,QAAQgS,QAAQE,UAIzC,CAAE9b,KAAM,WAwBG4a,GArBF,SAAAjf,GAAU,IAEfkf,EAKAlf,EALAkf,GACAjY,EAIAjH,EAJAiH,SAEAgC,GAEAjJ,EAHAuO,QAGAvO,EAFAiJ,WACGpF,EANW,YAOd7D,EAPc,yCAQZuO,EAAUT,GAAU9N,GAC1B,OACI,cAAC,KAAD,yBACIkf,GAAIA,EACJjW,UAAWmX,KAAW7R,EAAQmR,KAAMzW,IAChCpF,GAHR,aAKKoD,MC9BPmB,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAEzBiY,GAAoBC,gBAAK,SAAAtgB,GAAU,IAC7BiJ,EAA6EjJ,EAA7EiJ,UAAsB1D,GAAuDvF,EAAlEsf,UAAkEtf,EAAvDuF,QADM,EACiDvF,EAA/CugB,cADF,MACW,OADX,EACmB9a,EAA8BzF,EAA9ByF,SAAUiF,EAAoB1K,EAApB0K,OAAW7G,EADxC,YACiD7D,EADjD,iEAEpC,IAAK0K,EAAQ,OAAO,KACpB,IAAMvI,EAAQX,IAAIkJ,EAAQnF,GACpBma,EAAOP,aAAa1Z,EAAUiF,EAAOlL,GAAI+gB,GAE/C,OACI,cAAC,GAAD,yBACItX,UAAWA,EACXiW,GAAIQ,EACJva,QAASiD,IACLgX,GAAuBvb,IAJ/B,aAMK1B,QAKbke,GAAkBhe,aAAe,CAC7Bgd,UAAU,GAGdgB,GAAkB5d,YAAc,oBAGjB4d,U,UCFTvS,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2E,aAAc,CACV5I,MAAOiE,EAAM4E,QAAQvH,MAAMwH,KAC3B,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,KAChD,uBAAwB,CACpBC,gBAAiB,qBA6DlBqS,GAvDM,SAAC,GAOH,IANf/a,EAMc,EANdA,SACS6I,EAKK,EALdC,QACAtF,EAIc,EAJdA,UACAyB,EAGc,EAHdA,OACArK,EAEc,EAFdA,SACUogB,EACI,EADd5Q,SACGhM,EAAW,iFACR2K,EAAWC,eACXoB,EAAW6Q,eACXhS,EAAUC,eACVxI,EAASC,eACTtC,EAAYC,cACZwK,EAAUT,GAAU,CAAES,QAASD,IANvB,EAOgBjH,oBAAS,GAPzB,mBAOPrE,EAPO,KAOE8L,EAPF,KAgCd,OACI,eAAC,KAAD,yBACI3J,QAzBY,SAAC/F,GAEjBA,EAAEgJ,kBACF0G,GAAW,GACXN,EAASQ,gBAETC,GAAc,CACV5O,WACAiN,MAAO,CAAC9N,GAAIkL,EAAOlL,MACpBL,MAAK,WACJgH,EAAQ,iCAAkC,OAAQ,CAAE0G,YAAa,IACjEgD,EAAS4Q,EAAYhb,EAAUiF,EAAOlL,IACtCkP,OANJ,OAQO,SAAChI,GACJP,EAAyB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAT/F,SAWS,WACLP,GAAW,GACXN,EAASc,oBAOTxK,SAAU9B,EACViG,UAAS,UAAKsF,EAAQP,aAAb,YAA6B/E,IAClCpF,GAJR,cAMI,cAAC+C,GAAA,EAAD,CAAcc,MAAO,CAACtC,MAAO,WAA7B,SACI,cAAC,KAAD,CAAYyB,SAAS,YAEzB,cAACC,GAAA,EAAD,CAAYC,QAAQ,UAApB,SAA+BjD,EAAU,2B,qBClF/C6c,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,GAAS3X,OAEpE6gB,GAAazZ,IAAM6S,YAAW,WAMjCtC,GAAS,IAAD,IALPlS,gBAKO,MALI,GAKJ,MAJPJ,aAIO,MAJC,uBAID,MAHPqX,YAGO,MAHAoE,GAGA,EAFPpW,EAEO,EAFPA,OACG7G,EACI,oDACDC,EAAYC,cAElB,OACI,eAAC,KAAD,yBACIib,UAAW2B,GACXzB,GAAE,UAAKC,aAAa1Z,EAAUiF,GAAUA,EAAOlL,IAA7C,SACF8E,OAAO,SACPqT,IAAKA,EACLxS,QAASiD,IACLvE,GANR,cAQI,cAAC+C,GAAA,EAAD,UACKQ,IAAM2B,aAAa2T,EAAM,CACtB7V,SAAU,YAGlB,cAACC,GAAA,EAAD,CAAYC,QAAQ,UAApB,SAA+BjD,EAAUuB,YAK/Cyb,GAAc,cAAC,KAAD,IAEd1Y,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAShByY,MC/BAE,GAjBG,SAAC,GAA+E,IAA9E9Z,EAA6E,EAA7EA,SAA+CyD,GAA8B,EAAnE6D,QAAmE,EAAzCtF,UAAyC,EAA9ByB,QAAQnF,EAAsB,EAAtBA,OACjE8H,GADuF,oEAChF7L,IAAIkJ,EAAQnF,IAEzB,OAAK8H,GAASA,EAAK5I,OAGf,8BACK4I,EAAKzO,KAAI,SAAA2S,GACN,OAAOxI,uBAAaF,WAASmY,KAAK/Z,GAAW,CACzC5D,IAAKkO,EAAI/R,GACTkL,OAAQ6G,SAPU,MCIhCzD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4X,KAAM,SAACjhB,GACH,IAAMmO,EAAkBnO,EAAMoF,MAAQpF,EAAMoF,MAA+B,UAAvBiE,EAAM4E,QAAQ4J,KAAmBxO,EAAM4E,QAAQiT,KAAK,KAAO7X,EAAM4E,QAAQiT,KAAK,KAElI,MAAO,CACH9b,MAAOiE,EAAM4E,QAAQkT,gBAAgBhT,GACrCA,gBAAiBA,EACjB,mBAAoB,CAChBA,gBAAiBiT,qBAAUjT,EAAiB,YAMtD/F,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAEzBuY,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,GAAS3X,OAwB3DqhB,GAtBCpH,sBAAW,WAA4DtC,GAAS,IAAzDrJ,EAAwD,EAAjEC,QAAqC7D,GAA4B,EAAvCzB,UAAuC,EAA5ByB,QACzD6D,GADqF,gDAC3ET,GAAU,CAAE1I,MAAOsF,EAAOtF,MAAOmJ,QAASD,KADiC,EAE5CgT,cAC3C,SAACC,GACG,OAAOA,EAAMC,MAAMC,UAAU/W,EAAOrK,UAAYkhB,EAAMC,MAAMC,UAAU/W,EAAOrK,UAAUqhB,KAAKC,OAAS,MAJlB,EAEnFrf,OAFmF,EAE3ET,MAF2E,EAEpE2E,KAFoE,EAE9DlG,QAF8D,EAErDwF,KAMtC,OACI,cAACuY,GAAA,EAAD,CACIpV,UAAWsF,EAAQ0S,KACnB5b,MAAOqF,EAAOrG,KACdiE,KAAK,QACL0W,UAAW2B,GACXhJ,IAAKA,EACLuH,GAAE,eAAUxU,EAAOlL,GAAjB,SACF2F,QAASiD,GACTwZ,WAAS,OChCNC,GAVO9T,cAAW,SAAA1E,GAAK,MAAK,CACvCyY,IAAK,CAAE5M,OAAQ,IACf6M,aAAc,CAAEhN,MAAO,GACvBiN,OAAQ,CAAEC,WAAY,UACtBC,WAAY,CACRnN,MAAO,GACP9B,QAAS,qB,qBC2BFkP,GA7BuB,SAACve,GAEnC,IAAMvD,EAAW2D,cAF8B,EAGQP,GAAsBpD,EAAUT,OAAOD,KAAKiE,IAHpD,mBAGxCwe,EAHwC,KAGtBC,EAHsB,KAGFpf,EAHE,KAwB/C,OAnBAhC,qBAAU,YACFgC,GAAWqf,KAAQ1e,IAAawe,GAChCC,EACIziB,OAAOD,KAAKiE,GAAStB,QAAO,SAAA+B,GAAI,OAAKT,EAAQS,GAAMrE,MAAMuiB,kBAGlE,CAACtf,EAAQW,EAASwe,EAAkBC,KAEpBD,EACbA,EAAiB9f,QAAO,SAAA+B,GAAI,QAAMT,EAAQS,MAC1CzE,OAAOD,KAAKiE,GAAStB,QAAO,SAAA+B,GAAI,OAAKT,EAAQS,GAAMrE,MAAMuiB,gBAE5B3jB,KAAI,SAAAyF,GACnC,IAAMzC,EAAQgC,EAAQS,GADqB,EAESzC,EAAM5B,MAA3BwiB,GAFY,EAEnCzd,SAFmC,EAEzBwd,YAFyB,EAEZC,QAAWxiB,EAFC,mDAGrCyiB,EAAc,2BAAQ7gB,GAAR,IAAe5B,UACnC,OAAO+I,uBAAa0Z,EAAgB,CAAEpf,IAAKmf,GAAUxiB,EAAMuF,a,qBCXpDmd,GAdI,SAAC1O,GAWhB,OATgBpK,mBAAQ,WACpB,OAAO+Y,KAAQ3O,GAAQzI,QAAO,SAAC4D,EAAKvN,GAIhC,OADAuN,EAFevN,EAAM5B,MAAMwiB,QAAU5gB,EAAM5B,MAAMuF,QAEnC3D,EACPuN,IACR,MACJ,KC6CQyT,GAzBe,SAAC,GAA2B,IAAzBhf,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC/CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,kBAAoB,cAAC,GAAD,IAClCA,GAAI,SAAU,kBAAoB,cAAC,GAAD,IAClCA,GAAI,SAAU,kBAAoB,cAAC,GAAD,YCtC7C8O,GAAoB,SAACnjB,GACvB,IAAM6F,EAAWud,KACXC,EAAmBjc,IAAMmT,OAAO,MAChC3W,EDG+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,gBAAiB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IACpGsP,GAAI,UAAW,gBAAiB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC/F3N,GAAI,UAAW,gBAAiB,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC9C,cAAC,GAAD,MAEJvL,GAAI,UAAW,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvH1N,GAAI,UAAW,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBCZ3GyB,GAEhB,OACI,cAAC,EAAD,2BACQxjB,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAqBsN,QAAS6M,IAL3C,SAOI,cAAC,GAAD,CAAuBzf,QAASA,QAK5Cuf,GAAkB9gB,aAAe,CAC7B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBshB,U,gCC5BTrV,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAEnCsa,YAAa,CACTxV,gBAAiB,eAkBVyV,GAdC,SAAC,GAAqD,IAA3CtV,EAA0C,EAAnDC,QAA0BtF,EAAyB,EAAzBA,UAAcjJ,EAAW,uCAC3DuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMoC,EAAQpC,EAAOoC,MACfzH,EAAQyH,GAAgB,gGAE9B,OACI,cAACuR,GAAA,EAAD,CAAMpV,UAAWmX,KAAW7R,EAAQ0S,KAAMhY,EAAf,gBAA4BsF,EAAQoV,aAAe7W,IAASzH,MAAOA,EAAOiD,KAAK,WCb5GwF,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAC/B6O,KAAM,GACN4E,SAAU,CAAEC,WAAY,KACxBC,UAAW,CACPD,WAAY,IACZ3X,MAAO,QAEX6X,eAAgB,CACZC,KAAM,YAEVC,eAAgB,CACZC,WAAY,EACZ3H,OAAQ,MAGhB,CAAEpR,KAAM,iCAuCGgZ,GApCI,SAAC,GASb,IARHC,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QAEGvO,GACD,EAFF0d,kBAEE,mHACInP,EAAUT,GAAU,CAAES,QAASD,IAE/B2O,EAAiBK,EAAWjZ,KAClC,IAAKiZ,EAAW9d,GAAI,OAAO,cAAC,KAAD,2BAAkCQ,GAAlC,oCAAesd,EAAW9d,IACrD,IAAMme,EAAgBJ,IAAqBjM,EACrCsM,EAAUC,KAAMZ,EAAgBQ,GAChCK,EAAQ3c,KAAM8b,EAAgBW,GAGpC,OACI,eAAC,KAAD,yBAEId,SAAUa,EACV1U,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQuO,SAAWU,KAEpBxd,GANR,cAQI,cAAC8G,GAAA,EAAD,CAAYC,QAAQ,QAAQkC,UAAWsF,EAAQ0O,eAA/C,SACKa,EAAMlf,KAAI,SAACqf,EAAM3M,GAAP,OAAkB,sBAAkBrI,UAAYgV,EAAKjB,UAAazO,EAAQyO,UAAY,GAApE,SAAyEiB,EAAKC,MAAnE5M,QAE5C,cAAC,GAAD,2BAAatR,GAAb,IAAoB0K,OAAQ4S,EAAYrU,UAAWsF,EAAQ4O,qBAVtDG,EAAW9d,KC3CtBsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,MAkBxBwa,GAdM,SAAC,GAAoD,IAAnD5a,EAAkD,EAAlDA,UAAkByB,GAAgC,EAAvCrF,MAAuC,EAAhCqF,QAAQ0T,EAAwB,EAAxBA,SACvC7P,GAD+D,yDACrDT,MAChB,IAAKpD,EAAQ,OAAO,KACpB,IAAMwT,EAAOxT,EAAOoC,MAAP,UAAkBpC,EAAOrG,KAAzB,aAAkCqG,EAAOoC,MAAzC,KAAoDpC,EAAOrG,KACxE,OACI,cAACga,GAAA,EAAD,CACI9P,QAAS,CAAC2J,KAAM3J,EAAQ2J,MACxB7S,MAAO6Y,EACPjV,UAAWA,EACXmV,SAAUA,K,UCThBE,GAAY,kBAAM,GA4BTC,GA1BmB,SAAAve,GAAU,IAChCuF,EAA8BvF,EAA9BuF,OAAQ4N,EAAsBnT,EAAtBmT,UAAW7Q,EAAWtC,EAAXsC,OACrB0T,EAAO8N,eACL5R,EAAW6R,aAAa,CAAElR,aAAc,CAAEX,QAAQ,KAAlDA,OACF/P,EAAQX,IAAI0Q,EAAQ3M,GAClBhG,EAAQykB,aACZ7Q,EACA,CAAE3M,KAAM,EAAGlG,QAAS,KACpB,CAAEsB,MAAO,OAAQC,MAAO,QAHF,YAAC,eAIlBS,GAJiB,IAIT2hB,YAAY,IACzB,CAAEC,SAAU/hB,IALR5C,IAcR,OANA0B,qBAAU,YACDkB,GAAS5C,EAAIkF,OAAS,GACvBuR,EAAKmO,OAAO5e,EAAQhG,KAEzB,CAACA,IAGA,cAAC2T,GAAA,EAAD,2BAAyBlT,GAAzB,aACI,cAAC,KAAD,CAAwBwe,aAAc,cAAC,GAAD,IAAgBC,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SCtBxGve,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAMokB,EAAE,IAAIC,EAAE,IAAItP,MAAM,KAAKG,OAAO,KAAKoP,GAAG,UCK5CxW,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAC/B6O,KAAM,GACN4E,SAAU,CAAEC,WAAY,KACxBC,UAAW,CACPD,WAAY,IACZ3X,MAAO,QAEX6X,eAAgB,CACZC,KAAM,YAEVC,eAAgB,CACZC,WAAY,EACZ3H,OAAQ,MAGhB,CAAEpR,KAAM,iCAsCGgZ,GAnCI,SAAC,GASb,IARHC,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QACAmP,EAEE,EAFFA,kBACG1d,EACD,kHACIuO,EAAUT,GAAU,CAAES,QAASD,IAC/B2O,EAAiBS,EAAkBJ,GACzC,IAAKA,EAAW9d,GAAI,OAAO,cAAC,KAAD,2BAAkCQ,GAAlC,aAA0Cid,IAA3BK,EAAW9d,IACrD,IAAMme,EAAgBJ,IAAqBjM,EACrCsM,EAAUC,KAAMZ,EAAgBQ,GAChCK,EAAQ3c,KAAM8b,EAAgBW,GAC9BxY,EAAQkY,EAAWlY,MAEzB,OACI,eAAC,KAAD,yBAEI0X,SAAUa,EACV1U,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQuO,SAAWU,KAEpBxd,GANR,cAQI,cAACukB,GAAD,CAAe7c,MAAO,CAACsW,cAAe,SAAUrW,YAAa,EAAGvC,MAAOA,KACvE,cAAC0B,GAAA,EAAD,CAAYC,QAAQ,QAAQkC,UAAWsF,EAAQ0O,eAA/C,SACKa,EAAMlf,KAAI,SAACqf,EAAM3M,GAAP,OAAkB,sBAAkBrI,UAAYgV,EAAKjB,UAAazO,EAAQyO,UAAY,GAApE,SAAyEiB,EAAKC,MAAnE5M,WATvCgM,EAAW9d,KC3CtBsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAEnC4X,KAAM,YAAiB,IAAdvW,EAAa,EAAbA,OACCtF,EAAQ5D,IAAIkJ,EAAQ,SACpByD,EAAkB/I,IAAuC,UAAvBiE,EAAM4E,QAAQ4J,KAAmBxO,EAAM4E,QAAQiT,KAAK,KAAO7X,EAAM4E,QAAQiT,KAAK,MACtH,MAAO,CACH9b,MAAOiE,EAAM4E,QAAQkT,gBAAgBhT,GACrCA,gBAAiBA,EACjB,mBAAoB,CAChBA,gBAAiBiT,qBAAUjT,EAAiB,YAqB7C0V,GAfM,SAAC,GAA+E,EAA7E5a,UAA8E,IAA1DqF,EAAyD,EAAlEC,QAAiC7D,GAAiC,EAAxCrF,MAAwC,EAAjCqF,QAAQ0T,EAAyB,EAAzBA,SAClE7P,GAD2F,mEACjFT,GAAU,CAAEpD,SAAQ6D,QAASD,KAC7C,IAAK5D,EAAQ,OAAO,KACpB,IAAMwT,EAAOxT,EAAOrG,KAEpB,OACI,cAACga,GAAA,EAAD,CACI9P,QAAS,CAAE2J,KAAM3J,EAAQ2J,MACzBjP,UAAWsF,EAAQ0S,KACnB5b,MAAO6Y,EACPE,SAAUA,KCvBhBE,GAAY,kBAAM,GAUTkG,GARgB,SAAAxkB,GAC3B,OACI,cAACkT,GAAA,EAAD,2BAAyBlT,GAAzB,aACI,cAAC,KAAD,CAAwBwe,aAAc,cAAC,GAAD,IAAkBC,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SCDnHA,GAAY,kBAAM,GAwBTmG,GAnBa,SAAAzkB,GAGxB,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,gBAAiB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAClGgC,GAAI,SAAU,gBAAiB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACpGgC,GAAI,SAAU,gBAAiB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC7D8O,GAAI,SAAU,gBAAiB,yBAA0B,0BAA4B,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,4BAA4B4N,UAAU,wBAAwB7Q,OAAQ,CAAEwiB,cAAe,MAAQhf,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,wDAAwDgN,WAAS,EAAvP,SAClF,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,gBAAiB,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCAAyCgN,WAAS,IACxRgC,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sCAAsCgN,WAAS,W,+FCpB/P2S,GAAW,SAAChlB,GAAW,IAE5ByjB,EASAzjB,EATAyjB,QACAwB,EAQAjlB,EARAilB,MACAhe,EAOAjH,EAPAiH,SAEAgC,GAKAjJ,EANAuO,QAMAvO,EALAiJ,WACWic,EAIXllB,EAJAgf,UACAnX,EAGA7H,EAHA6H,MACA+H,EAEA5P,EAFA4P,SACG/L,EAVwB,YAW3B7D,EAX2B,qFAazBuO,EAAUT,GAAU9N,GAbK,EA0B3BmlB,aAAenlB,GAVfyF,EAhB2B,EAgB3BA,SACA2f,EAjB2B,EAiB3BA,aACAC,EAlB2B,EAkB3BA,QACAC,EAnB2B,EAmB3BA,QACA5a,EApB2B,EAoB3BA,OAEArK,GAtB2B,EAqB3BwP,SArB2B,EAsB3BxP,UACAklB,EAvB2B,EAuB3BA,KACA5V,EAxB2B,EAwB3BA,OACA6V,EAzB2B,EAyB3BA,QAGJ,GAAI9a,GAAUA,EAAO+a,QACjB,OACI,cAACC,GAAA,EAAD,CACIrlB,SAAUA,EACVoF,SAAUA,EACViF,OAAQA,EACR7C,MAAOA,EACPud,aAAcA,IAK1B,IAAMO,EAAkC,qBAAZlC,GAA2B6B,EAChD,cAAC,KAAD,IACA7B,EAEP,OAAKxc,EAGD,8CACIgC,UAAW0M,KAAW,YAAapH,EAAQ2J,KAAMjP,IAC7CzD,GAAkB3B,IAF1B,cAII,cAAC+hB,GAAA,EAAD,CACI/d,MAAOA,EACP6C,OAAQA,EACR0a,aAAcA,IAEjBO,GACG5c,uBAAa4c,EAAD,aACRlgB,WACA1C,KAAM2H,EACN4a,UACAD,UACAhlB,YAEGslB,EAAa3lB,QAExB,sBACIiJ,UAAW0M,KAAWpH,EAAQL,KAAT,gBAChBK,EAAQsX,WAAaF,IAF9B,UAKI,cAACT,EAAD,CAASjc,UAAWsF,EAAQuX,KAA5B,SACKpb,GAAU7B,WAASjK,IAAIqI,GAAU,SAACrF,EAAO0P,GAAR,OAC9BxI,yBAAelH,GAASmH,uBAAanH,EAAO,CACxCyB,IAAKiO,EACL7L,WACAiF,SAMArK,WACAklB,OACA5V,SACAC,WACA4V,YACC,UAGZP,GACGlc,uBAAakc,EAAO,CAChBxf,WACAiF,SACArK,WACAmlB,UACAD,OACA5V,kBArDI,MAqF5BqV,GAAS3iB,aAAe,CACpBkM,QAAS,GACTyQ,UAAW,OAGf,IAAMlR,GAAYC,aACd,CACImK,KAAM,GACNhK,KAAM,CACFwG,QAAS,QAEbmR,UAAW,CACP7V,UAAW,OAEf8V,KAAM,CACF5I,KAAM,aAGd,CAAE7Y,KAAM,WAGNmB,GAAoB,SAAC,GAAD,EACtBC,SADsB,EAEtB2f,aAFsB,EAGtB1b,UAHsB,EAItBqc,QAJsB,EAKtBV,QALsB,EAMtBC,QANsB,EAOtB9K,QAPsB,EAQtBhb,GARsB,EAStByD,OATsB,EAUtBD,QAVsB,EAWtBgjB,SAXsB,EAYtBnI,MAZsB,EAatBoI,aAbsB,EActBC,aAdsB,EAetBha,QAfsB,EAgBtBia,YAhBsB,EAiBtBZ,KAjBsB,EAkBtB5V,OAlBsB,EAmBtByW,aAnBsB,EAoBtBC,aApBsB,EAqBtBC,aArBsB,EAsBtBC,eAtBsB,EAuBtBC,aAvBsB,qSC1JbC,GAAO,SAACzmB,GACjB0mB,aAA6B,OAAQ,CAAC,YAAa1mB,GACnD,IAAMgC,EAAkB2kB,aAAkB3mB,GAC1C,OACI,cAAC4mB,GAAA,EAAD,CAAqBzkB,MAAOH,EAA5B,SACI,cAAC,GAAD,2BAAchC,GAAWgC,OCFtB6kB,GANO,WAClB,OACI,qBAAKnf,MAAO,CAAE0V,WAAY,OAAQzV,YAAa,QAA/C,mB,UCGFmG,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAGnB8V,KAAM,OAsBKiB,GAnBS,SAAC,GAAsE,IAArE9f,EAAoE,EAApEA,SAAmBqH,EAAiD,EAA1DC,QAA0BtF,EAAgC,EAAhCA,UAAW5D,EAAqB,EAArBA,MAAUrF,EAAW,0DACpFuO,EAAUT,GAAU,CAAES,QAASD,IAC/BxK,EAAYC,cAClB,OACI,sBAAKkF,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,KAC/F,cAAC4hB,GAAA,EAAD,CAAMhe,UAAWsF,EAAQuX,KAAzB,SACK/c,uBAAaF,WAASmY,KAAK/Z,GAAf,YAAC,eACPjH,GACAiH,EAASjH,c,SCD1B8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2E,aAAc,CACV5I,MAAOiE,EAAM4E,QAAQvH,MAAMwH,KAC3B,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,KAChD,uBAAwB,CACpBC,gBAAiB,qBA0DlBqS,GApDM,SAAC,GAOH,IAtCe,EAgC9B/a,EAMc,EANdA,SACS6I,EAKK,EALdC,QACAtF,EAIc,EAJdA,UACAyB,EAGc,EAHdA,OACArK,EAEc,EAFdA,SACUogB,EACI,EADd5Q,SACGhM,EAAW,iFACR2K,EAAWC,eACXoB,EAAW6Q,eACXhS,EAAUC,eACVxI,EAASC,eACTmI,EAAUT,GAAU,CAAES,QAASD,IALvB,EAMgBjH,oBAAS,GANzB,mBAMPrE,EANO,KAME8L,EANF,KA8Bd,OACI,cAACC,GAAA,EAAD,yBACI5J,QAxBY,WAEhB2J,GAAW,GACXN,EAASQ,gBAETC,GAAc,CACV5O,WACAiN,MAAO,CAAE9N,GAAIkL,EAAOlL,MACrBL,MAAK,WACJgH,EAAO,iCAAkC,OAAQ,CAAE0G,YAAa,IAChEgD,EAAS4Q,EAAYhb,EAAUiF,EAAOlL,GAAIkL,GAC1CgE,OANJ,OAQW,SAAChI,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cATlG,SAWa,WACLP,GAAW,GACXN,EAASc,oBAObxK,SAAU9B,EACVqC,MAAM,mBACN4D,UAAS,2BAAsBsF,EAAQP,aAA9B,YAA8C/E,MAzEjC,EA2EApF,GA1E9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,EAe7BoX,OAf6B,+MAqEzB,aAQI,cAAC,KAAD,MAHI,WC3EV9e,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAyBhB+e,GAvBM,SAAC,GAKf,IAAD,IAJF1hB,gBAIE,MAJS,GAIT,MAHFJ,aAGE,MAHM,mBAGN,EAFFqF,EAEE,EAFFA,OAEE,IADFmF,gBACE,MADS,OACT,EACI/L,EAAYC,cAElB,OACI,cAAC,KAAD,CACIib,UAAWC,KACXC,GAAE,UAAKC,aAAa1Z,EAAUiF,GAAUA,EAAOlL,IAA7C,YAAoDqQ,GACtD1K,QAASiD,GACTE,KAAK,QAJT,SAMKxE,EAAUuB,M,UCbjByI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAoCViZ,GAhCa,SAAC,GAAuD,IAA5C9Y,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACzEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,qBAAK9D,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,SACI,cAACge,GAAA,EAAD,UACI,qBAAKvf,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,gBAAiB,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IACpEgQ,GAAI,SAAU,gBAAiB,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC/FsH,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC9C,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,gBAAiB,UAAY,cAAC,GAAD,eAAarU,gBC1B/Ese,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAKjCyS,GAAuB,SAAAznB,GACzB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,kBAAoB,cAACsT,GAAA,EAAD,IAClCtT,GAAI,SAAU,kBAAoB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aACjI,cAAC,GAAD,IACCsN,GAAI,SAAU,kBAAoB,cAAC,GAAD,CAAcxE,SAAS,SAC1D,cAAC,GAAD,SA2BG+X,GAtBW,SAAA5nB,GAGtB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,gBAAiB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAClGgC,GAAI,SAAU,gBAAiB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACpGgC,GAAI,SAAU,gBAAiB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC7D8O,GAAI,SAAU,gBAAiB,yBAA0B,0BAA4B,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,4BAA4B4N,UAAU,wBAAwB7Q,OAAQ,CAAEwiB,cAAe,MAAQhf,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,wDAAwDgN,WAAS,EAAvP,SAClF,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCAAyCgN,WAAS,IAC7QgC,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sCAAsCgN,WAAS,c,sBCjDjQwV,GALM,SAAC7nB,GAElB,OAAQ,cAACqK,EAAA,EAAD,eAAa+U,GAAuBpf,M,WCA1C8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QAkBR8X,GAbQ,SAAC,GAA+D,IAA9D7gB,EAA6D,EAA7DA,SAAoCgC,GAAyB,EAAnDsF,QAAmD,EAAzBtF,WAAcjJ,EAAW,kDAC5EuO,EAAUT,KAChB,OACI,cAACmZ,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,cAAC,KAAD,2BAAsBjJ,GAAtB,aACKiH,QCUJ8gB,GAA+B,SAAC/nB,GACzC,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACjF+P,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC7C,cAAC,GAAD,MAEHvL,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA8BnHiG,GAzBa,SAAC,GAA2B,IAAzBpkB,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC7CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,Y,2CC7D3CvG,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4e,YAAa,CACTC,eAAgB,UAEpB1M,OAAQ,CACJpW,MAAOiE,EAAM4E,QAAQiQ,KAAKiK,WAE9BC,aAAc,GACdC,WAAY,CACRjL,WAAY,EACZvW,SAAU,GACVyhB,UAAW,eACXC,WAAYlf,EAAMmf,YAAYC,OAAO,YAAa,CAC9CC,SAAUrf,EAAMmf,YAAYE,SAASC,YAG7CC,WAAY,CACRN,UAAW,sBAKbO,GAAc,SAAC,GAAkH,IAAhH5hB,EAA+G,EAA/GA,SAAmBqH,EAA4F,EAArGC,QAA0BlO,EAA2E,EAA3EA,SAAUoF,EAAiE,EAAjEA,SAAUiF,EAAuD,EAAvDA,OAAQ8a,EAA+C,EAA/CA,QAASngB,EAAsC,EAAtCA,MAAOyjB,EAA+B,EAA/BA,eAC7FhlB,GAD4H,wGAChHC,eACZwK,EAAUT,GAAU,CAAES,QAASD,IAF6F,EAG1GjH,oBAAS,GAHiG,mBAG3H0hB,EAH2H,KAGrHC,EAHqH,KAIlI,IAAKF,EAAgB,OAAO,KAM5B,OACI,qCACI,cAACG,GAAA,EAAD,CAAQ3B,UAAWwB,EAAexQ,QAAlC,SACI,eAAC,KAAD,CAAQhQ,KAAK,QAAQnD,QAPT,WACpB6jB,GAASD,IAM8CG,gBAAeH,EAAM9gB,aAAW,YAAYgB,UAAS,UAAKsF,EAAQiN,OAAb,YAAuBjN,EAAQ6Z,cAAnI,UACI,+BAAOtkB,EAAUuB,KACjB,cAAC,KAAD,CAAgB4D,UAAS,UAAKsF,EAAQ8Z,WAAb,YAA2BU,EAAOxa,EAAQqa,WAAa,WAGxF,cAACO,GAAA,EAAD,CAAUC,GAAIL,EAAMM,QAAQ,OAAOC,eAAa,EAAhD,SACKliB,IAAMyB,SAASjK,IAAIqI,GAAU,SAAArF,GAAK,OAC/BwF,IAAM2B,aAAanH,EAAO,CACtB8I,SACAjF,WACApF,WACAmlB,qBAYxBqD,GAAYxmB,aAAe,CACvBkM,QAAS,GACTlJ,MAAO,kBAIIwjB,U,UCnET/a,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCqW,KAAM,CACFta,MAAOiE,EAAM4E,QAAQyR,KAAKxR,UAI5B9F,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAEzBmhB,GAAc,SAAC,GAWd,IAVHtiB,EAUE,EAVFA,SACAgC,EASE,EATFA,UACSqF,EAQP,EARFC,QACA9I,EAOE,EAPFA,SACAiF,EAME,EANFA,OACAyI,EAKE,EALFA,UACA9S,EAIE,EAJFA,SACAkF,EAGE,EAHFA,OACAma,EAEE,EAFFA,KACG1f,EACD,6GACIuO,EAAUT,GAAU,CAAES,QAASD,IAC/Bkb,EAAkBhoB,IAAIkJ,EAAQnF,GACpC,IAAKikB,EAAiB,OAAO,KAC7B,IAAMC,EAAWhkB,EAASikB,QAAQrpB,EAAU8S,GACtCwW,IAAoBjK,IAAgC,oBAATA,EAAuBA,EAAKhV,EAAQyI,GAA5C,UAA4DsW,EAA5D,YAAwEG,mBAAmBJ,EAAgBhqB,IAA3G,YAAkHkgB,IAG3J,OAAIiK,EAEI,cAAC,KAAD,CACIzK,GAAIyK,EACJ1gB,UAAWA,EACX9D,QAASiD,GAHb,SAKKhB,IAAM2B,aAAa9B,EAAnB,aACGgC,UAAU,GAAD,OAAKhC,EAASjH,MAAMiJ,UAApB,YAAiCsF,EAAQmR,MAClDhV,OAAQ8e,EACRnpB,SAAU8S,EACV1N,YACG2Z,GAAuBpf,OAMnCoH,IAAM2B,aAAa9B,EAAnB,aACHgC,UAAU,GAAD,OAAKA,EAAL,YAAkBhC,EAASjH,MAAMiJ,WAC1CyB,OAAQ8e,EACRnpB,SAAU8S,EACV1N,YACG2Z,GAAuBpf,MA2BlCupB,GAAYlnB,aAAe,CACvBkM,QAAS,GACTmR,KAAM,OACNhV,OAAQ,GACR2U,UAAU,GAICkK,UCtFTM,GAAiB,SAACxgB,EAAOlH,GAC7B,MAAyB,kBAAVA,EAAsBA,EAAQkH,EAAM2L,QAAQ7S,GAAS,MAGhE2nB,GAAgB,SAACzgB,EAAOf,GAC5B,OAAQ2D,MAAM8d,QAAQzhB,GAAf,iBACOA,EAAK1J,KAAI,SAAAuD,GAAK,OAAI0nB,GAAexgB,EAAOlH,MAAQqP,KAAK,MAD5D,KAEHqY,GAAexgB,EAAOf,IAGtB0hB,GAAe,SAAC3gB,EAAO4gB,EAAYjqB,GACvC,IAAMmC,EAAQnC,EAAMiqB,GACpB,GAAK9nB,EAAL,CAFiD,IAGzC+nB,EAAgB/nB,EAAhB+nB,MAAO5hB,EAASnG,EAATmG,KACf,OAAO,gBACJe,EAAMC,YAAY6gB,GAAG,MAAQ,CAC5BC,oBAAoB,UAAD,OAAYF,EAAZ,aAAsBJ,GAAczgB,EAAOf,GAA3C,SAMnBwF,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACrC6O,KAAM,CACJlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACfhF,UAAW,IAGfqa,KAAM,gBAAGrV,EAAH,EAAGA,QAAH,MAAkB,CACtBN,QAAS,OACT0V,oBAAqB,wCACrBE,QAASjhB,EAAM2L,QAAQA,KAEzB,UAAW,SAAChV,GAAD,OAAWgqB,GAAa3gB,EAAO,KAAMrJ,IAChD,UAAW,SAACA,GAAD,OAAWgqB,GAAa3gB,EAAO,KAAMrJ,IAChD,UAAW,SAACA,GAAD,OAAWgqB,GAAa3gB,EAAO,KAAMrJ,IAChD,UAAW,SAACA,GAAD,OAAWgqB,GAAa3gB,EAAO,KAAMrJ,IAChD,UAAW,SAACA,GAAD,OAAWgqB,GAAa3gB,EAAO,KAAMrJ,QA6CnCuqB,GAxCU,SAAC,GAYnB,IAAD,EAXJtjB,EAWI,EAXJA,SACSqH,EAUL,EAVJC,QACWic,EASP,EATJvhB,UASI,IARJwhB,UAQI,aAPJC,UAOI,aANJC,UAMI,aALJC,UAKI,aAJJrD,UAII,aAHJvS,eAGI,MAHM,EAGN,EAFJ3P,EAEI,EAFJA,MAGMkJ,GADF,6FACYT,GAAU,CAAES,QAASD,EAAiBmc,KAAIC,KAAIC,KAAIC,KAAIrD,KAAIvS,aACpElR,EAAYC,cAClB,IAAKkD,EAAU,OAAO,KACtB,IAAM4jB,EAAiBlV,KACrBpH,EAAQ8b,MADuB,oBAG5B9b,EAAQ,YAAoB,IAAPgZ,GAHO,eAI5BhZ,EAAQ,YAAoB,IAAPoc,GAJO,eAK5Bpc,EAAQ,YAAoB,IAAPmc,GALO,eAM5Bnc,EAAQ,YAAoB,IAAPkc,GANO,eAO5Blc,EAAQ,YAAoB,IAAPqc,GAPO,GAS/BJ,GAGF,OACE,sBAAKvhB,UAAWsF,EAAQ2J,KAAxB,UACG7S,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,KAC/F,qBAAK4D,UAAW4hB,EAAhB,SACG5jB,QCtCM6jB,IAnCG/c,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAGnB+a,SAAU,CACNrW,QAAS,YAIO,SAAC,GAAqH,IAAnHzN,EAAkH,EAAlHA,SAAoCyD,GAA8E,EAAxG6D,QAAwG,EAA9E7D,QAAQnF,EAAsE,EAAtEA,OAAQlF,EAA8D,EAA9DA,SAAUoF,EAAoD,EAApDA,SAAU+f,EAA0C,EAA1CA,QAAoBngB,GAAsB,EAAjC4D,UAAiC,EAAtB5D,OAC7G2lB,GADmI,4GACzHxpB,IAAIkJ,EAAQnF,IACtBikB,EAAkB9e,EACxB,OAAKA,GAAWsgB,EAAQvmB,OAGpB,cAAC,GAAD,CAAkB8iB,GAAI,CAAE2C,MAAO,YAAa5hB,KAAM,CAAC,GAAI,QAAUjD,MAAOA,EAAOqC,MAAO,CAAEuL,QAAS,IAAjG,SACK+X,EAAQpsB,KAAI,SAAAqsB,GAAM,OACfliB,uBAAaF,WAASmY,KAAK/Z,GAAW,CAClC5D,IAAK4nB,EAAOzrB,GACZkL,OAAQugB,EACR5qB,WACAoF,WACA+f,UACAgE,yBAXuB,O,wGCjBrC0B,GAAY,SAAC,GAAsF,IAApF7mB,EAAmF,EAAnFA,KAAM/B,EAA6E,EAA7EA,OAAQoI,EAAqE,EAArEA,OAAQrK,EAA6D,EAA7DA,SAAUkF,EAAmD,EAAnDA,OAA4B4lB,GAAuB,EAA3CrnB,UAA2C,EAAhCsnB,QAAgC,EAAvBD,QAAWnrB,EAAY,6FAC9FiG,EAAeC,eAD+E,EAE1EmB,mBAAS,IAFiE,mBAE7FgkB,EAF6F,KAEtFC,EAFsF,KAG9FC,EAAelnB,GAAQmnB,KAAWnrB,GAAYmrB,KAAWjmB,GAE/DtE,qBAAU,WAAM,8CACZ,uBAAAwqB,EAAA,sDACIxlB,EAAaylB,QAAQrrB,EAAU,CAAEgE,KAAMknB,IAClCpsB,MAAK,YAAe,IAAZ4D,EAAW,EAAXA,KACLuoB,EAASvoB,MAFjB,OAIW,SAAA2D,GACHC,QAAQ0K,IAAI,UAAW3K,MANnC,4CADY,uBAAC,WAAD,wBAUZilB,KACD,CAACtnB,IAEJ,IAAMyY,EAAWuO,EAAM/oB,QAAO,SAAA2oB,GAAM,OAAIA,EAAO5mB,OAAS7C,IAAIkJ,EAAQnF,MAE9DylB,EAA6B,oBAAX1oB,EAAR,YAAqC,IAAIspB,IAAJ,sBAAY9O,GAAZ,YAAyBuO,EAAM/oB,OAAOA,OAAa+oB,EAKxG,OACI,cAACQ,GAAA,EAAD,aAAatmB,OAAQA,EAAQlF,SAAUA,EAAU2qB,QAASA,EAASc,YAAY,OAAOhN,WAJxE,SAAAmM,GAAM,OAAIE,EAAM,UAAMA,EAAN,YAAgBF,EAAO5mB,MAAvB,oBAA6ChE,EAA7C,kBAA+DkF,EAA/D,YAAyE0lB,EAAO5mB,QAIGrE,KAKzHkrB,GAAU7oB,aAAe,GAQV6oB,UCxCTa,GAAY,SAAC,GAAoE,IAAlE9iB,EAAiE,EAAjEA,UAAW5I,EAAsD,EAAtDA,SAAUkF,EAA4C,EAA5CA,OAA4C,IAApCmF,cAAoC,MAA3B,GAA2B,EAAvBygB,EAAuB,EAAvBA,OAAWnrB,EAAY,mEAC5E8D,EAAYC,cACZioB,EAAYxqB,IAAIkJ,EAAQnF,GAC9B,IAAKymB,EAAa,OAAO,KAEzB,IAAM7pB,EAAiB2B,EAATqnB,EAAmB,GAAD,OAAIA,EAAJ,YAAca,GAA2C,aAAD,OAAc3rB,EAAd,kBAAgCkF,EAAhC,YAA0CymB,GAAvE,CAAElkB,EAAGkkB,IAEhE,OACI,cAACllB,GAAA,EAAD,yBACIC,QAAQ,QACRkC,UAAWA,GACPmW,GAAuBpf,IAH/B,aAKKmC,MAWb4pB,GAAU1pB,aAAe,CACrBgd,UAAU,GAGC0M,UCxBTE,GAAiB,CACnB,YACA,cACA,gBACA,6BACA,wBACA,8BACA,cACA,cACA,eACA,gBACA,wBACA,eACA,QAIEC,GAAkB,SAAC/pB,GAErB,OADkB8pB,GAAe3pB,QAAO,SAACjC,GAAD,OAAcgU,GAAI,UAAWhU,MACpDkE,SAASpC,EAAMkC,OAG9Bia,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCyY,IAAK,CAAE5M,OAAQ,IACf8M,OAAQ,CAAEC,WAAY,UACtBC,WAAY,CACRnN,MAAO,GACP9B,QAAS,qBAIXkZ,GAAgB,SAACnsB,GAAD,OAClB,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAChC,cAAC,GAAD,CAAWQ,OAAO,SAASR,UAAQ,IACnC,cAAC,GAAD,CAAWQ,OAAO,WAAWlB,KAAK,eAAe/B,OAAQ4pB,GAAiBnnB,UAAQ,IAClF,cAACqnB,GAAA,EAAD,CAAgB7mB,OAAO,eAAeF,MAAM,qCAAqC8N,UAAU,OAAOrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAA5K,SACI,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,OAE1D,cAAC+N,GAAA,EAAD,CAAW9mB,OAAO,kBAClB,cAAC8mB,GAAA,EAAD,CAAW9mB,OAAO,uBAIb+mB,GAAkB,SAACtsB,GAC5B,IAAMuO,EAAUT,KAChB,OACI,eAACmV,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAAC,GAAD,CAAWvc,OAAO,SAASyc,QAAM,IACjC,cAAC,GAAD,CAAWzc,OAAO,aAClB,cAAC,GAAD,CAAmBA,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,iBAAiBF,MAAM,qCAAqCua,UAAU,IACxF,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7T,QAASqgB,YAKxDC,GAAoB,SAACxsB,GAC9B,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDzF,EAAYC,cACZwK,EAAUT,KAEhB,OAAO3E,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAI5G,EAAU,kCAAD,OAAmC4G,EAAOgJ,UAC1EsP,aAAc,SAAAtY,GAAM,OAAI,IAAI+hB,KAAK/hB,EAAOuC,WAAWyf,sBACnDjN,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAAC,GAAD,CAAWvc,OAAO,SAASyc,QAAM,IACjC,cAAC,GAAD,CAAWzc,OAAO,aAClB,cAAC,GAAD,CAAmBA,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,iBAAiBF,MAAM,qCAAqCua,UAAU,IACxF,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7T,QAASqgB,YAQxDI,GAAyB,SAAC3sB,GACnC,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDzF,EAAYC,cACZwK,EAAUT,KACEtO,EAASotB,eAAnBliB,OAAUlL,GAEZqtB,EAAkBrpB,uBAAY,SAACkH,EAAQ4G,GACzC,GAAI5G,EAAOlL,KAAOA,EAAI,MAAO,CAAE2O,gBAAiB,yBACjD,CAAC3O,IAEJ,OAAO2J,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAI5G,EAAU,kCAAD,OAAmC4G,EAAOgJ,UAC1EsP,aAAc,SAAAtY,GAAM,OAAI,IAAI+hB,KAAK/hB,EAAOuC,WAAWyf,sBACnDjN,SAAS,SAGb,eAACwD,GAAA,EAAD,2BACQjjB,GADR,IAEIkjB,SAAS,OACT3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KACxBgL,SAAUD,EAJd,UAMI,cAAC,GAAD,CAAWtnB,OAAO,SAASyc,QAAM,IACjC,cAAC,GAAD,CAAWzc,OAAO,aAClB,cAAC,GAAD,CAAmBA,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,iBAAiBF,MAAM,qCAAqCua,UAAU,IACxF,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7T,QAASqgB,YAS/DQ,GAAc,SAAA/sB,GAChB,IAAMsC,EAAS,CAAE0qB,YAAaf,GAAe3pB,QAAO,SAACjC,GAAD,OAAcgU,GAAI,UAAWhU,OAC3E2B,EAAkBC,YAAkB,2BAAKjC,GAAN,IAAasC,YAChD+gB,EAAmBjc,IAAMmT,OAAO,MACtBzM,KAEhB,OACI,cAAC5L,EAAA,EAAD,CAAqBC,MAAOH,EAA5B,SACI,cAACI,EAAA,EAAD,yBACI8G,QAAS,cAAC,GAAD,CAAesN,QAAS6M,IACjCxd,UAAU,EACVvD,OAAQA,GACJtC,GAJR,aAMI,cAAC,GAAD,UAMhB+sB,GAAY1qB,aAAe,CACvB/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,YAAaC,MAAO,QACnC6hB,mBAAmB,GAIRqJ,UCvJTjf,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCmS,OAAQ,CACJpW,MAAOiE,EAAM4E,QAAQiQ,KAAKiK,eA8BnB8E,GA1BwB,SAAC,GAA+E,EAA7EhkB,UAA8E,IAAnExD,EAAkE,EAAlEA,SAAUnB,EAAwD,EAAxDA,OAAmBoG,GAAqC,EAAhDyI,UAAgD,EAArCzI,QAAQhK,EAA6B,EAA7BA,aAEhF6N,GAF6G,qFAEnGT,MAEhB,OACI,cAAC,KAAD,CACIkR,UAAWC,KACXC,GAAI,CACAgO,SAAUznB,EACV8V,OAAQva,qBAAU,CACdsB,OAAQvB,KAAKC,UAAL,4BACHsD,EAASoG,EAAOlL,IACdkB,OAIf4H,KAAK,QACLqQ,kBAAgB,EAChB1P,UAAWsF,EAAQiN,OAbvB,8FCfF1N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACTwT,eAAgB,WAChBvT,WAAY,iBAGhB,CAAEtQ,KAAM,2BAcG8oB,GAXc,SAAAntB,GAAU,IAC3BiJ,EAAiCjJ,EAAjCiJ,UAAWhC,EAAsBjH,EAAtBiH,SACbsH,GAF4B,YACOvO,EADP,0BAElB8N,GAAU9N,IAC1B,OACI,qBAAKiJ,UAAW0M,KAAWpH,EAAQ2J,KAAMjP,GAAzC,SACKhC,K,+BCfP6G,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL3S,SAAU,WACVH,QAAS,OACTwT,eAAgB,gBAChBvT,WAAY,WACZ3E,UAAW3G,EAAM2L,UACjB8R,aAAczd,EAAM2L,WAGxB9L,QAAS,GACTua,QAAS,MAET,CAAEpf,KAAM,uBAGN+oB,GAAuB,SAAC,GAAwE,EAAtE7e,QAAuE,IAA7CrF,EAA4C,EAA5CA,QAASua,EAAmC,EAAnCA,QAAS4J,EAA0B,EAA1BA,UAAcrtB,EAAY,2DAE5FuO,EAAUT,GAAU9N,GAC1B,OACI,sBAAKiJ,UAAWsF,EAAQiZ,QAAxB,UACKte,GACG9B,IAAM2B,aAAaG,EAAnB,2BACOlJ,GADP,IAEIqtB,eAER,yBACC5J,GACGrc,IAAM2B,aAAa0a,EAAnB,eACOzjB,QAYRoH,OAAMkZ,KAAK8M,I,UC/BbE,GAAqB,SAAAttB,GAAU,IAEpCyF,EAWAzF,EAXAyF,SACAwB,EAUAjH,EAVAiH,SACA3E,EASAtC,EATAsC,OAJmC,EAanCtC,EARAwG,YALmC,MAK5B,EAL4B,EAMnClG,EAOAN,EAPAM,QACAoK,EAMA1K,EANA0K,OACAyI,EAKAnT,EALAmT,UACA9S,EAIAL,EAJAK,SACAyF,EAGA9F,EAHA8F,KACAP,EAEAvF,EAFAuF,OACAjB,EACAtE,EADAsE,OAGJ,GAAuC,IAAnC8C,IAAMyB,SAASqhB,MAAMjjB,GACrB,MAAM,IAAI5H,MACN,sEAIR,IAAM6B,EC9BK,SAAClB,GAAW,IACfK,EAAwBL,EAAxBK,SAAU8S,EAAcnT,EAAdmT,UACZjS,EAAeH,KAAKI,MAAMC,aAAaC,QAAQC,OAAmB,GAExE,OADiCE,IAAIN,EAAD,UAAkBb,EAAlB,iBAAmC8S,EAAnC,UAAsD,ID2BrEoa,CAAyBvtB,GAExCgC,EAAkBwrB,aAAgC,aACpD/nB,WACAnD,SACAkE,OACAlG,UACAoK,SACAyI,YACA9S,WACAyF,OACAP,SACAjB,UACGpD,IAMP,OEhDW,SAAClB,EAAOgC,GAEnByrB,cAAqB,WAAO,IAChBptB,EAAwBL,EAAxBK,SAAU8S,EAAcnT,EAAdmT,UACVzS,EAA0BsB,EAA1BtB,aAAcJ,EAAY0B,EAAZ1B,QAChBY,EAAeH,KAAKI,MAAMC,aAAaC,QAAQC,OAAmB,GAClEuB,EAAI,UAAMxC,EAAN,iBAAuB8S,EAAvB,UACJua,EAA2BlsB,IAAIN,EAAc2B,EAAM,IAEzDpB,IAAIP,EAAc2B,EAAf,YAAC,eAAyB6qB,GAA1B,IAAoDprB,OAAQ5B,EAAcJ,aAE7Ec,aAAaM,QAAQJ,IAAeP,KAAKC,UAAUE,MACpD,CAACc,IFiCJ2rB,CAA0B3tB,EAAOgC,GAI7B,cAAC4rB,GAAA,EAAD,CAAyBzrB,MAAOgR,EAAhC,SACI,cAACjR,EAAA,EAAD,CAAqBC,MAAOH,EAA5B,SAEI,cAAC,GAAD,2BAA4BhC,GAAWgC,SA2BvDsrB,GAAmBjrB,aAAe,CAC9BC,OAAQ,GACRhC,QAAS,GACTwF,KAAM,CAAElE,MAAO,KAAMC,MAAO,QAC5B0D,OAAQ,KACR8Z,UAAU,GAGd,IAAMvR,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QAKV6d,GAAyB,SAAA7tB,GAElC,IAAMuO,EAAUT,KACVhK,EAAYC,cACV0B,EAAqGzF,EAArGyF,SAAUwB,EAA2FjH,EAA3FiH,SAAUV,EAAiFvG,EAAjFuG,WAAY4M,EAAqEnT,EAArEmT,UAAWlK,EAA0DjJ,EAA1DiJ,UAAW5D,EAA+CrF,EAA/CqF,MAAO6D,EAAwClJ,EAAxCkJ,QAASua,EAA+BzjB,EAA/ByjB,QAAsB5f,GAAS7D,EAAtBqf,SAJ5C,YAIkErf,EAJlE,sGAM3C,OACI,sBAAKiJ,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,MAC7F6D,GAAWua,IACT,cAAC,GAAD,2BACQzjB,GADR,IAEIkJ,QAASA,EACTua,QAASA,EACThe,SAAUA,EACV0N,UAAWA,KAGnB,eAAC2a,GAAA,EAAD,WACK/kB,uBAAaF,WAASmY,KAAK/Z,GAAf,YAAC,eACPmY,GAAuBvb,IADjB,IAET4B,WACApF,SAAU8S,KAEb5M,QACmBjD,IAAhBtD,EAAMgG,OACN+C,uBAAaxC,EAAY1C,UAsB9BypB,M,UG9If,IAAMlO,GAAyB,SAAC,GAAD,EAC3B2O,WAD2B,EAE3BC,cAF2B,EAG3BC,gBAH2B,EAI3BC,SAJ2B,EAK3BC,KAL2B,EAM3BhK,OAN2B,EAO3BiK,gBAP2B,EAQ3BC,YAR2B,EAS3BC,YAT2B,EAU3BC,kBAV2B,EAW3BC,QAX2B,EAY3B7X,MAZ2B,EAa3BC,YAb2B,EAc3BC,2BAd2B,EAe3BC,qBAf2B,EAgB3BtI,SAhB2B,EAiB3B7N,iBAjB2B,EAkB3BoW,OAlB2B,EAmB3B7N,QAnB2B,EAoB3BxI,aApB2B,EAqB3BsV,KArB2B,EAsB3BzG,aAtB2B,EAuB3ByH,gBAvB2B,EAwB3BC,oBAxB2B,EAyB3BV,WAzB2B,EA0B3BkY,WA1B2B,EA2B3BC,YA3B2B,EA4B3Blc,cA5B2B,EA6B3B/C,QA7B2B,EA8B3ByH,SA9B2B,EA+B3BC,wBA/B2B,EAgC3BzH,SAhC2B,EAiC3Bif,KAjC2B,EAkC3BC,MAlC2B,EAmC3BC,aAnC2B,EAoC3BtJ,KApC2B,EAqC3B8H,UArC2B,EAsC3BzsB,WAtC2B,EAuC3BkuB,OAvC2B,EAwC3BC,mBAxC2B,EAyC3B3X,YAzC2B,EA0C3BC,aA1C2B,EA2C3BC,aA3C2B,EA4C3BC,gBA5C2B,EA6C3BnH,WA7C2B,EA8C3B4e,MA9C2B,EA+C3BxX,QA/C2B,EAgD3ByX,cAhD2B,EAiD3BC,QAjD2B,EAkD3B7e,MAlD2B,EAmD3BsU,SAnD2B,EAoD3BlN,WApD2B,EAqD3BvF,OArD2B,EAsD3BwF,QAtD2B,EAuD3ByX,WAvD2B,4vBA2DzB5f,GAAe,SAAAnL,GAEjB,OADAA,EAAMiU,kBACC,GAGL+W,GAAwB,aAExBC,GAAsB,CAAEnd,QAAQ,EAAMxC,UAAU,GAGhD5B,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2M,KAAM,CACFhG,WAAY3G,EAAM2L,QAAQ,GAC1BiB,WAAY,EACZvB,QAAS,OACTC,WAAY,WACZuB,SAAU,OACVC,UAAW9M,EAAM2L,QAAQ,IACzBJ,cAAe,QAEnBwB,SAAU,CAAEC,MAAO,YAEnB,CAAEhS,KAAM,8BAqDGirB,GAlDiB,SAAAtvB,GAAU,IAC9BiJ,EAA6FjJ,EAA7FiJ,UAAqCC,GAAwDlJ,EAAlFuO,QAAkFvO,EAAxDkJ,SAAS7I,EAA+CL,EAA/CK,SAAoBmS,GAA2BxS,EAArCqf,SAAqCrf,EAA3BwS,eAAkB3O,EADvD,YACgE7D,EADhE,yEAE/BuO,EAAUT,GAAU9N,GAClBY,EAAeiD,EAAfjD,WAEF2uB,EC9FK,SAA8BC,EAAMC,GAAyB,IAAlBC,EAAiB,wDACjEC,EAAapV,mBAEnB,SAASqV,IACDD,EAAWrX,UACXuX,aAAaF,EAAWrX,SACxBqX,EAAWrX,aAAUhV,GAM7B,OAFArC,qBAAU,kBAAOyuB,EAAUE,OAAatsB,IAAY,CAACosB,IAE9C,WAAc,IAAD,uBAATI,EAAS,yBAATA,EAAS,gBAChBF,IACAD,EAAWrX,QAAUyX,YAAW,kBAAMP,EAAI,WAAJ,EAAQM,KAAOL,IDgF7BO,EACxB,SAAA9d,GAAM,OAAItR,EAAWsR,KACrB,KACA,GAGE+d,EAAe,SAAC,GAA0B,IAAxBvgB,EAAuB,EAAvBA,SAAUwC,EAAa,EAAbA,OAC1BxC,GACJ6f,EAAoBrd,IAIxB,OACI,cAAC,KAAD,CACIQ,SAAU0c,GACV5c,cAAeA,EACfG,SAAQ,eAAOC,MACfG,OAAQ,SAAAC,GAAS,OACb,qCACI,cAAC,KAAD,CACIH,aAAcwc,GACd9V,SAAU0W,IAEd,+CACIhnB,UAAW0M,KAAW1M,EAAWsF,EAAQyH,OACrCoJ,GAAuBvb,IAF/B,IAGI6O,SAAUnD,GAHd,UAKKrG,EAAQtK,KAAI,SAAA2W,GAAa,OACtB,cAAC,KAAD,CAEIA,cAAeA,EACflV,SAAUA,GAFLkV,EAAcvV,MAAMuF,WAKjC,qBAAK0D,UAAWsF,EAAQ6H,sBE/GjC8Z,GAhBa,SAAClwB,GAE+BA,EAAhDuO,QAF4B,IAEFtH,EAAsBjH,EAAtBiH,SAAapD,EAFZ,YAEqB7D,EAFrB,0BAGYI,YAAeJ,GAAtDK,EAH2B,EAG3BA,SAAUO,EAHiB,EAGjBA,WAAYF,EAHK,EAGLA,aAE9B,OACI,cAAC,GAAD,aACIL,SAAUA,EACV6I,QAAS9B,IAAMyB,SAAS6S,QAAQzU,GAChCuL,cAAe9R,EACfE,WAAYA,GACRkJ,YAAsBjG,M,oDCahCiK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFzC,OAAQ,WAEZ2G,OAAQ,CACJhX,MAAO,UACP+I,gBAAiB,WAErBkO,MAAO,CACHjX,MAAO,UACP+I,gBAAiB,WAErBsK,MAAO,CACHrT,MAAO,UACP+I,gBAAiB,WAErBoO,QAAS,CACLnX,MAAO,UACP+I,gBAAiB,WAErBqO,sBAAuB,CACnBpX,MAAO,UACP+I,gBAAiB,WAErBmO,MAAO,CACHlX,MAAO,UACP+I,gBAAiB,eAkBVgiB,GAdM,SAAC,GAA6D,EAA3DlnB,UAA4D,IAAxCqF,EAAuC,EAAhDC,QAA0B7D,EAAsB,EAAtBA,OACnD6D,GADyE,gDAC/DT,GAAU,CAAES,QAASD,KAErC,IAAK5D,EAAQ,OAAO,KACpB,IAAMgS,EAtDM,SAAAC,GACZ,OAAQA,GACJ,IAAK,SACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QACD,OAAQ,cAAC,KAAD,IACZ,IAAK,QAEL,IAAK,UACD,OAAQ,cAAC,KAAD,IACZ,IAAK,wBACD,OAAQ,cAACC,GAAA,EAAD,IACZ,QACI,OAAQ,cAAC,KAAD,KAuCHC,CAAQnS,EAAOmN,MAE5B,OACI,cAACuY,GAAA,EAAD,CAAQnoB,aAAW,QAAQlB,QAAQ,UAAUwH,QAAS,CAAC8hB,aAAc9hB,EAAQ7D,EAAOmN,OAApF,SACKzQ,IAAM2B,aAAa2T,MClD1B5O,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCinB,eAAgB,CACZpb,OAAQ,OACRR,QAAS,OACT6b,cAAe,SACf5b,WAAY,QACZuT,eAAgB,iBAEpBhQ,KAAM,CACFvD,WAAY,SAEhB9M,MAAO,CACHkV,WAAY,IACZ3S,WAAY,MAEhBomB,IAAK,CAAEpT,WAAY,OAGjBuD,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,GAAS3X,OA2C3DywB,GAzCIxW,sBAAW,WAAqHtC,GAAS,IAA3H1O,EAA0H,EAA1HA,UAAoBqF,EAAsG,EAA/GC,QAA0B7D,EAAqF,EAArFA,OAAQrK,EAA6E,EAA7EA,SAA4BmpB,GAAiD,EAAnEjkB,OAAmE,EAA3Dka,SAA2D,EAAjD+J,iBAAiBkH,EAAgC,EAAhCA,WACjH5sB,GADiJ,8GACrIC,eACZwK,EAAUT,GAAU,CAAES,QAASD,IACrC,IAAK5D,EAAQ,OAAO,KACpB,IAAM7C,EAAK,UAAM6C,EAAOrG,KAAb,YAAqBP,EAAU,aAAD,OAAc4G,EAAOrK,SAArB,SAAsC,CAAEwM,YAAa,KAAnF,OAA0FnC,EAAOqT,aAAP,WAA0Bja,EAAU,iCAAD,OAAkC4G,EAAOqT,gBAAoB,IAC/L4S,EAAYD,GAAcA,EAAW3tB,MAAQ2tB,EAAW3tB,KAAK,IAAM6H,KAAOgmB,KAAKC,OAAOH,EAAW3tB,KAAK,GAAGZ,MAAM,KAAK0I,OAAO,KAGjI,OACI,cAACoc,GAAA,EAAD,CAAMhe,UAAWA,EAAjB,SACI,eAAC6nB,GAAA,EAAD,CACI9R,UAAW2B,GACXhJ,IAAKA,EACLuH,GAAI,CACAgO,SAAS,WAAD,OAAaxiB,EAAOlL,GAApB,SACR+b,OAAO,aAAD,OAAelb,EAAf,eAA8BmpB,EAAgBhqB,KAExDyJ,UAAWsF,EAAQ+hB,eAPvB,UASI,cAACS,GAAA,EAAD,CACIC,OAAQ,cAAC,GAAD,CAActmB,OAAQA,IAC9B7C,MAAOA,EACPopB,qBAAsB,CAAElqB,QAAS,aACjCwH,QAAS,CAAE1G,MAAO0G,EAAQ1G,MAAOqQ,KAAM3J,EAAQ2J,QAEnD,cAACgZ,GAAA,EAAD,UACI,eAACxsB,EAAA,EAAD,CAAKgQ,QAAQ,OAAOwT,eAAe,gBAAgBvT,WAAW,WAAW1L,UAAWsF,EAAQ4iB,iBAA5F,UACK9c,GAAI,SAAU,SAAU,SAAW,cAAC,GAAD,CAAWhU,SAAS,SAASkF,OAAO,OAAOmF,OAAQA,EAAQ3D,QAAQ,QAAQ3B,MAAM,kBACpHurB,GAAa,cAAC7pB,GAAA,EAAD,CAAYC,QAAQ,QAAQ3B,MAAM,gBAAgB6D,UAAWsF,EAAQiiB,IAArE,SAA4EG,iBC3D5G7iB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACrC6O,KAAM,CACJxD,QAAS,OACTwT,eAAgB,SAChBlY,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACfhF,UAAW,IAGfohB,QAAS,CACL9e,SAAUjJ,EAAM2L,QAAQ,IACxBN,QAAS,OACT6b,cAAe,SACf5b,WAAY,UAEhB+H,KAAM,GACNhJ,OAAQ,CAAC1D,UAAW3G,EAAM2L,WAC1BnN,MAAO,GACPyT,UAAW,OA+BE+V,GA1BG,SAAC,GAAoF,IAAlF3d,EAAiF,EAAjFA,OAAQgJ,EAAyE,EAAzEA,KAAepO,EAA0D,EAAnEC,QAA0B+M,EAAyC,EAAzCA,UAAWzT,EAA8B,EAA9BA,MAAOzC,EAAuB,EAAvBA,MACvEmJ,GAD8F,uEACpFT,GAAU,CAAES,QAASD,KACnC,OACE,qBAAKrF,UAAS,UAAKsF,EAAQ2J,MAA3B,SACI,sBAAKjP,UAAS,UAAKsF,EAAQ6iB,SAA3B,UACI1U,GAAQ,cAAC5V,GAAA,EAAD,CAAYkY,UAAU,OAAO/V,UAAWsF,EAAQmO,KAAMtX,MAAOA,GAAS,UAAtE,SAAmFsX,IAC3F7U,GAAS,cAACf,GAAA,EAAD,CAAYC,QAAQ,QAAQigB,cAAY,EAACsK,MAAM,SAASlsB,MAAOA,GAAS,UAAY6D,UAAWsF,EAAQ1G,MAAvG,SAA+GA,IACxHyT,GAAa,cAACxU,GAAA,EAAD,CAAYC,QAAQ,UAAWigB,cAAY,EAACsK,MAAM,SAASroB,UAAWsF,EAAQ+M,UAA9E,SAA0FA,IACxG5H,GAAU,qBAAKzK,UAAWsF,EAAQmF,OAAxB,SAAiCA,U,2CC7B3C6d,GAAW,SAACvxB,GAAW,IAE5ByjB,EASAzjB,EATAyjB,QACAwB,EAQAjlB,EARAilB,MACAuM,EAOAxxB,EAPAwxB,YACAvqB,EAMAjH,EANAiH,SAEAgC,GAIAjJ,EALAuO,QAKAvO,EAJAiJ,WACWic,EAGXllB,EAHAgf,UACAnX,EAEA7H,EAFA6H,MACGhE,EAVwB,YAW3B7D,EAX2B,wFAazBuO,EAAUT,GAAU9N,GAbK,EAsB3ByxB,aAAezxB,GANfyF,EAhB2B,EAgB3BA,SACA2f,EAjB2B,EAiB3BA,aACAC,EAlB2B,EAkB3BA,QACA3a,EAnB2B,EAmB3BA,OACArK,EApB2B,EAoB3BA,SACAmlB,EArB2B,EAqB3BA,QAEIO,EAAYpc,YAAsB3J,GAAlC+lB,QAER,GAAIrb,GAAUA,EAAO+a,QACjB,OACI,cAACC,GAAA,EAAD,CACIrlB,SAAUA,EACVoF,SAAUA,EACViF,OAAQA,EACR7C,MAAOA,EACPud,aAAcA,EACdC,QAASA,EACTU,QAASA,IAKrB,IAAMJ,EACiB,qBAAZlC,GAA2BsC,EAC9B,cAAC,KAAD,IAEAtC,EAGR,OAAKxc,EAID,8CACIgC,UAAW0M,KAAW,YAAapH,EAAQ2J,KAAMjP,IAC7CzD,GAAkB3B,IAF1B,cAII,cAAC+hB,GAAA,EAAD,CACI/d,MAAOA,EACP6C,OAAQA,EACR0a,aAAcA,IAElB,sBAAKnc,UAAWsF,EAAQiZ,QAAxB,UACKgK,GAAezoB,uBAAayoB,EAAa,CACtC/rB,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,aAEHslB,GAAgB5c,uBAAa4c,EAAD,aACzBlgB,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,WACAqH,MAAO,CAAE0V,WAAY,SAElBuI,EAAa3lB,WAGxB,sBACIiJ,UAAW0M,KAAWpH,EAAQL,KAAT,gBAChBK,EAAQsX,WAAaF,IAF9B,UAKI,cAACT,EAAD,CAASjc,UAAWsF,EAAQuX,KAA5B,SACKpb,GAAU7B,WAASjK,IAAIqI,GAAU,SAACrF,EAAO0P,GAAR,OAC9BxI,yBAAelH,GAASmH,uBAAanH,EAAO,CACxCyB,IAAKiO,EACLjR,WACAoF,WACAiF,SACA8a,YACC,UAGZP,GACGlc,uBAAakc,EAAO,CAChB5kB,WACAoF,WACAiF,SACA8a,mBApDT,MA6Ef+L,GAASlvB,aAAe,CACpBkM,QAAS,GACTyQ,UAAW,OAGf,IAAMlR,GAAYC,cAAW,SAAA1E,GAAK,MAC9B,CACI6O,KAAM,GACNhK,KAAM,CACFwG,QAAS,QAEbmR,UAAW,CACP7V,UAAW,OAEf8V,KAAM,CACF5I,KAAM,YAEVsK,QAAQ,cACJ9S,QAAS,OACTwT,eAAgB,iBACf7e,EAAMC,YAAYC,KAAK,MAAQ,CAC5B4E,gBAAiB9E,EAAM4E,QAAQ6L,WAAWC,WAIvD,CAAE1V,KAAM,WAELmB,GAAoB,SAAC,GAAD,EACtBC,SADsB,EAEtB2f,aAFsB,EAGtB1b,UAHsB,EAItBqc,QAJsB,EAKtBV,QALsB,EAMtBC,QANsB,EAOtB9K,QAPsB,EAQtBhb,GARsB,EAStByD,OATsB,EAUtBD,QAVsB,EAWtBgjB,SAXsB,EAYtBnI,MAZsB,EAatB3R,QAbsB,EActBia,YAdsB,0KCzJbuL,GAAO,SAAC1xB,GACjB0mB,aAA6B,OAAQ,CAAC,YAAa1mB,GACnD,IAAMgC,EAAkB2vB,aAAkB3xB,GAC1C,OACI,cAAC4xB,GAAA,EAAD,CAAqBzvB,MAAOH,EAA5B,SACI,cAAC,GAAD,2BAAchC,GAAWgC,OCS/B6vB,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OA4D1B+xB,GAvDW,SAAA/xB,GACtB,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IAECqU,GAAI,SAAU,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,yCAAxC,SACpD,cAAC,GAAD,MAGHgP,GAAI,SAAU,gBAAiB,yBAA0B,0BACtD,cAAC,GAAD,CACIlB,UAAU,wBACV7O,OAAO,yBACPe,MAAM,wDACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGR,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,gBAAiB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC9D,cAAC,GAAD,IACC8O,GAAI,SAAU,gBAAiB,OAAS,cAAC,KAAD,CAAW9O,OAAO,OAC1D8O,GAAI,SAAU,gBAAiB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SACpD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACtFlY,GAAI,SAAU,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI9FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,6BC7EnD2sB,GAAoBnyB,E,qBCgDX4M,GAjDK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAyCxE,OAFiBjH,GAAegH,EAtCZ,CAChBpN,IAAI,EACJ6E,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXkN,KAAM/M,GACNqnB,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,UAAU,EACVC,eAAe,EACfC,UAAU,EACVC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,OAAO,EACPC,aAAa,EACbC,OAAO,EACPC,MAAO,CACHzzB,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBmoB,OAAQ,CACJ1zB,IAAI,EACJa,SAAUyK,GACVC,WAAY,UAEhBA,WAAY,gBAEuC,CAAEjH,eC/B9CqvB,GATuB,SAAAnzB,GAAK,OACvC,qCACKqU,GAAI,UAAW,iBAAmB,cAACE,GAAA,EAAD,eAAsBvU,IACxDqU,GAAI,SAAU,iBAAmB,cAAC,GAAD,eAAsBrU,QCN1D8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4X,KAAM,CACF6F,aAAczd,EAAM2L,QAAQ,QAYrBoe,GAPK,SAAC,GAAe,IAAb/tB,EAAY,EAAZA,MACbvB,EAAYC,cACZwK,EAAUT,KAChB,OAAO,cAACuQ,GAAA,EAAD,CAAMpV,UAAWsF,EAAQ0S,KAAM5b,MAAOvB,EAAUuB,EAAO,CAAEyC,EAAGzC,OC8BxDguB,GA/BY,SAACrzB,GAAD,OACvB,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,eAAgB,QAAS,SAAW,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,YAAYF,MAAM,kCAAkC8N,UAAU,OAAOrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAjJ,SAChD,cAAC,KAAD,CAAwBwe,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,eAAgB,QAAS,SAAW,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,gBAAgBF,MAAM,sCAAsC8N,UAAU,OAAOrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAzJ,SAChD,cAAC,KAAD,CAAwBwe,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,eAAgB,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,uBAAuBF,MAAM,gDAAgD8N,UAAU,YAAYrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAA/K,SACzC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,eAAgB,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,kDAAkD8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAArL,SACzC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,eAAgB,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,kDAAkD8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAArL,SACzC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,eAAgB,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,kDAAkD8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAArL,SACzC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,eAAgB,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,0BAA0BF,MAAM,mDAAmD8N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAxL,SACzC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,eAAgB,WAAa,cAAC,GAAD,CAAa9O,OAAO,0BAA0BF,MAAM,+CAA+CvC,cAAc,SChChKwwB,GAAS,wEAETC,GAAa,SAAC,GAA4D,IAA1DtqB,EAAyD,EAAzDA,UAAqB1D,GAAoC,EAA9ClF,SAA8C,EAApCkF,QAAoC,IAA5BmF,cAA4B,MAAnB,GAAmB,EAAZ1K,EAAY,0DAErE8yB,EAAQtxB,IAAIkJ,EAAQnF,GAC1B,IAAKutB,EAAO,OAAO,KACnB,IAAMU,EAAcV,EAAMpJ,QAAQ4J,GAAQ,iBAE1C,OACI,cAACxsB,GAAA,EAAD,yBACIkY,UAAU,OACVjY,QAAQ,QACRkC,UAAWA,GACPmW,GAAuBpf,IAJ/B,aAMKwzB,MAKbD,GAAWlxB,aAAe,CACtBgd,UAAU,GAGCkU,UCaAE,GA5Bc,SAACzzB,GAC1B,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9Bob,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,eAAgB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WAClF+P,GAAI,UAAW,eAAgB,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,gBACnE8O,GAAI,UAAW,eAAgB,UAAY,cAAC,GAAD,CAAY9O,OAAO,UAC9D8O,GAAI,UAAW,eAAgB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC7D8O,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACtH1N,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvH,eAAC,GAAD,CAAY7a,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,iBAAmB,cAAC,GAAD,IACjCA,GAAI,SAAU,iBAAmB,cAAC,GAAD,IACjCA,GAAI,SAAU,iBAAmB,cAAC,GAAD,YCxB5Cqf,GAAmB,SAAC1zB,GACtB,IAAM6F,EAAW8tB,KACXtQ,EAAmBjc,IAAMmT,OAAO,MAEtC,OACI,cAAC,EAAD,2BACQva,GADR,IAEI0jB,kBAAmB,cAAC,GAAD,IACnBxa,QAAS,cAAC,GAAD,CAAoBsN,QAAS6M,IACtCxd,SAAUA,EAJd,SAMI,cAAC,GAAD,QAKZ6tB,GAAiBrxB,aAAe,CAC5B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnB6xB,U,yECjCA,iBACXrU,SADW,EAEXzJ,WAFW,EAGXnQ,SAHW,EAIXyB,cAJW,EAKX+B,UALW,EAMXsW,cANW,EAOXC,gBAPW,EAQXna,MARW,EASXoa,SATW,EAUXC,KAVW,EAWXC,OAXW,EAYXjV,OAZW,EAaXrK,SAbW,EAcXuf,SAdW,EAeXC,OAfW,EAgBXta,OAhBW,EAiBXwa,UAjBW,EAkBXC,gBAlBW,4OCQT4T,GAAgB,CAACC,aADR,wEACsB,gCAC/BC,GAAa,SAAA3xB,GAAK,OAAIA,EAAMunB,QAAQ,YAAa,KAGjDqK,GAAiB,SAAC,GAAkB,IAAb/zB,EAAY,oBAC/Bg0B,EAAuBh0B,EAAvBg0B,SAAaC,EADkB,YACRj0B,EADQ,cAGvC,OACE,cAAC,KAAD,2BACMi0B,GADN,IAEEtc,IAAK,SAAAA,GAASqc,EAASrc,EAAMA,EAAIuc,aAAe,OAChDC,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,QAAS,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MACnGC,mBAAmB,EACnBC,gBAAiB,SACjBC,OAAO,MAgFAC,GAAmB,SAACv0B,GAG/B,OAAQ,cAAC+b,GAAA,EAAD,2BAAe/b,GAAf,IAAsBmB,MAAO2yB,OAGxBU,GA9EI,SAAC,GAiBb,IAhBL3pB,EAgBI,EAhBJA,OACAgL,EAeI,EAfJA,WACAxQ,EAcI,EAdJA,MAcI,IAbJoQ,cAaI,MAbK,QAaL,EAZJgf,EAYI,EAZJA,OACAC,EAWI,EAXJA,QACAnb,EAUI,EAVJA,SACArN,EASI,EATJA,QASI,IARJ/K,aAQI,MARI2yB,GAQJ,MAPJnP,gBAOI,MAPOiP,GAOP,EANJvzB,EAMI,EANJA,SACAkF,EAKI,EALJA,OAKI,IAJJwB,eAII,MAJM,SAIN,EAHJ4tB,EAGI,EAHJA,WACA1rB,EAEI,EAFJA,UACGpF,EACC,4KAOA+wB,aAAS,aACX/pB,SACA4pB,SACAlb,WACAmb,UACAvzB,QACAd,WACAkF,SACAof,YACG9gB,IAbHrE,EAHE,EAGFA,GACAqc,EAJE,EAIFA,MACAgZ,EALE,EAKFA,WALE,IAMFC,KAAQpuB,EANN,EAMMA,MAAO8Q,EANb,EAMaA,QAajB,OACE,cAAC6B,GAAA,EAAD,qCACE7Z,GAAIA,GACAqc,GAFN,IAGE5S,UAAWA,EACXlC,QAASA,EACTL,SAAU8Q,IAAW9Q,GACrBmP,WACG2B,GAAW9Q,GAAUmP,EACpB,cAACkf,GAAA,EAAD,CACEvd,QAASA,EACT9Q,MAAOA,EACPmP,WAAYA,IAEZ,KAENxQ,MACE,cAACgV,GAAA,EAAD,CACEhV,MAAOA,EACPE,OAAQA,EACRlF,SAAUA,EACVw0B,WAAYA,IAGhBpf,OAAQA,EACRwG,WAAU,2BACL0Y,GADK,IAERK,eAAgBjB,MAEd7nB,GACA1G,GAAkB3B,MC9EboxB,GAba,SAACj1B,GACzB,IAAMgW,EAAO8N,eAOb,OACI,cAAC,GAAD,2BAAe9jB,GAAf,IAAsBuZ,SAND,SAACpX,GACtB6T,EAAKmO,OAAO,YAAa,IACzBnO,EAAKmO,OAAO,SAAK7gB,Q,yECJnBwK,GAAYC,aACd,CACImnB,SAAU,CACNhgB,OAAQ,KAGhB,CAAE7Q,KAAM,6BA6CG8wB,GA1CgB,SAAC,GAOzB,IANH31B,EAME,EANFA,GACA+Z,EAKE,EALFA,SAKE,IAJF0R,cAIE,MAJO,CAACzrB,GAAI,YAAa6E,KAAM,uBAI/B,EAHF2mB,EAGE,EAHFA,QACA7oB,EAEE,EAFFA,MACG0B,EACD,4DACI0K,EAAUT,GAAU,IADxB,EAEwCsnB,aAAW,CACjDtW,WAAY,OACZgN,YAAa,KACb9L,iBAAiB,IAHbqV,EAFN,EAEMA,cAAeC,EAFrB,EAEqBA,eAMjBC,EAAaF,EAAcpK,GAC3BuK,EAAcF,EAAerK,GAEnC,OAAMD,GAAWA,EAAQvmB,OAAO,EAI5B,cAACI,EAAA,EAAD,CACI4wB,QAAO,UAAKj2B,EAAL,YAAWg2B,GAElBjc,SAAUA,EACVvU,QACI,cAACC,EAAA,EAAD,aACIzF,GAAE,UAAKA,EAAL,YAAWg2B,GACbpwB,MAAM,UACN6D,UAAWsF,EAAQ2mB,SACnBhwB,UAAS/C,GAAQA,EAAMsC,SAAWumB,EAAQvmB,OAC1CtC,MAAOuzB,OAAOF,IACV3xB,IAGZwB,MAAOkwB,GAZFC,GAN8B,MC3BzC1nB,GAAYC,aACd,CACImnB,SAAU,CACNhgB,OAAQ,KAGhB,CAAE7Q,KAAM,6BA+CG8wB,GA5CgB,SAAC,GASzB,IARH31B,EAQE,EARFA,GACAyrB,EAOE,EAPFA,OACA1R,EAME,EANFA,SACAuF,EAKE,EALFA,WACAgN,EAIE,EAJFA,YACA9L,EAGE,EAHFA,gBACA7d,EAEE,EAFFA,MACG0B,EACD,+FACI0K,EAAUT,GAAU,IADxB,EAEwCsnB,aAAW,CACjDtW,aACAgN,cACA9L,oBAHIqV,EAFN,EAEMA,cAAeC,EAFrB,EAEqBA,eAMjBC,EAAaF,EAAcpK,GAEjC,OACI,cAACpmB,EAAA,EAAD,CACI4wB,QAAO,UAAKj2B,EAAL,YAAW81B,EAAerK,IAEjC1R,SAAUA,EACVvU,QACI,cAACC,EAAA,EAAD,aACIzF,GAAE,UAAKA,EAAL,YAAW81B,EAAerK,IAC5B7lB,MAAM,UACN6D,UAAWsF,EAAQ2mB,SACnBhwB,UACI/C,QAEMmB,IADAnB,EAAM0P,MAAK,SAAA8jB,GAAC,OAAIA,GAAKL,EAAerK,MAI9C9oB,MAAOuzB,OAAOJ,EAAerK,KACzBpnB,IAGZwB,MAAOkwB,GAjBFD,EAAerK,KCT1Bnd,GAAYC,cACd,SAAA1E,GAAK,MAAK,CACN6O,KAAM,GACN7S,MAAO,CACHijB,UAAW,gCACX1f,gBAAgB,OAAD,OAA6B,QAApBS,EAAMusB,UAAsB,OAAS,aAIrE,CAAEvxB,KAAM,yBAINwxB,GAAqB,SAAC,GAsBrB,IAAD,IArBF7K,eAqBE,MArBQ,GAqBR,EApBF/hB,EAoBE,EApBFA,UAEA4B,GAkBE,EAnBF0D,QAmBE,EAlBF1D,QACAgL,EAiBE,EAjBFA,WACAxQ,EAgBE,EAhBFA,MAgBE,IAfFoQ,cAeE,MAfO,QAeP,EAdFgf,EAcE,EAdFA,OACAlb,EAaE,EAbFA,SACAmb,EAYE,EAZFA,QACA5V,EAWE,EAXFA,WACAgN,EAUE,EAVFA,YACA5f,EASE,EATFA,QACA/K,EAQE,EARFA,MACAd,EAOE,EAPFA,SACAyhB,EAME,EANFA,IACAvc,EAKE,EALFA,OAEAya,GAGE,EAJFlc,UAIE,EAHFkc,iBACA2E,EAEE,EAFFA,SACG9gB,EACD,sOACI0K,EAAUT,GAAU,IADxB,EAQE8mB,aAAS,aACT/pB,SACA4pB,SACAlb,WACAmb,UACAvzB,QACAd,WACAkF,SACAof,YACG9gB,IAbHrE,EAJF,EAIEA,GAJF,IAKEqc,MAAmBia,EALrB,EAKWvc,SAAqCwc,EALhD,EAKwCtB,OAAyBtyB,EALjE,EAKiEA,MAC/D0yB,EANF,EAMEA,WANF,IAOEC,KAAQpuB,EAPV,EAOUA,MAAO0Q,EAPjB,EAOiBA,YAAaI,EAP9B,EAO8BA,QAa1Bwe,EAAiBxyB,uBACnB,SAACY,EAAO6xB,GAEAH,EADAG,EACkBC,iBAAO/zB,GAAS,GAAK6oB,EAAQpsB,KAAI,SAAAqsB,GAAM,OAAIzpB,IAAIypB,EAAQa,OAEvD,IAEtBiK,MAEJ,CAACD,EAAmBC,EAAiB/K,EAAS7oB,EAAO2pB,IAGnDqK,EAAc3yB,uBAChB,SAACY,EAAO6xB,GACJ,IAAIG,EACJ,IAEIA,EAAWr1B,KAAKI,MAAMiD,EAAME,OAAOnC,OACrC,MAAO/C,GAELg3B,EAAWhyB,EAAME,OAAOnC,MAGxB2zB,EADAG,EACkB,GAAD,mBAAM9zB,GAAS,IAAQ,CAACi0B,IAEvBj0B,EAAMG,QAAO,SAAAqzB,GAAC,OAAIA,GAAKS,MAE7CL,MAEJ,CAACD,EAAmBC,EAAiB5zB,IASzC,OANA6oB,EAAQllB,MAAK,SAAC2lB,EAAG4K,GAEb,OAAIl0B,EAAMoC,SAASknB,EAAEjsB,KAAa,EAC3B,KAIP,eAAC82B,GAAA,EAAD,yBACItX,UAAU,WACVvJ,OAAQA,EACR/O,MAAO8Q,KAAa9Q,EACpBuC,UAAW0M,KAAWpH,EAAQ2J,KAAMjP,IA5GtB,SAAC,GAAD,EACtBokB,UADsB,EAEtBkJ,cAFsB,EAGtB91B,QAHsB,EAItBwC,OAJsB,EAKtB4xB,WALsB,EAMtB2B,oBANsB,IAOnB3yB,EAPmB,0GAQpB4yB,GAAyB5yB,GAqGf2B,CAAkB3B,IAL1B,cAOI,cAAC6yB,GAAA,EAAD,CAAW1X,UAAU,SAAS/V,UAAWsF,EAAQlJ,MAAjD,SACI,cAACgV,GAAA,EAAD,CACIhV,MAAOA,EACPE,OAAQA,EACRlF,SAAUA,EACVw0B,WAAYA,MAGpB,eAAC8B,GAAA,EAAD,CAAW7U,IAAKA,EAAhB,UACI,cAAC8U,GAAD,CAEIp3B,GAAIA,EACJ+Z,SAAUyc,EACVhL,QAASA,EACT7oB,MAAOA,GALX,UACYoD,EADZ,cAOCylB,EAAQpsB,KAAI,SAAAqsB,GAAM,OACf,cAAC,GAAD,CAEIA,OAAQA,EACRzrB,GAAIA,EACJ+Z,SAAU4c,EACVjqB,QAASA,EACT4S,WAAYA,EACZgN,YAAaA,EACb9L,gBAAiBA,EACjB7d,MAAOA,GARFX,IAAIypB,EAAQa,UAY7B,cAAC+K,GAAA,EAAD,UACI,cAAC9B,GAAA,EAAD,CACIvd,QAASA,EACT9Q,MAAOA,GAAS0Q,EAChBvB,WAAYA,WAwBhCggB,GAAmBxzB,aAAe,CAC9B6J,QAAS,GACT4S,WAAY,OACZgN,YAAa,KACb9L,iBAAiB,EACjB3N,WAAW,EACXyP,KAAK,GAGM+T,UC5LT/nB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4G,oBAAqB,CACjBD,UAAW,EACX8W,aAAc,OAsEPgQ,GAtCmB,SAAC,GAA6B,IAA3B7tB,EAA0B,EAA1BA,UAAcjJ,EAAY,6BAEnDkS,GADQpE,KACGiW,eAAX7R,QACJ5P,EAAS,GAEPy0B,EAAiB/2B,EAAM0K,QAAU1K,EAAM0K,OAAOqsB,eAC9CC,EAAoB9kB,GAAUA,EAAO6kB,eACrCE,EAAe/kB,GAAUA,EAAOglB,EAChCC,EAhCgB,SAAC92B,EAAU02B,GAEjC,GAAI12B,IAAa02B,EACjB,OAAQ12B,GACJ,IAAK,YACD,OAEJ,IAAK,cACD,MAAO,CAAE8S,UAAW,YAAa7Q,OAAQ,aAE7C,IAAK,cACD,OAEJ,IAAK,cACD,MAAO,CAAE6Q,UAAW,cAAe7Q,OAAQ,eAE/C,IAAK,eACD,MAAO,CAAE6Q,UAAW,cAAe7Q,OAAQ,eAE/C,QACI,QAYe80B,CAAkBJ,EAAmBD,GACtDtZ,EAAc0Z,GAAkBjlB,EAAOilB,EAAe70B,QAY5D,OATImb,GAAeA,EAAYhZ,SAC3BnC,EAAO60B,EAAe70B,QAAU,CAAE+0B,MAAO5Z,IAGzCwZ,IACA30B,EAAO40B,EAAID,GAIVD,EAGD,qCACI,cAAC,KAAD,CAAa32B,SAAS,eAAekF,OAAO,IAAI0D,UAAWA,EAAW+S,YAAU,IAC/Emb,GAAkB,cAACjkB,GAAA,EAAD,CAAqB7S,SAAS,eAAekF,OAAM,UAAK4xB,EAAe70B,QAAU6Q,UAAWgkB,EAAehkB,UAAWrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAK,8CAAyC8xB,EAAehkB,WAAad,WAAS,EAA9P,SACf,cAACilB,GAAA,EAAD,CAAkBxY,WAAW,WAEjC,cAAC5L,GAAA,EAAD,2BAAyBlT,GAAzB,IAAgCmT,UAAW6jB,EAAmB10B,OAAQA,EAAQwD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+R,WAAS,EAA5I,SACI,cAAC,GAAD,CAAoByM,WAAW,OAAOgD,KAAK,UATxB,MC7C7BhU,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACrC6O,KAAM,CACJqf,SAAU,SAgDCzM,GA5CS,SAAC,GAAsF,IAArF7jB,EAAoF,EAApFA,SAAmBqH,EAAiE,EAA1EC,QAC1BA,GADoG,EAAhD7D,OAAgD,EAAxCnF,OAAwC,EAAhC0D,UAAgC,EAArB5D,MAAqB,4EAC1FyI,GAAU,CAAES,QAASD,KACnBvK,cAGlB,OACE,cAACsjB,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,SACCnM,WAASjK,IAAIqI,GAAU,SAACrF,EAAO0P,GAAW,IAAD,EAUpC1P,EAAM5B,MAPRyqB,EAHsC,EAGtCA,GACAC,EAJsC,EAItCA,GACAC,EALsC,EAKtCA,GACApD,EANsC,EAMtCA,GACAiQ,EAPsC,EAOtCA,aAEG7C,GATmC,EAQtC1rB,UARsC,iEAYlCwuB,EAAgB,CACpBhN,KACAC,KACAC,KACApD,KACAiQ,gBAGF,OAAO1uB,yBAAelH,GACpB,cAACylB,GAAA,EAAD,yBAAM1b,MAAI,GAAuC8rB,GAAjD,aACGrwB,IAAM2B,aAAanH,EAAnB,2BACI+yB,GADJ,IAEC1rB,UAAWsF,EAAQ2J,KACnB7F,WAAW,OAJCzQ,EAAM5B,MAAMuF,QAAU+L,GAOtC,WCjDJomB,GAAgB,CAAC1E,gBAoER2E,GA3DY,SAAA33B,GAGvB,OACI,cAAC,KAAD,2BAAYA,GAAZ,aAEI,eAAC43B,GAAA,EAAD,CAAY/nB,SAAS,OAArB,UACI,eAACgoB,GAAA,EAAD,CAASxyB,MAAM,sCAAf,UACI,cAAC0W,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACxD,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACnD,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,MAAMof,SAAUC,iBAClC,cAAC,GAAD,CAAWrf,OAAO,OAAOof,SAAUC,iBACnC,cAACkT,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,mCAA8C,gBAAlBk0B,EAASlgB,MAA4C,qBAAlBkgB,EAASlgB,OACrE,eAACmgB,GAAD,WAEI,cAACjc,GAAA,EAAD,aAAWxW,OAAO,MAAMgiB,IAAE,GAAK1jB,IAC/B,cAACkY,GAAA,EAAD,aAAWxW,OAAO,OAAOgiB,IAAE,GAAK1jB,IAChC,cAACkY,GAAA,EAAD,aAAWxW,OAAO,OAAOgiB,IAAE,GAAK1jB,UAK5C,cAACi0B,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,kCAA6C,eAAlBk0B,EAASlgB,MACjC,eAACmgB,GAAD,WACI,cAACjc,GAAA,EAAD,aAAWxW,OAAO,MAAMgiB,GAAI,GAAO1jB,IACnC,cAACkY,GAAA,EAAD,aAAWxW,OAAO,WAAWgiB,IAAE,GAAK1jB,IACpC,cAACwoB,GAAA,EAAD,aAAW9mB,OAAO,gBAAgBgiB,IAAE,GAAM1jB,UAItD,cAACi0B,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,kCAA6C,qBAAlBk0B,EAASlgB,MACjC,mCACI,cAACkE,GAAA,EAAD,aAAWxW,OAAO,YAAe1B,SAI7C,cAACkY,GAAA,EAAD,CAAWxW,OAAO,eAAe8M,WAAS,IAC1C,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,gBAAgB8M,WAAS,IAC3C,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,gBAAgB8M,WAAS,IAC3C,cAAC,GAAD,CAAY9M,OAAO,UACnB,cAAC,GAAD,CAAYA,OAAO,gBACnB,cAACwW,GAAA,EAAD,CAAWxW,OAAO,QAAQsS,KAAK,QAAQ8M,SAAU+S,QAErD,eAACG,GAAA,EAAD,CAASxyB,MAAM,qCAAqCxC,KAAK,SAAzD,UACI,cAAC,GAAD,CAAqB0C,OAAO,iBAAiBlB,KAAK,iBAAiB8mB,OAAO,kCAAkCvV,YAAU,EAACqiB,WAAY,KAAM3Y,UAAU,kBACnJ,cAAC,GAAD,CAA2B/Z,OAAO,YAAYO,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCACzG,cAAC6N,GAAA,EAAD,CAAqB3N,OAAO,WAAW4N,UAAU,OAAO7Q,OAAQ,CAAE41B,aAAc,MAAQpyB,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sCAAsCgN,WAAS,EAAlM,SACI,cAACe,GAAA,EAAD,gBC7DlBtF,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QA6BRmoB,GAvBY,SAAC,GAAqD,IAA3C7pB,EAA0C,EAAnDC,QAA0BtF,EAAyB,EAAzBA,UAAcjJ,EAAW,uCACtEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,cAACioB,GAAA,EAAD,UACI,cAAC7J,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,SACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACI,cAACzgB,GAAA,EAAD,CAAYC,QAAQ,KAAKigB,cAAY,EAArC,SAAuC3iB,IACvC,cAACyC,GAAA,EAAD,CAAYC,QAAQ,YAApB,SAAkCgG,cCdpD2qB,GAAgB,CAAC1E,gBAEjBllB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,KAGnCojB,0BAA2B,CACvB1jB,QAAS,OACT6b,cAAe,cAKjB8H,GAAsB,SAAAr4B,GACxB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,iBAAmB,cAACsT,GAAA,EAAD,IACjCtT,GAAI,SAAU,iBAAmB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAChI,cAAC,GAAD,IACCsN,GAAI,SAAU,iBAAmB,cAAC,GAAD,CAAcxE,SAAS,SACzD,cAAC,GAAD,SAgEGyoB,GA3DU,SAAAt4B,GACrB,IAAMuO,EAAUT,KAEhB,OACI,eAAC,GAAD,yBAAMjG,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC43B,GAAA,EAAD,CAAY/nB,SAAS,OAAO2X,QAAS,cAAC,GAAD,IAArC,UACI,eAACqQ,GAAA,EAAD,CAASxyB,MAAM,sCAAf,UACKgP,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACjGgC,GAAI,SAAU,eAAgB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACnGgC,GAAI,SAAU,eAAgB,QAAU,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,MAAMof,SAAUC,iBAC1EvQ,GAAI,SAAU,eAAgB,SAAW,cAAC,GAAD,CAAW9O,OAAO,OAAOof,SAAUC,iBAC7E,cAACkT,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,mCAA8C,gBAAlBk0B,EAASlgB,MAA4C,qBAAlBkgB,EAASlgB,OACrE,eAACmgB,GAAD,WACK3jB,GAAI,SAAU,eAAgB,QAAU,cAAC0H,GAAA,EAAD,aAAWxW,OAAO,MAAMgiB,IAAE,GAAK1jB,IACvEwQ,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,aAAWxW,OAAO,OAAOgiB,IAAE,GAAK1jB,IACzEwQ,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,aAAWxW,OAAO,OAAOgiB,IAAE,GAAK1jB,UAKtF,cAACi0B,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,kCAA6C,eAAlBk0B,EAASlgB,MACjC,eAACmgB,GAAD,WACK3jB,GAAI,SAAU,eAAgB,QAAU,cAAC0H,GAAA,EAAD,aAAWxW,OAAO,MAAMgiB,GAAI,GAAO1jB,IAC3EwQ,GAAI,SAAU,eAAgB,aAAe,cAAC0H,GAAA,EAAD,aAAWxW,OAAO,WAAWgiB,IAAE,GAAK1jB,IACjFwQ,GAAI,SAAU,eAAgB,kBAAoB,cAACgY,GAAA,EAAD,aAAW9mB,OAAO,gBAAgBgiB,IAAE,GAAM1jB,UAIzG,cAACi0B,GAAA,EAAD,UACK,gBAAGC,EAAH,EAAGA,SAAal0B,EAAhB,kCAA6C,qBAAlBk0B,EAASlgB,MACjC,mCACI,cAACkE,GAAA,EAAD,aAAWxW,OAAO,YAAe1B,SAI7C,cAACkY,GAAA,EAAD,CAAWxW,OAAO,eAAe8M,WAAS,IAC1C,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,gBAAgB8M,WAAS,IAC3C,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,gBAAgB8M,WAAS,IAC3C,cAAC,GAAD,CAAY9M,OAAO,UACnB,cAAC,GAAD,CAAYA,OAAO,gBACnB,cAACwW,GAAA,EAAD,CAAWxW,OAAO,QAAQsS,KAAK,QAAQ8M,SAAU+S,QAErD,eAACG,GAAA,EAAD,CAASxyB,MAAM,qCAAqCxC,KAAK,SAAzD,UACI,cAAC,GAAD,CAAqB0C,OAAO,iBAAiBlB,KAAK,iBAAiB8mB,OAAO,kCAAkCvV,YAAU,EAACqiB,WAAY,KAAM3Y,UAAU,kBACnJ,cAAC,GAAD,CAA2B/Z,OAAO,YAAYF,MAAM,uCAAuCsf,SAAUC,eAAYrF,cAAehR,EAAQ6pB,4BACxI,cAACllB,GAAA,EAAD,CAAqB3N,OAAO,WAAW4N,UAAU,OAAO7Q,OAAQ,CAAE41B,aAAc,MAAQpyB,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sCAAsCgN,WAAS,EAAlM,SACI,cAACe,GAAA,EAAD,mB,iCC3FtBtF,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAGnBohB,QAAS,OAGPmH,GAAmB,SAAC,GAOnB,IANHtxB,EAME,EANFA,SAEAgC,GAIE,EALFsF,QAKE,EAJFtF,WACWuvB,EAGT,EAHFxZ,UACA3Z,EAEE,EAFFA,MACGrF,EACD,sEAEIuO,EAAUT,KACVhK,EAAYC,cAClB,OAAKkD,EAGD,sBAAKgC,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,EAAO,CAAEyC,EAAGzC,MAC3G,cAACmzB,EAAD,CAAWvvB,UAAWsF,EAAQ6iB,QAA9B,SACI,cAAC,KAAD,2BAAwBpxB,GAAxB,aACKiH,UAPK,MAc1BsxB,GAAiBl2B,aAAe,CAC5B2c,UAAWiI,MAKAsR,UCzCTzqB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACTwB,SAAU,YAKZ9N,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAKzB/B,GAAc,aAEpB,SAASoyB,GAAT,GAYG,EAXCpZ,SAWA,IAVS/Q,EAUV,EAVCC,QACAtF,EASD,EATCA,UACAyB,EAQD,EARCA,OACAnF,EAOD,EAPCA,OACAlF,EAMD,EANCA,SACA8S,EAKD,EALCA,UACA1N,EAID,EAJCA,SACAwB,EAGD,EAHCA,SACAwY,EAED,EAFCA,SACG5b,EACJ,4HACO0K,EAAUT,GAAU,CAAES,QAASD,IAC/BvL,EAAOvB,IAAIkJ,EAAQnF,GACzB,OAAKxC,EAID,6CACIkG,UAAW0M,KAAWpH,EAAQ2J,KAAMjP,IAChCmW,GAAuBvb,IAF/B,aAIKd,EAAKnE,KAAI,SAAC+M,EAAM2F,GACb,IAAMmY,EAAWhkB,EAASikB,QAAQrpB,EAAU8S,GACtCwW,IAAoBlK,GAEpBN,aAAasK,EAAU9d,EAAKnM,GAAIigB,GAEtC,OAAIkK,EAEI,cAAC,KAAD,CAEI1gB,UAAWsF,EAAQmR,KACnBR,GAAIyK,EACJxkB,QAASiD,GAJb,SAMKW,uBAAaF,WAASmY,KAAK/Z,GAAW,CACnCyD,OAAQiB,EACRtL,WACAoF,WAEAN,QAASkB,MAVRiL,GAgBVvI,uBAAaF,WAASmY,KAAK/Z,GAAW,CACzC5D,IAAKiO,EACL5G,OAAQiB,EACRtL,WACAoF,mBArCI,KAsDxBgzB,GAAiBp2B,aAAe,CAC5BkM,QAAS,GACTkR,SAAU,OACVJ,UAAU,GAGCoZ,UCNAC,GApEU,SAAA14B,GAErB,IAAMgC,EAAkB2vB,aAAkB3xB,GACpC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MACjC1C,EAAO7V,EAAgB0I,QAAU1I,EAAgB0I,OAAOmN,KACxDkf,EAAiB/0B,EAAgB0I,QAAU1I,EAAgB0I,OAAOqsB,eAExE,OACI,cAACnF,GAAA,EAAD,CAAqBzvB,MAAOH,EAA5B,SACI,eAAC,GAAD,qCAAU6F,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAWgC,GAA7E,cACI,cAAC,GAAD,IAEA,eAAC,GAAD,WACKqS,GAAI,SAAU,eAAgB,SAAW,cAAC,GAAD,CAAW9O,OAAO,SAC3D8O,GAAI,SAAU,eAAgB,QAAU,cAAC,KAAD,CAAW9O,OAAO,QAC1D8O,GAAI,SAAU,eAAgB,SAAoB,gBAATwD,GAAmC,qBAATA,IAAgC,cAAC,KAAD,CAAWtS,OAAO,QACrH8O,GAAI,SAAU,eAAgB,UAAqB,gBAATwD,GAAmC,qBAATA,IAAgC,cAAC,KAAD,CAAWtS,OAAO,SACtH8O,GAAI,SAAU,eAAgB,UAAqB,gBAATwD,GAAmC,qBAATA,IAAgC,cAAC,KAAD,CAAWtS,OAAO,SACtH8O,GAAI,SAAU,eAAgB,QAAmB,eAATwD,GAAyB,cAAC,KAAD,CAAWtS,OAAO,QACnF8O,GAAI,SAAU,eAAgB,aAAwB,eAATwD,GAAyB,cAAC,KAAD,CAAWtS,OAAO,aACxF8O,GAAI,SAAU,eAAgB,kBAA6B,eAATwD,GAAyB,cAAC0L,GAAA,EAAD,CAAWhe,OAAO,kBAC7F8O,GAAI,SAAU,eAAgB,aAAwB,qBAATwD,GAA+B,cAAC,KAAD,CAAWtS,OAAO,aAC9F8O,GAAI,SAAU,eAAgB,iBAAmB,cAAC,KAAD,CAAW9O,OAAO,iBACnE8O,GAAI,SAAU,eAAgB,kBAAoB,cAAC,KAAD,CAAW9O,OAAO,kBACpE8O,GAAI,SAAU,eAAgB,kBAAoB,cAAC,KAAD,CAAW9O,OAAO,kBACpE8O,GAAI,SAAU,eAAgB,UAAY,cAAC,GAAD,CAAY9O,OAAO,UAC7D8O,GAAI,SAAU,eAAgB,gBAAkB,cAAC,GAAD,CAAY9O,OAAO,gBACnE8O,GAAI,SAAU,eAAgB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC5D8O,GAAI,SAAU,eAAgB,QAAS,SAAW,cAAC,GAAD,CAAkB9O,OAAO,QAAQ4N,UAAU,OAAOsM,SAAS,OAA3D,SAC/C,cAACkZ,GAAA,EAAD,CAAWpzB,OAAO,cAI1B,cAAC,GAAD,CAAkBF,MAAM,qCAAxB,SACK0xB,GAAkB,cAAC6B,GAAA,EAAD,CAAqBrzB,OAAO,YAAY4N,UAAW4jB,EAAgB1xB,MAAK,8CAAyC0xB,GAAjH,SACf,cAAC8B,GAAA,EAAD,CAAiBpZ,SAAS,OAA1B,SACI,cAACkZ,GAAA,EAAD,CAAWpzB,OAAO,eAK9B,cAAC,GAAD,CAAWmO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACI,cAAC,KAAD,CAAWvjB,OAAO,OACjB8O,GAAI,SAAU,eAAgB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SACnD,cAAC,KAAD,CAAW5N,OAAO,WAEtB,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvC,cAAChJ,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI9ClY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,8BC9EvDuzB,GAAmB/4B,K,UCKVA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,kaCYrC+4B,GAVsB,SAAAj5B,GAAK,OACtC,eAAC,WAAD,WACKqU,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACzEqU,GAAI,UAAW,gBAAkB,cAACE,GAAA,EAAD,eAAsBvU,IACvDqU,GAAI,SAAU,gBAAkB,cAAC,GAAD,eAAsBrU,Q,kDC+VzD8N,GAAYC,aACd,CACIuZ,UAAW,CACP4R,SAAU,EACVrkB,SAAU,aAGlB,CAAExQ,KAAM,wBAGG80B,GAzWW,SAAAn5B,GAAU,IAE5B4V,EA6CA5V,EA7CA4V,WACA3M,EA4CAjJ,EA5CAiJ,UAH2B,GA+C3BjJ,EA3CAuO,QA2CAvO,EA1CAgrB,gBAL2B,MAKjB,GALiB,EAM3BlmB,EAyCA9E,EAzCA8E,SACAwa,EAwCAtf,EAxCAsf,UACA2Y,EAuCAj4B,EAvCAi4B,WACAptB,EAsCA7K,EAtCA6K,OACAwH,EAqCArS,EArCAqS,UACAwD,EAoCA7V,EApCA6V,WACIujB,EAmCJp5B,EAnCAR,GACO65B,EAkCPr5B,EAlCA6b,MACYyd,EAiCZt5B,EAjCA60B,WACAxvB,EAgCArF,EAhCAqF,MACAmxB,EA+BAx2B,EA/BAw2B,oBAhB2B,EA+C3Bx2B,EA9BAyV,cAjB2B,MAiBlB,QAjBkB,EAkB3BiJ,EA6BA1e,EA7BA0e,gBACM6a,EA4BNv5B,EA5BA80B,KACAL,EA2BAz0B,EA3BAy0B,OACAlb,EA0BAvZ,EA1BAuZ,SACAmb,EAyBA10B,EAzBA00B,QAtB2B,EA+C3B10B,EAxBAkM,QACImH,GAxBuB,aA4BvB,CACAA,+BAA2B/P,EAC3Bk2B,gBAAYl2B,EACZ2Y,gBAAY3Y,GA/BW,GAwBvB+P,0BACAmmB,EAzBuB,EAyBvBA,WACAvd,EA1BuB,EA0BvBA,WACG/P,EA3BoB,yEA+C3BlM,EAdA8e,kBAjC2B,MAiCd,OAjCc,EAkC3B2a,EAaAz5B,EAbAy5B,UAlC2B,EA+C3Bz5B,EAZA8rB,mBAnC2B,MAmCb,KAnCa,EAoC3B3qB,EAWAnB,EAXAmB,MACAd,EAUAL,EAVAK,SACAgtB,EASArtB,EATAqtB,UACyBqM,EAQzB15B,EARA25B,wBACAp0B,EAOAvF,EAPAuF,OACAq0B,EAMA55B,EANA45B,gBAzC2B,EA+C3B55B,EALAggB,uBA1C2B,SA2C3B2E,EAIA3kB,EAJA2kB,SA3C2B,EA+C3B3kB,EAHA+G,eA5C2B,MA4CjB,SA5CiB,IA+C3B/G,EAFAye,sBA7C2B,MA6CV,cAACob,GAAA,EAAD,IA7CU,EA8CxBh2B,EA9CwB,YA+C3B7D,EA/C2B,2aAiD/B,GAAI8I,yBAAegW,KAAgB2a,EAC/B,MAAM,IAAIp6B,MAAJ,kLAMVy6B,aACIhxB,yBAAegW,KAAgBJ,EAD5B,yLASP,IAAMnQ,GAAUT,GAAU9N,GAEtB+5B,GAAUxf,mBACVjT,GAAWiT,mBApEgB,GA2E3Bqa,aAAS,aACT/pB,SACArL,GAAI45B,EACJvd,MAAOwd,EACPvE,KAAMyE,EACN9E,SACAlb,WACAmb,UACAvzB,QACAd,WACAkF,SACAof,YACG9gB,IAhBHrE,GAvE2B,GAuE3BA,GACAqc,GAxE2B,GAwE3BA,MACAgZ,GAzE2B,GAyE3BA,WAzE2B,MA0E3BC,KAAQtd,GA1EmB,GA0EnBA,QAAS9Q,GA1EU,GA0EVA,MA1EU,GA0FOW,mBAAS,IA1FhB,qBA0FxBoW,GA1FwB,MA0FXuc,GA1FW,MA4FzBC,GAAyBz2B,uBAC3B,SAAArB,GAAK,OAAI6oB,EAAQnZ,MAAK,SAAAoZ,GAAM,OAAIzpB,IAAIypB,EAAQa,KAAiB3pB,OAC7D,CAAC6oB,EAASc,IAGRtN,GAAe5U,mBACjB,kBAAMqwB,GAAuBpe,GAAM1Z,QAAU,OAC7C,CAAC0Z,GAAM1Z,MAAO83B,KAnGa,GAsG2BC,aAAe,CACrEtkB,aACAoV,UACA1L,YACA2Y,aACAzB,sBACA9X,kBACAI,aACAgN,cACAtN,gBACAob,kBACA5Z,oBAXIqV,GAtGuB,GAsGvBA,cAAeC,GAtGQ,GAsGRA,eAAgB6E,GAtGR,GAsGQA,eAcjCC,GAAqB52B,uBACvB,SAAC62B,GACG,IAAMj2B,EAAQi2B,EACRl4B,EAAQiC,EAAME,OACdF,EAAME,OAAOnC,MACZk4B,EAEHhN,GACAA,EAAUlrB,KAGlB,CAACkrB,IAOLpsB,qBAAU,WACNm5B,GAAmB,IAInBJ,GAC2B,qBAAhBne,GAAM1Z,OACO,OAAhB0Z,GAAM1Z,OACW,OAAjBqc,GACE,GACAib,EACAA,EAAUpE,GAAc7W,IAAcxe,MAAM0K,QAC5C2qB,GAAc7W,OAEzB,CACC3C,GAAM1Z,MACNi4B,GACA5b,GACA6W,GACAoE,IAGJ,IAAMxJ,GAAezsB,uBACjB,SAACmI,GACGkQ,GAAMtC,SAAS+b,GAAe3pB,MAElC,CAAC2pB,GAAgBzZ,KA+Bfye,GAAgB,SAAAze,GAClBke,GAAQzhB,QAAUuD,EA3BC,WACnB,GAAKke,GAAQzhB,QAAb,CAIA,IAAMiiB,EAAgBR,GAAQzhB,QAAQkiB,wBAKtC,GAAKlzB,GAASgR,QAEP,CACH,IAAMmiB,EAAiBnzB,GAASgR,QAAQkiB,wBAGpCC,EAAerW,IAAMmW,EAAcnW,GACnCqW,EAAepW,IAAMkW,EAAclW,IAEnC/c,GAASgR,QAAU,CACfkiB,sBAAuB,kBAAMD,UATrCjzB,GAASgR,QAAU,CAAEkiB,sBAAuB,kBAAMD,KAiBtDG,IAGEC,GAAan3B,uBACf,SAAAY,GACIg2B,GAAmB,IAInBJ,GACIne,GAAM1Z,MACAs3B,EACIA,EAAUpE,GAAc7W,IAAcxe,MAAM0K,QAC5C2qB,GAAc7W,IAClB,IAEV3C,GAAM4Y,OAAOrwB,KAEjB,CAACixB,GAAe+E,GAAoBve,GAAO4d,EAAWjb,KAGpDoc,GAAcp3B,uBAChB,SAAAq3B,GAAQ,OAAI,SAAAz2B,GACRy2B,EAASz2B,GACTyX,GAAM6Y,QAAQtwB,MAElB,CAACyX,KAcL,OACI,cAAC,KAAD,yBACIif,WAAYrd,GACZlE,SAAU0W,GACVzR,aAAcA,GACduc,aAAc,SAAApvB,GAAI,OAAI2pB,GAAe3pB,KACjC9H,GALR,aAOK,YAQM,IA3BiBm3B,EAoBpBC,EAOE,EAPFA,cACAC,EAME,EANFA,aACAC,EAKE,EALFA,cACAC,EAIE,EAJFA,aACAC,EAGE,EAHFA,OACA9d,EAEE,EAFFA,iBACAsd,EACE,EADFA,SAEMS,EACFD,IA7BgBL,EA6BkBvd,QA3BNna,IAApCo2B,GAC2C,oBAApCA,GAEAA,EAAgCsB,IAsBjC,EAaEC,EAAc,aACdxG,OAAQkG,GACRjG,QAASkG,GAAYC,IAClB5e,IAVHwY,GANF,EAIEj1B,GAJF,EAKE2C,MALF,EAMEsyB,QAEAC,GARF,EAOEnb,SAPF,EAQEmb,SAEApsB,GAVF,EASEqP,IATF,EAUErP,MACAlD,EAXF,EAWEA,MACGuvB,EAZL,iFAkBI4G,EAAcpB,GAAe1c,IAEnC,OACI,sBAAKxU,UAAWsF,GAAQ+Y,UAAxB,UACI,cAACjO,GAAA,EAAD,yBACI7Z,GAAIA,GACJ6E,KAAMwX,GAAMxX,KACZ4X,WAAY,CACR+X,SAAUsG,GACV7F,SACAlb,SAAU,SAAAnV,GACNg2B,GAAmBh2B,GACnB41B,GAAe51B,EAAME,OAAOnC,QAEhCuyB,WAEJhuB,SAAU8Q,KAAW9Q,IACrBrB,MACI,cAACgV,GAAA,EAAD,yBACIhV,MAAOA,GACHm0B,GAFR,IAGIj0B,OAAQA,EACRlF,SAAUA,EACVw0B,WAEI,qBADOyE,EAEDA,EACAzE,MAIlB2G,gBAAiBL,EAAc,CAC3B1F,QAASj2B,KAEbqW,WACI,cAACkf,GAAA,EAAD,CACIvd,QAASA,GACT9Q,MAAOA,GACPmP,WAAYA,IAGpB/Q,SAAUA,EACViC,QAASA,EACT0O,OAAQA,EACRpD,UAAWA,EACXlQ,MAAOsb,GACPxU,UAAWA,EACXX,KAAMA,EACNlD,MAAOA,GACHuvB,GACAzoB,IAER,cAACuvB,GAAA,EAAD,CACIJ,OAAQC,EACRI,UAAWN,EACP,GAEA,CAAEO,kBAAkB,IAExB5B,QAASA,GAAQzhB,QACjBjF,0BACIA,EATR,SAYKkoB,EAAY38B,KAAI,SAAC0e,EAAYhM,GAAb,OACblK,IAAM2B,aAAa0V,EAAnB,aACIpb,IAAKiyB,GAAehY,GACpBA,aACAhM,QACAiM,mBACAC,WAAY3B,GAAM1Z,QAAUmzB,GAAehY,GAC3CG,eACAC,kBAAmB2X,IAChB6F,EAAa,CAACvvB,KAAM2R,mBC3V5Cse,GALG,SAAA3Q,GAEd,OAAOA,EAAOne,MAAP,UAAkBme,EAAO5mB,KAAzB,aAAkC4mB,EAAOne,MAAzC,KAAoDme,EAAO5mB,MCahEyJ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SAoCzByG,GAjCA,SAACzb,GACZ,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAC3GtK,GAAI,UAAW,cAAe,eAAgB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,0BAA0BF,MAAM,kDAClHgP,GAAI,UAAW,cAAe,eAAgB,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,uBAAuBF,MAAM,2CAA2C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAtL,SAC7D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,oCAAoCF,MAAM,2CAA2C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAnM,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,6BAA8B,+BAAiC,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,mDAAmDF,MAAM,0DAA0D8N,UAAU,6BAA6BrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAhP,SAC1F,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,8CAA8CF,MAAM,qDAAqD8N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAjO,SAChF,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAnM,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA3M,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC3QvB,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SCbnRimB,GAA+B,SAAC77B,GACzC,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAChB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACjF+P,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC7C,cAAC,GAAD,MAEHvL,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA8BnH+Z,GAzBa,SAAC,GAA2B,IAAzBl4B,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC7CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,YCxBlC1H,GA1CK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAkCxE,OAFiBjH,GAAegH,EA/BZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXoxB,YAAY,EACZC,aAAc,CACVx8B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,eAEuC,CAAEjH,eC7B9C/D,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,spBC4BC+7B,GAzBiB,SAACj8B,GAAW,IAChCkf,EAAelf,EAAfkf,GAAI5a,EAAWtE,EAAXsE,OACNR,EAAYC,cACZm4B,EAAmB5a,cAAY,SAAAC,GAAK,oBAAIA,QAAJ,IAAIA,GAAJ,UAAIA,EAAO4a,YAAX,aAAI,EAAaC,KAAKvqB,MAAK,SAAAwqB,GAAG,MAAe,wBAAXA,EAAI78B,QAA+B88B,MACzGC,EAAG,OAAGL,QAAH,IAAGA,OAAH,EAAGA,EAAkBK,IACxBjV,EACkB,qBAAbkV,SACDA,SAASC,eAAe,uBACxB,KACV,IAAKnV,IAAcpI,IAAOqd,EAAK,OAAO,KAEtC,IAAMG,EAAI,UAAMH,GAAN,OAAYrd,GAEtB,OAAOyd,uBACH,cAAC/0B,EAAA,EAAD,CAASC,MAAO/D,EAAU,mCAAoC,CAAEgE,EAAG,uBAAnE,SACI,cAACE,EAAA,EAAD,CAAYE,gBAAc,sBAAsB9C,MAAM,UAAUs3B,KAAMA,EAAMp4B,OAAQA,EAApF,SACI,cAACs4B,GAAD,QAEItV,IChBduV,GAAkB,SAAA78B,GACpB,IAAM6F,EAAWi3B,KACXzZ,EAAmBjc,IAAMmT,OAAO,MAChC3W,EJG+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAClGsP,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC5C,cAAC,GAAD,MAEJvL,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBIZzGyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,uCAAuC5a,OAAO,WAC1E,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC6zB,GAAD,CAAmBvmB,QAAS6M,IALzC,SAOI,cAAC,GAAD,CAAqBzf,QAASA,WAM9Ci5B,GAAgBx6B,aAAe,CAC3B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAGnBg7B,UCzBTve,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4G,oBAAqB,CACjBD,UAAW,EACX8W,aAAc,OAwBPkW,GApBW,SAAAh9B,GACN8N,KAEhB,OACI,cAAC,KAAD,2BAAY9N,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACtFgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE26B,YAAa,MAAQn3B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CgN,WAAS,EAArN,SAC5D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IAClRgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAUjD,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK6S,UAAU,MAAM9N,MAAM,oCAAoCgN,WAAS,WCtBhQvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAkCV+uB,GA9BW,SAAC,GAAuD,IAA5C5uB,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACvEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAG3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,cAAe,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAClEgQ,GAAI,SAAU,cAAe,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC7FsH,GAAI,SAAU,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC5C,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,cAAe,UAAY,cAAC,GAAD,eAAarU,cC5BzEse,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCmoB,GAAqB,SAAAn9B,GACvB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,IAChCtT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC/H,cAAC,GAAD,IACCsN,GAAI,SAAU,gBAAkB,cAAC,GAAD,CAAcxE,SAAS,SACxD,cAAC,GAAD,SA4BGutB,GAvBS,SAAAp9B,GAGpB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACtFgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE26B,YAAa,MAAQn3B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CgN,WAAS,EAArN,SAC5D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IACvQgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oCAAoCgN,WAAS,cCvDpQgrB,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,MAyB5Bi0B,GArBiB,SAAC,GAAyF,EAAvFr0B,UAAwF,IAApEqF,EAAmE,EAA5EC,QAA0B7D,EAAkD,EAAlDA,OAA0B6yB,GAAwB,EAA1Ch4B,OAA0C,EAAlClF,SAAkC,EAAxBk9B,UACxFhvB,GADgH,+EACtG8uB,GAAc,CAAE9uB,QAASD,KAEzC,IAAK5D,EAAQ,OAAO,KAEpB,IAAM5F,EAAW4F,EAAO5F,SAExB,GAAIA,IAAay4B,EAAU,OAAO,KAElC,IAAMl4B,EAAQP,EAAW,yDAAc,mDAEvC,OACI,cAACuZ,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAC2J,KAAK3J,EAAQ2J,MAEvB7S,MAAOA,KCrBbg4B,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,MAwB5Bm0B,GApBiB,SAAC,GAAyF,EAAvFv0B,UAAwF,IAApEqF,EAAmE,EAA5EC,QAA0B7D,EAAkD,EAAlDA,OAA0B6yB,GAAwB,EAA1Ch4B,OAA0C,EAAlClF,SAAkC,EAAxBk9B,UACxFhvB,GADgH,+EACtG8uB,GAAc,CAAE9uB,QAASD,KAEzC,IAAK5D,EAAQ,OAAO,KAEpB,IAAM+yB,EAAa/yB,EAAO+yB,WAE1B,GAAIA,IAAeF,EAAU,OAAO,KAEpC,IAAMl4B,EAAQo4B,EAAa,yDAAc,qEAEzC,OACI,cAACpf,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAC2J,KAAK3J,EAAQ2J,MACvB7S,MAAOA,K,UCUJq4B,GA/Be,SAAC,GAAmG,IAAlGz2B,EAAiG,EAAjGA,SAA+CyD,GAAkD,EAAvF6D,QAAuF,EAA7DtF,UAA6D,EAAlDyB,QAAQrK,EAA0C,EAA1CA,SAAUkF,EAAgC,EAAhCA,OAAQE,EAAwB,EAAxBA,SAC/F4H,GADuH,0FAChH7L,IAAIkJ,EAAQnF,EAAQ,KAD4F,EAG/EsD,WAAS6S,QAAQzU,GAH8D,kBAGtH02B,EAHsH,KAGrGC,EAHqG,WAK7H,OAAKvwB,EAAK5I,QAAWm5B,EAAmBn5B,OAGpC,gCACK4I,EAAKzO,KAAI,SAAA2S,GACN,OAAOxI,uBAAaF,WAASmY,KAAK2c,GAAe,CAC7Ct6B,IAAKkO,EAAI/R,GACTkL,OAAQ6G,OAGd1I,WAASjK,IAAIg/B,GAAoB,SAACh8B,EAAO0P,GAAR,OAC/B1P,GAASkH,yBAAelH,GACtBmH,uBAAanH,EAAD,aACVyB,IAAKiO,EACL7L,WACAiF,SACArK,WACAkF,UACG3D,EAAM5B,QAEX,WApB0C,MCFtDq9B,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,MAqB5Bi0B,GAjBiB,SAAC,GAA0F,EAAxFr0B,UAAyF,IAArEqF,EAAoE,EAA7EC,QAA0B7D,EAAmD,EAAnDA,OAAQnF,EAA2C,EAA3CA,OAAkBg4B,GAAyB,EAAnCl9B,SAAmC,EAAzBk9B,UACxFhvB,GADiH,+EACvG8uB,GAAc,CAAE9uB,QAASD,KACzC,IAAK5D,EAAQ,OAAO,KACpB,IAAMmzB,EAAWr8B,IAAIkJ,EAAQnF,GAC7B,GAAIs4B,IAAaN,EAAU,OAAO,KAElC,IAAMl4B,EAAQw4B,EAAW,oDAAc,uEAEvC,OACI,cAACxf,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAE2J,KAAM3J,EAAQ2J,MACzB7S,MAAOA,KCgBNy4B,GAA+B,SAAC99B,GACzC,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACjF+P,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,eAAC,GAAD,CAAuB9O,OAAO,OAAOqa,UAAU,EAA/C,UAC7C,cAAC,GAAD,IACA,cAAC,GAAD,CAAcra,OAAO,WAAWg4B,UAAU,IAC1C,cAAC,GAAD,CAAch4B,OAAO,aAAag4B,UAAU,IAC5C,cAACQ,GAAD,CAAmCx4B,OAAO,kCAAkCg4B,UAAU,OAEzFlpB,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA+BnHic,GAzBa,SAAC,GAA2B,IAAzBp6B,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC7CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,IAChCA,GAAI,SAAU,gBAAkB,cAAC,GAAD,Y,qBCNlC4pB,GA9DuB,SAAC,GAAqD,EAAnDx4B,SAAmD,EAAzCpF,SAA0C,IAAhCkF,EAA+B,EAA/BA,OAAQmF,EAAuB,EAAvBA,OAAW1K,EAAY,yDAClFmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACV/d,EAAYC,cACZm6B,EAAY18B,IAAIkJ,EAAQnF,GAE9B,GAAyB,IAArB24B,EAAUz5B,OACV,OACI,cAACysB,GAAA,EAAD,UACI,cAACpqB,GAAA,EAAD,CAAYC,QAAQ,QAApB,SACKjD,EAAU,gCAM3B,IAAMf,EAAOm7B,EAAUt/B,KAAI,SAAA+M,GAAI,MAAK,CAChCnM,GAAImM,EAAKmF,YAAYtR,GACrB6E,KAAMsH,EAAKmF,YAAYzM,KACvB0I,YAAapB,EAAKmF,YAAY/D,YAC9BD,MAAOnB,EAAKmF,YAAYhE,MACxBqxB,SAAUxyB,EAAKwyB,SACfC,OAAQzyB,EAAKyyB,WAIjB,OACI,cAACxQ,GAAA,EAAD,CAAyBzrB,MAAO,cAAhC,SACI,cAACD,EAAA,EAAD,CACIC,MAAO,CACH9B,SAAU,cACVoF,SAAU,eACV1C,KAAMs7B,KAAMt7B,EAAM,MAClBxD,IAAKwD,EAAKnE,KAAI,qBAAGY,MACjBwG,MAAOjD,EAAK0B,OACZjE,YAAa,CAAEoB,MAAO,OAAQC,MAAO,OACrC2H,YAAa,IARrB,SAWKL,EACG,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9Bi6B,cAAe,SAAA5zB,GAAM,gBAAO,IAAI+hB,KAAK/hB,EAAOyzB,UAAUzR,qBAAjC,cAA2D,IAAID,KAAK/hB,EAAO0zB,QAAQ1R,uBACxG1J,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAAC,GAAD,CAAmBvc,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,QAAQia,gBAAiBjR,EAAQyT,SACnD,cAACsB,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SACI,cAAC,GAAD,MAEJ,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,WAAWwa,UAAU,QAAQP,gBAAiBjR,EAAQyT,OAAQ9a,cAAeqH,EAAQwT,aAAcnC,UAAU,IAC/H,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,SAASwa,UAAU,QAAQP,gBAAiBjR,EAAQyT,OAAQ9a,cAAeqH,EAAQwT,aAAcnC,UAAU,aCxC/IiS,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OAkF1Bu+B,GA5ES,SAAAv+B,GACpB,IAAMw+B,EAAsBp3B,IAAMmT,OAAO,MACnCuO,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACCqU,GAAI,SAAU,cAAe,eAAiB,cAAC,GAAD,UAC3C,cAAC,KAAD,CAAW9O,OAAO,iBAErB8O,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,uCAAxC,SAClD,cAAC,GAAD,MAEHgP,GAAI,SAAU,cAAe,eAAgB,gBAC1C,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,uCACPe,MAAM,4CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGP5d,GAAI,SAAU,cAAe,eAAgB,gBAC1C,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,uBACPe,MAAM,4CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGP5d,GAAI,SAAU,cAAe,0BAA4B,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAK6mB,MACvFnqB,GAAI,SAAU,cAAe,0BAA4B,cAAC,GAAD,CAAayU,eAAgB0V,EAAqBn5B,MAAM,2BAAxD,SACtD,cAAC,GAAD,UACI,cAACo5B,GAAD,CAA+Bl5B,OAAO,8BAI9C,cAAC,GAAD,CAAWmO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC5D,cAAC,GAAD,IACC8O,GAAI,SAAU,cAAe,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACxD8O,GAAI,SAAU,cAAe,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAClD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACpFlY,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI5FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,eC3GlByM,GAAkB3+B,GCKTA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,omBCyCrCyM,GA1CK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAkCxE,OAFiBjH,GAAegH,EA/BZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXoxB,YAAY,EACZC,aAAc,CACVx8B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,8BAEuC,CAAEjH,eCtB9C66B,GAVqC,SAAA3+B,GAAK,OACrD,qCACKqU,GAAI,SAAU,6BAA8B,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACxFqU,GAAI,UAAW,+BAAiC,cAACE,GAAA,EAAD,eAAsBvU,IACtEqU,GAAI,SAAU,+BAAiC,cAAC,GAAD,eAAsBrU,QCAxE8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SA6BzB4pB,GA1B0B,SAAC5+B,GACtC,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,6BAA8B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAO1HtK,GAAI,UAAW,6BAA8B,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAlN,SAC5D,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,6BAA8B,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA1N,SAC5D,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,6BAA8B,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IACzSvB,GAAI,UAAW,6BAA8B,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SCsB/SipB,GAzB4B,SAAC,GAA2B,IAAzBj7B,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC5DmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,+BAAiC,cAAC,GAAD,IAC/CA,GAAI,SAAU,+BAAiC,cAAC,GAAD,IAC/CA,GAAI,SAAU,+BAAiC,cAAC,GAAD,YCpC1DyqB,GAAiC,SAAC9+B,GACpC,IAAM6F,EAAWk5B,KACX1b,EAAmBjc,IAAMmT,OAAO,MAChC3W,EDC+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,6BAA8B,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IACjHsP,GAAI,UAAW,6BAA8B,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC5G3N,GAAI,UAAW,6BAA8B,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC3D,cAAC,GAAD,MAEJvL,GAAI,UAAW,6BAA8B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACpI1N,GAAI,UAAW,6BAA8B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBCVxHyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,sDAAsD5a,OAAO,WACzF,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAkCsN,QAAS6M,IALxD,SAOI,cAAC,GAAD,CAAoCzf,QAASA,WAM7Dk7B,GAA+Bz8B,aAAe,CAC1C/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBi9B,UC7BTxgB,GAAY,kBAAM,GAiCT0gB,GApB0B,SAAAh/B,GAGrC,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,6BAA8B,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC/GgC,GAAI,SAAU,6BAA8B,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACjHgC,GAAI,SAAU,6BAA8B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC1E8O,GAAI,SAAU,6BAA8B,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACrGgC,GAAI,SAAU,6BAA8B,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE28B,2BAA4B,MAAQn5B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2DAA2DgN,WAAS,EAAnP,SAC3E,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,6BAA8B,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sDAAsDgN,WAAS,IAC/TgC,GAAI,SAAU,6BAA8B,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,mDAAmDgN,WAAS,WC5B7SvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAkCV+wB,GA9B0B,SAAC,GAAuD,IAA5C5wB,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACtFuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAG3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,6BAA8B,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IACjFgQ,GAAI,SAAU,6BAA8B,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC5GsH,GAAI,SAAU,6BAA8B,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC3D,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,6BAA8B,UAAY,cAAC,GAAD,eAAarU,cC1BxFse,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCmqB,GAAoC,SAAAn/B,GACtC,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,+BAAiC,cAACsT,GAAA,EAAD,IAC/CtT,GAAI,SAAU,+BAAiC,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC9I,cAAC,GAAD,IACCsN,GAAI,SAAU,+BAAiC,cAAC,GAAD,CAAcxE,SAAS,SACvE,cAAC,GAAD,SA4BGuvB,GAvBwB,SAAAp/B,GAGnC,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,6BAA8B,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC/GgC,GAAI,SAAU,6BAA8B,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACjHgC,GAAI,SAAU,6BAA8B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC1E8O,GAAI,SAAU,6BAA8B,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACrGgC,GAAI,SAAU,6BAA8B,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE28B,2BAA4B,MAAQn5B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2DAA2DgN,WAAS,EAAnP,SAC3E,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,6BAA8B,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IACrSgC,GAAI,SAAU,6BAA8B,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,8BAAgCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,mDAAmDgN,WAAS,cCtCjTwf,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OA0E1Bq/B,GArEwB,SAAAr/B,GACnC,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IAEA,cAAC,GAAD,UACKqU,GAAI,SAAU,6BAA8B,eAAiB,cAAC,KAAD,CAAW9O,OAAO,iBAGnF8O,GAAI,SAAU,6BAA8B,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,sDAAxC,SACjE,cAAC,GAAD,MAEHgP,GAAI,SAAU,6BAA8B,eAAgB,gBACzD,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,mDACPe,MAAM,2DACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAEP5d,GAAI,SAAU,6BAA8B,eAAgB,gBACzD,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,sCACPe,MAAM,2DACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGR,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,6BAA8B,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC3E,cAAC,GAAD,IACC8O,GAAI,SAAU,6BAA8B,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACvE8O,GAAI,SAAU,6BAA8B,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SACjE,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,6BAA8B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACnGlY,GAAI,SAAU,6BAA8B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI3GlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,0CC9FnD+5B,GAAiCv/B,GCKxBA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,gHCwCrCyM,GAzCK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAiCxE,OAFiBjH,GAAegH,EA9BZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACX40B,6BAA8B,CAC1B//B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,+BAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,yBAEuC,CAAEjH,eCrB9C07B,GAVgC,SAAAx/B,GAAK,OAChD,qCACKqU,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACnFqU,GAAI,UAAW,0BAA4B,cAACE,GAAA,EAAD,eAAsBvU,IACjEqU,GAAI,SAAU,0BAA4B,cAAC,GAAD,eAAsBrU,QCGnE8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SA4BzByqB,GAzBqB,SAACz/B,GACjC,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cACrHtK,GAAI,UAAW,wBAAyB,gBAAiB,kBAAoB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,yBAAyBF,MAAM,uDAAuD8N,UAAU,gBAAgBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAtM,SAC1E,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,wBAAyB,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,6BAA6BF,MAAM,+DAA+D8N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAA1N,SAC1F,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA7M,SACvD,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAArN,SACvD,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC/RvB,GAAI,UAAW,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SCNvS8pB,GAAyC,SAAC1/B,GACnD,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,wBAAyB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WAC3F+P,GAAI,UAAW,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SACvG3N,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SACvD,cAAC,GAAD,MAEHvL,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA8B7H4d,GAzBuB,SAAC,GAA2B,IAAzB/7B,EAAwB,EAAxBA,QAAY5D,EAAY,2BACvDmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,0BAA4B,cAAC,GAAD,IAC1CA,GAAI,SAAU,0BAA4B,cAAC,GAAD,IAC1CA,GAAI,SAAU,0BAA4B,cAAC,GAAD,YC7DrDurB,GAA4B,SAAC5/B,GAC/B,IAAM6F,EAAWg6B,KACXxc,EAAmBjc,IAAMmT,OAAO,MAChC3W,EDG+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,wBAAyB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAC5GsP,GAAI,UAAW,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SACvG3N,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SACtD,cAAC,GAAD,MAEJvL,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBCZnHyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,iDAAiD5a,OAAO,WACpF,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAA6BsN,QAAS6M,IALnD,SAOI,cAAC,GAAD,CAA+Bzf,QAASA,WAMxDg8B,GAA0Bv9B,aAAe,CACrC/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnB+9B,U,8FCvBT9xB,GAAYC,aAAW,CACzByN,OAAQ,CACJwC,cAAe,SACfnJ,SAAU,WACV7E,UAAW,EACX8W,aAAc,GAElB/M,MAAO,CACHwd,SAAU,SAGduI,WAAY,CACRprB,QAAS,OACT6b,cAAe,SACf2I,SAAU,GAEd6G,cAAe,CACX/vB,UAAW,UAqGJgwB,GAjGW,SAAC,GAA4E,IAA1E3/B,EAAyE,EAAzEA,SAAUkF,EAA+D,EAA/DA,OAAQ4N,EAAuD,EAAvDA,UAAW1N,EAA4C,EAA5CA,SAAUwB,EAAkC,EAAlCA,SAAU8iB,EAAwB,EAAxBA,QAAY/pB,EAAY,iFAE5FuO,EAAUT,KACVU,EAAWC,eAHiF,EAIjFwxB,aAAU9sB,GAApBsV,EAJ2F,oBAK5FtiB,EAASC,eACTtC,EAAYC,cACZiS,EAAO8N,eACL5R,EAAW6R,eAAX7R,OAR0F,EAS1E7K,oBAAS,GATiE,mBAS3FG,EAT2F,KASrF+I,EATqF,KAW5F2vB,EAAgBp8B,EAAU,aAAD,OAAcqP,EAAd,SAAgC,CAC3DtG,YAAa,EACb/E,EAAGq4B,KAAWC,SAASD,KAAWE,YAAYhgC,MAE5C+kB,EAAethB,EAAU,iBAAkB,CAC7CO,KAAK,GAAD,OAAK67B,KAQPI,EAAmB,SAACl8B,GACtBA,EAAMiU,iBACN9H,GAAQ,IAGN2W,EAAS,SAACnkB,GAAU,IAAD,EACiF/C,EAA9FuG,kBADa,MACA,CAAEC,KAAM,EAAGlG,QAAS,IADpB,IACiFN,EAAvD8F,YAD1B,MACiC,CAAElE,MAAO,KAAMC,MAAO,QADvD,IACiF7B,EAAhBsC,cADjE,MAC0E,GAD1E,EAYrB,GAVAkM,EACI+xB,aACIptB,EADW,UAER9S,EAFQ,YAEIkF,GACfgB,EACAT,EACAxD,IAIJynB,EAAS,CACT,IAAM5nB,EAAQX,eAAI0Q,EAAQ3M,EAAQ,IAClCyQ,EAAKmO,OAAO5e,EAAZ,sBAAwBpD,GAAxB,CAA+BY,EAAKvD,WAEpCwW,EAAKmO,OAAO5e,EAAQxC,EAAKvD,IAG7B+Q,GAAQ,IAGNiwB,EAAU,yCAAG,WAAMtuB,GAAN,UAAAuZ,EAAA,sDAEfhD,EACI,CAAEgY,QAAS,CAAE19B,KAAMmP,IACnB,CACIwuB,UAAW,YAAe,IAAZ39B,EAAW,EAAXA,KACVwN,GAAQ,GACR2W,EAAOnkB,IAEX49B,UAAW,SAACj6B,GACRP,EAAOO,EAAM2I,QAAS,YAVnB,2CAAH,sDAgBhB,OACI,qCACI,cAACzH,EAAA,EAAD,CAASC,MAAO/D,EAAU,oBAAqBiE,WAAY,IAA3D,SACI,cAACC,EAAA,EAAD,CAAY7C,QAnDJ,SAACf,GACjBA,EAAMiU,iBACN9H,GAAQ,IAiDkCtI,aAAW,oBAAoBgB,UAAWsF,EAAQiN,OAApF,SACI,cAAC,KAAD,QAGR,eAAColB,GAAA,EAAD,CAAQC,OAAO,QAAQr5B,KAAMA,EAAMgB,QAAS83B,EAAkB/xB,QAAS,CAAEwL,MAAOxL,EAAQwL,OAAxF,UACI,cAACgX,GAAA,EAAD,CACIlpB,MAAOud,EACP1R,OACI,cAAC1L,EAAA,EAAD,CAAY7C,QAASm7B,EAAkBr4B,aAAW,QAAQK,KAAK,QAA/D,SACI,cAAC,KAAD,CAAWzB,SAAS,gBAI/BkC,uBAAa9B,EAAU,CACpBxB,SAAUA,EAASikB,QAAQrpB,EAAU8S,GACrC9S,SAAU8S,EACVoS,KAAMib,EACN3wB,UAAU,EACV5G,UAAWsF,EAAQuxB,WACnBtY,QAAS,cAACE,GAAA,EAAD,CAASze,UAAWsF,EAAQwxB,yBChHnDzhB,GAAY,kBAAM,GAaXwiB,GAA6C,SAAA9gC,GAEtD,OACI,eAAC0kB,GAAA,EAAD,2BAAgB1kB,GAAhB,cACKqU,GAAI,SAAU,8BAA+B,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChHgC,GAAI,SAAU,8BAA+B,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClHgC,GAAI,SAAU,8BAA+B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,eA4BzEw7B,GAtB2B,SAAA/gC,GAGtC,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,8BAA+B,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChHgC,GAAI,SAAU,8BAA+B,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClHgC,GAAI,SAAU,8BAA+B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3E8O,GAAI,SAAU,8BAA+B,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE0+B,4BAA6B,MAAQl7B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4DAA4DgN,WAAS,EAArP,SAC5E,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,8BAA+B,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,2BAA2B4N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qEAAqEuQ,YAAU,EAAC0J,UAAU,gBAAzO,SAC/F,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,8BAA+B,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,+BAAiCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uDAAuDgN,WAAS,IAClUgC,GAAI,SAAU,8BAA+B,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,+BAAiCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oDAAoDgN,WAAS,WC3ChTiM,GAAY,kBAAM,GAElBxQ,GAAYC,aAAW,CACzBuZ,UAAW,CACP5S,QAAS,OACTC,WAAY,UAEhBxB,UAAW,CACPuB,QAAS,eACTK,MAAO,SAkBAksB,GAdmC,SAAAjhC,GAC9C,IAAMuO,EAAUT,KAChB,OACI,sBAAK7E,UAAWsF,EAAQ+Y,UAAxB,UACI,cAACpU,GAAA,EAAD,2BAAyBlT,GAAzB,IAAgCuO,QAAS,CAAE+Y,UAAW/Y,EAAQ4E,WAA9D,SACI,cAAC,KAAD,CAAwBsL,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,QAEhHjK,GAAI,SAAU,gCAAkC,cAAC,GAAD,2BAAuBrU,GAAvB,IAA8B+pB,SAAO,EAArC,SAC7C,cAAC,GAAD,WCpBVzL,GAAY,kBAAM,GAiCT4iB,GApBqB,SAAAlhC,GAGhC,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,wBAAyB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC1GgC,GAAI,SAAU,wBAAyB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAC5GgC,GAAI,SAAU,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UACrE8O,GAAI,SAAU,wBAAyB,gBAAiB,kBAAoB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,mBAAmB4N,UAAU,gBAAgBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uDAAuDuQ,YAAU,EAAC0J,UAAU,gBAA3M,SACzE,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,wBAAyB,+BAAgC,gCAAkC,cAAC,GAAD,CAA2C9O,OAAO,kCAAkC4N,UAAU,8BAA8B7Q,OAAQ,CAAE6+B,sBAAuB,MAAQ97B,MAAM,sEAAsEgN,WAAS,IACnWgC,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,iDAAiDgN,WAAS,IAChTgC,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,8CAA8CgN,WAAS,WC7B9RvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAiCVizB,GA7BqB,SAAC,GAAuD,IAA5C9yB,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACjFuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,wBAAyB,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAC5EgQ,GAAI,SAAU,wBAAyB,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IACvGsH,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SACtD,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,wBAAyB,UAAY,cAAC,GAAD,eAAarU,cCxBnFse,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCqsB,GAA+B,SAAArhC,GACjC,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,0BAA4B,cAACsT,GAAA,EAAD,IAC1CtT,GAAI,SAAU,0BAA4B,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aACzI,cAAC,GAAD,IACCsN,GAAI,SAAU,0BAA4B,cAAC,GAAD,CAAcxE,SAAS,SAClE,cAAC,GAAD,SA4BGyxB,GAvBmB,SAAAthC,GAC9B,IAAMuO,EAAUT,KAEhB,OACI,eAAC,GAAD,yBAAMjG,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,wBAAyB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC1GgC,GAAI,SAAU,wBAAyB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAC5GgC,GAAI,SAAU,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UACrE8O,GAAI,SAAU,wBAAyB,gBAAiB,kBAAoB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,mBAAmB4N,UAAU,gBAAgBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uDAAuDuQ,YAAU,EAAC0J,UAAU,gBAA3M,SACzE,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,wBAAyB,+BAAgC,gCAAkC,cAAC,GAAD,CAA2C9O,OAAO,kCAAkC4N,UAAU,8BAA8B7Q,OAAQ,CAAE6+B,sBAAuB,MAAQ97B,MAAM,sEAAsEgN,WAAS,IACnWgC,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,iDAAiDka,cAAehR,EAAQgzB,wBAAyBlvB,WAAS,IACrVgC,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,8CAA8CgN,WAAS,cCnD3RmvB,GAA+C,SAACxhC,GACzD,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,8BAA+B,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACjG+P,GAAI,UAAW,8BAA+B,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7G3N,GAAI,UAAW,8BAA+B,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC7D,cAAC,GAAD,MAEHvL,GAAI,UAAW,8BAA+B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrI1N,GAAI,UAAW,8BAA+B,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oB,WCrB5IjU,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC3C,MAAO,CACHtB,MAAOiE,EAAM4E,QAAQvH,MAAMyZ,KAC3BpD,WAAY1T,EAAMo4B,WAAWC,gBAEjC5H,QAAS,CACL10B,MAAOiE,EAAM4E,QAAQ6rB,QAAQ3Z,KAC7BpD,WAAY1T,EAAMo4B,WAAWC,oBAK/BC,GAAkB,SAACx/B,GAAD,OAAWA,EAAQ,IAAOA,EAAQ,KAUpDy/B,GAAU,SAAC5hC,GACb,IAAMuO,EAAUT,KACRpD,EAAmB1K,EAAnB0K,OAAQnF,EAAWvF,EAAXuF,OACVpD,EAAQX,IAAIkJ,EAAQnF,GACpBu0B,EAAU6H,GAAgBx/B,GAEhC,OAAQ,cAAC0/B,GAAA,EAAD,2BAAiB7hC,GAAjB,IAAwBiJ,UAAWmX,KAAW,gBAAG7R,EAAQurB,QAAUA,QAI/E8H,GAAQv/B,aAAe,CACnBgd,UAAU,GAGCuiB,UCpCT9zB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC3C,MAAO,CACHtB,MAAOiE,EAAM4E,QAAQvH,MAAMyZ,KAC3BpD,WAAY1T,EAAMo4B,WAAWC,gBAEjC5H,QAAS,CACL10B,MAAOiE,EAAM4E,QAAQ6rB,QAAQ3Z,KAC7BpD,WAAY1T,EAAMo4B,WAAWC,oBAI/BC,GAAkB,SAACx/B,GAAD,OAAWA,EAAQ,IAAOA,EAAQ,KAUpD2/B,GAAW,SAAC9hC,GACd,IAAMuO,EAAUT,KACRpD,EAAmB1K,EAAnB0K,OAAQnF,EAAWvF,EAAXuF,OACVpD,EAAQX,IAAIkJ,EAAQnF,GACpBu0B,EAAU6H,GAAgBx/B,GAEhC,OAAQ,cAAC0/B,GAAA,EAAD,2BAAiB7hC,GAAjB,IAAwBiJ,UAAWmX,KAAW,gBAAG7R,EAAQurB,QAAUA,QAI/EgI,GAASz/B,aAAe,CACpBgd,UAAU,GAGCyiB,UCnCTh0B,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC3C,MAAO,CACHtB,MAAOiE,EAAM4E,QAAQvH,MAAMyZ,KAC3BpD,WAAY1T,EAAMo4B,WAAWC,gBAEjC5H,QAAS,CACL10B,MAAOiE,EAAM4E,QAAQ6rB,QAAQ3Z,KAC7BpD,WAAY1T,EAAMo4B,WAAWC,oBAI/BC,GAAkB,SAACx/B,GAAD,OAAWA,EAAQ,IAAOA,EAAQ,IAUpD4/B,GAAe,SAAC/hC,GAClB,IAAMuO,EAAUT,KACRpD,EAAmB1K,EAAnB0K,OAAQnF,EAAWvF,EAAXuF,OACVpD,EAAQX,IAAIkJ,EAAQnF,GACpBmB,EAAQi7B,GAAgBx/B,GAE9B,OAAQ,cAAC0/B,GAAA,EAAD,2BAAiB7hC,GAAjB,IAAwBiJ,UAAWmX,KAAW,gBAAG7R,EAAQ7H,MAAQA,QAI7Eq7B,GAAa1/B,aAAe,CACxBgd,UAAU,GAGC0iB,UC1BArf,GAdI,SAAC1O,GAWhB,OATgBpK,mBAAQ,WACpB,OAAO+Y,KAAQ3O,GAAQzI,QAAO,SAAC4D,EAAKvN,GAIhC,OADAuN,EAFevN,EAAM5B,MAAMwiB,QAAU5gB,EAAM5B,MAAMuF,QAEnC3D,EACPuN,IACR,MACJ,KC+BM6yB,GAAyC,SAAChiC,GACnD,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOu3B,OAC/BxiB,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,wBAAyB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WAC3F+P,GAAI,UAAW,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACtE8O,GAAI,UAAW,wBAAyB,OAAS,cAAC,GAAD,CAAS9O,OAAO,KAAKF,MAAM,kDAAkD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACnO3N,GAAI,UAAW,wBAAyB,QAAU,cAAC,GAAD,CAAU9O,OAAO,MAAMF,MAAM,mDAAmD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACvO3N,GAAI,UAAW,wBAAyB,YAAc,cAAC,GAAD,CAAc9O,OAAO,UAAUF,MAAM,uDAAuD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACvP3N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,SAC3J3N,GAAI,UAAW,wBAAyB,YAAc,cAACkP,GAAA,EAAD,CAAWhe,OAAO,UAAU2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,SACvJ3N,GAAI,UAAW,wBAAyB,uBAAyB,cAAC,KAAD,CAAW9O,OAAO,uBACnF8O,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SACvD,cAAC,GAAD,MAEHvL,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA8B7HmgB,GAzBuB,SAAC,GAA2B,IAAzBt+B,EAAwB,EAAxBA,QAAY5D,EAAY,2BACvDmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOu3B,OAC/BxiB,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,0BAA4B,cAAC,GAAD,IAC1CA,GAAI,SAAU,0BAA4B,cAAC,GAAD,IAC1CA,GAAI,SAAU,0BAA4B,cAAC,GAAD,YCjErDwd,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OAuG1BmiC,GAlGmB,SAAAniC,GAAU,IAAD,QACjC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IAECqU,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,iDAAxC,SAC5D,cAAC,GAAD,MAGHgP,GAAI,SAAU,wBAAyB,+BAAgC,gCACpE,cAAC,IAAD,GACIlB,UAAU,8BACV7O,OAAO,iCACPe,MAAM,sEACN6D,QAAS,cAAC,GAAD,IAETpD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaH5d,GAAI,SAAU,wBAAyB,eAAgB,gBACpD,cAAC,IAAD,GACIlB,UAAU,cACV7O,OAAO,8CACPe,MAAM,sDACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaH5d,GAAI,SAAU,wBAAyB,eAAgB,gBACpD,cAAC,IAAD,GACIlB,UAAU,cACV7O,OAAO,8DACPe,MAAM,sDACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaH5d,GAAI,SAAU,wBAAyB,yBAA0B,0BAC9D,cAAC,IAAD,GACIlB,UAAU,wBACV7O,OAAO,6BACPe,MAAM,gEACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaJ,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACrE8O,GAAI,SAAU,wBAAyB,gBAAiB,kBAAoB,cAAC,GAAD,CAAa9O,OAAO,gBAAgB4N,UAAU,gBAA9C,SACzE,cAAC,KAAD,CAAW5N,OAAO,WAEtB,cAAC,GAAD,IACC8O,GAAI,SAAU,wBAAyB,OAAS,cAAC,KAAD,CAAW9O,OAAO,OAClE8O,GAAI,SAAU,wBAAyB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAC5D,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OAC9FlY,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAItGlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,qCC7HnD68B,GAA4BriC,GCKnBA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,yKCI9C4N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAiCVk0B,GA7B2B,SAAC,GAAuD,IAA5C/zB,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACvFuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,8BAA+B,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAClFgQ,GAAI,SAAU,8BAA+B,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC7GsH,GAAI,SAAU,8BAA+B,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC5D,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,8BAA+B,UAAY,cAAC,GAAD,eAAarU,cCxBzFse,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCstB,GAAqC,SAAAtiC,GACvC,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UAEKnT,GAAI,SAAU,gCAAkC,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC/I,cAAC,GAAD,IACCsN,GAAI,SAAU,gCAAkC,cAAC,GAAD,CAAcxE,SAAS,2BACxE,cAAC,GAAD,SA8BG0yB,GAzByB,SAAAviC,GAGpC,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,8BAA+B,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChHgC,GAAI,SAAU,8BAA+B,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClHgC,GAAI,SAAU,8BAA+B,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3E8O,GAAI,SAAU,8BAA+B,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE0+B,4BAA6B,MAAQl7B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4DAA4DgN,WAAS,EAArP,SAC5E,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,8BAA+B,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,2BAA2B4N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qEAAqEuQ,YAAU,EAAC0J,UAAU,gBAAzO,SAC/F,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,8BAA+B,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,+BAAiCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uDAAuDgN,WAAS,IACvTgC,GAAI,SAAU,8BAA+B,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,+BAAiCyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oDAAoDgN,WAAS,c,mBCvCpTwf,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OAKnCwiC,GAAyC,SAACxiC,GAC5C,OACI,cAACyiC,GAAA,EAAD,2BAAiBziC,GAAjB,aACI,cAAC0iC,GAAA,EAAD,CAAYriC,SAAU,8BAwEnBsiC,GArDyB,SAAA3iC,GAAU,IAAD,EACvC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAMiX,YAAa,cAAC,GAAD,IAA4C3pB,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAvH,cACI,cAAC,GAAD,IAECqU,GAAI,SAAU,8BAA+B,UAAW,WAAa,cAAC2jB,GAAD,CAAWzyB,OAAO,UAAUF,MAAM,uDAAlC,SAClE,cAAC,GAAD,MAGHgP,GAAI,UAAW,gBACZ,cAAC,IAAD,GACIlB,UAAU,cACV7O,OAAO,uCACPe,MAAM,4DACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaJ,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACI,cAAC,KAAD,CAAWvjB,OAAO,UAClB,cAAC,GAAD,IACA,cAAC,KAAD,CAAWA,OAAO,OACjB8O,GAAI,SAAU,OAAQ,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAC9B,cAAC,KAAD,CAAW5N,OAAO,WAEtB,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvC,cAAChJ,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI9ClY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,2CCtGnDq9B,GAAkC7iC,GCMzBA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,qhBC8CrCyM,GA/CK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAuCxE,OAFiBjH,GAAegH,EApCZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXk4B,UAAW,CACPrjC,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,aAEhBixB,aAAc,CACVx8B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,eAEuC,CAAEjH,eC3B9Cg/B,GATsB,SAAA9iC,GAAK,OACtC,qCACKqU,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACzEqU,GAAI,UAAW,gBAAkB,cAACE,GAAA,EAAD,eAAsBvU,IACvDqU,GAAI,SAAU,gBAAkB,cAAC,GAAD,eAAsBrU,QCEzD8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SA6BzB+tB,GA1BW,SAAC/iC,GACvB,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAC3GtK,GAAI,UAAW,cAAe,YAAa,cAAgB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,qBAAqBF,MAAM,yCAAyC8N,UAAU,YAAYrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAA3L,SACxD,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,uCAAuCF,MAAM,2CAA2C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAtM,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAnM,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA3M,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC3QvB,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SC3B1RotB,GAAkB,SAAChjC,GACrB,IAAM6F,EAAWo9B,KACX5f,EAAmBjc,IAAMmT,OAAO,MAChC3W,E3GG+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAClGsP,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC5C,cAAC,GAAD,MAEJvL,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iB2GZzGyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,uCAAuC5a,OAAO,WAC1E,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAmBsN,QAAS6M,IALzC,SAOI,cAAC,GAAD,CAAqBzf,QAASA,WAM9Co/B,GAAgB3gC,aAAe,CAC3B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBmhC,UCxBT1kB,GAAY,kBAAM,GAiCT4kB,GAxBW,SAAAljC,GAEtB,IAAMm8B,EAAO7a,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,OAAMG,MACxC6G,EAAe,CAAC,aAAa5+B,SAAS43B,GAAQA,EAAKpF,gBAAkB,IAE3E,OACI,cAAC,KAAD,2BAAY/2B,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,YAAa,cAAgB8uB,GAAgB,cAAC/W,GAAA,EAAD,CAAgB7mB,OAAO,eAAe4N,UAAU,YAAYrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCAAyCuQ,YAAU,EAAC0J,UAAU,gBAArL,SACvE,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,cAAe,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE8gC,YAAa,MAAQt9B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CgN,WAAS,EAArN,SAC5D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IAClRgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oCAAoCgN,WAAS,WC9BhQvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAiCVk1B,GA7BW,SAAC,GAAuD,IAA5C/0B,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACvEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,cAAe,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAClEgQ,GAAI,SAAU,cAAe,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC7FsH,GAAI,SAAU,cAAe,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC5C,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,cAAe,UAAY,cAAC,GAAD,eAAarU,cCxBzEse,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCsuB,GAAqB,SAAAtjC,GACvB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,IAChCtT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC/H,cAAC,GAAD,IACCsN,GAAI,SAAU,gBAAkB,cAAC,GAAD,CAAcxE,SAAS,SACxD,cAAC,GAAD,SA8BG0zB,GAzBS,SAAAvjC,GAGpB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,YAAa,cAAgB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,eAAe4N,UAAU,YAAYrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCAAyCuQ,YAAU,EAAC0J,UAAU,gBAArL,SACvD,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,cAAe,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAE8gC,YAAa,MAAQt9B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CgN,WAAS,EAArN,SAC5D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCgN,WAAS,IACrQgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,kCAAkCgN,WAAS,cCxClQmxB,GAAyB,SAACxjC,GAC5B,OACI,cAACyiC,GAAA,EAAD,2BAAiBziC,GAAjB,aACI,cAAC0iC,GAAA,EAAD,CAAYriC,SAAU,kBAK5BwxB,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OAwE1ByjC,GAnES,SAAAzjC,GACpB,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAMiX,YAAa,cAAC,GAAD,IAA4B3pB,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAvG,cACI,cAAC,GAAD,IAECqU,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,uCAAxC,SAClD,cAAC,GAAD,MAGHgP,GAAI,SAAU,cAAe,eAAgB,gBAC1C,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,oCACPe,MAAM,4CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGP5d,GAAI,SAAU,cAAe,eAAgB,gBAC1C,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,uBACPe,MAAM,4CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGR,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC5D,cAAC,GAAD,IACC8O,GAAI,SAAU,cAAe,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACxD8O,GAAI,SAAU,cAAe,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAClD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACpFlY,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI5FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,2BCtGnDm+B,GAAkB3jC,GCKTA,I,mPAAAA,GARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,qUC0ErCyM,GA3EK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAmExE,OAFiBjH,GAAegH,EAhEZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXsyB,YAAa,CACTz9B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhBk0B,2BAA4B,CACxBz/B,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,8BAEhBi2B,4BAA6B,CACzBxhC,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,+BAEhBq4B,YAAa,CACT5jC,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhB44B,cAAe,CACXnkC,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,gBAEhBgxB,YAAY,EACZj3B,SAAU0F,GACVizB,WAAYjzB,GACZo5B,gBAAiB,CACbpkC,IAAI,EACJ2+B,SAAUxzB,GACVyzB,OAAQzzB,GACRoC,aAAa,EACbhC,WAAY,kBAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,eAEuC,CAAEjH,e,WC/DvDgK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,GACN4E,SAAU,CAAEC,WAAY,KACxBC,UAAW,CACPD,WAAY,IACZ3X,MAAO,QAEX6X,eAAgB,CACZC,KAAM,YAEVC,eAAgB,CACZC,WAAY,EACZ3H,OAAQ,MAGZ,CAAEpR,KAAM,iCAGCw/B,GAAwC,SAAA5Y,GAAW,IACpDne,EAAuCme,EAAvCne,MAAOzI,EAAgC4mB,EAAhC5mB,KAAM88B,EAA0BlW,EAA1BkW,sBACf2C,EAAO,OAAG3C,QAAH,IAAGA,OAAH,EAAGA,EAAuB98B,KACjC0/B,EAAOj3B,EAAK,UAAMzI,EAAN,aAAeyI,EAAf,KAA0BzI,EAE5C,OADay/B,EAAO,UAAMA,EAAN,aAAkBC,GAASA,GAwCpC1mB,GApCI,SAAC,GASb,IAAD,EARFC,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QAEGvO,GACD,EAFF0d,kBAEE,mHACInP,EAAUT,GAAU,CAAES,QAASD,IAC/B01B,EAAyB,UAAG1mB,EAAW6jB,6BAAd,aAAG,EAAkC98B,KAC9D4Y,EAAc,UAAM+mB,EAAyB,UAAMA,EAAN,MAAsC,IAArE,OAA0E1mB,EAAWjZ,MACzG,IAAKiZ,EAAW9d,GAAI,OAAO,cAAC,KAAD,2BAAkCQ,GAAlC,oCAAesd,EAAW9d,IACrD,IAAMme,EAAgBJ,IAAqBjM,EACrCsM,EAAUC,KAAMZ,EAAgBQ,GAChCK,EAAQ3c,KAAM8b,EAAgBW,GAGpC,OACI,eAAC,KAAD,yBAEId,SAAUa,EACV1U,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQuO,SAAWU,KAEpBxd,GANR,cAQI,cAAC8G,GAAA,EAAD,CAAYC,QAAQ,QAAQkC,UAAWsF,EAAQ0O,eAA/C,SACKa,EAAMlf,KAAI,SAACqf,EAAM3M,GAAP,OAAkB,sBAAkBrI,UAAYgV,EAAKjB,UAAazO,EAAQyO,UAAY,GAApE,SAAyEiB,EAAKC,MAAnE5M,QAE5C,cAAC,GAAD,2BAAatR,GAAb,IAAoB0K,OAAQ4S,EAAYrU,UAAWsF,EAAQ4O,qBAVtDG,EAAW9d,KCzCtBykC,GAA2C,SAAAC,GAAU,MAAK,CAAEC,cAAeD,IAE3Ep2B,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SAiDzBovB,GA9CW,SAACpkC,GACvB,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAC3GtK,GAAI,UAAW,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,uBAAuBF,MAAM,2CAA2C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAAjM,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,uBAAuBF,MAAM,2CAA2C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAAjM,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,6BAA8B,+BAAiC,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,sCAAsCF,MAAM,0DAA0D8N,UAAU,6BAA6BrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAA9O,SAC1F,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,8DAA8DF,MAAM,qDAAqD8N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAA5P,SAChF,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,cAAe,8BAA+B,gCAAkC,cAAC+X,GAAA,EAAD,CAC5F7mB,OAAO,uCACP8+B,cAAeJ,GACf5+B,MAAM,2DACN8N,UAAU,8BACVrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTsV,YAAU,EACV0J,UAAU,gBARkF,SAS5F,cAAC,GAAD,CAAmBR,WAAY+kB,GAAuCplB,eAAgB,cAAC6lB,GAAD,IAA+C5lB,gBAAiBJ,SAEzJjK,GAAI,UAAW,cAAe,aAAe,cAAC,KAAD,CAAsB9O,OAAO,aAC1E8O,GAAI,UAAW,cAAe,eAAiB,cAAC,KAAD,CAAsB9O,OAAO,eAC5E8O,GAAI,UAAW,cAAe,mCAAoC,iBAAmB,cAAC,KAAD,CAAsB9O,OAAO,sDAAsDF,MAAM,mEAC9KgP,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAnM,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA3M,SAC7C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC3QvB,GAAI,UAAW,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,S,2CCrD1R9H,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2M,KAAM,CACFtB,QAAS,QAEbpD,MAAO,CACHyD,MAAO,GACPkB,WAAY,UAEhBsuB,YAAa,CACTnnB,WAAY,IAEhBonB,YAAa,CACTtL,SAAU,EACV9b,WAAY,GACZzV,YAAa,GACb4vB,SAAU,SA8BHkN,GAvB8B,SAAC,GAA4B,EAA1Bx7B,UAA2B,IAAbjJ,EAAY,6BAChEuO,EAAUT,KACGiW,eAAX7R,OAER,OACI,cAACwyB,GAAA,EAAD,2BAAgB1kC,GAAhB,aACI,eAAC2kC,GAAA,EAAD,CAAoBp2B,QAAS,CAAEyH,KAAMzH,EAAQyH,KAAM1E,MAAO/C,EAAQ+C,OAAlE,UACI,cAACwmB,GAAA,EAAD,CAAkBzyB,MAAM,wCAAxB,SACK,cAAG0yB,SAAH,IAAa6M,EAAb,EAAaA,eAAgBC,EAA7B,EAA6BA,UAAWrlC,EAAxC,EAAwCA,GAAOqE,EAA/C,qEACG,cAACwoB,GAAA,EAAD,2BAAexoB,GAAf,IAAqBrE,GAAE,UAAKA,EAAL,YAAmB+F,OAAQs/B,EAAU,YAAalgB,SAAUC,eAAY+P,WAAY,CAAEmQ,IAAKF,GAAkBA,EAAexG,OAASxzB,KAAOg6B,EAAexG,QAAQvzB,OAAO,cAAgB,YAGzN,cAACitB,GAAA,EAAD,CAAkBzyB,MAAM,sCAAsCka,cAAehR,EAAQg2B,YAArF,SACK,cAAGxM,SAAH,IAAa6M,EAAb,EAAaA,eAAgBC,EAA7B,EAA6BA,UAAWrlC,EAAxC,EAAwCA,GAAOqE,EAA/C,qEACG,cAACwoB,GAAA,EAAD,2BAAexoB,GAAf,IAAqBrE,GAAE,UAAKA,EAAL,UAAiB+F,OAAQs/B,EAAU,UAAWlQ,WAAY,CAAEoQ,IAAKH,GAAkBA,EAAezG,SAAWvzB,KAAOg6B,EAAezG,UAAUtzB,OAAO,cAAgB,YAGnM,cAACkR,GAAA,EAAD,CAAWxW,OAAO,cAAcga,cAAehR,EAAQi2B,YAAanyB,WAAS,WCvChF2yB,GAAmB,qDAOnBC,GAAkB,+CAOlBC,GAAuB,iFASvBC,GAAoB,kGAUpBC,GAAiB,mEAWxBC,GAAmB,6EAKTJ,GALS,0DAQND,GARM,yBASXG,GATW,sBAUdC,GAVc,kBAcZE,GAAsB53B,mBAAH,kXAE0F23B,IAK7GE,GAAuB73B,mBAAH,iMAEW23B,IAK/BG,GAAqB93B,mBAAH,gJAEY23B,IAI9BI,GAAoB/3B,mBAAH,2bAEuI23B,IAIxJK,GAAoBh4B,mBAAH,mKAMxBi4B,GAAqB,6EAKXV,GALW,uDAQXD,GARW,8BASRA,GATQ,yBAUbG,GAVa,sBAWhBC,GAXgB,kBAedQ,GAAwBl4B,mBAAH,0XAE0Fi4B,IAK/GE,GAAyBn4B,mBAAH,yMAEWi4B,IAKjCG,GAAuBp4B,mBAAH,sJAEYi4B,IAIhCI,GAAsBr4B,mBAAH,+fAE8Ji4B,IAIjLK,GAAsBt4B,mBAAH,yKAM1Bu4B,GAAuB,6EAKbhB,GALa,oEAQAD,GARA,yBASfG,GATe,sBAUlBC,GAVkB,kBAchBc,GAA0Bx4B,mBAAH,kYAE0Fu4B,IAKjHE,GAA2Bz4B,mBAAH,iNAEWu4B,IAKnCG,GAAyB14B,mBAAH,4JAEYu4B,IAIlCI,GAAwB34B,mBAAH,+eAE2Ju4B,IAIhLK,GAAwB54B,mBAAH,+KAM5B64B,GAAqC,6EAK3BtB,GAL2B,0DAQxBD,GARwB,yBAS7BG,GAT6B,sBAUhCC,GAVgC,kCAe9BoB,GAAwC94B,mBAAH,sbAEyF64B,IAK9HE,GAAyC/4B,mBAAH,qQAEU64B,IAKhDG,GAAuCh5B,mBAAH,mMAEW64B,IAI/CI,GAAsCj5B,mBAAH,4hBAE+J64B,IAIlMK,GAAsCl5B,mBAAH,sNAM1Cm5B,GAAgC,6EAKtB5B,GALsB,2DAQlBD,GARkB,8CASHA,GATG,yBAUxBG,GAVwB,sBAW3BC,GAX2B,kBAezB0B,GAAmCp5B,mBAAH,kaAEyFm5B,IAKzHE,GAAoCr5B,mBAAH,iPAEUm5B,IAK3CG,GAAkCt5B,mBAAH,oLAEWm5B,IAI1CI,GAAiCv5B,mBAAH,8mBAEqMm5B,IAInOK,GAAiCx5B,mBAAH,uMAMrCy5B,GAAuC,6EAK7BlC,GAL6B,mEAQjBD,GARiB,8BAS1BA,GAT0B,yBAU/BG,GAV+B,sBAWlCC,GAXkC,kBAehCgC,GAA0C15B,mBAAH,0bAEwFy5B,IAK/HE,GAA2C35B,mBAAH,yQAESy5B,IAKjDG,GAAyC55B,mBAAH,sMAEUy5B,IAIhDI,GAAwC75B,mBAAH,gmBAEoLy5B,IAIzNK,GAAwC95B,mBAAH,yNAM5C+5B,GAA0B,6EAKhBxC,GALgB,0DAQbD,GARa,yBASlBG,GATkB,sBAUrBC,GAVqB,kCAe1BsC,GAAyB,6EAKfzC,GALe,0DAQZD,GARY,oFAS0CI,GAT1C,2CAUjBD,GAViB,sBAWpBC,GAXoB,kCAgBlBuC,GAAwBj6B,mBAAH,0XAE0F+5B,IAK/GG,GAAyBl6B,mBAAH,yMAEW+5B,IAKjCI,GAAuBn6B,mBAAH,sJAEYg6B,IAIhCI,GAAsBp6B,mBAAH,gfAEgKg6B,IAInLK,GAAsBr6B,mBAAH,yKAMnBs6B,GAAsB,6EAKnB/C,GALmB,yDAQjBD,GARiB,6BASjBA,GATiB,4CAUFA,GAVE,6CAWDA,GAXC,+BAYfA,GAZe,yBAarBG,GAbqB,sBAcxBC,GAdwB,sMA4BtB6C,GAAyBv6B,mBAAH,0XAEyFs6B,IAK/GE,GAA0Bx6B,mBAAH,yMAEUs6B,IAKjCG,GAAwBz6B,mBAAH,s8BAOVu3B,GAGED,GACAA,GACeA,GAMDA,GAEZA,GACNG,GACHC,IAgBNgD,GAAuB16B,mBAAH,4iCAE4Zs6B,IAIhbK,GAAuB36B,mBAAH,yKAM3B46B,GAAuB,6EAKbrD,GALa,kDAQlBG,GARkB,6DAWXJ,GAXW,gCAYRA,GAZQ,4BAaZE,GAbY,yBAcfC,GAde,mTAmChBoD,GAA0B76B,mBAAH,8XAEyF46B,IAKhHE,GAA2B96B,mBAAH,6MAEU46B,IAKlCG,GAAyB/6B,mBAAH,s/BAOXu3B,GAGLG,GAGOJ,GACGA,GACJE,GACHC,IA0BTuD,GAAwBh7B,mBAAH,w1BAEmV46B,IAIxWK,GAAwBj7B,mBAAH,4KAM5Bk7B,GAAwB,6EAKd3D,GALc,kDAQnBG,GARmB,yCAUXJ,GAVW,yBAWhBG,GAXgB,iCAgBjB0D,GAA0Bn7B,mBAAH,4JAEWk7B,IAIlCE,GAAyBp7B,mBAAH,geAE8Jk7B,IAIpLG,GAAyBr7B,mBAAH,+KAM7Bs7B,GAAkB,0CAoBlBC,IAd4Bv7B,mBAAH,8WAE0Fs7B,IAKtFt7B,mBAAH,6LAEWs7B,IAKL,+EAKtB/D,GALsB,iKAeTD,GAfS,yBAgBxBG,GAhBwB,sBAiB3BC,GAjB2B,uBAqBzB8D,GAAmCx7B,mBAAH,kaAEyFu7B,IAKzHE,GAAoCz7B,mBAAH,iPAEUu7B,IAK3CG,GAAkC17B,mBAAH,oLAEWu7B,IAI1CI,GAAiC37B,mBAAH,kvBAEoRu7B,IAIlTK,GAAiC57B,mBAAH,uMAMrC67B,GAAqB,6EAKXtE,GALW,0PAuBfA,GAvBe,qDA4BduE,GAAwB97B,mBAAH,iYAE4F67B,IAKjHE,GAA0B/7B,mBAAH,gNAEY67B,IAKnCG,GAAuBh8B,mBAAH,yJAEa67B,IAIjCI,GAAsBj8B,mBAAH,g9BAEka67B,IAIrbK,GAAsBl8B,mBAAH,4KAM1Bm8B,GAAa,6EAKH5E,GALG,0KAnvBc,0CAmvBd,mEAuBN6E,GAAgBp8B,mBAAH,8VAE2Fm8B,IAKxGE,GAAiBr8B,mBAAH,6KAEYm8B,IAK1BG,GAAet8B,mBAAH,iIAEam8B,IAIzBI,GAAcv8B,mBAAH,0qBAEwRm8B,IAInSK,GAAcx8B,mBAAH,oJAMXy8B,GAAiBz8B,mBAAH,sdAEwLm8B,IAI7MO,GAAgB,2HASNnF,GATM,OAYToF,GAAmB38B,mBAAH,6WAE4F08B,IAK5GE,GAAqB58B,mBAAH,4LAEY08B,IAK9BG,GAAkB78B,mBAAH,4GAEO08B,IAI7BI,GAAkB,qGAORvF,GAPQ,OAUXwF,GAAqB/8B,mBAAH,kXAE2F88B,IAK7GE,GAAsBh9B,mBAAH,iMAEY88B,IAK/BG,GAAoBj9B,mBAAH,gHAEO88B,IAI/BI,GAAiC,4FAU1BC,GAAoCn9B,mBAAH,0aAE0Fk9B,IAK3HE,GAAqCp9B,mBAAH,yPAEWk9B,IAKpDG,GAAgC,kFASzBC,GAAmCt9B,mBAAH,kaAEyFq9B,IAKzHE,GAAoCv9B,mBAAH,iPAEUq9B,IAK3CG,GAAkBx9B,mBAAH,kMAUfy9B,GAAkBz9B,mBAAH,kOAUf09B,GAAY19B,mBAAH,qNCj5BTw6B,GAA0Bx6B,mBAAH,6IAXR,+HAmBtBI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC0G,IAAK,CAAEC,UAAW,QAGhBG,GAAsB,CACxBC,YAAY,EACZV,UAAU,EACVW,OAAO,EACPZ,SAAS,GAmNE47B,GAhNoC,SAAC,GAA6F,IAA3F7hC,EAA0F,EAA1FA,YAAyCP,GAAiD,EAA7ExD,SAA6E,EAAnEiF,OAAmE,EAA3DrK,SAA2D,EAAjD4I,WAErF9C,GAFsI,EAAtC0J,SAAsC,qFAC5HlB,eACDvI,gBAEToI,GADcK,eACHJ,gBAJ2H,GAK5HX,KACQzG,oBAAS,IAN2G,mBAMrIG,EANqI,KAM/H+I,EAN+H,OAOpGlJ,mBAAS,IAP2F,mBAOrI20B,EAPqI,KAOvHsP,EAPuH,OAQtEjkC,mBAAS,IAR6D,mBAQrIkkC,EARqI,KAQxGC,EARwG,KAWtI76B,GAFezK,eAEF1C,uBAAY,WACvB+M,GAAQ,GACR/B,EAASQ,gBACTzB,KAAiBk+B,MAAM,CACnBA,MAAOvD,GACPv6B,UAAW,CACPrL,OAAQ,CACJ+0B,MAAO7tB,MAIlBrK,MAAK,SAAAqM,GAEF,IACMkgC,EADelgC,EAAOzI,KAAK8N,MAC2BjS,KAAI,SAAAkS,GAC5D,IAAM66B,EAAyB76B,EAAY8yB,gBAAgBhlC,KAAI,SAAAgtC,GAE3D,OAAO,2BACAA,GADP,IAEIt6B,MAAM,GAAD,OAAKs6B,EAAOzN,SAAZ,YAAwByN,EAAOxN,aAI5C,OAAO,2BACAttB,GADP,IAEI8yB,gBAAiB+H,OAKnBE,EAA8BH,EAAuC9sC,KAAI,SAAAkS,GAAW,OAAIA,EAAY8yB,mBACpG2H,EAA8Bx6B,KAAeC,MAAM,KAArB,sBAA+B66B,GAA/B,CAA4D,WAEhGL,EAA+BD,GAC/BD,EAAgBI,MA/BpB,OAiCO,SAAChlC,GACJP,EAAyB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAlC/F,SAoCS,WACLb,EAASc,qBAGjB,CAAC9F,EAAagF,KAIZyC,EAAc,WAChBV,GAAQ,GACR+6B,EAAgB,IAChBE,EAA+B,KAuC7Bt6B,EAA+B,SAAC46B,EAAuBC,GAuBzD,OC1KO,SAACC,GAEZ,OAAOz+B,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,2HAEGs+B,EAAKptC,KAAI,SAAC8S,EAAKJ,GACd,MAAM,iCAAN,OACUA,EADV,6CACoDI,EAAIlS,GADxD,iCACmFkS,EAAI3O,KAAK6gC,gBAAgBhlC,KAAI,SAAAgtC,GACxG,MAAM,gBAAN,OAAuBA,EAAOzN,SAA9B,sBAAoDyN,EAAOxN,OAAS,IAAMwN,EAAOxN,OAAS,IAAM,KAAhG,0BAAsHwN,EAAO7+B,YAAc,IAAM6+B,EAAO7+B,YAAc,IAAM,KAA5K,SAFR,cAEoMi7B,OACrMx2B,KAAK,OAGhB7D,UAAW,GACXC,QAAS,SAAClH,GACNmH,MAAMnH,MD4JHulC,CAtBMjQ,EAAap9B,KAAI,SAAA8S,GAC1B,IAAMw6B,EAAqBx6B,EAAIkyB,gBACzBuI,EAAqB,sBACpBJ,GADoB,YAEpBG,EAAmBttC,KAAI,SAAAgtC,GACtB,IAAMtnC,EAASwnC,EAAsBj6B,MAAK,SAAAu6B,GAAa,OAAIA,EAAc96B,QAAd,UAA2Bs6B,EAAOzN,SAAlC,YAA8CyN,EAAOxN,WAC1G5yB,EAASlH,IAAmBinC,EAA4Bx5B,MAAK,SAAAC,GAAc,OAAIA,EAAeV,QAAf,UAA4Bs6B,EAAOzN,SAAnC,YAA+CyN,EAAOxN,YAAawN,EACxJ,OAAOpgC,EAAS,CACZ2yB,SAAU3yB,EAAO2yB,SACjBC,OAAQ5yB,EAAO4yB,OACfrxB,YAAavB,EAAOuB,YACpBvN,GAAIgM,EAAOhM,IACX,QACL8C,QAAO,SAAA2P,GAAE,OAAIA,OAEpB,MAAQ,CACJzS,GAAIkS,EAAIlS,GACRuD,KAAM,CACF6gC,gBAAiBuI,QAIUhtC,MAAM,SAAAqM,GAEzC,IAAMzI,EAAOnD,OAAOsS,OAAO1G,EAAOzI,MAAMnE,KAAI,SAAAqT,GAAE,OAAIA,EAAGzS,MAErD,OADA2G,EAAO,0BAA2B,OAAQ,CAAE0G,YAAa9J,EAAK0B,SACvD,CAAE1B,WAJN,OAMK,SAAA2D,GACJP,EAAOO,OA4BnB,OACA,qCACI,cAAC,KAAD,CACIvB,QAASwL,EAETtL,MAAM,oBACN4D,UAAS,iCAA4BA,GAJzC,SAOI,cAAC,KAAD,KAFI,UAIR,eAACkJ,GAAA,EAAD,CAAQ3K,KAAMA,EAAMgB,QAASyI,EAAamB,kBAAgB,oBAAoBC,WAAS,EAACC,SAAS,KAAjG,UACI,cAACC,GAAA,EAAD,CAAa/S,GAAG,oBAAhB,yOACA,cAAC4Z,GAAA,EAAD,UACI,cAACtS,GAAA,EAAD,CAAYC,QAAQ,QAAQ3B,MAAM,gBAAgB4hB,cAAY,EAA9D,gbAIJ,cAAC,KAAD,CACIxU,cAAe,CAAEoxB,gBAAiB2H,EAA4B3sC,KAAI,SAAAgtC,GAAM,MAAK,CACzEzN,SAAUyN,EAAOzN,SACjBC,OAAQwN,EAAOxN,OACfrxB,YAAa,GACbuE,MAAOs6B,EAAOt6B,WAElBoB,SAjDS,SAAAR,GAGjB,IAAM45B,EAAwB55B,EAAO0xB,gBAAgBthC,QAAO,SAAA+pC,GAAC,OAAIA,EAAE/6B,SAC7Dy6B,EAAoB75B,EAAO0xB,gBAAgBthC,QAAO,SAAA+pC,GAAC,OAAKA,EAAE/6B,SAEhE9C,EAASQ,gBAGTkC,EAA6B46B,EAAuBC,GAApD,SACa,kBAAKv9B,EAASc,mBAE3BiB,GAAQ,GACR+6B,EAAgB,IAChBE,EAA+B,KAoCvB74B,SAAQ,eAAOC,MACfC,aAAc1C,GAEd2C,yBAAuB,EACvBC,OAAQ,SAAAC,GAAS,OACjB,iCACI,cAACtO,EAAA,EAAD,CAAKuO,QAAQ,SAAb,SACI,cAAC,GAAD,CAA2B5S,SAAS,cAAckF,OAAO,sBAE7D,eAAC+N,GAAA,EAAD,WACI,cAAC,KAAD,CAAQnO,QAAS8L,EAAjB,kDAGA,cAAC,KAAD,CAAQ9L,QAAS6N,EAAUzD,aAAcnK,MAAM,UAA/C,8EEtOTknC,GAXsB,SAAAtsC,GAAK,OACtC,eAAC,WAAD,WACI,cAAC,GAAD,eAAqCA,IACpCqU,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACzEqU,GAAI,UAAW,gBAAkB,cAACE,GAAA,EAAD,eAAsBvU,IACvDqU,GAAI,SAAU,gBAAkB,cAAC,GAAD,eAAsBrU,QCHzDusC,GAAkB,SAACvsC,GACrB,IAAM6F,EAAW2mC,KACXnpB,EAAmBjc,IAAMmT,OAAO,MAChC3W,E3DK+B,SAAC5D,GACtC,IAAMuO,EAAUsT,KAehB,OAbgBa,GAAW,CACvBrO,GAAI,UAAW,cAAe,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAClGsP,GAAI,UAAW,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC7F3N,GAAI,UAAW,cAAe,OAAQ,QAAU,eAAC,GAAD,CAAuB9O,OAAO,OAAOqa,UAAU,EAA/C,UAC5C,cAAC,GAAD,IACA,cAAC,GAAD,CAAcra,OAAO,WAAWg4B,UAAU,IAC1C,cAAC,GAAD,CAAch4B,OAAO,aAAag4B,UAAU,IAC5C,cAACQ,GAAD,CAAmCx4B,OAAO,kCAAkCg4B,UAAU,OAE1FlpB,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACrH1N,GAAI,UAAW,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iB2DlBzGyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,uCAAuC5a,OAAO,WAC1E,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAmBsN,QAAS6M,IALzC,SAOI,cAAC,GAAD,CAAqBzf,QAASA,WAM9C2oC,GAAgBlqC,aAAe,CAC3B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnB0qC,UC3BTz+B,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCwS,MAAO,MAEP,CAAExX,KAAM,2BAGNooC,GAAuB,SAACtqC,GAC1B,MAAc,SAAVA,GACU,UAAVA,GACG,MAGLuqC,GAAuB,SAACvqC,GAC1B,OAAc,IAAVA,EAAuB,QACb,IAAVA,EAAwB,QACrB,IAmGIwqC,GAhGc,SAAA3sC,GAAU,IAE/BiJ,EAkBAjJ,EAlBAiJ,UAF8B,GAoB9BjJ,EAjBAuO,QAiBAvO,EAhBA6K,eAJ8B,MAIrB6hC,GAJqB,EAK9B72B,EAeA7V,EAfA6V,WACAxQ,EAcArF,EAdAqF,MAN8B,EAoB9BrF,EAbAyV,cAP8B,MAOrB,QAPqB,EAQ9Bgf,EAYAz0B,EAZAy0B,OACAlb,EAWAvZ,EAXAuZ,SACAmb,EAUA10B,EAVA00B,QACAxoB,EASAlM,EATAkM,QACA0gC,EAQA5sC,EARA4sC,YAZ8B,EAoB9B5sC,EAPAmB,aAb8B,MAatBsrC,GAbsB,EAc9BpsC,EAMAL,EANAK,SACAkF,EAKAvF,EALAuF,OACAof,EAIA3kB,EAJA2kB,SAhB8B,EAoB9B3kB,EAHA+G,eAjB8B,MAiBpB,SAjBoB,EAkB9BjE,EAEA9C,EAFA8C,aACGe,EAnB2B,YAoB9B7D,EApB8B,sLAqB5BuO,EAAUT,GAAU9N,GACpB8D,EAAYC,cAtBgB,EA6B9B6wB,aAAS,CACT/pB,SACA4pB,SACAlb,WACAmb,UACAvzB,QACAd,WACAkF,SACAof,WACAjhB,aAAcZ,IAbdtD,EAzB8B,EAyB9BA,GACAqc,EA1B8B,EA0B9BA,MACAgZ,EA3B8B,EA2B9BA,WA3B8B,IA4B9BC,KAAQpuB,EA5BsB,EA4BtBA,MAAO8Q,EA5Be,EA4BfA,QAabq1B,EAAkBD,EAAW,2BAExB1gC,GAFwB,IAG3B4gC,YAAY,aACRC,cAAc,GACV7gC,GAAWA,EAAQ4gC,aAE3BtR,gBAAgB,aACZwR,QAAQ,GACJ9gC,GAAWA,EAAQsvB,mBAG7BtvB,EAEN,OACI,eAACmN,GAAA,EAAD,iDACI7Z,GAAIA,GACAqc,GAFR,IAGIoxB,QAAM,EACNx3B,OAAQA,EACRpQ,MACI,cAACgV,GAAA,EAAD,CACIhV,MAAOA,EACPE,OAAQA,EACRlF,SAAUA,EACVw0B,WAAYA,IAGpBnuB,SAAU8Q,IAAW9Q,GACrBmP,WACI,cAACkf,GAAA,EAAD,CACIvd,QAASA,EACT9Q,MAAOA,EACPmP,WAAYA,IAGpB5M,UAAW0M,KAAWpH,EAAQsN,MAAO5S,GACrClC,QAASA,GACL8lC,GACArnC,GAAkB3B,IAxB1B,cA0BK+oC,GAAe,cAAC,KAAD,CAAUzqC,MAAM,GAAhB,SAAoB2B,EAAU,qBAC9C,cAAC,KAAD,CAAU3B,MAAM,QAAhB,SAAyB2B,EAAU,sBACnC,cAAC,KAAD,CAAU3B,MAAM,OAAhB,SAAwB2B,EAAU,0BChGxCmgC,GAA2C,SAAAC,GAAU,MAAK,CAAEC,cAAeD,IAmDlEgJ,GA1CW,SAAAltC,GAGtB,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAAO2C,cAAe,CAAE1N,UAAU,EAAO24B,YAAY,GAA1E,UACKppB,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACtFgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CuQ,YAAU,EAAC0J,UAAU,gBAA3L,SAC3D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CuQ,YAAU,EAAC0J,UAAU,gBAA3L,SAC3D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,6BAA8B,+BAAiC,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,gCAAgCO,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK6S,UAAU,6BAA6B9N,MAAM,0DAA0DuQ,YAAU,EAAC0J,UAAU,gBAAxO,SACzF,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,8BAA+B,gCAAkC,cAAC+X,GAAA,EAAD,CAC3F7mB,OAAO,iCACP8+B,cAAeJ,GACfn+B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACT6S,UAAU,8BACV9N,MAAM,2DACNuQ,YAAU,EAAC0J,UAAU,gBAPsE,SAQ3F,cAAC,GAAD,CAAmBR,WAAY+kB,GAAuCplB,eAAgB,cAAC6lB,GAAD,IAA+C5lB,gBAAiBJ,SAEzJjK,GAAI,SAAU,cAAe,gBAAiB,iBAAmB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,mBAAmB4N,UAAU,eAAe7Q,OAAQ,CAAEwO,YAAa,MAAQhL,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,6CAA6CgN,WAAS,EAAxN,SAC9D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,SAAU,cAAe,aAAe,cAAC84B,GAAD,CAAc5nC,OAAO,aACjE8O,GAAI,SAAU,cAAe,eAAiB,cAAC84B,GAAD,CAAc5nC,OAAO,eACnE8O,GAAI,SAAU,cAAe,oBAAsB,cAAC,GAAD,CAA2B9O,OAAO,oBACrF8O,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IAClRgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oCAAoCgN,WAAS,WC/ChQvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAqCVi/B,GAjCW,SAAC,GAAuD,IAA5C9+B,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACvEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAG3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,cAAe,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAClEgQ,GAAI,SAAU,cAAe,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC7FsH,GAAI,SAAU,cAAe,OAAQ,QAAU,eAAC,GAAD,2BAA2BrU,GAA3B,IAAkCuF,OAAO,OAAzC,UAC5C,cAAC,GAAD,IACA,cAAC,GAAD,CAAcA,OAAO,WAAWg4B,UAAU,IAC1C,cAAC,GAAD,CAAch4B,OAAO,aAAag4B,UAAU,IAC5C,cAACQ,GAAD,CAAmCx4B,OAAO,kCAAkCg4B,UAAU,WAG9F,cAAClW,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,cAAe,UAAY,cAAC,GAAD,eAAarU,cC5BzEikC,GAA2C,SAAAC,GAAU,MAAK,CAAEC,cAAeD,IAE3Ep2B,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCq4B,GAAqB,SAAArtC,GACvB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,IAChCtT,GAAI,SAAU,gBAAkB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC/H,cAAC,GAAD,IACCsN,GAAI,SAAU,gBAAkB,cAAC,GAAD,CAAcxE,SAAS,SACxD,cAAC,GAAD,SAmDGy9B,GA9CS,SAAAttC,GAGpB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,cAAe,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAChGgC,GAAI,SAAU,cAAe,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAClGgC,GAAI,SAAU,cAAe,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACtFgC,GAAI,SAAU,cAAe,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC3D8O,GAAI,SAAU,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CuQ,YAAU,EAAC0J,UAAU,gBAA3L,SAC3D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CuQ,YAAU,EAAC0J,UAAU,gBAA3L,SAC3D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,6BAA8B,+BAAiC,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,gCAAgC4N,UAAU,6BAA6BrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,0DAA0DuQ,YAAU,EAAC0J,UAAU,gBAAxO,SACzF,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,SAAU,cAAe,8BAA+B,gCAAkC,cAAC+X,GAAA,EAAD,CAC3F7mB,OAAO,iCACP8+B,cAAeJ,GACf9wB,UAAU,8BACVrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACT+E,MAAM,2DACNuQ,YAAU,EACV0J,UAAU,gBARiF,SAS3F,cAAC,GAAD,CAAmBR,WAAY+kB,GAAuCplB,eAAgB,cAAC6lB,GAAD,IAA+C5lB,gBAAiBJ,SAEzJjK,GAAI,SAAU,cAAe,gBAAiB,iBAAmB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,mBAAmB4N,UAAU,eAAe7Q,OAAQ,CAAEwO,YAAa,MAAQhL,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,6CAA6CgN,WAAS,EAAxN,SAC9D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,SAAU,cAAe,aAAe,cAAC84B,GAAD,CAAc5nC,OAAO,aACjE8O,GAAI,SAAU,cAAe,eAAiB,cAAC84B,GAAD,CAAc5nC,OAAO,eACnE8O,GAAI,SAAU,cAAe,oBAAsB,cAAC,GAAD,CAA2B9O,OAAO,oBACrF8O,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,uCAAuCgN,WAAS,IACvQgC,GAAI,SAAU,cAAe,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,eAAiByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,oCAAoCgN,WAAS,cCpFpQgrB,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,MAoB5BkkC,GAhBuB,SAAC,GAAgF,IAA9EtkC,EAA6E,EAA7EA,UAAoBqF,EAAyD,EAAlEC,QAA0B7D,EAAwC,EAAxCA,OACpE6D,GAD4G,EAAhChJ,OAAgC,EAAxBlF,SAAwB,oEAClGg9B,GAAc,CAAE9uB,QAASD,KACnCjJ,EAAK,UAAMuF,KAAOF,EAAOyzB,UAAUtzB,OAAO,MAArC,OAA4CH,EAAO0zB,OAAP,aAAsBxzB,KAAOF,EAAO0zB,QAAQvzB,OAAO,MAAQ,8DAAvG,OAAyHH,EAAOqC,YAAP,aAA2BrC,EAAOqC,aAAe,IAErL,OACI,cAACsR,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAC2J,KAAK3J,EAAQ2J,MACvBjP,UAAS,UAAKA,GACd5D,MAAOA,K,WCbbg4B,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,MAyB5BmkC,GArBsB,SAAC,GAA6F,EAA3FvkC,UAA4F,IAAxEqF,EAAuE,EAAhFC,QAA0B7D,EAAsD,EAAtDA,OAA0B+iC,GAA4B,EAA9CloC,OAA8C,EAAtClF,SAAsC,EAA5BotC,cAC7Fl/B,GADyH,mFAC/G8uB,GAAc,CAAE9uB,QAASD,KAEzC,IAAK5D,EAAQ,OAAO,KAEpB,IAAMgjC,EAAShjC,EAAOijC,iCAEtB,IAAe,IAAXD,GAAmBD,EAAc,OAAO,KAE5C,IAAMpoC,EAAQqoC,EAAS,qGAAuB,2GAE9C,OACI,cAACrvB,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAC2J,KAAK3J,EAAQ2J,MAEvB7S,MAAOA,K,wEChBNuoC,GAAe,CACxBC,SAAU,CACNC,MAAOC,KAAI,KACX7/B,KAAM6/B,KAAI,KACV5tB,KAAM4tB,KAAI,MAEdC,MAAO,CACHF,MAAOG,KAAO,KACd//B,KAAM+/B,KAAO,KACb9tB,KAAM8tB,KAAO,MAEjBC,QAAS,CACLJ,MAAOK,KAAO,KACdjgC,KAAMigC,KAAO,KACbhuB,KAAMguB,KAAO,MAEjBC,GAAI,CACAN,MAAOO,KAAM,KACbngC,KAAMmgC,KAAM,KACZluB,KAAMkuB,KAAM,MAEhBC,WAAY,CACRR,MAAO5sB,KAAK,KACZhT,KAAMgT,KAAK,KACXf,KAAMe,KAAK,OAMbpT,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCklC,IAAK,SAACvuC,GAAD,MAAY,CACboF,MAAO5D,IAAIosC,GAAc,CAAC5tC,EAAM0K,OAAOiS,OAAQ,cAEnD,CAAEtY,KAAM,sBAENmqC,GAAoBluB,gBAAK,SAACtgB,GACsDA,EAA1EiJ,UAD+B,IACpB5I,EAA+DL,EAA/DK,SAAUkF,EAAqDvF,EAArDuF,OADS,EAC4CvF,EAA7C0K,cADC,MACQ,GADR,EACuB+jC,GAAqBzuC,EAAhCsf,UAAgCtf,EAArByuC,SACvDlgC,GAFgC,YAC4CvO,EAD5C,kEAEtB8N,GAAU9N,IACpB8D,EAAYC,cACZ4Y,EAASnb,IAAIkJ,EAAQnF,GAC3B,IAAKoX,EAAQ,OAAO,KACpB,IAAMtX,EAAQvB,EAAU,aAAD,OAAczD,EAAd,kBAAgCkF,EAAhC,YAA0CoX,GAAU,CAAE7U,EAAG6U,IAEhF,OAAO8xB,EACA,eAAC3nC,GAAA,EAAD,CAAYC,QAAQ,QAAQiY,UAAU,OAAtC,UAA8C,cAAC,KAAD,CAAU/V,UAAWsF,EAAQggC,IAAK1nC,SAAS,UAAzF,IAAqGxB,KAEpG,cAACuC,EAAA,EAAD,CAASC,MAAOxC,EAAO0C,WAAY,IAAnC,SACI,cAAC,KAAD,CAAUkB,UAAWsF,EAAQggC,IAAK1nC,SAAS,eAK3D2nC,GAAkB/rC,YAAc,oBAEhC+rC,GAAkBnsC,aAAe,CAC7Bgd,UAAU,GAGCmvB,U,qBC5DT1gC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4X,KAAM,CACF9S,gBAAiB,cACjBtH,SAAUwC,EAAMo4B,WAAWiN,MAAM7nC,UAErC8nC,WAAY,CACRxgC,gBAAiB4/B,KAAI,UAgBda,GAZiB,SAAC,GAA2F,EAAzF3lC,UAAyF,EAA9EqW,UAA8E,EAAnEuvB,QAAmE,EAA1D3iC,QAA2D,IAAlDxB,EAAiD,EAAjDA,OAA0BnF,GAAuB,EAAzCupC,SAAyC,EAAvBvpC,QAC3FgJ,GADkH,0FACxGT,MAChB,IAAKpD,EAAQ,OAAO,KACpB,IAAMvI,EAAQX,IAAIkJ,EAAQnF,GACpBwpC,EAAoBnkC,KAAOzI,GAAO0I,OAAO,KACzCmkC,EAAepkC,OAASqkC,SAAS,EAAG,QAAQC,QAAQtkC,KAAOzI,IAEjE,OACI,cAACkc,GAAA,EAAD,CAAMhZ,MAAO0pC,EAAmBxgC,QAAS,CAAE2J,KAAM3J,EAAQ0S,MAAQhY,UAAS,UAAK+lC,EAAezgC,EAAQogC,WAAa,IAAMrmC,KAAK,WCmBzH6mC,GAAgC,SAACnvC,GAC1C,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAACstB,GAAA,EAAD,CAAgB7pC,OAAO,gBAAgB4N,UAAU,eAAe9N,MAAM,6CAA6Cqa,MAAM,EAAOE,UAAU,EAAO1Y,cAAeqH,EAAQwT,aAAcS,OAAO,eAA7L,SACI,cAAC,GAAD,CAAmBjd,OAAO,aAFlC,IAIK8O,GAAI,UAAW,eAAgB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WAClF+P,GAAI,UAAW,eAAgB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC9F3N,GAAI,UAAW,eAAgB,kBAAoB,cAAC,GAAD,CAAW9O,OAAO,gBAAgBF,MAAM,iCAAiC8lB,OAAO,kCACnI9W,GAAI,UAAW,eAAgB,OAAQ,QAAU,eAAC,GAAD,CAAuB9O,OAAO,OAAOqa,UAAU,EAA/C,UAC9C,cAAC,GAAD,IACA,cAAC,GAAD,CAAkB6tB,cAAY,OAEjCp5B,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACtH1N,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBA8BpHstB,GAzBc,SAAC,GAA2B,IAAzBzrC,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC9CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,iBAAmB,cAAC,GAAD,IACjCA,GAAI,SAAU,iBAAmB,cAAC,GAAD,IACjCA,GAAI,SAAU,iBAAmB,cAAC,GAAD,YCjE5Ci7B,GAAyB,SAACtvC,GAC5B,OACI,eAACyiC,GAAA,EAAD,2BAAiBziC,GAAjB,cACI,cAAC0iC,GAAA,EAAD,CAAYriC,SAAU,cACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,qBAK5BwxB,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OA6E1BuvC,GAxES,SAAAvvC,GAAU,IAAD,EACvB8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAMiX,YAAa,cAAC,GAAD,IAA4B3pB,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAvG,cACI,cAAC,GAAD,IAEA,eAAC,GAAD,WACKqU,GAAI,SAAU,cAAe,eAAiB,cAAC,KAAD,CAAW9O,OAAO,eAChE8O,GAAI,SAAU,cAAe,cAAe,gBAAkB,cAAC,GAAD,CAAa9O,OAAO,cAAc4N,UAAU,cAA5C,SAC3D,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,6BAA8B,+BAAiC,cAAC,GAAD,CAAa9O,OAAO,6BAA6B4N,UAAU,6BAA3D,SACzF,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,wBAAyB,0BAA4B,cAAC,GAAD,CAAa9O,OAAO,oDAAoD4N,UAAU,wBAAwB9N,MAAM,qDAAhH,SAC/E,cAAC,KAAD,CAAWE,OAAO,WAErB8O,GAAI,SAAU,cAAe,8BAA+B,gCAAkC,cAAC,GAAD,CAAa9O,OAAO,8BAA8B4N,UAAU,8BAA5D,SAC3F,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,oBAAsB,cAAC,GAAD,CAAkB9O,OAAO,kBAAkBka,UAAU,EAArD,SAChD,cAAC,GAAD,SAIPpL,GAAI,SAAU,cAAe,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,uCAAxC,SAClD,cAAC,GAAD,MAGHgP,GAAI,SAAU,cAAe,gBAAiB,iBAC3C,cAAC,IAAD,GACIlB,UAAU,eACV7O,OAAO,uBACPe,MAAM,6CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KANpD,yBAOa,IAPb,4BAQgB,cAAC2xB,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaJ,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,cAAe,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC5D,cAAC,GAAD,IACC8O,GAAI,SAAU,cAAe,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACxD8O,GAAI,SAAU,cAAe,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAClD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACpFlY,GAAI,SAAU,cAAe,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI5FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,2BC9GnDiqC,GAAkBzvC,G,2CCMlB+N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAiCVshC,GA7Ba,SAAC,GAAuD,IAA5CnhC,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACzEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,gBAAiB,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IACpEgQ,GAAI,SAAU,gBAAiB,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC/FsH,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC9C,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,gBAAiB,UAAY,cAAC,GAAD,eAAarU,cC1B3Ese,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAOjC06B,GAAsB,SAACjqC,EAAUjG,EAAIuD,GAAU,IAAD,EAC1C4sC,EAAc,OAAG5sC,QAAH,IAAGA,GAAH,UAAGA,EAAM6sC,oBAAT,aAAG,EAAoBpwC,GAC3C,OAAOmwC,EAAc,wBAAoBA,EAApB,SAA4C,iBAG/DE,GAAuB,SAAC,GAAmC,EAAjC9pB,QAAiC,EAAxBV,QAAyB,IAAbrlB,EAAY,qCACvDuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,kBAAoB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,SACvDwE,GAAI,SAAU,kBAAoB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aACjI,cAAC,GAAD,IACCsN,GAAI,SAAU,kBAAoB,cAAC,GAAD,CAAcxE,SAAU6/B,GAAqBjqC,SAAS,kBACzF,cAAC,GAAD,SA6BGqqC,GAxBW,SAAA9vC,GAGtB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,gBAAiB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAO8M,WAAS,EAAChN,MAAM,wCACnFgP,GAAI,SAAU,gBAAiB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAc8M,WAAS,EAAChN,MAAM,+CACjGgP,GAAI,SAAU,gBAAiB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC7D8O,GAAI,SAAU,gBAAiB,eAAgB,iBAAmB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,kBAAkB4N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,8CAA8CuQ,YAAU,EAAC0J,UAAU,gBAAhM,SAC/D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,gBAAiB,WAAa,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,SAASF,MAAM,0CAC/EgP,GAAI,SAAU,gBAAiB,aAAe,cAAC,KAAD,CAAc9O,OAAO,WAAWF,MAAM,4CACpFgP,GAAI,SAAU,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,yCAAyCgN,WAAS,IAC7QgC,GAAI,SAAU,gBAAiB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,iBAAmByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,sCAAsCgN,WAAS,cC5DnQ29B,GAAe,SAAC,GAAmH,IAAjH/mC,EAAgH,EAAhHA,UAAqCqW,GAA2E,EAArG/Q,QAAqG,EAA3E+Q,WAAW/Z,EAAgE,EAAhEA,OAAQmF,EAAwD,EAAxDA,OAAQulC,EAAgD,EAAhDA,eAAgBC,EAAgC,EAAhCA,gBAAoBlwC,EAAY,wGACrI8D,EAAYC,cAClB,IAAK2G,EAAQ,OAAO,KACpB,IAAMvI,EAAQX,IAAIkJ,EAAQnF,GACpB4qC,GAAuB,IAAVhuC,EACb8tC,GACW,IAAV9tC,EACG+tC,EACA5wB,EAEV,OACI,cAACxY,GAAA,EAAD,yBACIkY,UAAU,OACVjY,QAAQ,QACRkC,UAAWA,GACPmW,GAAuBpf,IAJ/B,aAMK8D,EAAUqsC,EAAW,CAAEroC,EAAGqoC,QAKvCH,GAAa3tC,aAAe,CACxBgd,UAAU,EACV4wB,eAAgB,kBAChBC,gBAAiB,oBAIrB,IAAME,GAAY9vB,eAAK0vB,IAEvBI,GAAU/tC,aAAe,CACrBgd,UAAU,GAGC+wB,UCrBTC,GAA2B,SAACrwC,GAC9B,OACI,eAACyiC,GAAA,EAAD,2BAAiBziC,GAAjB,cACI,cAAC0iC,GAAA,EAAD,CAAYriC,SAAU,cACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,sBAiDnBiwC,GA5CW,SAAAtwC,GACtB,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAMiX,YAAa,cAAC,GAAD,IAA8B3pB,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAzG,cACI,cAAC,GAAD,IAEA,eAAC,GAAD,WACKqU,GAAI,SAAU,gBAAiB,WAAa,cAAC,KAAD,CAAW9O,OAAO,WAC9D8O,GAAI,SAAU,gBAAiB,aAAe,cAAC,GAAD,CAAc9O,OAAO,WAAW8Z,UAAQ,EAAC4wB,eAAgB,8CAA+CC,gBAAiB,+CAAgD7qC,MAAO,4CAGlOgP,GAAI,SAAU,gBAAiB,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,yCAAxC,SACpD,cAAC,GAAD,MAGJ,cAAC,GAAD,CAAWqO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,gBAAiB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC9D,cAAC,GAAD,IACC8O,GAAI,WAAa,cAAC,KAAD,CAAW9O,OAAO,OACnC8O,GAAI,SAAU,gBAAiB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SACpD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACtFlY,GAAI,SAAU,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI7FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC3B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,6BClEnDgrC,GAAoBxwC,KCOXA,I,GAAAA,GARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,8KCCRswC,GAAgB,SAACrkC,EAASvK,GAC5B,OAAOqK,MAAMwkC,KAAK,IAAI7kB,IAAIzf,EAAQZ,QAAO,SAAC4D,EAAKzE,GAC3C,IAAMlL,EAAKgC,IAAIkJ,EAAQ9I,GACvB,OAAOpC,EAAE,sBAAO2P,GAAP,CAAY3P,IAAM2P,IAC5B,OA4GQxC,GAtEK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cA+DjB,OAnGmB,SAAC6D,EAAO4C,EAAR,OAAiB3G,EAAjB,EAAiBA,UAAcoI,EAA/B,oCAA6C,SAACC,EAAS1F,EAAqBR,EAAc5F,GAE7G,IAAM+L,EAAUhB,GAAaX,GACvB4B,EAAST,GAAkBnB,EAAO3G,GAExCmC,EACK2K,QAAQ,iBAAkB,CAAErR,IAAKixC,GAAcrkC,EAAS,mBACxDhN,MAAK,YACF,OADgB,EAAX4D,KACOwI,QAAO,SAAC4D,EAAKxD,GAErB,OADAwD,EAAIxD,EAAKnM,IAAMmM,EACRwD,IACR,OAENhQ,MAAK,SAAAuxC,GACF,IAAM3tC,EAAOoJ,EAAQvN,KAAI,SAAA8L,GAAM,OAAIoB,GAAYrB,EAAD,YAAC,eACxCC,GADuC,IAE1CimC,QAASD,EAAWlvC,IAAIkJ,EAAQ,oBACjC5G,MAGHwI,KAAWvJ,EAAD,aACNwJ,aAAc,IACdH,UACAC,UACGH,IACJ,SAACM,EAAKC,GACLC,aARQ,SAQUD,EAAK5E,UAuElBjC,CA5DA9B,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IACpD,CAChBrN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACb6jC,iBAAiB,EACjB5jC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXmG,YAAa,CACTtR,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhB8lC,eAAgB,CACZrxC,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,iBAEhB+lC,WAAY,CACRtxC,IAAI,EACJuxC,cAAc,EACdC,aAAa,EACbn5B,KAAM/M,GACNyxB,KAAK,EACLxxB,WAAY,cAEhBkmC,SAAU,CACNzxC,IAAI,EACJuxC,cAAc,EACdG,MAAM,EACNr5B,KAAM/M,GACNC,WAAY,YAEhB4lC,QAAS,CACLzjC,UAAWvC,GACXI,WAAY,kBAEhB4iC,iCAAkCnjC,GAClC2mC,YAAY,EACZC,UAAU,EACVhkC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,gBAEuC,CAAEjH,eC3GvDutC,GAAa,CAACxd,aAAM,4GAA6G,6BAEjIyd,GAAc,SAAC,GAAkB,IAAbtxC,EAAY,oBAC5Bg0B,EAAuBh0B,EAAvBg0B,SAAaC,EADe,YACLj0B,EADK,cAkBpC,OACE,cAAC,KAAD,2BACMi0B,GADN,IAEEtc,IAAK,SAAAA,GAASqc,EAASrc,EAAMA,EAAIuc,aAAe,OAEhDC,KArBS,SAAAhyB,GAAK,OAAI8J,MAAM9J,EAAMsC,QAAQ8sC,KAAK,UAsB3CC,KArBS,SAAArvC,GACX,GAAc,MAAVA,GAAiBA,EAAMsvC,SAAS,MAAO,OAAO,EAElD,IAAM3zB,EAAQ3b,EAAMiB,MAAM,KAE1B,QACE0a,EAAMrZ,OAAS,GACfqZ,EAAM/L,MAAK,SAAAkM,GAAI,MAAa,OAATA,GAAiBA,EAAO,GAAKA,EAAO,SAKlD9b,GAULiyB,mBAAmB,EACnBC,gBAAiB,SACjBC,OAAO,MAkBEod,GAZC,SAAC1xC,GACf,OACE,cAAC+b,GAAA,EAAD,2BACM/b,GADN,IAEE2kB,SAAU0sB,GACVp1B,WAAY,CACV+Y,eAAgBsc,Q,+CCrClBK,GAAWC,0BAAe,CAC9BC,IAAKC,MAGDC,GAAWC,aAAU,yCAAC,WAAOlqC,EAAP,qBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,eAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAYrBE,GAAS,IAAIC,KAAc,CAC/BR,IAAKS,IACLpmC,QAAS,CACPqmC,MAAM,EACNC,WAAW,EACXC,qBAAsB,EACtBC,iBAAiB,WAAD,8BAAE,6BAAAjnB,EAAA,sEACIwmB,eADJ,cACVC,EADU,yBAGT,CACLC,cAAeD,EAAK,iBAAaA,GAAU,KAJ7B,2CAAF,kDAAC,MAUfxyB,GAAOtc,kBACX,YAAgB,IAAbqoC,EAAY,EAAZA,MAAY,EACekH,aAAkBlH,GAAtCmH,EADK,EACLA,KAAMC,EADD,EACCA,UACd,MAAgB,wBAATD,GAAgD,iBAAdC,IAE3CT,GACAL,GAAS54B,OAAOw4B,KAGH,OAAImB,gBAAa,CAC9BpzB,QACAqzB,MAAO,IAAIC,iBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,gBAEf1H,MAAO,CACL0H,YAAa,mBCLb3tC,ICjDYkI,mBAAH,6LDiDW,SAAC,GAAD,EACtB0lC,WADsB,EAEtB9wC,OAFsB,EAGtB+hC,cAHsB,EAItB9qB,SAJsB,EAKtBjZ,QALsB,EAMtB6S,UANsB,EAOtBqW,gBAPsB,EAQtB6pB,gBARsB,EAStBvtC,KATsB,EAUtBwtC,WAVsB,IA5CM,EAuDzBzvC,EAXmB,uJA5CM,EAwDHA,GAvDzB0vC,YAD2B,EAE3B39B,WAF2B,EAG3B49B,UAH2B,EAI3BzuC,SAJ2B,EAK3BU,SAL2B,EAM3BguC,aAN2B,EAO3Bz0B,UAP2B,EAQ3Bjc,KAR2B,EAS3BD,aAT2B,EAU3B+H,OAV2B,EAW3B6oC,aAX2B,EAY3Bn0B,cAZ2B,EAa3B7b,aAb2B,EAc3BiwC,eAd2B,EAe3B93B,MAf2B,EAgB3Bla,QAhB2B,EAiB3BkzB,WAjB2B,EAkB3BxvB,MAlB2B,EAmB3BmxB,oBAnB2B,EAoB3B7W,OApB2B,EAqB3BmV,KArB2B,EAsB3B8e,SAtB2B,EAuB3BvvC,KAvB2B,EAwB3B6H,QAxB2B,EAyB3B4S,WAzB2B,EA0B3BgN,YA1B2B,EA2B3B3qB,MA3B2B,EA4B3BuJ,OA5B2B,EA6B3BiN,IA7B2B,EA8B3B5E,OA9B2B,EA+B3B1S,SA/B2B,EAgC3BkF,OAhC2B,EAiC3BsN,aAjC2B,EAkC3BkN,UAlC2B,EAmC3Bjc,UAnC2B,EAoC3Bkc,gBApC2B,EAqC3BnI,KArC2B,EAsC3B8M,SAtC2B,EAuC3BkvB,eAvC2B,EAwC3B1xC,MAxC2B,qeA0DzBoN,GAAe,SAAAnL,GAEjB,OADAA,EAAMiU,kBACC,GAGL+W,GAAwB,aAExBC,GAAsB,CAAEnd,QAAQ,GAoEvB4hC,GAjEwB,SAAC,GAMjC,IALH7sC,EAKE,EALFA,SACA1B,EAIE,EAJFA,OACA4N,EAGE,EAHFA,UAGE,IAFF7O,cAEE,MAFO,KAEP,EADCT,EACD,0DACIoC,EAAeC,eACfC,EAASC,eAFb,GAG2B2tC,eAArBl4B,MAAS1Z,MACoB/B,eAA7BM,EAJN,EAIMA,aAAcE,EAJpB,EAIoBA,WAGhBqvB,EAAezsB,uBAAY,YAAiB,IAAd0O,EAAa,EAAbA,OAC1B8hC,EAAc/sC,EAASjH,MAAMuF,OAC7BkY,EAAcjc,IAAI0Q,EAAQ8hC,GAC1BC,EAAkBx2B,EAAW,gBAAMu2B,EAAcv2B,QAAgBna,EAoBnE2wC,GAlBkB,SAACA,GACnBhuC,EAAaiuC,iBAAiB/gC,EAAW,CACrC7Q,OAAQ2xC,EACR3zC,QAAS,MAERnB,MAAK,YAAsB,IAAnB4D,EAAkB,EAAlBA,KACCoxC,GADiB,EAAZnuC,MACUvE,IAAI,GAAI8D,EAAQxC,EAAK0B,OAAS1B,EAAKnE,KAAI,SAAA+M,GAAI,OAAIA,EAAKrH,MAAW,CAAC,KACrF1D,EAAW,2BACJF,GACAyzC,OARf,OAYW,SAACztC,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAKlG+kC,CAAcH,KAGnB,CAACvzC,IAEJ,OACI,cAAC,KAAD,CACIgS,SAAU0c,GACVzc,SAAQ,eAAOC,MACfG,OAAQ,SAAAC,GAAS,OACb,qCACI,cAAC,KAAD,CACIH,aAAcwc,GACd9V,SAAU0W,IAGd,qBAAKvd,SAAUnD,GAAf,SACKxG,uBAAa9B,EAAD,aACT5G,SAAU8S,GACP3N,GAAkB3B,cEjH3CiK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SAGlCsJ,GAAY,kBAAM,GAmDT+1B,GAjDY,SAACr0C,GACxB,IAAMuO,EAAUT,KAEhB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,eAAgB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cAC5GtK,GAAI,UAAW,eAAgB,kBAAoB,cAAC,GAAD,CAAS9O,OAAO,gBAAgBF,MAAM,iCAAiCN,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cACjKtK,GAAI,UAAW,eAAgB,kBAAoB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,gBAAgBF,MAAM,iCAAiCN,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cACnKtK,GAAI,UAAW,eAAgB,qCAAuC,cAAC,KAAD,CAAsB9O,OAAO,qCACnG8O,GAAI,UAAW,eAAgB,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,uBAAuBF,MAAM,4CAA4C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAvL,SAC7D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,UAAW,eAAgB,iBAAkB,kBAAoB,cAAC,GAAD,CAAa9O,OAAO,oCAAoCF,MAAM,4HAA6BvC,cAAc,IAO9KuR,GAAI,UAAW,eAAgB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAApM,SAC9C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,OAE9DjK,GAAI,UAAW,eAAgB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA5M,SAC9C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,OAE9DjK,GAAI,UAAW,eAAgB,aAAc,cAAgB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,iBAAiBF,MAAM,4CAA4C8N,UAAU,YAAY7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA5N,SAC1D,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,OAE9DjK,GAAI,UAAW,eAAgB,aAAc,cAAgB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,qBAAqBF,MAAM,gDAAgD8N,UAAU,YAAY7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAApO,SAC1D,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,OAE9DjK,GAAI,UAAW,eAAgB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC7QvB,GAAI,UAAW,eAAgB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IACrRvB,GAAI,UAAW,eAAgB,oBAAsB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,kBAAkB0D,UAAWsF,EAAQoQ,cAC5GtK,GAAI,UAAW,eAAgB,2BAA6B,cAAC,GAAD,CAAkB9O,OAAO,kCAAkCF,MAAM,0CAA0C4D,UAAWsF,EAAQoQ,cAC1LtK,GAAI,UAAW,eAAgB,2BAA6B,cAAC,GAAD,CAAa9O,OAAO,iCAAiCF,MAAM,kDAAkDvC,cAAc,IACvLuR,GAAI,UAAW,eAAgB,kBAAoB,cAAC,GAAD,CAAa9O,OAAO,wBAAwBF,MAAM,yCAAyCvC,cAAc,IAC5JuR,GAAI,UAAW,eAAgB,oBAAsB,cAAC,GAAD,CAAWhQ,KAAK,iBAAiBkB,OAAO,kBAAkB4lB,OAAO,kCAAkC7L,UAAU,gBAAgBja,MAAM,kDACxLgP,GAAI,UAAW,eAAgB,kBAAoB,cAAC,GAAD,cAAWhQ,KAAK,eAAekB,OAAO,gBAAgBF,MAAM,iCAAiC8lB,OAAO,iCAApG,QAA0I,gDAC7L9W,GAAI,UAAW,eAAgB,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,EAAChN,MAAM,kDAChG,cAAC,GAAD,CAAgCE,OAAO,mBAAmB4N,UAAU,eAAe7O,OAAO,OAAOe,MAAM,6CAAvG,SACI,cAAC,GAAD,CAAWE,OAAO,SAASlB,KAAK,kBCnDjCiwC,GATuB,SAAAt0C,GAAK,OACvC,eAAC,WAAD,WACKqU,GAAI,SAAU,eAAgB,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IAC1EqU,GAAI,UAAW,iBAAmB,cAACE,GAAA,EAAD,eAAsBvU,IACxDqU,GAAI,SAAU,iBAAmB,cAAC,GAAD,eAAsBrU,QCD1Du0C,GAAmB,SAACv0C,GACtB,IAAM6F,EAAW2uC,KACXnxB,EAAmBjc,IAAMmT,OAAO,MAChC3W,EhBO+B,SAAC5D,GACtC,IAAMuO,EAAUsT,KAqBhB,OAnBgBa,GAAW,CACvB,cAAC0sB,GAAA,EAAD,CAAgB7pC,OAAO,gBAAgB4N,UAAU,eAAe9N,MAAM,6CAA6Cqa,MAAM,EAAOE,UAAU,EAAO1Y,cAAeqH,EAAQwT,aAAcS,OAAO,eAA7L,SACI,cAAC,GAAD,CAAmBjd,OAAO,aAE9B8O,GAAI,UAAW,eAAgB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IACnGsP,GAAI,UAAW,eAAgB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC9F3N,GAAI,UAAW,eAAgB,OAAQ,QAAU,eAAC,GAAD,CAAuB9O,OAAO,OAAOqa,UAAU,EAA/C,UAC7C,cAAC,GAAD,IACA,cAAC,GAAD,CAAkB6tB,cAAY,OAElC,cAAC2B,GAAA,EAAD,CAAgB7pC,OAAO,gBAAgB4N,UAAU,iBAAiB9N,MAAM,kDAAkD0a,UAAU,QAAQL,MAAM,EAAOE,UAAU,EAAO1Y,cAAeqH,EAAQwT,aAAcS,OAAO,oBAAtN,SACI,cAAC,GAAD,CAAyBjd,OAAO,YAAY+Z,UAAU,8DAE1DjL,GAAI,UAAW,eAAgB,oBAAsB,cAAC,GAAD,CAAW9O,OAAO,kBAAkBF,MAAM,gDAAgD8lB,OAAO,kCAAkCvL,UAAU,IAClMvL,GAAI,UAAW,eAAgB,kBAAoB,cAAC,GAAD,CAAW9O,OAAO,gBAAgBF,MAAM,8CAA8C8lB,OAAO,gCAAgCvL,UAAU,IAC1LvL,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACtH1N,GAAI,UAAW,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBgB1B1GyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,wCAAwC5a,OAAO,WAC3E,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAoBsN,QAAS6M,IAL1C,SAOI,cAAC,GAAD,CAAsBzf,QAASA,WAM/C2wC,GAAiBlyC,aAAe,CAC5B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnB0yC,I,GAAAA,MCzBFE,IAPK1mC,cAAW,SAAA1E,GAAK,MAAK,CACnC4G,oBAAqB,CACjBD,UAAW,EACX8W,aAAc,OAIsB,SAAA9mB,GACxC,OACI,eAAC0kB,GAAA,EAAD,2BAAgB1kB,GAAhB,cACKqU,GAAI,SAAU,gBAAiB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,EAAChN,MAAM,wCACzGgP,GAAI,SAAU,gBAAiB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAc8M,WAAS,EAAChN,MAAM,+CACjGgP,GAAI,SAAU,gBAAiB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC7D8O,GAAI,SAAU,gBAAiB,WAAa,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,SAASF,MAAM,wCAAwCsf,SAAUC,iBACjIvQ,GAAI,SAAU,gBAAiB,aAAe,cAAC,KAAD,CAAc9O,OAAO,WAAWF,MAAM,kDCV3FiZ,GAAY,kBAAM,GAElBxQ,GAAYC,aAAW,CACzBuZ,UAAW,CACP5S,QAAS,eACT1E,UAAW,EACX8W,aAAc,KAmBP4tB,GAf0B,SAAA10C,GACrC,IAAMuO,EAAUT,KAEhB,OACI,qCACI,cAACoF,GAAA,EAAD,2BAAyBlT,GAAzB,IAAgCuO,QAAS,CAAC+Y,UAAW/Y,EAAQ+Y,WAA7D,SACI,cAAC,KAAD,CAAwB7I,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,QAEjH,cAAC,GAAD,2BAAuBte,GAAvB,IAA8B+pB,SAAO,EAArC,SACI,cAAC,GAAD,WChBVzL,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCk4B,wBAAyB,CACrB7sB,QAAS,OACTC,WAAY,YAEhBggC,UAAW,CACP3kC,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,QAAQ,QA6BrB4/B,GAzBY,SAAA50C,GACvB,IAAMuO,EAAUT,KAEhB,OACI,cAAC,KAAD,2BAAY9N,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAAO2C,cAAe,CAAEm7B,kCAAkC,GAA/E,UACKt5B,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACjGgC,GAAI,SAAU,eAAgB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACnGgC,GAAI,SAAU,eAAgB,oBAAsB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,oBACtE8O,GAAI,SAAU,eAAgB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC5D8O,GAAI,SAAU,eAAgB,qCAAuC,cAAC84B,GAAD,CAAc5nC,OAAO,qCAC1F8O,GAAI,SAAU,eAAgB,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CuQ,YAAU,EAAC0J,UAAU,gBAA5L,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,eAAgB,iBAAkB,kBAAoB,cAAC,GAAD,CAAkC9O,OAAO,oBAAoB4N,UAAU,gBAAgB7Q,OAAQ,CAAEstC,aAAc,MAAQ9pC,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,+CAA+Cka,cAAehR,EAAQgzB,wBAAyBlvB,WAAS,IAC9VgC,GAAI,SAAU,eAAgB,UAAW,WAAa,cAACgF,GAAA,EAAD,CAAWhU,MAAM,uCAASP,UAAQ,EAAC+vC,YAAY,uPAA+C5rC,UAAWsF,EAAQomC,UAAWnZ,gBAAiB,CAAEwR,QAAQ,GAAQjmC,QAAQ,SAASsL,WAAS,IAC/OgC,GAAI,SAAU,eAAgB,aAAc,cAAgB,cAACgF,GAAA,EAAD,CAAWhU,MAAM,4HAAwBP,UAAQ,EAAC+vC,YAAY,4UAA8D5rC,UAAWsF,EAAQomC,UAAWnZ,gBAAiB,CAAEwR,QAAQ,GAAQjmC,QAAQ,SAASsL,WAAS,IACnRgC,GAAI,SAAU,eAAgB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCgN,WAAS,IACxPgC,GAAI,SAAU,eAAgB,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACvFgC,GAAI,SAAU,eAAgB,aAAe,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,WAAW8M,WAAS,WChC9FvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAkCV2mC,GA9BY,SAAC,GAAuD,IAA5CxmC,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACxEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,eAAgB,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IACnEgQ,GAAI,SAAU,eAAgB,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC9FsH,GAAI,SAAU,eAAgB,OAAQ,QAAU,eAAC,GAAD,2BAA2BrU,GAA3B,IAAkCuF,OAAO,OAAzC,UAC7C,cAAC,GAAD,IACA,cAAC,GAAD,CAAkBkoC,cAAY,WAGtC,cAACpmB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,eAAgB,UAAY,cAAC,GAAD,eAAarU,c,UCzB1Ese,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,KAGnCusB,wBAAyB,CACrB7sB,QAAS,OACTC,WAAY,YAEhBggC,UAAW,CACP3kC,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,QAAQ,QAI9B+/B,GAAsB,SAAA/0C,GACxB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,iBAAmB,cAACsT,GAAA,EAAD,IACjCtT,GAAI,SAAU,iBAAmB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAChI,cAAC,GAAD,IACCsN,GAAI,SAAU,iBAAmB,cAAC,GAAD,CAAcxE,SAAS,SACzD,cAAC,GAAD,SA6CGmlC,GAtCU,SAAAh1C,GAAU,IAAD,IACxBuO,EAAUT,KACV9L,EAAkB2kB,aAAkB3mB,GACpC+d,EAAY,UAAG/b,EAAgB0I,cAAnB,iBAAG,EAAwBumC,gBAA3B,aAAG,EAAkCp5B,KAEvD,OACI,cAAC+O,GAAA,EAAD,CAAqBzkB,MAAOH,EAA5B,SACI,eAAC,GAAD,qCAAU6F,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAYgC,GAA9E,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0iB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACjGgC,GAAI,SAAU,eAAgB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IACnGgC,GAAI,SAAU,eAAgB,oBAAsB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,oBACtE8O,GAAI,SAAU,eAAgB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UAC5D8O,GAAI,SAAU,eAAgB,qCAAuC,cAAC84B,GAAD,CAAc5nC,OAAO,qCAC1F8O,GAAI,SAAU,eAAgB,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,iBAAiB4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,4CAA4CuQ,YAAU,EAAC0J,UAAU,gBAA5L,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,eAAgB,iBAAkB,kBAAoB,cAAC,GAAD,CAAkC9O,OAAO,oBAAoB4N,UAAU,gBAAgB7Q,OAAQ,CAAEstC,aAAc,MAAQ9pC,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,+CAA+Cka,cAAehR,EAAQgzB,wBAAyBlvB,WAAS,IAC9VgC,GAAI,SAAU,eAAgB,UAAW,YAAc5M,QAAQsW,GAC1D,cAAC,GAAD,CAA2BxY,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAgB0d,gBAAgBjY,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,wCAAwCgN,WAAS,IAClO,cAACgH,GAAA,EAAD,CAAWhU,MAAM,uCAASP,UAAQ,EAAC+vC,YAAY,uPAA+C5rC,UAAWsF,EAAQomC,UAAWnZ,gBAAiB,CAAEwR,QAAQ,GAAQjmC,QAAQ,SAASsL,WAAS,KAE9LgC,GAAI,SAAU,eAAgB,aAAc,eAAiB5M,QAAQsW,GAChE,cAACk3B,GAAA,QAAD,CAA8B1vC,OAAO,gBAAgB4N,UAAU,YAAY7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CgN,WAAS,IAChO,cAACgH,GAAA,EAAD,CAAWhU,MAAM,4HAAwBP,UAAQ,EAAC+vC,YAAY,4UAA8D5rC,UAAWsF,EAAQomC,UAAWnZ,gBAAiB,CAAEwR,QAAQ,GAAQjmC,QAAQ,SAASsL,WAAS,KAE5NgC,GAAI,SAAU,eAAgB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCgN,WAAS,IACxPgC,GAAI,SAAU,eAAgB,eAAiB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,aAAa8M,WAAS,IACvFgC,GAAI,SAAU,eAAgB,aAAe,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,WAAW8M,WAAS,gB,+BC9E/Fma,GAAoB,SAACxsB,GAC9B,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,gBAAiB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACnF+P,GAAI,UAAW,gBAAiB,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC/F3N,GAAI,UAAW,gBAAiB,WAAa,cAAC,KAAD,CAAW9O,OAAO,WAC/D8O,GAAI,UAAW,gBAAiB,aAAe,cAAC,GAAD,CAAc9O,OAAO,WAAW0qC,eAAgB,8CAA+CC,gBAAiB,+CAAgD7qC,MAAO,yCACtNgP,GAAI,UAAW,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvH1N,GAAI,UAAW,gBAAiB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,oBClB9HjU,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACJlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QAwCNklC,GAlCe,SAAC,GAAmH,IAAlHjuC,EAAiH,EAAjHA,SAAmBqH,EAA8F,EAAvGC,QAA0B7D,EAA6E,EAA7EA,OAAQnF,EAAqE,EAArEA,OAAQlF,EAA6D,EAA7DA,SAAUoF,EAAmD,EAAnDA,SAAU+f,EAAyC,EAAzCA,QAASvc,EAAgC,EAAhCA,UAAW5D,EAAqB,EAArBA,MAAUrF,EAAW,4GACvIuO,EAAUT,GAAU,CAAES,QAASD,IAC/BxK,EAAYC,cACZ2sB,EChBK,YAA6B,IAAnBpuB,EAAkB,EAAlBA,OAAQkjB,EAAU,EAAVA,QAAU,EAEfne,mBAAS,CACjCtE,UAAMO,EACNoD,WAAOpD,EACPN,SAAS,IAL8B,mBAElCue,EAFkC,KAE3B4zB,EAF2B,KAmDzC,OA3CA1nB,cAAqB,WAEnB,GAAMnrB,GAAUA,EAAO8yC,OAAS9yC,EAAO8yC,MAAM3wC,OAA7C,CAEA,IAAM4wC,EAAgB,kBAAc/yC,EAAO8yC,MAAM5jC,KAAK,KAAhC,MAChB8jC,EAAQ1qC,OAASqkC,SAAS,GAAI,QAAQre,OACtC2kB,EAAM3qC,OAASgmB,OAErB4kB,MAAK,UAEAC,IAFA,yEAE+EJ,EAF/E,kBAEyGC,EAFzG,gBAEsHC,EAFtH,cAGH,CACEG,OAAQ,MACRC,YAAa,OACbvpC,QAAS,CACP,eAAgB,oBAElBwpC,eAAgB,6BAChBC,KAAM,SAGT12C,MAAK,SAAA22C,GACJ,IAAKA,EAASC,GAAM,MAAMD,EAC1B,OAAOA,EAASE,UAEjB72C,MAAK,YAAuB,IAAdqM,EAAa,EAApBzI,KAAOyI,OAEb2pC,EAAS,CACPpyC,KAAMyI,EAAO5M,KAAI,SAAAwV,GAAC,MAAK,CAAE6hC,OAAS7hC,EAAE6hC,OAAQ9zC,MAAO+zC,mBAAQ9hC,EAAElC,OAAQ,CAAC,GAAI,QAAQ,IAAM,OACxFlP,SAAS,EACT0D,WAAOpD,OAtBX,OAyBQ,SAAAoD,GACNyuC,EAAS,CACPpyC,UAAMO,EACNN,SAAS,EACT0D,gBAIH,CAACpE,EAAQkjB,IAELjE,EDnCc40B,CAAsBn2C,GACnCgrB,EAAUxpB,IAAIkJ,EAAQnF,GACtBikB,EAAkB9e,EACxB,OAAKA,GAAWsgB,EAAQvmB,OAGpB,sBAAKwE,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,KAC/F,8BACA,cAACgiB,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,SACKgW,EAAQpsB,KAAI,SAAAqsB,GAAM,OACf,cAAC5D,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,GAAI,GAAIoD,GAAI,EAAGD,GAAI,EAAGD,GAAI,EAAGG,GAAI,EAA5C,SACK7hB,uBAAaF,WAASmY,KAAK/Z,GAAW,CACnCyD,OAAQugB,EACR5qB,WACAoF,WACA+f,UACAgE,kBACAkH,gBAP4CzF,EAAOzrB,cARpC,M,WEvB9B42C,GAAiB1oC,mBAAH,yICKrBtF,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAEzBiuC,GAA8B/1B,gBAAK,YAA8C,IAA3CrX,EAA0C,EAA1CA,UAAmByB,GAAuB,EAA/BnF,OAA+B,EAAvBmF,QAAW1K,EAAY,iDAEtDqH,qBAFsD,mBAE3EivC,EAF2E,KAEnEC,EAFmE,KAG5EC,EAAal1B,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,KAAKC,KAAKvqB,MAAK,SAAAwqB,GAAG,MAAe,kBAAXA,EAAI78B,QAAyB88B,MACjGr7B,qBAAU,WDLC,IAAC6uB,ECMR,GAAKplB,EAOL,ODbQolB,ECOK,CAAExiB,MAAO,CAAE9N,GAAIkL,EAAOlL,KDLhC+N,KAAiBk+B,MAAM,CAC1BA,MAAO2K,GACPzoC,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OCCLvH,MAAK,SAAAs3C,GAAa,IAAD,EACRH,EAAM,UAAGG,EAAS1zC,YAAZ,aAAG,EAAeA,KAC9BwzC,EAAUD,MAGX,WACHC,OAAUjzC,MAEf,CAACoH,IAEJ,IAAM6xB,EAAMia,GAAcA,EAAWja,IACrC,IAAK7xB,IAAW4rC,IAAW/Z,EAAK,OAAO,KAEvC,IAAMG,EAAI,UAAMH,EAAN,qBAAsB+Z,EAAO92C,GAA7B,SAEV,OACI,cAAC,KAAD,yBACIyJ,UAAWA,EACXyzB,KAAMA,EACNv3B,QAASiD,IACLgX,GAAuBpf,IAJ/B,IAKI+G,QAAQ,QALZ,SAOK21B,QAOb2Z,GAA4B5zC,YAAc,kBAE1C4zC,GAA4Bh0C,aAAe,CACvCgd,UAAU,GAGCg3B,U,8BC5CTvoC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAGnB8V,KAAM,OA6CK4wB,GA1CY,SAAC,GAAwE,IAAD,IAArEzvC,EAAqE,EAArEA,SAAmBqH,EAAkD,EAA3DC,QAA0BtF,EAAiC,EAAjCA,UAAW5D,EAAsB,EAAtBA,MAAUrF,EAAY,0DACzFuO,EAAUT,GAAU,CAAES,QAASD,IAC/BxK,EAAYC,cACZ1D,EAAW,eAH8E,EAItDs2C,aAAkB,CACvD9+B,KAAM,SACNxX,WACAogC,QAAS,CAAEjhC,GAAE,UAAEQ,EAAM0K,cAAR,iBAAE,EAAcumC,gBAAhB,aAAE,EAAwBC,QAHnCluC,EAJuF,EAIvFA,QAAiB0D,GAJsE,EAI9EzD,OAJ8E,EAItEyD,OAAO3D,EAJ+D,EAI/DA,KAMhC,OAAIC,EAAkB,cAAC4zC,GAAA,EAAD,IAClBlwC,EAAgB,cAAC,KAAD,CAAOmwC,QAAQ,mCAG/B,sBAAK5tC,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,KAC/F,cAAC4hB,GAAA,EAAD,CAAMhe,UAAWsF,EAAQuX,KAAzB,SAEKjd,WAASjK,IAAIqI,GAAU,SAAArF,GAAK,OACzBA,GAASkH,yBAAelH,GAClBmH,uBAAanH,EAAD,YAAC,eACR5B,GADO,IAEV0K,OAAQ3H,EACR1C,WACAmpB,gBAAiBxpB,EAAM0K,UAEzB,c,WCtCpBosC,GAA2Bx2B,gBAAK,SAACtgB,GACsCA,EAAjEiJ,UADsC,IAC3B5I,EAAsDL,EAAtDK,SAD0B,GAC4BL,EAA5CuF,OAA4CvF,EAApC0K,eADQ,MACC,GADD,EAQtCupB,GAPkEj0B,EAAvBsf,UADL,YAC4Btf,EAD5B,wDASzC0K,EANAqsC,KAMArsC,EALAwmC,KAKAxmC,EAJAlL,GAIAkL,EAHAiS,OAGAjS,EAFAssC,WAPyC,YASzCtsC,EATyC,6CAWvCimC,EAAU/wC,OAAOD,KAAKs0B,GAAO3xB,QAAO,SAAAe,GACtC,IAAM4yC,EAAShiB,EAAM5wB,GACrB,OAAO4yC,EAAO5xC,MAAQ4xC,EAAOt5B,UAC9B/d,KAAI,SAAAyE,GACH,IAAM4yC,EAAShiB,EAAM5wB,GAQrB,OAAO,2BACA4yC,GADP,IAEIp0C,MATa,CACbgsC,SAAU,EACVG,MAAO,EACPE,QAAS,EACTE,GAAI,EACJE,WAAY,GAII2H,EAAOt5B,aAE5B7W,MAAK,SAAC2lB,EAAG4K,GACR,OAAOA,EAAEx0B,MAAQ4pB,EAAE5pB,SAIvB,OACI,cAAC,KAAD,UACK8uC,EAAQ/xC,KAAI,SAACq3C,EAAQ3kC,GAAT,OACT,eAAC,WAAD,WACI,eAAC5M,EAAA,EAAD,CAAKsa,UAAU,KAAKtK,QAAQ,OAAOC,WAAW,SAASsiC,GAAI,GAA3D,UACI,cAACvyC,EAAA,EAAD,CAAKwyC,GAAI,EAAT,SACI,cAAC,GAAD,CAAmB72C,SAAUA,EAAUkF,OAAO,SAASmF,OAAQurC,MAEnE,cAACnvC,GAAA,EAAD,CAAYC,QAAQ,QAApB,SAA6BkvC,EAAO5xC,UAEvC4xC,EAAOkB,aAAelB,EAAOkB,YAAY1yC,OAAS,GAAKwxC,EAAOkB,YAAYv4C,KAAI,SAACw4C,EAAYC,GAAb,OAC3E,eAAC3yC,EAAA,EAAD,CAAK4yC,GAAI,EAAGt4B,UAAU,KAAKtK,QAAQ,OAAOC,WAAW,SAASsiC,GAAI,GAAlE,UACI,cAACvyC,EAAA,EAAD,CAAKiD,YAAa,EAAlB,SACI,cAAC,GAAD,CAAmBtH,SAAUA,EAAUkF,OAAO,SAASmF,OAAQ0sC,MAEnE,gCACI,cAACtwC,GAAA,EAAD,CAAYC,QAAQ,QAApB,kDAAuCqwC,EAAWG,KAAlD,aAA2DH,EAAWI,eACtE,eAAC1wC,GAAA,EAAD,CAAYkY,UAAU,IAAIjY,QAAQ,UAAU3B,MAAM,gBAAlD,gFAAkFgyC,EAAW5rC,OAA7F,QACA,eAAC1E,GAAA,EAAD,CAAYkY,UAAU,IAAIjY,QAAQ,UAAU3B,MAAM,gBAAlD,wDAA+EgyC,EAAWK,YAA1F,aAPoEJ,QARrE/lC,WA0B/BwlC,GAAyBr0C,YAAc,2BAEvCq0C,GAAyBz0C,aAAe,CACpCgd,UAAU,GAGCy3B,I,qBAAAA,M,qBCvEFY,GAAsBhqC,eAAH,uJAUnBiqC,GAAyBjqC,eAAH,4KAQ/BgqC,IAKSE,GAA0BlqC,eAAH,yXAgBvBmqC,GAAuBnqC,eAAH,suBA6B7BiqC,IAGSG,GAAuBpqC,eAAH,6NAapB09B,GAAY19B,eAAH,qNC5DhBI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,MA0DxB0uC,GAvDmB,SAAC,GAOhB,IA7Be,EAuB9BtyC,EAMc,EANdA,SACS6I,EAKK,EALdC,QACAtF,EAIc,EAJdA,UACAyB,EAGc,EAHdA,OAEU+V,GACI,EAFdpgB,SAEc,EADdwP,UACGhM,EAAW,iFACR2K,EAAWC,eACXoB,EAAW6Q,eACXhS,EAAUC,eACVxI,EAASC,eAJD,GAKE0H,GAAU,CAAES,QAASD,IACPjH,oBAAS,IANzB,mBAMPrE,EANO,KAME8L,EANF,KAORoiC,EAAOxmC,EAAOwmC,KAGd7qC,EAAc7C,uBAAY,WAC5BsL,GAAW,GACXN,EAASQ,gBC5CF,YAAe,IAAZkiC,EAAW,EAAXA,KACd,OAAO8G,GAAaxqC,OAAO,CACvBC,SAAUqqC,GACVnqC,UAAW,CAAEynC,MAAO,CAAClE,IACrBtjC,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAEJ,MAAO,CACH/yC,KAFSvB,IAAIs0C,EAAU,CAAC,OAAQ,OAAQ,QAAS,QDsCrDmC,CAAoB,CAChB/G,SACD/xC,MAAK,SAAC22C,GACL3vC,EAAO,mCAAoC,OAAQ,CAAE0G,YAAa,IAClEgD,EAAS4Q,EAAYhb,EAAUiF,EAAOlL,GAAIkL,GAC1CgE,OALJ,OAOW,SAAChI,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cARlG,SAUa,WACLP,GAAW,GACXN,EAASc,qBAGjB,CAAC4hC,EAAM1iC,IAIX,OACI,cAACO,GAAA,EAAD,yBACI5J,QAASkB,EACTvB,SAAU9B,EACVqC,MAAM,oBACN4D,UAAS,4BAAuBA,MAnEV,EAqEApF,GApE9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,EAe7BoX,OAf6B,+MA+DzB,aAQI,cAAC,KAAD,MAHI,WE3CVgxB,GAA0B,SAACl4C,GAC7B,OACI,eAACyiC,GAAA,EAAD,2BAAiBziC,GAAjB,cACI,cAAC0iC,GAAA,EAAD,CAAYriC,SAAU,cACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,qBAK5BwxB,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OA2G1Bm4C,GAtGU,SAAAn4C,GAAU,IAAD,QACxBgC,EAAkB2vB,aAAkB3xB,GACpC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9B69B,EAAsBhxC,IAAMmT,OAAO,MACnCyX,EAAoB5qB,IAAMmT,OAAO,MACjC22B,EAAI,UAAGlvC,EAAgB0I,cAAnB,iBAAG,EAAwBumC,gBAA3B,aAAG,EAAkCC,KACzCvD,EAAgC,UAAG3rC,EAAgB0I,cAAnB,aAAG,EAAwBijC,iCAGjE,OACI,cAAC/b,GAAA,EAAD,CAAqBzvB,MAAOH,EAA5B,SACI,eAAC,GAAD,qCAAUwvB,YAAa,cAAC,GAAD,IAA6B3pB,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAWgC,GAAvH,cACI,cAAC,GAAD,IACCqS,GAAI,SAAU,eAAgB,UAAW,WAAa,cAAC,GAAD,CAAuB9O,OAAO,UAAUjD,OAAQ,CAAE8yC,MAAO,CAAClE,IAAS7rC,MAAM,wCAAzE,SACnD,cAAC,GAAD,MAEHgP,GAAI,SAAU,eAAgB,aAAc,cAAgB,cAACgkC,GAAA,QAAD,CAA0B9yC,OAAO,aAAaF,MAAM,2CAApD,SACzD,cAAC,WAAD,MAEHgP,GAAI,SAAU,eAAgB,iBAAkB,kBAC7C,cAAC,IAAD,GACIlB,UAAU,gBACV7O,OAAO,wBACPe,MAAM,+CACN6D,QAAS,cAAC,GAAD,IACTpD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KALpD,yBAMa,IANb,4BAOgB,cAAC2xB,EAAA,EAAD,KAPhB,0BASI,cAAC,GAAD,KATJ,IAYH5d,GAAI,UAAW,2BAAiE,IAArCs5B,GACxC,cAAC,GAAD,CACIx6B,UAAU,wBACV7O,OAAO,oBACPe,MAAM,uDACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,UAAWC,MAAO,QACjCvB,QAAS,EACTiG,WAAY,cAAC0rB,EAAA,EAAD,CAAYqmB,mBAAoB,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,OARnE,SAUI,cAAC,GAAD,MAGR,cAAC,GAAD,CAAW5kC,OAAS,qBAAKiE,IAAKmR,MAC9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,eAAgB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC5D8O,GAAI,SAAU,eAAgB,oBAAsB,cAAC,KAAD,CAAW9O,OAAO,oBACtE8O,GAAI,SAAU,eAAgB,4BAA8B,cAAC,KAAD,CAAW9O,OAAO,0BAA0BF,MAAM,6CAC9GgP,GAAI,SAAU,eAAgB,oBAAsB,cAAC,GAAD,CAAW9O,OAAO,kBAAkBF,MAAM,gDAAgD8lB,OAAO,oCACrJ9W,GAAI,SAAU,eAAgB,mBAAqB,cAAC,KAAD,CAAW9O,OAAO,iBAAiBF,MAAM,oCAC5FgP,GAAI,SAAU,eAAgB,2BAA6B,cAAC,GAAD,CAAY9O,OAAO,yBAAyBF,MAAM,4CAC7GgP,GAAI,SAAU,eAAgB,0BAA4B,cAAC,KAAD,CAAW9O,OAAO,wBAAwBF,MAAM,2CAC1GgP,GAAI,SAAU,eAAgB,kBAAoB,cAAC,KAAD,CAAW9O,OAAO,gBAAgBF,MAAM,mCAC1FgP,GAAI,SAAU,eAAgB,kBAAoB,cAAC,GAAD,CAAW9O,OAAO,gBAAgBF,MAAM,8CAA8C8lB,OAAO,kCAC/I9W,GAAI,SAAU,eAAgB,kBAAoB,cAAC,KAAD,CAAW9O,OAAO,gBAAgBF,MAAM,mCAC1FgP,GAAI,SAAU,eAAgB,4BAA8B,cAAC,KAAD,CAAW9O,OAAO,0BAA0BF,MAAM,6CAC9GgP,GAAI,SAAU,cAAe,oBAAqB,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,oBAAoBF,MAAM,mDAChHgP,GAAI,SAAU,eAAgB,eAAiB,cAAC,KAAD,CAAW9O,OAAO,eACjE8O,GAAI,SAAU,eAAgB,aAAe,cAACkkC,GAAA,EAAD,CAAUhzC,OAAO,WAAWjB,OAAO,SAAS0d,QAAM,EAACta,MAAO,CAAEgN,QAAS,eAAgBpC,SAAU,KAAOvL,QAAQ,UAC3JsN,GAAI,SAAU,WAAa,cAAC,GAAD,CAAiB9O,OAAO,eAAejB,OAAO,SAAS0d,QAAM,EAACta,MAAO,CAAEgN,QAAS,eAAgBpC,SAAU,OAGtI,cAAC,GAAD,IACC+B,GAAI,SAAU,eAAgB,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACzD8O,GAAI,SAAU,eAAgB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SACnD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACrFlY,GAAI,SAAU,eAAgB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI9F,cAAC,GAAD,CAAW7Y,OAAS,qBAAKiE,IAAKygC,MAC9B,cAAC,GAAD,CAAatvB,eAAgBsvB,EAAqB/yC,MAAM,2BAAxD,SACI,cAAC,GAAD,UACI,eAAC,KAAD,WACI,cAAC,GAAD,CAAmBE,OAAO,SAASkpC,SAAO,IAC1C,cAAClrB,GAAA,EAAD,CAAWhe,OAAO,OAAO2G,QAASqgB,OAClC,cAAC,GAAD,CAA0BhnB,OAAO,YACjC,cAAC,GAAD,WAKX8O,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,8BCnJvDizC,GAAmBz4C,G,6JCDnB+N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCovC,SAAU,gBAAEC,EAAF,EAAEA,aAAcC,EAAhB,EAAgBA,aAAhB,MAAmC,CACzCxqC,gBAAiBuqC,EAAe,UAAYC,EAAe,UAAYtvC,EAAM4E,QAAQ6L,WAAd,QACvE8+B,aAAcvvC,EAAM2L,QAAQ,GAC5B6jC,OAAQ,UACR5lC,QAAS5J,EAAM2L,QAAQ,GACvB+K,UAAW,SACX3a,MAAOiE,EAAM4E,QAAQiQ,KAAK+B,QAC1BsI,WAAY,0CAyBLuwB,GArBE,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OAEVj1C,EAAYC,cAFW,EAIqCi1C,aAAY,CAC1EC,OAAQ,oGACRn0C,UAAU,EACV8uC,UAAU,EACVmF,WAJGG,EAJsB,EAItBA,aAAcje,EAJQ,EAIRA,cAAeyd,EAJP,EAIOA,aAAcC,EAJrB,EAIqBA,aAO5CpqC,EAAUT,GAAU,CAAC4qC,eAAcC,iBAEzC,OACI,8CAAK1vC,UAAWsF,EAAQkqC,UAAcS,KAAtC,cACI,qCAAWje,MACX,4BAAIn3B,EAAU,sCC7BpBgK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC8vC,UAAW,CACPhrC,gBAAiB,UACjB/I,MAAO,eAYAg0C,GAPwB,SAACp5C,GACpC,IAAMuO,EAAUT,KAChB,OACI,cAAC6qB,GAAA,EAAD,2BAAe34B,GAAf,IAAsBsI,KAAK,QAAQW,UAAYjJ,EAAM0K,OAAOlL,GAAyB,GAApB+O,EAAQ4qC,cCF3ErrC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCyY,IAAK,CAAE5M,OAAQ,IACf6M,aAAc,CAAEhN,MAAO,GACvBiN,OAAQ,CAAEC,WAAY,UACtBo3B,YAAa,CACT,gBAAiB,CACbC,YAAa,IAEjB,eAAgB,CACZC,aAAc,KAGtBlnC,UAAW,CAAE0C,MAAO,YAsCTykC,GAnC6B,SAACx5C,GAEzC,IAAMuO,EAAUT,KAFmC,EAG7B9N,EAAd+C,YAH2C,MAGpC,GAHoC,EAKnD,OACI,cAACb,EAAA,EAAD,CAAqBC,MAAO,CACxB9B,SAAU,wBACVoF,SAAU,yBACV1C,KAAMs7B,KAAMt7B,EAAM,SAClBxD,IAAKwD,EAAKnE,KAAI,qBAAGqjC,SACjBj8B,MAAOjD,EAAK0B,OACZjE,YAAa,CAAEoB,MAAO,OAAQC,MAAO,OACrC2H,YAAa,GACb+E,QAAS,CAAEuT,IAAKvT,EAAQuT,IAAK23B,WAAYlrC,EAAQ8qC,YAAaK,QAASnrC,EAAQ8qC,cARnF,SAUI,eAACp2B,GAAA,EAAD,WACI,cAAC4e,GAAA,EAAD,CAAat8B,OAAO,QAAQF,MAAM,+CAA+C6B,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACjK,cAACiiB,GAAA,EAAD,CAAat8B,OAAO,SAASF,MAAM,gDAAgD6B,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACnK,cAAC,KAAD,CAAWra,OAAO,QAAQia,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACrE,cAAC,KAAD,CAAWra,OAAO,OAAOqa,UAAU,IACnC,cAAC,GAAD,CAASra,OAAO,KAAKF,MAAM,kDAAkD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACpM,cAAC,GAAD,CAAUra,OAAO,MAAMF,MAAM,mDAAmD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACvM,cAAC,GAAD,CAAcra,OAAO,UAAUF,MAAM,uDAAuD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACnN,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACrH,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,UAAU2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,OAAQpC,UAAU,IACnH,cAAC,KAAD,CAAWra,OAAO,yBAAyBF,MAAM,4DAA4Dua,UAAU,IACvH,cAAC,GAAD,CAAkBra,OAAO,yBAAyB4N,UAAU,yBAAyBsM,UAAU,EAA/F,SACI,cAAC,GAAD,CAAWla,OAAO,iBCnChCuI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCgJ,UAAW,CAAE0C,MAAO,YAgHT4kC,GA7G2B,SAAC,GAWvB,IAVhBnyC,EAUe,EAVfA,KACAuP,EASe,EATfA,OACA6iC,EAQe,EARfA,SACA72C,EAOe,EAPfA,KACAC,EAMe,EANfA,QACAC,EAKe,EALfA,OACA42C,EAIe,EAJfA,SACAd,EAGe,EAHfA,OACAvwC,EAEe,EAFfA,QACAsxC,EACe,EADfA,SAEMvrC,GADS,+GACCT,MACVhK,EAAYC,cAFH,EAGesD,oBAAS,GAHxB,mBAGR0yC,EAHQ,KAGCC,EAHD,KAMTC,EAAgBz2C,uBAAY,SAACY,GAC/B41C,EAAW51C,EAAME,OAAOY,WACzB,CAAC80C,IAEE/oC,EAAczN,uBAAY,WAC5BgF,MACD,CAACA,IAEE0xC,EAAe12C,uBAAY,WAC7Bs2C,MACD,CAACA,IAEEK,EAAe32C,uBAAY,WAC7Bq2C,MACD,CAACA,IAGEO,EAAa52C,uBAAY,SAAA62C,GAC3BtB,EAAOsB,KACR,CAACtB,IAGJ,OACI,eAAC5mC,GAAA,EAAD,CACI3K,KAAMA,EACNgB,QAASyI,EACT6oC,SAAUI,EACV9nC,kBAAgB,sBAChBqH,mBAAiB,4BACjBnH,SAAS,KACTgoC,OAAO,OAPX,UASI,cAAC/nC,GAAA,EAAD,CAAa/S,GAAG,sBAAhB,SAAuCsE,EAAU,kDACjD,eAACsV,GAAA,EAAD,WACI,cAACM,GAAA,EAAD,CAAmBla,GAAG,4BAAtB,SAAmDsE,EAAU,oDAC7D,cAAC,GAAD,CAAUi1C,OAAQqB,OAErBp3C,GAAY,cAACu3C,GAAA,EAAD,CAAgBtxC,UAAWsF,EAAQ8D,YAC/C0E,GACG,cAACqC,GAAA,EAAD,UACI,eAACohC,GAAA,EAAD,CAAO99B,KAAM,cAAC,KAAD,CAAW7V,SAAS,YAAc4zC,SAAS,QAAxD,UACI,cAACC,GAAA,EAAD,UAAa52C,EAAU,mDACtBiT,EAAOnY,KAAI,WAAoB0S,GAApB,IAAGjC,EAAH,EAAGA,QAASygB,EAAZ,EAAYA,KAAZ,OACR,cAAChpB,GAAA,EAAD,CAAwBC,QAAQ,QAAhC,SAAyCjD,EAAUuL,EAASygB,IAA3Cxe,WAKhCsoC,GACG,cAACxgC,GAAA,EAAD,UACI,eAACohC,GAAA,EAAD,CAAO99B,KAAM,cAAC,KAAD,CAAa7V,SAAS,YAAc4zC,SAAS,UAA1D,UACI,cAACC,GAAA,EAAD,UAAa52C,EAAU,qDACtB81C,EAASh7C,KAAI,WAAoB0S,GAApB,IAAGjC,EAAH,EAAGA,QAASygB,EAAZ,EAAYA,KAAZ,OACV,cAAChpB,GAAA,EAAD,CAAwBC,QAAQ,QAAhC,SAAyCjD,EAAUuL,EAASygB,IAA3Cxe,WAKhCvO,GACG,cAAC,GAAD,CAAqCA,KAAMA,IAE/C,cAACqW,GAAA,EAAD,UACI,cAACvU,EAAA,EAAD,CACIG,QACI,cAACC,EAAA,EAAD,CACIC,QAAS60C,EACTxgC,SAAU0gC,EACVn1C,SAAU2C,QAAQsP,OAAiB,OAAJhU,QAAI,IAAJA,OAAA,EAAAA,EAAM0B,QAAS,GAC9CJ,KAAK,iBACLe,MAAM,YAGdC,MAAOvB,EAAU,8BAGzB,eAACwP,GAAA,EAAD,WACI,cAAC,KAAD,CAAQnO,QAAS8L,EAAjB,SACKnN,EAAU,sBAEf,cAAC,KAAD,CACIqB,QAASg1C,EACTr1C,UAAW7B,IAAWF,EAAK0B,QAAUgD,QAAQsP,KAAYgjC,EACzD30C,MAAM,UACNkU,WAAS,EAJb,SAMKxV,EAAU,6BCkGhB62C,GA/M2B,SAAC,GAAwD,EAAtDl1C,SAAsD,EAA5CwD,UAA4C,EAAjCyB,OAAiC,EAAzBrK,SAA0B,IAAbL,EAAY,4DACzFwO,EAAWC,eAEXC,GADY3K,cACF4K,gBACVxI,EAASC,eAJgF,EAKvEgB,IAAMC,UAAS,GALwD,mBAKxFG,EALwF,KAKlF+I,EALkF,OAM/DlJ,qBAN+D,mBAMxFuyC,EANwF,KAM9EgB,EAN8E,OAOnEvzC,qBAPmE,mBAOxF0P,EAPwF,KAOhF8jC,EAPgF,OAQrExzC,mBAAS,CAC/BtE,UAAMO,EACNoD,WAAOpD,EACPN,SAAS,EACTC,QAAQ,IAZmF,mBAQxFse,EARwF,KAQjF4zB,EARiF,KAezF2F,EAAUt3C,uBAAY,SAACrB,EAAOuI,GAChC,IAAMovB,E9EZU,SAAC33B,EAAOuI,GAC5B,IAAM+E,EAAUkyB,GAAgBx/B,GAC1BkC,EAAOqG,EAAOrG,KAEd02C,EAAK,gBADO,KACP,UACX,OAAOtrC,EAAU,CAAEJ,QAAS,0DAA2DygB,KAAM,CAAE3tB,QAAO64C,UAFpF,KAE+FD,QAAO12C,cAAWf,E8EO/G23C,CAAW94C,EAAOuI,GAC9BovB,GAAS8gB,GAAY,eAACM,EAAD,uDAAQ,GAAR,4BAAmBA,GAAnB,CAAyBphB,SACnD,CAAC8gB,IAEEO,EAAW33C,uBAAY,SAACrB,EAAOuI,GACjC,IAAMovB,E7ElBU,SAAC33B,EAAOuI,GAC5B,IAAM+E,EAAUkyB,GAAgBx/B,GAC1BkC,EAAOqG,EAAOrG,KAEd02C,EAAK,gBADO,MACP,UACX,OAAOtrC,EAAU,CAAEJ,QAAS,0DAA2DygB,KAAM,CAAE3tB,QAAO64C,UAFpF,MAE+FD,QAAO12C,cAAWf,E6Ea/G83C,CAAYj5C,EAAOuI,GAC/BovB,GAAS8gB,GAAY,eAACM,EAAD,uDAAQ,GAAR,4BAAmBA,GAAnB,CAAyBphB,SACnD,CAAC8gB,IAEES,EAAe73C,uBAAY,SAACrB,EAAOuI,GACrC,IAAMhE,E5EvBU,SAACvE,EAAOuI,GAC5B,IAAM+E,EAAUkyB,GAAgBx/B,GAC1BkC,EAAOqG,EAAOrG,KAEd02C,EAAK,gBADO,IACP,UACX,OAAOtrC,EAAU,CAAEJ,QAAS,0DAA2DygB,KAAM,CAAE3tB,QAAO64C,UAFpF,IAE+FD,QAAO12C,cAAWf,E4EkBjHg4C,CAAgBn5C,EAAOuI,GACjChE,GAAOm0C,GAAU,eAACK,EAAD,uDAAQ,GAAR,4BAAmBA,GAAnB,CAAyBx0C,SAC/C,CAACm0C,IAEElqC,EAAanN,uBAAY,WAC3B+M,GAAQ,KACT,CAACA,IAEEU,EAAczN,uBAAY,WAC5B+M,GAAQ,KACT,CAACA,IAEE2pC,EAAe12C,uBAAY,WAC7B2xC,EAAS,CACLpyC,UAAMO,EACNoD,MAAO,KACP1D,SAAS,EACTC,QAAQ,IAEZ23C,OAAYt3C,GACZu3C,OAAUv3C,KACX,CAAC6xC,IAEEgF,EAAe32C,uBAAY,WACxB+d,EAAMxe,OAEXyL,EAASQ,gBCjEF,SAACusC,GAEZ,OAAOhuC,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,uQAIRC,UAAW,CACP4tC,0BAEJ3tC,QAAS,SAAClH,GACNmH,MAAMnH,MDqEV80C,CAb+Bj6B,EAAMxe,KAAKnE,KAAI,SAAA68C,GAAG,MAAK,CAClDxZ,MAAOwZ,EAAIxZ,MACXyZ,UAAWD,EAAIC,UACfC,QAASF,EAAIE,QACbt3C,KAAMo3C,EAAIp3C,KACV0I,YAAa0uC,EAAI1uC,YACjB6uC,GAAIH,EAAIG,GACRC,IAAKJ,EAAII,IACTC,QAASL,EAAIK,QACbC,mBAAoBN,EAAIO,uBACxBC,0BAA2BR,EAAIQ,+BAI9B98C,MAAK,SAACqM,GACHrF,EAAO,mDAAoD,OAAQ,CAAE0G,YAAarB,EAAOzI,KAAKA,KAAKmnB,QACnGxb,OAHR,OAKW,SAAChI,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cANlG,SAQa,WACLkB,GAAQ,GACR/B,EAASc,sBAGlB,CAACiS,EAAMxe,OAEJq3C,EAAa52C,uBAAY,SAAA62C,GAC3BA,EAActuC,SAAQ,SAACmwC,GACnB,IAAMC,EAAS,IAAIC,WACnBD,EAAOE,QAAU,kBAAM11C,QAAQ0K,IAAI,6BACnC8qC,EAAOG,QAAU,kBAAM31C,QAAQ0K,IAAI,4BACnC8qC,EAAOI,OAAS,SAACn9C,GAEb+1C,EAAS,CACLnyC,SAAS,EACTC,QAAQ,IAGZ,IAAMF,EAAO,IAAIy5C,WAAWp9C,EAAEkF,OAAOkH,QAC/BixC,EAAWC,KAAKC,KAAK55C,EAAM,CAAE8U,KAAM,UACnC+kC,EAAoBH,EAASI,OAAO,6EACpCC,EAAgBL,EAASI,OAAO,qDAChCE,EAAmBL,KAAKM,MAAMC,cAAcL,EAAmB,CAAE7B,MAAO,EAAGmC,KAAK,EAAOC,OAAQ,OAC/FC,EAAeV,KAAKM,MAAMC,cAAcH,EAAe,CAAE/B,MAAO,EAAGmC,KAAK,EAAOC,OAAQ,OACvFE,EAAyBC,KAAQF,EAAc,2BAC/CG,EAA4Blf,KAAM+e,EAAc,+BAChDI,EAAkC59C,OAAOD,KAAK49C,GAEpDhwC,KAAiBk+B,MAAM,CACnBA,MAAO3E,GACPn5B,UAAW,CACPrN,QAASk9C,EAAgC/4C,OACzCnC,OAAQ,CACJm7C,SAAUD,IAGlBrK,YAAa,iBAEZh0C,MAAK,YAAe,IAEXu+C,EAFU,EAAX36C,KAEmC8N,MAElC0qC,EAAyBwB,EAAiBn+C,KAAI,SAAC+M,EAAM2F,GAEvD,IACMnE,GADgCkwC,EAAuB1xC,EAAKgyC,0BAA4B,IAAI/+C,KAAI,SAAAg/C,GAAG,OAAIA,EAAIC,+BACrDj/C,KAAI,SAAAkO,GAC5D,IAAMgxC,EAA4BJ,EAA2B7rC,MAAK,SAAAlG,GAAI,OAAIA,EAAKmB,QAAUA,KACzF,GAAIgxC,EACA,MAAO,CACHt+C,GAAIs+C,EAA0Bt+C,GAC9BsN,MAAOgxC,EAA0BhxC,MACjCzI,KAAMy5C,EAA0Bz5C,MAGpC,IAAMwN,EAAO0rC,EAA0BzwC,GACvC,MAAO,CACHtN,QAAI8D,EACJwJ,MAAO+E,EAAKgsC,4BACZx5C,KAAMwN,EAAKksC,+BAIjB9B,EAA4B9uC,EAAuB7K,QAAO,SAAAqJ,GAAI,OAAIA,EAAKnM,MAAIZ,KAAI,SAAA+M,GAAI,OAAIA,EAAKnM,MAE5Fw+C,EAAwB,CAC1B1sC,MAAOA,EAAQ,EACf2sC,OAAQtyC,EAAKuyC,IACbjc,MAAOt2B,EAAKs2B,MACZyZ,UAAW9wC,KAAOe,EAAK+vC,WAAWyC,cAClCxC,QAAS/wC,KAAOe,EAAKgwC,SAASwC,cAC9B95C,KAAMsH,EAAKtH,KACX0I,YAAapB,EAAKoB,YAClB6uC,GAAIwC,WAAWzyC,EAAKiwC,IACpBC,IAAKuC,WAAWzyC,EAAKkwC,KACrBC,QAASsC,WAAWzyC,EAAKmwC,SACzBE,uBAAwBrwC,EAAKqwC,uBAC7B7uC,yBACA8uC,6BAOJ,OAJAnB,EAAQkD,EAAsBpC,GAAIoC,GAClC7C,EAAS6C,EAAsBnC,IAAKmC,GACpC3C,EAAa2C,EAAsBlC,QAASkC,GAErCA,KAGX7I,EAAS,CACLpyC,KAAMw4C,EACNv4C,SAAS,EACTC,QAAQ,OA9DpB,OAiEW,SAAAyD,GACHyuC,EAAS,CACLzuC,QACA1D,SAAS,EACTC,QAAQ,QAIxBk5C,EAAOkC,kBAAkBnC,QAE9B,IAGH,OACI,qCACI,cAACntC,GAAA,EAAD,yBACI5J,QAASwL,EACTtL,MAAM,oBACFrF,GAHR,aAKI,cAAC,KAAD,OAEJ,cAAC,GAAD,CACIwH,KAAMA,EACNuP,OAAQA,EACR6iC,SAAUA,EACV72C,KAAMwe,EAAMxe,KACZC,QAASue,EAAMve,QACfC,OAAQse,EAAMte,OACd42C,SAAUM,EACVpB,OAAQqB,EACR5xC,QAASyI,EACT6oC,SAAUI,QElNpBpsC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCgG,QAAS,CACL0Q,UAAW,SACXu+B,QAAgC,UAAvBj1C,EAAM4E,QAAQ4J,KAAmB,GAAM,GAChDpC,OAAQ,QACRrQ,MAC2B,UAAvBiE,EAAM4E,QAAQ4J,KACR,UACAxO,EAAM4E,QAAQiQ,KAAK+B,SAEjCvD,KAAM,CACF3H,MAAO,MACPG,OAAQ,OAEZsS,QAAS,CACLzH,UAAW,SACX/P,UAAW,MACX,0BAA2B,CACvBoN,WAAY,OAIpB,CAAE/Y,KAAM,YA0CGk6C,GAvCD,SAAAv+C,GAAU,IACZK,EAAuBL,EAAvBK,SAAUoF,EAAazF,EAAbyF,SACZ8I,EAAUT,GAAU9N,GACpB8D,EAAYC,cAEZy6C,EAAere,KAAWC,SAC5Bt8B,EAAU,aAAD,OAAczD,EAAd,SAA+B,CACpCwM,YAAa,EACb/E,EAAGq4B,KAAWse,UAAUp+C,MAE5B,GAGEq+C,EAAe56C,EAAU,gBAAiB,CAAEO,KAAMm6C,IAClDG,EAAgB76C,EAAU,kBAEhC,OACI,qCACI,sBAAKmF,UAAWsF,EAAQc,QAAxB,UACI,cAAC,KAAD,CAAOpG,UAAWsF,EAAQmO,OAC1B,cAAC5V,GAAA,EAAD,CAAYC,QAAQ,KAAK63C,WAAS,EAAlC,SACK96C,EAAU,aAAD,OAAczD,EAAd,UAAgC,CACtCyH,EAAG42C,MAGX,cAAC53C,GAAA,EAAD,CAAYC,QAAQ,QAApB,SACKjD,EAAU,aAAD,OAAczD,EAAd,WAAiC,CACvCyH,EAAG62C,SAIf,sBAAK11C,UAAWsF,EAAQiZ,QAAxB,UACKnT,GAAI,SAAU,0BAA4B,cAACrK,EAAA,EAAD,CAAcjD,QAAQ,YAAYtB,SAAUA,IACtF4O,GAAI,SAAU,0BAA4B,cAAC,GAAD,CAActN,QAAQ,qBCnD3EiC,I,OAAc,SAAChJ,GAAW,IACpBiJ,EAAmDjJ,EAAnDiJ,UAAWpD,EAAwC7F,EAAxC6F,SAAUqD,EAA8BlJ,EAA9BkJ,QAAStF,EAAqB5D,EAArB4D,QAAYC,EADvB,YACgC7D,EADhC,8CAErBmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SAFpC,EAWvBnJ,YAAeJ,GAPfQ,EAJuB,EAIvBA,YACAG,EALuB,EAKvBA,iBACAD,EANuB,EAMvBA,aACA+E,EAPuB,EAOvBA,SACA+D,EARuB,EAQvBA,YACAC,EATuB,EASvBA,WACAzD,EAVuB,EAUvBA,MAEE3F,EAAW2D,YAAmBH,GAC5B6F,EAAcC,YAAsB9F,GAApC6F,UACF5F,EAAYC,cAgClB,OAAO6F,mBACH,kBAAMT,EACF,eAACU,EAAA,EAAD,yBAAYZ,UAAWA,GAAea,YAAsBjG,IAA5D,cACKqF,GACGH,uBAAaG,EAAS,CAClB7I,WACAoJ,aACA9I,mBACAD,eACAqJ,QAAS,WAEhBL,GAAa,cAACM,EAAA,EAAD,CAAcvE,SAAUA,IACrC4O,GAAI,SAAU,0BAA4B,cAAC,GAAD,KAC7B,IAAbxO,GACG,cAACoE,EAAA,EAAD,CACInF,SAAoB,IAAVkB,EACV3F,SAAUA,EACVyF,KAAMtF,EACNE,aAAcA,QAK1B,eAACmJ,EAAA,EAAD,yBAAYZ,UAAWA,GAAea,YAAsBjG,IAA5D,cACKqF,GACGH,uBAAaG,EAAS,CAClB7I,WACAoJ,aACA9I,mBACAD,eACAqJ,QAAS,WAEhBL,GAAa,cAACM,EAAA,EAAD,CAAcvE,SAAUA,IACrC4O,GAAI,SAAU,0BAA4B,cAAC,GAAD,IAC3C,eAACnK,GAAD,WACI,cAACC,EAAA,EAAD,CAAezC,MAAO,CAAE0C,WAAY,GAApC,SAA0CtG,EAAU,uCAAwC,CACxFgE,EAAG,qBAEP,cAAC,GAAD,CAAmBlE,QAASA,IAC5B,cAACyG,EAAA,EAAD,IACA,cAACC,EAAA,EAAD,WACkB,IAAbzE,GACG,cAAC,GAAD,CACIf,SAAoB,IAAVkB,EACV3F,SAAUA,EACVyF,KAAMtF,EACNE,aAAcA,eAOtC,CAACL,EAAUM,EAAkBD,EAAc8I,EAAaN,EAASlD,EAAOmD,MAwBhFH,GAAY3G,aAAe,CACvBmH,YAAa,GACbe,gBAAiB,kBAAM,OAIZvB,I,YAAAA,MC7FA2D,GA/CK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAuCxE,OAFiBjH,GAAegH,EApCZ,CAChBpN,IAAI,EACJ6E,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXs3B,OAAO,EACP2Z,GAAI5wC,GACJ6wC,IAAK7wC,GACL8wC,QAAS9wC,GACT0wC,UAAW/wC,GACXgxC,QAAShxC,GACToxC,oBAAoB,EACpB5uC,uBAAwB,CACpB3N,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,yBAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,yBAEuC,CAAEjH,e,qBCxCvDijC,GAAoCr5B,mBAAH,ypBAqBjCmxC,GAAqB,SAArBA,EAAsBC,EAAOj8C,GAAU,IAAD,EAElCib,EAAQjb,EAAKO,MAAM,KAFe,eAGV0a,GAAvBG,EAHiC,KAGxB8gC,EAHwB,WAIxC,OAAQ9yC,MAAM8d,QAAQ+0B,IAAUC,EAAWt6C,OAAS,GAAK,MAAG0U,OAAH,oBAAa2lC,EAAMlgD,KAAI,SAAC+M,EAAMqzC,GACnF,IAAM/R,EAASthC,EAAKsS,GACpB,OAAO4gC,EAAmB5R,EAAQ8R,EAAWvtC,KAAK,WAChDvF,MAAM8d,QAAQ+0B,GACVA,EAAMG,SAAQ,SAAAtzC,GAAI,OAAIA,EAAKsS,MAC3B6gC,GAGRI,GAAY,yCAAG,WAAOC,GAAP,sBAAA1zB,EAAA,6DACXwwB,EAA4BkD,EAAwBvgD,KAAI,SAAAuiC,GAAqB,OAAIA,EAAsB3hC,MAD5F,SAGI+N,KAAiBk+B,MAAM,CACxCA,MAAO1E,GACPp5B,UAAW,CACPrN,QAAS27C,EAA0Bx3C,OACnCnC,OAAQ,CACJ+0B,MAAO4kB,IAGfruC,QAAS,SAAClH,GACNmH,MAAMnH,MAZG,cAGX8E,EAHW,OAgBX2B,EAAyB3B,EAAOzI,KAAK8N,MAErCuuC,EAAYjyC,EAAuB8xC,SAAQ,SAAAI,GAC7C,IAAMvB,EAA4BqB,EAAwBttC,MAAK,SAAAlG,GAAI,OAAIA,EAAKnM,KAAO6/C,EAAuB7/C,MAI1G,OAH2Cq/C,GAAmBQ,EAAuB9f,6BAA8B,8BACpEj9B,QAAO,SAAAg9C,GAAG,OAAIA,EAAI3R,oCAAkC/uC,KAAI,SAAA0gD,GAAG,kCAAUA,EAAIrO,UAAd,IAAwBsO,wBAAyBzB,EAA0ByB,gCArBxK,kBA0BVH,GA1BU,2CAAH,sDAuFHI,GAxDK,yCAAG,WAAOC,GAAP,oBAAAh0B,EAAA,6DAEbi0B,EAAY,GACZnE,EAAyBtvC,MAAM8d,QAAQ01B,GAA2BA,EAAwB7gD,KAAI,SAAA68C,GAAG,sBAAUA,MAAU,CAAC,eAAKgE,IAC3HtyC,EAAyBouC,EAAuB0D,SAAQ,SAAAjB,GAK1D,OAJYA,EAAsB7wC,uBAAuBvO,KAAI,SAAAuiC,GAAqB,oBAC9Eoe,wBAAyBvB,EAAsBx+C,IAC5C2hC,SAPQ,SAWK+d,GAAa/xC,GAXlB,qBAaTpB,SAAQ,SAAAklC,GACd,IAAMC,EAAOD,EAASC,KAChByO,EAAK1O,EAAS2O,eAAiB3O,EAAS2O,cAAcD,GACtDE,EAAW5O,EAAS2O,eAAiB3O,EAAS2O,cAAcC,SAC5DC,EAAgCD,GAAYA,EAAS54C,UAAY44C,EAAS54C,SAAS4K,MAAK,SAAAlG,GAAI,MAAgB,0BAAZA,EAAKnM,MACrGugD,EAA4BxE,EAAuB1pC,MAAK,SAAAmsC,GAAqB,OAAIA,EAAsBx+C,KAAOyxC,EAASsO,2BACvHlyC,EAAOyyC,GAAiCA,EAA8BjvC,MACtEqB,EAAS6tC,GAA6B,CACxClE,IAAKkE,EAA0BlE,IAC/BC,QAASiE,EAA0BjE,QACnCF,GAAImE,EAA0BnE,GAC9BF,UAAWqE,EAA0BrE,WAGrCxK,GAAQyO,GAAMtyC,GACdzN,OAAOD,KAAKuS,GAAQnG,SAAQ,SAAA1I,GACxB,IAAMkO,EAAMlE,EAAKwE,MAAK,SAAAlG,GAAI,OAAIA,EAAKnM,GAAGwgD,aAAe38C,KAC/ClB,EAAQ+P,EAAO7O,GACjBkO,QAAiBjO,IAAVnB,IACPu9C,EAAUh0C,KAAK,CACXlM,GAAI,CAAEmgD,GAAIA,EAAIM,OAAQ/O,EAAM1xC,GAAI+R,EAAI2uC,UACpC/9C,MAAOA,EAAM69C,aAGZD,EAA0BL,YAAWK,EAA0BL,UAAY,IAEhFK,EAA0BL,UAAUh0C,KAAK,CACrClM,GAAI,CAAEmgD,GAAIA,EAAIQ,SAAUjP,EAAM1xC,GAAI+R,EAAI2uC,UACtC/9C,MAAOA,EAAM69C,oBAzCd,kBAiDZ,CACHN,YACAnE,2BAnDe,2CAAH,sD,UChEP6E,GAAgC1yC,mBAAH,2TAa3B,eAA4B,IAAzBgyC,EAAwB,EAAxBA,UAAwB,6BAEtC,OAAOW,KAAoB7yC,OAAO,CAC9BC,SAAU2yC,GACVzyC,UAAW,CACPkO,MAAO,CACH6jC,cAGR9xC,QAAS,SAAClH,GACNmH,MAAMnH,OCvBZ45C,GAAuB5yC,mBAAH,6UAQX,YAACoiB,GACZ,OAAOviB,KAAiBC,OAAO,CAC3BC,SAAU6yC,GACV3yC,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OCeZyiC,GAAoCz7B,mBAAH,sOAfD,iKAwBhCI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,MAkHxBk3C,GA5GqC,SAAC,GAAoF,IAAlF/2C,EAAiF,EAAjFA,YAA0CnJ,GAAuC,EAApEoF,SAAoE,EAA1DwD,UAA0D,EAA/CyB,OAA+C,EAAvCrK,UAA2BL,GAAY,EAA7BU,aAA6B,0FAC9H8N,EAAWC,eACX3K,EAAYC,cACZoC,EAASC,eAHqH,GAIpH0H,KAIQ1G,IAAMC,UAAS,IAR6F,mBAQ7HG,EAR6H,KAQvH+I,EARuH,KAc9HU,EAAc,WAChBV,GAAQ,IAINiwC,EAAW,yCAAG,qCAAA/0B,EAAA,6DAChBlb,GAAQ,GACR/B,EAASQ,gBAFO,SAKwBzB,KAAiBk+B,MAAM,CAC3DA,MAAOtC,GACPx7B,UAAW,CACPrN,QAASkJ,EAAY/E,OACrBnC,OAAQ,CACJ+0B,MAAO7tB,IAGfoE,QAAS,SAAClH,GACNmH,MAAMnH,MAdE,cAKV+5C,EALU,OAkBVC,EAA6BD,EAA0B19C,MAAQ09C,EAA0B19C,KAAK8N,OAAS,GAlB7F,SAoBoC2uC,GAAekB,GApBnD,gBAoBRhB,EApBQ,EAoBRA,UAAWnE,EApBH,EAoBGA,uBAEfmE,GAAazzC,MAAM8d,QAAQ21B,IAAcj4C,QAAQi4C,EAAUj7C,QAC3Dk8C,GAA2B,CAAEjB,cACxBvgD,MAAK,YAAc,EAAX4D,KAELoD,EAAO,kDAAmD,OAAQ,CAAE0G,YAAarD,EAAY/E,SAC7F82C,EAAuBxvC,SAAQ,SAAArB,GAC3Bk2C,GAAW,CACPvgD,SAAUA,EACVsL,KAAMjB,EAAOlL,GACb6E,KAAMqG,EAAOrG,KACb0I,YAAarC,EAAOqC,YACpB2G,OAAQ,UACR3Q,KAAM,CACFA,KAAM,CACF89C,YAAan2C,EAAOg1C,oBAb5C,OAoBW,SAACh5C,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cArBlG,SAuBa,WACLb,EAASc,oBAGjBnJ,EAAO,sDAAuD,UAAW,CAAE0G,YAAa,IACxF2B,EAASc,iBAnDG,4CAAH,qDAyDjB,OACI,qCACI,cAACP,GAAA,EAAD,yBACI5J,QArEY,WACpBoL,GAAQ,IAqEAlL,MAAM,yCACFrF,GAHR,aAKI,cAAC,KAAD,OAEJ,eAACmS,GAAA,EAAD,CACI3K,KAAMA,EACNgB,QAASyI,EACTmB,kBAAgB,0CAChBqH,mBAAiB,gDAJrB,UAMI,cAAClH,GAAA,EAAD,CAAa/S,GAAG,0CAAhB,SACKsE,EAAU,mDAAoD,CAAE+I,YAAarD,EAAY/E,WAE9F,cAAC2U,GAAA,EAAD,UACI,cAACM,GAAA,EAAD,CAAmBla,GAAG,gDAAtB,SACKsE,EAAU,qDAAsD,CAAE+I,YAAarD,EAAY/E,aAGpG,eAAC6O,GAAA,EAAD,WACI,cAAC,KAAD,CAASnO,QAAS8L,EAAlB,SAAiCnN,EAAU,sBAC3C,cAAC,KAAD,CAASqB,QAASq7C,EAAap7C,MAAM,UAAUkU,WAAS,EAAxD,SAA0DxV,EAAU,+BClIzEg9C,GAVgC,SAAA9gD,GAAK,OAChD,qCACKqU,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACnFqU,GAAI,QAAS,0BAA4B,cAAC,GAAD,eAAqBrU,IAC9DqU,GAAI,UAAW,0BAA4B,cAACE,GAAA,EAAD,eAAsBvU,IACjEqU,GAAI,SAAU,0BAA4B,cAAC,GAAD,eAAsBrU,QC6B1D+gD,GA7BqB,SAAC/gD,GAAD,OAChC,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UACtE8O,GAAI,UAAW,wBAAyB,0BAA4B,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,6BAA6B4N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAArJ,SACjE,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAElGjK,GAAI,UAAW,wBAAyB,iBAAmB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,oBAAoB4N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAnI,SACxD,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,SAQlGjK,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAA7M,SACvD,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAArN,SACvD,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IAC/RvB,GAAI,UAAW,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SC1B1SorC,GAA4B,SAAChhD,GAC/B,IAAM6F,EAAWo7C,KACX59B,EAAmBjc,IAAMmT,OAAO,MAChC3W,ErFO+B,WACrC,IAAM2K,EAAUsT,KAkBhB,OAjBgBa,GAAW,CACvBrO,GAAI,UAAW,wBAAyB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAC5GsP,GAAI,UAAW,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACtE8O,GAAI,UAAW,wBAAyB,OAAS,cAAC,GAAD,CAAS9O,OAAO,KAAKF,MAAM,kDAAkD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACnO3N,GAAI,UAAW,wBAAyB,QAAU,cAAC,GAAD,CAAU9O,OAAO,MAAMF,MAAM,mDAAmD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACvO3N,GAAI,UAAW,wBAAyB,YAAc,cAAC,GAAD,CAAc9O,OAAO,UAAUF,MAAM,uDAAuD6G,QAAS,CAAEf,sBAAuB,GAAKjE,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,SACvP3N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,SAC3J3N,GAAI,UAAW,wBAAyB,YAAc,cAACkP,GAAA,EAAD,CAAWhe,OAAO,UAAU2G,QAASqgB,KAAiBxM,UAAU,QAAQP,gBAAiBjR,EAAQyT,SACvJ3N,GAAI,UAAW,wBAAyB,uBAAyB,cAAC,KAAD,CAAW9O,OAAO,uBACnF8O,GAAI,UAAW,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SACtD,cAAC,GAAD,MAEJvL,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eAC/H1N,GAAI,UAAW,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBqFvBnHyB,GAEhB,OACI,cAAC,EAAD,2BACQxjB,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAa7f,QAASA,IAC/B8f,kBAAmB,cAAC,GAAD,IACnBw9B,MAAO,cAACC,GAAD,IACPt7C,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAA6BsN,QAAS6M,IANnD,SAQI,cAAC,GAAD,CAA+Bzf,QAASA,QAKpDo9C,GAA0B3+C,aAAe,CACrC/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBm/C,U,WCxBT1iC,GAAY,kBAAM,GA0CT8iC,GAjCqB,SAAAphD,GAGhC,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,wBAAyB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC1GgC,GAAI,SAAU,wBAAyB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAC5GgC,GAAI,SAAU,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQof,SAAUC,iBACvFvQ,GAAI,SAAU,wBAAyB,OAAS,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,OACpE8O,GAAI,SAAU,wBAAyB,QAAU,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,QACrE8O,GAAI,SAAU,wBAAyB,YAAc,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,YACzE8O,GAAI,SAAU,wBAAyB,cAAgB,cAACyjB,GAAA,EAAD,CAAkBvyB,OAAO,YAAzB,SACnD,gBAAGwyB,EAAH,EAAGA,SAAal0B,EAAhB,mCACG,cAACw9C,GAAA,EAAD,2BAAmBx9C,GAAnB,IAAyB0B,OAAO,YAAYovB,WAAY,CAAEmQ,IAAK/M,GAAYA,EAAS4jB,QAAU/wC,KAAOmtB,EAAS4jB,SAAS9wC,OAAO,cAAgB,YAGrJwJ,GAAI,SAAU,wBAAyB,YAAc,cAACyjB,GAAA,EAAD,CAAkBvyB,OAAO,UAAzB,SACjD,gBAAGwyB,EAAH,EAAGA,SAAal0B,EAAhB,mCACG,cAACw9C,GAAA,EAAD,2BAAmBx9C,GAAnB,IAAyB0B,OAAO,UAAUovB,WAAY,CAAEoQ,IAAKhN,GAAYA,EAAS2jB,UAAY9wC,KAAOmtB,EAAS2jB,WAAW7wC,OAAO,cAAgB,YAGvJwJ,GAAI,SAAU,wBAAyB,uBAAyB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,uBAClF8O,GAAI,SAAU,wBAAyB,yBAA0B,0BAA4B,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,4BAA4B4N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,gEAAgEgN,WAAS,EAA9N,SAC1F,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,iDAAiDgN,WAAS,IAChTgC,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,8CAA8CgN,WAAS,WCrC9RvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAkCVmzC,GA9BqB,SAAC,GAAuD,IAA5ChzC,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACjFuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YACrBk1B,EAAQv3B,EAAOu3B,MAErB,OACI,cAAChb,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,wBAAyB,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAC5EgQ,GAAI,SAAU,wBAAyB,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IACvGsH,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SACtD,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,SAAU,wBAAyB,UAAY,cAACgK,GAAA,EAAD,CAAMpV,UAAWsF,EAAQ0S,KAAM5b,MAAO48B,EAAO35B,KAAK,oBC1BxHgW,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCusC,GAA+B,SAAAvhD,GACjC,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,0BAA4B,cAACsT,GAAA,EAAD,IAC1CtT,GAAI,SAAU,0BAA4B,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aACzI,cAAC,GAAD,IACCsN,GAAI,SAAU,0BAA4B,cAAC,GAAD,CAAcxE,SAAS,SAClE,cAAC,GAAD,SA2CG2xC,GApCmB,SAAAxhD,GAG9B,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,wBAAyB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC1GgC,GAAI,SAAU,wBAAyB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAC5GgC,GAAI,SAAU,wBAAyB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQof,SAAUC,iBACvFvQ,GAAI,SAAU,wBAAyB,OAAS,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,OACpE8O,GAAI,SAAU,wBAAyB,QAAU,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,QACrE8O,GAAI,SAAU,wBAAyB,YAAc,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,YACzE8O,GAAI,SAAU,wBAAyB,cAAgB,cAACyjB,GAAA,EAAD,CAAkBvyB,OAAO,YAAzB,SACnD,gBAAGwyB,EAAH,EAAGA,SAAal0B,EAAhB,mCACG,cAACw9C,GAAA,EAAD,2BAAmBx9C,GAAnB,IAAyB0B,OAAO,YAAYovB,WAAY,CAAEmQ,IAAK/M,GAAYA,EAAS4jB,QAAU/wC,KAAOmtB,EAAS4jB,SAAS9wC,OAAO,cAAgB,YAGrJwJ,GAAI,SAAU,wBAAyB,YAAc,cAACyjB,GAAA,EAAD,CAAkBvyB,OAAO,UAAzB,SACjD,gBAAGwyB,EAAH,EAAGA,SAAal0B,EAAhB,mCACG,cAACw9C,GAAA,EAAD,2BAAmBx9C,GAAnB,IAAyB0B,OAAO,UAAUovB,WAAY,CAAEoQ,IAAKhN,GAAYA,EAAS2jB,UAAY9wC,KAAOmtB,EAAS2jB,WAAW7wC,OAAO,cAAgB,YAGvJwJ,GAAI,SAAU,wBAAyB,uBAAyB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,uBAClF8O,GAAI,SAAU,wBAAyB,yBAA0B,0BAA4B,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,4BAA4B4N,UAAU,wBAAwBrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,gEAAgEgN,WAAS,EAA9N,SAC1F,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,iDAAiDgN,WAAS,IACrSgC,GAAI,SAAU,wBAAyB,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,yBAA2ByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,8CAA8CgN,WAAS,c,WC3DlSvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,MA4FxBo4C,GAvF0B,SAAC,GAAwD,EAAtDh8C,SAAsD,EAA5CwD,UAA6C,IAAlCyB,EAAiC,EAAjCA,OAAQrK,EAAyB,EAAzBA,SAAaL,EAAY,4DACxFwO,EAAWC,eACX3K,EAAYC,cACZoC,EAASC,eAH+E,GAI9E0H,KACQ1G,IAAMC,UAAS,IALuD,mBAKvFG,EALuF,KAKjF+I,EALiF,KAO9F,IAAK7F,EAAQ,OAAO,KAGpB,IAIMuG,EAAc,WAChBV,GAAQ,IAGNiwC,EAAW,yCAAG,+BAAA/0B,EAAA,6DAChBlb,GAAQ,GADQ,SAIYivC,GAAe90C,GAJ3B,iBAIRg1C,EAJQ,EAIRA,YAESzzC,MAAM8d,QAAQ21B,IAAcj4C,QAAQi4C,EAAUj7C,QAC3Dk8C,GAA2B,CAAEjB,cACxBvgD,MAAK,YAAe,IAAZ4D,EAAW,EAAXA,KAELoD,EAAO,kDAAmD,OAAQ,CAAE0G,YAAa,IACjF+zC,GAAW,CACPvgD,SAAUA,EACVsL,KAAMjB,EAAOlL,GACb6E,KAAMqG,EAAOrG,KACb0I,YAAarC,EAAOqC,YACpB2G,OAAQ,UACR3Q,KAAM,CACFA,KAAM,CACF28C,UAAW38C,EAAKA,YAZpC,OAiBW,SAAC2D,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAlBlG,SAoBa,WACLb,EAASc,oBAGjBnJ,EAAO,sDAAuD,UAAW,CAAE0G,YAAa,IACxF2B,EAASc,iBAhCG,2CAAH,qDAqCjB,OACI,qCACI,cAACP,GAAA,EAAD,yBACI5J,QAhDY,WACpBoL,GAAQ,IAgDAlL,MAAM,yCACFrF,GAHR,aAKI,cAAC,KAAD,OAEJ,eAACmS,GAAA,EAAD,CACI3K,KAAMA,EACNgB,QAASyI,EACTmB,kBAAgB,0CAChBqH,mBAAiB,gDAJrB,UAMI,cAAClH,GAAA,EAAD,CAAa/S,GAAG,0CAAhB,SACKsE,EAAU,mDAAoD,CAAE+I,YAAa,MAElF,cAACuM,GAAA,EAAD,UACI,cAACM,GAAA,EAAD,CAAmBla,GAAG,gDAAtB,SACKsE,EAAU,qDAAsD,CAAE+I,YAAa,QAGxF,eAACyG,GAAA,EAAD,WACI,cAAC,KAAD,CAASnO,QAAS8L,EAAlB,SAAiCnN,EAAU,sBAC3C,cAAC,KAAD,CAASqB,QAASq7C,EAAap7C,MAAM,UAAUkU,WAAS,EAAxD,SAA0DxV,EAAU,+BC3ElF+tB,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OAKnC0hD,GAA+B,SAAC,GAAyE,IAAvEj8C,EAAsE,EAAtEA,SAAqB1C,GAAiD,EAA5DkG,UAA4D,EAAjDlG,MAAwB1C,GAAyB,EAA3C0lB,QAA2C,EAAlCV,QAAkC,EAAzBhlB,UAAaL,EAAY,8EAE1G,OACI,eAAC6J,EAAA,EAAD,2BAAgB7J,GAAhB,cAEKqU,GAAI,QAAS,0BAA4B,cAAC,GAAD,CAAahU,SAAUA,EAAUoF,SAAUA,EAAUiF,OAAQ3H,IACtGsR,GAAI,SAAU,0BAA4B,cAAC,KAAD,CAAYhU,SAAUA,EAAUoF,SAAUA,EAAUiF,OAAQ3H,SAiEpG4+C,GA5DmB,SAAA3hD,GAAU,IAAD,EACjC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,IAAWyjB,QAAS,cAAC,GAAD,KAAsCzjB,GAAzG,cACI,cAAC,GAAD,IACA,eAAC,GAAD,WACKqU,GAAI,SAAU,wBAAyB,OAAS,cAAC,GAAD,CAAS9O,OAAO,KAAKmC,MAAO,CAAEyD,sBAAuB,KACrGkJ,GAAI,SAAU,wBAAyB,QAAU,cAAC,GAAD,CAAU9O,OAAO,MAAMmC,MAAO,CAAEyD,sBAAuB,KACxGkJ,GAAI,SAAU,wBAAyB,YAAc,cAAC,GAAD,CAAc9O,OAAO,UAAUmC,MAAO,CAAEyD,sBAAuB,KACpHkJ,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OAC9FlY,GAAI,SAAU,wBAAyB,YAAc,cAACkP,GAAA,EAAD,CAAWhe,OAAO,UAAU2G,QAASqgB,OAC1FlY,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OAC9FlY,GAAI,SAAU,wBAAyB,uBAAyB,cAAC,KAAD,CAAW9O,OAAO,0BAEtF8O,GAAI,SAAU,wBAAyB,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,uCAAxC,SAC5D,cAAC,GAAD,MAEHgP,GAAI,SAAU,wBAAyB,yBAA0B,0BAC9D,cAAC,IAAD,GACIlB,UAAU,wBACV7O,OAAO,6BACPe,MAAM,gEACNS,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAChD4I,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,KANb,yBAOa,IAPb,4BAQgB,cAACwO,EAAA,EAAD,KARhB,0BAUI,cAAC,GAAD,KAVJ,IAaJ,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,wBAAyB,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACtE,cAAC,GAAD,IACC8O,GAAI,SAAU,wBAAyB,OAAS,cAAC,KAAD,CAAW9O,OAAO,OAClE8O,GAAI,SAAU,wBAAyB,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAC5D,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OAC9FlY,GAAI,SAAU,wBAAyB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAItGlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,qCCrGnDq8C,GAA4B7hD,K,qBCwCnB4M,GAzCK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAiCxE,OAFiBjH,GAAegH,EA9BZ,CAChBpN,IAAI,EACJsN,OAAO,EACPzI,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXk3C,aAAc,CACVriD,IAAI,EACJ6E,MAAM,EACNyI,OAAO,EACP/B,WAAY,eAEhBqC,QAAS,CACL5N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,UAEhBsC,KAAM,CACF7N,IAAI,EACJ6E,MAAM,EACN0G,WAAY,OAEhBA,WAAY,aAEuC,CAAEjH,eCrB9Cg+C,GAVoB,SAAA9hD,GAAK,OACpC,qCACKqU,GAAI,SAAU,YAAa,OAAQ,QAAU,cAAC,GAAD,eAA0BrU,IACvEqU,GAAI,UAAW,cAAgB,cAACE,GAAA,EAAD,eAAsBvU,IACrDqU,GAAI,SAAU,cAAgB,cAAC,GAAD,eAAsBrU,QCAvD8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsV,YAAa,CAAE5J,MAAO1L,EAAM2L,QAAQ,SAuBzB+sC,GApBS,SAAC/hD,GACrB,IAAMuO,EAAUT,KAChB,OACI,eAAC+Q,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAC/BsP,GAAI,UAAW,YAAa,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQR,UAAQ,EAACiX,YAAU,EAAC/S,UAAWsF,EAAQoQ,cACzGtK,GAAI,UAAW,YAAa,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,WAAWF,MAAM,gCAAgC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAjM,SAC3C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,YAAa,OAAQ,QAAU,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,eAAeF,MAAM,oCAAoC8N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,EAAzM,SAC3C,cAAC,KAAD,CAAwBkJ,WAAW,OAAOJ,gBAAiBJ,SAE9DjK,GAAI,UAAW,YAAa,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,cAAcF,MAAM,sCAAsC8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,IACvQvB,GAAI,UAAW,YAAa,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,kBAAkBF,MAAM,0CAA0C8N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAY,SC4B7QosC,GAzBW,SAAC,GAA2B,IAAzBp+C,EAAwB,EAAxBA,QAAY5D,EAAY,2BAC3CmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KACVgB,EAAkBV,GAA8Bve,GAEtD,OAAOuF,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9B2e,aAAc,SAAAtY,GAAM,OAAIA,EAAOoC,OAC/B2S,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKe,EACD,eAAC,GAAD,CAAY3b,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,cAAgB,cAAC,GAAD,IAC9BA,GAAI,SAAU,cAAgB,cAAC,GAAD,IAC9BA,GAAI,SAAU,cAAgB,cAAC,GAAD,YCrCzC4tC,GAAgB,SAACjiD,GACnB,IAAM6F,EAAWq8C,KACX7+B,EAAmBjc,IAAMmT,OAAO,MAChC3W,EDE+B,WACrC,IAAM2K,EAAUsT,KAWhB,OAVgBa,GAAW,CACvBrO,GAAI,UAAW,YAAa,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,SAASS,UAAQ,IAChGsP,GAAI,UAAW,YAAa,UAAY,cAAC,KAAD,CAAW9O,OAAO,QAAQia,gBAAiBjR,EAAQyT,SAC3F3N,GAAI,UAAW,YAAa,OAAQ,QAAU,cAACiP,GAAD,CAAe/d,OAAO,OAAOqa,UAAU,EAAvC,SAC1C,cAAC,GAAD,MAEJvL,GAAI,UAAW,YAAa,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACnH1N,GAAI,UAAW,YAAa,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,iBCXvGyB,GAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyBtE,GAAG,qCAAqC5a,OAAO,WACxE,cAAC,EAAD,2BACQtE,GADR,IAEIyjB,QAAS,cAAC,GAAD,CAAY7f,QAASA,IAC9B8f,kBAAmB,cAAC,GAAD,IACnB7d,SAAUA,EACVqD,QAAS,cAAC,GAAD,CAAiBsN,QAAS6M,IALvC,SAOI,cAAC,GAAD,CAAmBzf,QAASA,WAM5Cq+C,GAAc5/C,aAAe,CACzB/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBogD,UC5BT3jC,GAAY,kBAAM,GAgCT6jC,GAnBS,SAAAniD,GAGpB,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,YAAa,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC9FgC,GAAI,SAAU,YAAa,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAChGgC,GAAI,SAAU,YAAa,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UACzD8O,GAAI,SAAU,YAAa,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAEugC,UAAW,MAAQ/8B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,0CAA0CgN,WAAS,EAAjN,SAC1D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,YAAa,UAAW,WAAa,cAAC0Q,GAAD,CAAsCxf,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCgN,WAAS,IAC5QgC,GAAI,SAAU,YAAa,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,kCAAkCgN,WAAS,WC3B1PvE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAInB2T,YAAa,CACTxV,gBAAiB,eAoCVi0C,GAhCS,SAAC,GAAuD,IAA5C9zC,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCACrEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,qBAAK9D,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,SACI,cAACge,GAAA,EAAD,UACI,qBAAKvf,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,YAAa,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAChEgQ,GAAI,SAAU,YAAa,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IAC3FsH,GAAI,SAAU,YAAa,OAAQ,QAAU,cAACiP,GAAD,CAAe5Y,OAAQA,EAAQnF,OAAO,OAAtC,SAC1C,cAAC,GAAD,SAGR,cAAC8hB,GAAA,EAAD,CAAM1b,MAAI,EAAV,SACK0I,GAAI,UAAW,YAAa,UAAY,cAAC,GAAD,eAAarU,gBC1B5Ese,GAAY,kBAAM,GAElBxQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,KAInC/E,oBAAqB,CACjBD,UAAW,EACX8W,aAAc,OAIhBu7B,GAAmB,SAAAriD,GACrB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,cAAgB,cAACsT,GAAA,EAAD,IAC9BtT,GAAI,SAAU,cAAgB,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aAC7H,cAAC,GAAD,IACCsN,GAAI,SAAU,cAAgB,cAAC,GAAD,CAAcxE,SAAS,SACtD,cAAC,GAAD,SA2BGyyC,GAtBO,SAAAtiD,GAGlB,OACI,eAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,YAAa,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IAC9FgC,GAAI,SAAU,YAAa,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAChGgC,GAAI,SAAU,YAAa,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,UACzD8O,GAAI,SAAU,YAAa,eAAgB,gBAAkB,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,kBAAkB4N,UAAU,cAAc7Q,OAAQ,CAAEugC,UAAW,MAAQ/8B,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,0CAA0CgN,WAAS,EAAjN,SAC1D,cAAC,KAAD,CAAwBoM,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,OAEhHjK,GAAI,SAAU,YAAa,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCgN,WAAS,IACjQgC,GAAI,SAAU,YAAa,OAAQ,QAAU,cAAC,GAAD,CAAwB9O,OAAO,UAAU4N,UAAU,MAAM7Q,OAAQ,CAAEjC,SAAU,aAAeyF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,kCAAkCgN,WAAS,cC1C9Pwf,GAAuB,SAAC7xB,GAC1B,OACI,cAAC,GAAD,2BAAyBA,GAAzB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAI/F,GAAE,UAAKQ,EAAMmT,UAAX,MAA0BpO,UAAQ,QAKlE+sB,GAA6B,SAAC9xB,GAChC,OACI,cAAC,GAAD,UACI,cAAC,GAAD,eAA6BA,OA4D1BuiD,GAvDO,SAAAviD,GAClB,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MAEvC,OACI,eAAC,GAAD,2BAAUva,GAAV,IAAiB6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,IAA1D,UACI,cAAC,GAAD,IAECqU,GAAI,SAAU,YAAa,UAAW,WAAa,cAAC,GAAD,CAAiB9O,OAAO,UAAUF,MAAM,qCAAxC,SAChD,cAAC,GAAD,MAGHgP,GAAI,SAAU,YAAa,eAAgB,gBACxC,cAAC,GAAD,CACIlB,UAAU,cACV7O,OAAO,qBACPe,MAAM,0CACN6D,QAAS,cAAC,GAAD,IACTua,QAAS,cAAC,GAAD,IACT3d,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAC9BvB,QAAS,IACTiG,WAAY,cAAC0rB,EAAA,EAAD,IARhB,SAUI,cAAC,GAAD,MAGR,cAAC,GAAD,CAAWve,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,YAAa,UAAY,cAAC,KAAD,CAAW9O,OAAO,UAC1D,cAAC,GAAD,IACC8O,GAAI,SAAU,YAAa,OAAS,cAAC,KAAD,CAAW9O,OAAO,OACtD8O,GAAI,SAAU,YAAa,YAAa,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAChD,cAAC,KAAD,CAAW5N,OAAO,WAErB8O,GAAI,SAAU,YAAa,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OAClFlY,GAAI,SAAU,YAAa,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI1FlY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,yBC7EnDi9C,GAAgBziD,K,WCEhB+N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAGnBohB,QAAS,OAGPqxB,GAAkB,SAAC,GAOlB,IANHx7C,EAME,EANFA,SACSqH,EAKP,EALFC,QACAtF,EAIE,EAJFA,UACA5D,EAGE,EAHFA,MACW6f,EAET,EAFFlG,UACGhf,EACD,sEAEIuO,EAAUT,GAAU,CAAES,QAASD,IAC/BxK,EAAYC,cAClB,OACI,sBAAKkF,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAACyB,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,EAAO,CAAEyC,EAAGzC,MAC3G,cAAC6f,EAAD,CAASjc,UAAWsF,EAAQ6iB,QAA5B,SACKroB,uBAAaF,WAASmY,KAAK/Z,GAAf,YAAC,eACPjH,GACAiH,EAASjH,cAQhCyiD,GAAgBpgD,aAAe,CAC3B2c,UAAW,OAIAyjC,U,+BCkBTC,IApDY30C,cAAW,SAAA1E,GAC3B,IAAMykC,EAA+B,UAAvBzkC,EAAM4E,QAAQ4J,KACtB1J,EAAkB2/B,EAAQ,sBAAwB,4BAExD,MAAO,CACL51B,KAAM,CACJrD,SAAU,WACV1G,kBACAw0C,oBAAqBt5C,EAAMu5C,MAAMhK,aACjCiK,qBAAsBx5C,EAAMu5C,MAAMhK,aAClCrwB,WAAYlf,EAAMmf,YAAYC,OAAO,mBAAoB,CACvDC,SAAUrf,EAAMmf,YAAYE,SAASo6B,QACrCC,OAAQ15C,EAAMmf,YAAYu6B,OAAOC,UAEnC,UAAW,CACT70C,gBAAiB2/B,EAAQ,sBAAwB,4BAEjD,uBAAwB,CACtB3/B,oBAGJ,YAAa,CACXA,gBAAiB2/B,EAAQ,sBAAwB,6BAEnD,aAAc,CACZ3/B,gBAAiB2/B,EAAQ,sBAAwB,8BAGrDzoC,MAAO,CACLi0C,YAAa,QAuBD,SAAC,GAAyC,IAAvC5uC,EAAsC,EAAtCA,OAAQnF,EAA8B,EAA9BA,OAAQ8D,EAAsB,EAAtBA,MAAUrJ,EAAY,2CACnDg2C,EAAOx0C,IAAIkJ,EAAQnF,GACzB,IAAKywC,EAAM,OAAO,KAClB,IAAMiN,EAA4B,kBAATjN,EAAqBj1C,KAAKI,MAAM60C,GAAQA,EAEjE,OAEE,cAAC,KAAD,aAEEnB,YAAaoO,EACbC,UAAQ,EACRC,aAAa,EACbC,OAAM,2BAAO/5C,GAAP,IAAcyQ,WAAY,SAChC6F,OAAQA,KACRjY,MAAO,CACL+M,KAAM,CACJ5N,SAAU,QAEZw8C,WAAY,CACVj+C,MAAO,wBAGX8P,OAAO,QACPH,MAAM,QACFqK,GAAuBpf,OAOjC0iD,GAAUrgD,aAAe,CACvBgH,MA9CkB,CAClBi6C,QAAS,sBACTxpC,WAAY,sBACZypC,mBAAoB,OACpBC,OAAQ,OACRvF,OAAQ,UACRwF,MAAO,UACP9jD,KAAM,sBACN+jD,gBAAiB,UACjBC,UAAW,UACXj9C,MAAO,WAqCP2Y,UAAU,GAGGqjC,UC/FT50C,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCqW,KAAM,CACFta,MAAOiE,EAAM4E,QAAQyR,KAAKxR,UAI5B9F,GAAkB,SAAAhJ,GAAC,OAAIA,EAAEgJ,mBAEzBw7C,GAAY,SAAC,GASZ,IARH36C,EAQE,EARFA,UACSqF,EAOP,EAPFC,QACA9I,EAME,EANFA,SACAiF,EAKE,EALFA,OACArK,EAIE,EAJFA,SACAkF,EAGE,EAHFA,OACAma,EAEE,EAFFA,KACG1f,EACD,sFACIuO,EAAUT,GAAU,CAAES,QAASD,IAE/B6E,EAAY3R,IAAIkJ,EAAQ,YACxBm5C,EAAcriD,IAAIkJ,EAAQ,QAC1B7C,EAAQrG,IAAIkJ,EAAQnF,GACpBkkB,EAAWhkB,EAASikB,QAAQrpB,EAAU8S,GACtCwW,EAAgB,UAAMF,EAAN,YAAkBG,mBAAmBi6B,GAArC,YAAqDnkC,GAE3E,OACI,cAAC,KAAD,CAAMR,GAAIyK,EAAkBxkB,QAASiD,GAArC,SACI,cAACtB,GAAA,EAAD,yBAAYkY,UAAU,OAAOjY,QAAQ,QAAQkC,UAAS,UAAKA,EAAL,YAAkBsF,EAAQmR,OAAYN,GAAuBpf,IAAnH,aAA4H6H,QAKxI+7C,GAAUvhD,aAAe,CACrBkM,QAAS,GACTmR,KAAM,OACNL,UAAU,GAGCukC,U,0CCzCT91C,GAAYC,MACd,SAAA1E,GAAK,YAAK,CACN6O,MAAI,GACAxD,QAAS,OACTwT,eAAgB,gBAChBvT,WAAY,WACZmvC,cAAez6C,EAAM2L,QAAQ,GAC7BmB,UAAW,SALX,eAMC9M,EAAMC,YAAY6gB,GAAG,MAAQ,CAC1BmvB,YAAa,EACbC,aAAc,IARlB,eAUClwC,EAAMC,YAAYC,KAAK,MAAQ,CAC5BgwC,aAAclwC,EAAM2L,QAAQ,KAXhC,eAaC3L,EAAMC,YAAYC,KAAK,MAAQ,CAC5B0J,QAAS5J,EAAM2L,QAAQ,GACvB7G,gBAAiB9E,EAAM4E,QAAQ6L,WAAWC,QAf9C,GAkBJ0J,QAAQ,cACJxN,WAAY5M,EAAM2L,QAAQ,GAC1BmB,UAAW9M,EAAM2L,QAAQ,IACxB3L,EAAMC,YAAYC,KAAK,MAAQ,CAC5B0J,QAAS5J,EAAM2L,QAAQ,GACvB7G,gBAAiB9E,EAAM4E,QAAQ6L,WAAWC,WAItD,CAAE1V,KAAM,uBAGN0/C,GAAc,SAAA/jD,GACgDA,EAAxDuO,QADkB,IACQrF,EAA8BlJ,EAA9BkJ,QAASua,EAAqBzjB,EAArByjB,QAAY5f,EAD9B,YACuC7D,EADvC,iCAEnBuO,EAAUT,GAAU9N,GAC1B,OACI,eAAC,KAAD,CAASiJ,UAAWsF,EAAQ2J,KAA5B,UACKhP,GACG9B,IAAM2B,aAAaG,EAAnB,2BACOrF,GADP,IAEIkG,QAAS,UAEjB,yBACC0Z,GACGrc,IAAM2B,aAAa0a,EAAnB,2BACO5f,GADP,IAEIoF,UAAWsF,EAAQkV,QACnBva,WACGua,EAAQzjB,YAehBoH,OAAMkZ,KAAKyjC,IC7DpBj2C,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCmS,OAAQ,CACJpW,MAAOiE,EAAM4E,QAAQiQ,KAAKiK,eA+BnB8E,GA3BwB,SAAC,GAAuD,EAArDhkB,UAAqD,EAA1C3E,OAA0C,EAAlC6O,UAAkC,EAAvBzI,OAAuB,2DAAC,IAEtF6D,EAAUT,KAF2E,EAGtC1N,cAA7CqF,EAHmF,EAGnFA,SAAUnD,EAHyE,EAGzEA,OAAQ5B,EAHiE,EAGjEA,aAHiE,oDAK3F,OACI,cAAC,KAAD,CACIse,UAAWC,KACXC,GAAI,CACAgO,SAAUznB,EACV8V,OAAQva,qBAAU,CACdsB,OAAQvB,KAAKC,UAAL,2BACDsB,GACA5B,OAIf4H,KAAK,QACLqQ,kBAAgB,EAChB1P,UAAWsF,EAAQiN,OAbvB,8FCJF1N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFjC,WAAY,EACZ6tC,cAAe,EACf3tC,UAAW,OAIb6tC,GAAmB,SAAAhkD,GAAU,IACvBiJ,EAA0CjJ,EAA1CiJ,UAAqBC,GAAqBlJ,EAA/B6F,SAA+B7F,EAArBkJ,SAAYrF,EADX,YACoB7D,EADpB,oCAExBuO,EAAUT,KAFc,EAW1B1N,YAAeJ,GANfW,GAL0B,EAI1BH,YAJ0B,EAK1BG,kBACAD,EAN0B,EAM1BA,aAEA8I,GAR0B,EAO1B/D,SAP0B,EAQ1B+D,aACAC,EAT0B,EAS1BA,WACAzD,EAV0B,EAU1BA,MAEE3F,EAAW2D,YAAmBH,GAEpC,OAAO+F,mBACH,kBACI,eAACC,EAAA,EAAD,yBACIZ,UAAWA,EACXsF,QAAS,CAAE2J,KAAM3J,EAAQ2J,OAErBpO,YAAsBjG,IAJ9B,cAMKqF,GACGH,uBAAaG,EAAS,CAClB7I,WACAoJ,aACA9I,mBACAD,eACAqJ,QAAS,WAGjB,cAACk6C,GAAD,eAA8BpgD,UAGtC,CAACxD,EAAUM,EAAkBD,EAAc8I,EAAaN,EAASlD,KAMzEg+C,GAAiB3hD,aAAe,CAC5BmH,YAAa,GACbe,gBAAiB,kBAAM,OAGZy5C,UC7DTE,GAAY,SAAC,GAOZ,IANHj9C,EAME,EANFA,SACAwc,EAKE,EALFA,QACAva,EAIE,EAJFA,QACWgc,EAGT,EAHFlG,UACA3e,EAEE,EAFFA,SACGL,EACD,uEAGF,OACI,cAAC4tB,GAAA,EAAD,CAAyBzrB,MAAO9B,EAAhC,SACI,eAAC8jD,GAAA,EAAD,2BACQnkD,GADR,eAGMkJ,GAAWua,IACT,cAAC2gC,GAAD,CACIl7C,QAASA,EACTua,QAASA,IAGjB,eAACyB,EAAD,WACKnc,uBAAaF,WAASmY,KAAK/Z,GAAf,eACNzB,GAAkBxF,KAEzB,cAACiyB,EAAA,EAAD,cAWpBiyB,GAAU7hD,aAAe,CACrBohB,QAAS,cAAC,GAAD,IAETzE,UAAW8O,KAIXzO,UAAU,GAId,IAAM7Z,GAAoB,SAACxF,GAAD,OAAW,cACjCyF,SADiC,EAEjCjF,YAFiC,EAGjCuC,KAHiC,EAIjCqiB,aAJiC,EAKjCzkB,iBALiC,EAMjC0jD,oBANiC,EAOjC3jD,aAPiC,EAQjCgJ,UARiC,EASjCqc,QATiC,EAUjCV,QAViC,EAWjCC,QAXiC,EAYjC/O,WAZiC,EAajCiE,QAbiC,EAcjCjb,IAdiC,EAejCyD,QAfiC,EAgBjCC,OAhBiC,EAiBjC+iB,SAjBiC,EAkBjCnI,MAlBiC,EAmBjCymC,SAnBiC,EAoBjCC,aApBiC,EAqBjCh6C,gBArBiC,EAsBjC2B,QAtBiC,EAuBjC1F,KAvBiC,EAwBjC2f,YAxBiC,EAyBjC7lB,QAzBiC,EA0BjCD,SA1BiC,EA2BjCmJ,YA3BiC,EA4BjC5I,WA5BiC,EA6BjC4jD,QA7BiC,EA8BjCjkD,WA9BiC,EA+BjCE,QA/BiC,EAgCjCgJ,WAhCiC,EAiCjCg7C,iBAjCiC,EAkCjC3+C,KAlCiC,EAmCjCE,MAnCiC,ybAuCtBk+C,M,UCvFTp2C,GAAYC,cAAW,SAAA1E,GACzB,MAAO,CACH6O,KAAK,cACDxD,QAAS,OACT0V,oBAAqB,WACpB/gB,EAAMC,YAAYC,KAAK,MAAQ,CAC5B6gB,oBAAqB,QAI7BqkB,QAAS,CACL15B,MAAO,QAEX2vC,UAAW,CACPhwC,QAAS,YAsBNiwC,GAhBM,SAAA3kD,GAEjB,IAAMuO,EAAUT,KAEhB,OACI,sBAAK7E,UAAWsF,EAAQ2J,KAAxB,UACI,cAAC0sC,GAAA,EAAD,2BAAa5kD,GAAb,IAAoBuF,OAAO,YAAY0D,UAAWsF,EAAQkgC,QAA1D,SACI,cAAC,GAAD,2BAAezuC,GAAf,IAAsBuF,OAAO,YAAY0D,UAAWsF,EAAQm2C,gBAEhE,cAACE,GAAA,EAAD,2BAAa5kD,GAAb,IAAoBuF,OAAO,gBAAgB0D,UAAWsF,EAAQkgC,QAA9D,SACI,cAAC,GAAD,2BAAezuC,GAAf,IAAsBuF,OAAO,gBAAgB0D,UAAWsF,EAAQm2C,oBChB1E52C,GAAYC,cAAW,SAAA1E,GACzB,MAAO,CACHq7C,UAAW,CACPhwC,QAAS,YAKfyX,GAAgB,SAACnsB,GAAD,OAClB,cAAC,KAAD,2BAAYA,GAAZ,aACI,cAAC,GAAD,CAAWuF,OAAO,SAASR,UAAQ,QA+D5B8/C,GA1DK,SAAA7kD,GAChB,IAAMgC,EAAkB2vB,aAAkB3xB,GAEpC8oB,GADUhb,KACO1G,IAAMmT,OAAO,OAEpC,IAAKvY,EAAgB0I,OAAQ,OAAO,KALX,MAOF1I,EAAgB0I,OAA/BiB,EAPiB,EAOjBA,KAAMtH,EAPW,EAOXA,KAEd,OACI,cAACutB,GAAA,EAAD,CAAqBzvB,MAAOH,EAA5B,SACI,eAAC,GAAD,uCACQhC,GACAgC,GAFR,IAGI6F,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,IAH7C,UAKI,eAAC,GAAD,WACI,cAAC,GAAD,CAAWuF,OAAO,SAASyc,QAAM,IACjC,cAAC,GAAD,CAAWzc,OAAO,aAClB,cAAC,GAAD,CAAWA,OAAO,SAGlB,cAAC,GAAD,CAAcA,OAAO,SACrB,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,UAG3C,cAAC,GAAD,CAAiBlnB,MAAK,qDAAahB,GAAnC,SACI,cAAC,GAAD,CACIhE,SAAS,UACToF,SAAS,WACTge,SAAS,EACTva,QAAS,cAAC,GAAD,IACT5G,OAAQ,CACJqJ,QAEJ7F,KAAM,CAAElE,MAAO,YAAaC,MAAO,QACnCvB,QAAS,GATb,SAWI,cAAC,GAAD,QAKR,cAAC,GAAD,CAAWoT,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACI,cAAC,KAAD,CAAWvjB,OAAO,OAClB,cAAC,GAAD,CAAaA,OAAO,YAAY4N,UAAU,OAA1C,SACI,cAAC,KAAD,CAAW5N,OAAO,uBCjFxCu/C,GAAc/kD,KCKdglD,GAAe,SAAC/kD,GAAD,OACjB,cAAC6e,GAAD,2BAAwB7e,GAAxB,aACI,cAAC,KAAD,CAAauF,OAAO,IAAIR,UAAQ,QAIlCigD,GAAa,SAAAhlD,GACf,IAAMuO,EAAUsT,KACV7f,EAAkBC,YAAkBjC,GACpCqjB,EAAmBjc,IAAMmT,OAAO,MAEtC,OACI,cAACrY,EAAA,EAAD,CAAqBC,MAAOH,EAA5B,SACI,cAACI,EAAA,EAAD,yBACI8G,QAAS,cAAC,GAAD,CAAcsN,QAAS6M,KAC5BrjB,GAFR,aAII,eAACijB,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,SAAU,SAAW,cAAC,KAAD,CAAW9O,OAAO,SACtD8O,GAAI,UAAW,SAAU,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,0BAOlFy/C,GAAW3iD,aAAe,CACtB/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBmjD,I,qBCnCTl3C,GAAYC,aAAW,CACzBmK,KAAM,GACNhK,KAAM,CACFwG,QAAS,QAEb0c,QAAS,CACLlU,KAAM,YAEVsK,QAAS,CACL9S,QAAS,OACTwT,eAAgB,mBA8BX+8B,GAAa,SAAC,GAgBpB,IA1CoB,EA2BvBzzB,EAeE,EAfFA,YACA/N,EAcE,EAdFA,QACAwB,EAaE,EAbFA,MACAxf,EAYE,EAZFA,SACAwB,EAWE,EAXFA,SACSqH,EAUP,EAVFC,QACAtF,EASE,EATFA,UACAmc,EAQE,EARFA,aACAW,EAOE,EAPFA,QACAV,EAME,EANFA,QACA3a,EAKE,EALFA,OACArK,EAIE,EAJFA,SACAwH,EAGE,EAHFA,MACA2d,EAEE,EAFFA,QACG3hB,EACD,sKACI0K,EAAUT,GAAU,CAAES,QAASD,IACrC,OAAKrH,EAID,8CACIgC,UAAW0M,KAAW,cAAepH,EAAQ2J,KAAMjP,MAjDpC,EAkDOpF,GAjD9B2tB,YADsB,EAEtB/N,QAFsB,EAGtBwB,MAHsB,EAItBpd,MAJsB,EAKtBZ,SALsB,EAMtBgC,UANsB,EAOtBzJ,GAPsB,EAQtBuD,KARsB,EAStBC,QATsB,EAUtBC,OAVsB,EAWtB5C,SAXsB,EAYtBqJ,UAZsB,EAatBqc,QAbsB,EActBV,QAdsB,EAetBC,QAfsB,EAgBtBE,QAhBsB,EAiBtB3H,MAjBsB,EAkBtBmI,SAlBsB,EAmBtBxL,QAnBsB,EAoBtBtO,QApBsB,EAqBtByT,OArBsB,EAsBtBwG,YAtBsB,8OAgDlB,cAII,cAACP,GAAA,EAAD,CACI/d,MAAOA,EACP6C,OAAQA,EACR0a,aAAcA,IAElB,sBAAKnc,UAAWsF,EAAQiZ,QAAxB,UACKgK,GAAepqB,IAAM2B,aAAayoB,EAAa,CAC5C/rB,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,aAEHojB,GAAWrc,IAAM2B,aAAa0a,EAAnB,aACJhe,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,WACAqH,MAAM,CAAC0V,WAAY,SAChBqG,EAAQzjB,WAIvB,sBACIiJ,UAAW0M,KAAWpH,EAAQL,KAAT,gBAChBK,EAAQsX,WAAapC,IAF9B,UAKI,qBAAKxa,UAAS,UAAKsF,EAAQ6iB,SAA3B,SACC1mB,GAAUtD,IAAMyB,SAASjK,IAAIqI,GAAU,SAACrF,EAAO0P,GAAR,OACpClK,IAAM0B,eAAelH,GAASwF,IAAM2B,aAAanH,EAAO,CACpDyB,IAAKiO,EACLjR,WACAoF,WACAiF,SACA8a,YACC,UAGRP,GACG7d,IAAM2B,aAAakc,EAAO,CACtB5kB,WACAoF,WACAiF,SACA8a,mBApDT,MA6Efy/B,GAAW5iD,aAAe,CACtBkM,QAAS,I,yBC1BE22C,OAhHf,SAAqBllD,GAEnB,IAAMmG,EAASC,eAFW,EAIFiB,oBAAS,GAJP,mBAInBG,EAJmB,KAIb+I,EAJa,OAKclJ,mBAAS,IALvB,mBAKnB89C,EALmB,KAKLC,EALK,OAME/9C,mBAAS,MANX,mBAMnBxH,EANmB,KAMXwlD,EANW,KAuB1BpkD,qBAAU,WAMR,OALIpB,GACF,QAAO,YAAeG,EAAM0K,OAAO46C,WAAYnmD,MAAK,SAAAU,GAClDwlD,EAAU,CAAEE,IAAK1lD,EAAM,aAGpB,eACN,CAACA,IA9BsB,IAgCb24B,GAAc34B,GAAU,IAA7B0lD,IAIR,OACI,gCACG/sB,GAAa,cAACA,EAAD,aAAWgtB,sBA9BG,SAACh+C,EAAM6H,EAASo2C,GAE7Cp2C,IACGo2C,EAGFt/C,EAAOkJ,EAASo2C,GAFhBL,EAAgB/1C,IAMT,MAAR7H,GACD+I,EAAQ/I,KAmByExH,IAC/E,cAAC0lD,GAAA,EAAD,CACEj9C,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAC7CnB,KAAMA,EACNm+C,aAAc,CACZ,mBAAoB,cAEtBt2C,QACE,sBAAK7P,GAAG,aAAakI,MAAO,CAAEqN,MAAO,QAASF,SAAU,YAAxD,UACE,cAAC+wC,GAAA,EAAD,CAAkBl+C,MAAO,CAAEtC,MAAO,QAASgY,WAAY,SAAW9U,KAAM,GAAI6M,IAAK,GAAI0wC,UAAW,KAChG,qBAAKn+C,MAAO,CAAEqN,MAAO,OAAQgL,UAAW,UAAxC,oLACG9T,MAAM8d,QAAQo7B,GAAiCA,EAAjB,CAACA,IAA8BvmD,KAAI,SAACwlB,EAAE46B,GAAH,OAAU,qBAAkBt3C,MAAO,CAAEqN,MAAO,OAAQgL,UAAW,UAArD,SAAkEqE,GAAxD,KAAK46B,eC5CrG8G,GAAoB,SAAC,GAAwB,IAAvBxhD,EAAsB,EAAtBA,OAAsB,0BAC9C,OACI,eAACm+B,GAAA,EAAD,CAAapiC,SAAUiE,EAAOjE,SAAU0C,KAAM,CAACvD,GAAI8E,EAAO9E,IAA1D,UACI,cAACkjC,GAAA,EAAD,CAAYriC,SAAU,cACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,GAAA,EAAD,CAAYriC,SAAU,qBAoBnB0lD,GAfI,SAAA/lD,GACf,IAAMgC,EAAkB2vB,aAAkB3xB,GACpCsE,EAASi4B,KAAIp7B,MAAMnB,EAAMgmB,SAASzK,QAAQ,GAAMkwB,MAEtD,OACI,cAAC,GAAD,qCACIja,YAAa,cAAC,GAAD,CAAmBltB,OAAQA,IACxCuD,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KACrCA,GACAgC,GAJR,aAKI,cAAC,GAAD,eAAiBhC,QC7BvByc,GAAa1c,KCOJA,OARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAM+4B,SAAS,UAAUC,SAAS,UAAU94B,EAAE,mN,qBCC9C8lD,GAAY,SAAC,GAA4D,IAA1D/8C,EAAyD,EAAzDA,UAAqB1D,GAAoC,EAA9ClF,SAA8C,EAApCkF,QAAoC,IAA5BmF,cAA4B,MAAnB,GAAmB,EAAZ1K,EAAY,0DAEpEimD,EAAOzkD,IAAIkJ,EAAQnF,GACzB,IAAK0gD,EAAM,OAAO,KAClB,IAAMC,EAAeC,KAAUnG,SAASiG,EAAM,CAC1CG,qBAAqB,EACrBC,SAAS,EACT1mC,OAAQ,OAGZ,OACI,cAAC7Y,GAAA,EAAD,yBACIkY,UAAU,OACVjY,QAAQ,QACRkC,UAAWA,GACPmW,GAAuBpf,IAJ/B,aAMKkmD,MAKbF,GAAU3jD,aAAe,CACrBgd,UAAU,GAGC2mC,UCpBTM,GAAqB,SAAC,GAA8B,EAA5BC,YAA6B,IAAbvmD,EAAY,+BAChDuO,EAAUsT,KAEhB,OACI,eAAC,WAAD,WACI,cAAC,GAAD,CAAyB3C,GAAG,yCAAyC5a,OAAO,WAC5E,cAAC,EAAD,2BACQtE,GADR,aAGI,eAACijB,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACKzN,GAAI,UAAW,iBAAkB,SAAW,cAAC,GAAD,CAAmB9O,OAAO,OAAOjB,OAAO,WACpF+P,GAAI,UAAW,iBAAkB,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,cAAcia,gBAAiBjR,EAAQyT,SAC5G3N,GAAI,UAAW,iBAAkB,gBAAkB,cAAC,GAAD,CAAW9O,OAAO,gBACrE8O,GAAI,UAAW,iBAAkB,SAAW,cAAC,GAAD,CAAW9O,OAAO,OAAOF,MAAM,4CAA4Cua,UAAU,IACjIvL,GAAI,UAAW,iBAAkB,YAAc,cAAC,GAAD,CAAc9O,OAAO,UAAU0qC,eAAgB,8CAA+CC,gBAAiB,+CAAgD7qC,MAAO,qDAO1OihD,GAAmBjkD,aAAe,CAC9B/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnBykD,U,sBCjCTE,GAAkB,SAACrkD,EAAOskD,GAC9B,GAAKtkD,EACL,IACEgkD,KAAUnG,SAAS79C,GACnB,MAAOuE,GACP,OAAOA,EAAMgjB,QAAQ,UAAW,MAwB9BpnB,GAASokD,eAiJAC,GA/IG,SAAC,GAkBZ,IAjBL97C,EAiBI,EAjBJA,OACAgL,EAgBI,EAhBJA,WACAxQ,EAeI,EAfJA,MAeI,IAdJoQ,cAcI,MAdK,QAcL,EAbJgf,EAaI,EAbJA,OACAC,EAYI,EAZJA,QACAnb,EAWI,EAXJA,SACAlZ,EAUI,EAVJA,SACAkF,EASI,EATJA,OASI,IARJof,gBAQI,MARO,GAQP,MAPJ5d,eAOI,MAPM,SAON,EALJkC,GAKI,EANJ0rB,WAMI,EALJ1rB,WAKI,IAJJ6iB,mBAII,MAJU,KAIV,MAHJhN,kBAGI,MAHS,OAGT,MAFJ5S,eAEI,MAFM,GAEN,EADDrI,EACC,+LAOA+wB,aAAS,aACX/pB,SACA4pB,SACAlb,WACAmb,UACAr0B,WACAkF,SACAof,SAAS,GAAD,mBAAMA,GAAN,CAAgB6hC,MACrB3iD,IAZHrE,EAHE,EAGFA,GACAqc,EAJE,EAIFA,MACAgZ,EALE,EAKFA,WALE,IAMFC,KAAQpuB,EANN,EAMMA,MAAO8Q,EANb,EAMaA,QA8BXyY,EAAezsB,uBAAY,SAACY,EAAOgyB,GACf,kBAAbA,EACTva,EAAMtC,SAAS6c,GAEfva,EAAMtC,SAAS6c,EAAWA,EAAStK,GAAesK,KAEnD,IAEGwwB,EAAgBpjD,uBAAY,SAAC0I,EAASyV,GAC1C,IAAMklC,EAAWvkD,GAAO4J,EAASyV,GAWjC,MAR0B,KAAtBA,EAAOmZ,YACT+rB,EAASn7C,KAAK,CACZlM,GAAI,QACJ6E,KAAMsd,EAAOmZ,WACbmrB,KAAMtkC,EAAOmZ,aAIV+rB,IACN,IAEGC,EAAiBtjD,uBAAY,SAAC2nB,GAElC,MAAsB,kBAAXA,EACFA,EAGLA,EAAO2P,WACF3P,EAAO2P,WAGT3P,EAAOrM,KACb,IAEGioC,EAAevjD,uBAAY,SAAC2nB,GAAD,OAAYA,EAAOrM,KAAa,IAEjE,OACE,cAACkoC,GAAA,EAAD,2BACMnrC,GADN,IAEEtC,SAAU0W,EACV22B,cAAeA,EACfK,eAAa,EACbC,aAAW,EACXC,mBAAiB,EACjB3nD,GAAIA,EACJ0M,QAASA,EACT46C,eAAgBA,EAChBC,aAAcA,EACdr/C,MAAO,CAAEqN,MAAO,KAEhBqyC,YAAa,SAACzlC,GAEZ,IAAMukC,EAjIe,SAAC/jD,GAC5B,GAAKA,EACL,IASE,OAPqBgkD,KAAUnG,SAAS79C,EAAO,CAE7CikD,qBAAqB,EACrBC,SAAS,EACT1mC,OAAQ,OAKV,MAAOnT,KAoHkB66C,CAAqB1lC,EAAOgT,WAAWxyB,OAE5D,OACE,cAACkX,GAAA,EAAD,2BACMsI,GADN,IAEE1Y,UAAWA,EACXlC,QAASA,EACTL,SAAU8Q,IAAW9Q,GACrBmP,WACG2B,GAAW9Q,GAAUmP,GAAcqwC,EAClC,cAACnxB,GAAA,EAAD,CACEvd,QAASA,EACT9Q,MAAOA,EACPmP,WAAYA,GAAcqwC,IAE1B,KAEN7gD,MACE,cAACgV,GAAA,EAAD,CACEhV,MAAOA,EACPE,OAAQA,EACRlF,SAAUA,EACVw0B,WAAYA,IAGhBpf,OAAQA,UCvKduV,GAAU,CACZ,CAAExrB,GAAI,SAAU6E,KAAM,mDAAY4hD,KAAM,cACxC,CAAEzmD,GAAI,QAAS6E,KAAM,yDAAa4hD,KAAM,eACxC,CAAEzmD,GAAI,SAAU6E,KAAM,qEAAe4hD,KAAM,eAC3C,CAAEzmD,GAAI,UAAW6E,KAAM,+DAAc4hD,KAAM,eAC3C,CAAEzmD,GAAI,WAAY6E,KAAM,iFAAiB4hD,KAAM,iBAC/C,CAAEzmD,GAAI,SAAU6E,KAAM,mDAAY4hD,KAAM,gBAiB7BqB,GAbsB,SAACtnD,GAIlC,OACI,cAACunD,GAAD,2BACQvnD,GADR,IAEIkM,QAAS8e,GACTc,YAAY,WCMT07B,GAnBmB,SAACxnD,GAC/B,IAAMgW,EAAO8N,eACPmP,EAAQ3R,cAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,UAAUgmC,KAAK1kD,OAAMu5B,MAE9DorB,EAAmBlkD,uBAAY,SAAChE,GAClC,IAAM28B,EAAOlJ,EAAMzzB,GACnBwW,EAAKmO,OAAO,OAAQgY,EAAK93B,MACzB2R,EAAKmO,OAAO,QAASgY,EAAKnJ,SAC3B,CAACC,IAIJ,OACI,cAAC7G,GAAA,EAAD,2BAAoBpsB,GAApB,IAA2BuZ,SAAUmuC,EAArC,SACI,cAAC,KAAD,CAAmB5oC,WAAW,OAAO5S,QAAS,CAAEmH,0BAA2B,CAAE3L,MAAO,CAAEwI,OAAQ,cCI3Fy3C,GAlBW,SAAC3nD,GAAW,IAE1BkS,EAAW6R,eAAX7R,OACF+gB,EAAQ3R,cAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,UAAUgmC,KAAK1kD,OAAMu5B,MAE9DzmB,EAAajM,mBAAQ,WACvB,IAAMg+C,EAASpmD,IAAI0Q,EAAQ,CAAC,WACtB21C,EAAYrmD,IAAIyxB,EAAO,CAAC20B,EAAQ,UAChC50B,EAAQxxB,IAAI0Q,EAAQ,CAAC,UAE3B,OAAQ21C,GAAcA,IAAc70B,EAAU,4JAAsC,OACrF,CAACC,EAAO/gB,IAEX,OACI,cAAC6J,GAAA,EAAD,2BAAe/b,GAAf,IAAsB6V,WAAYA,MChBpCiyC,GAAe,CAACljC,gBAChB8S,GAAgB,CAAC9S,eAAYoO,gBAGtB+0B,GAAyB,SAAA/nD,GAElC,OACI,eAAC0kB,GAAA,EAAD,2BAAgB1kB,GAAhB,cACKqU,GAAI,SAAU,UAAW,WAAa,cAAC,GAAD,CAA2B9O,OAAO,SAASF,MAAM,gCAAgC8N,UAAU,OAAOwR,SAAUmjC,GAAcz1C,WAAS,IACzKgC,GAAI,SAAU,UAAW,UAAY,cAAC,GAAD,CAAmB9O,OAAO,QAAQof,SAAU+S,UCLxFpZ,GAAY,kBAAM,GAElBxQ,GAAYC,aAAW,CACzBuZ,UAAW,CACP5S,QAAS,OACTC,WAAY,cAEhBxB,UAAW,CACPuB,QAAS,eACTK,MAAO,SAITizC,GAAiB,SAAA/8B,GAAM,OAAIA,EAAM,UAAMA,EAAO5mB,KAAb,aAAsB4mB,EAAO+H,MAA7B,KAAwC/H,GAgBhEg9B,GAdoB,SAAAjoD,GAC/B,IAAMuO,EAAUT,KAChB,OACI,sBAAK7E,UAAWsF,EAAQ+Y,UAAxB,UACI,cAACpU,GAAA,EAAD,2BAAyBlT,GAAzB,IAAgCuO,QAAS,CAAE+Y,UAAW/Y,EAAQ4E,WAAad,WAAS,EAApF,SACI,cAACe,GAAA,EAAD,CAAwB0L,WAAYkpC,GAAgBtpC,gBAAiBJ,QAExEjK,GAAI,SAAU,YAAc,cAAC,GAAD,2BAAuBrU,GAAvB,IAA8B+pB,SAAO,EAArC,SACzB,cAAC,GAAD,WCxBVm+B,GAAe,CAACtjC,gBAChBujC,GAAa,CAACvjC,gBACdwjC,GAAqB,CAACxjC,gBACtByjC,GAAe,CAACzjC,gBAsBP0jC,GAnBc,SAAAtoD,GAEzB,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,iBAAkB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUujC,GAAcrT,YAAY,ySAAyDxiC,WAAS,IAC1KgC,GAAI,SAAU,iBAAkB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsvC,YAAY,qTAA2DhwB,WAAS,EAACxS,WAAS,IAC5KgC,GAAI,SAAU,iBAAkB,OAAS,cAAC,GAAD,CAA4B9O,OAAO,QAAQF,MAAM,qCAAqCsf,SAAUwjC,GAAYh1C,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACvMwS,GAAI,SAAU,iBAAkB,OAAS,cAAC,GAAD,CAA4B9O,OAAO,QAAQF,MAAM,qCAAqC8N,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACjLwS,GAAI,SAAU,iBAAkB,QAAU,cAAC,GAAD,CAA4B9O,OAAO,SAASF,MAAM,sCAAsC8N,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACpLwS,GAAI,SAAU,iBAAkB,aAAc,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEimD,UAAU,GAAQziD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,0CAA0Csf,SAAUyjC,GAAoB/1C,WAAS,IACrSgC,GAAI,SAAU,iBAAkB,gBAAkB,cAAC,GAAD,CAAW9O,OAAO,cAAclB,KAAK,cAAcsgB,SAAU0jC,KAC/Gh0C,GAAI,SAAU,iBAAkB,SAAW,cAAC,GAAD,CAA8B9O,OAAO,OAAOF,MAAM,4CAA4Csf,SAAU0jC,KACnJh0C,GAAI,SAAU,iBAAkB,YAAc,cAAC,KAAD,CAAc9O,OAAO,UAAU7B,cAAc,WCdtGwkD,GAAe,CAACtjC,gBAChBujC,GAAa,CAACvjC,gBACdwjC,GAAqB,CAACxjC,gBACtByjC,GAAe,CAACzjC,gBAyBP4jC,GAvBY,SAAAxoD,GAGvB,OACI,cAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,aACI,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,WACKrQ,GAAI,SAAU,iBAAkB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUujC,GAAcrT,YAAY,ySAAyDxiC,WAAS,IAC1KgC,GAAI,SAAU,iBAAkB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsvC,YAAY,qTAA2DhwB,WAAS,EAACxS,WAAS,IAC5KgC,GAAI,SAAU,iBAAkB,OAAS,cAAC,GAAD,CAA4B9O,OAAO,QAAQF,MAAM,qCAAqCsf,SAAUwjC,GAAYh1C,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACvMwS,GAAI,SAAU,iBAAkB,OAAS,cAAC,GAAD,CAA4B9O,OAAO,QAAQF,MAAM,qCAAqC8N,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACjLwS,GAAI,SAAU,iBAAkB,QAAU,cAAC,GAAD,CAA4B9O,OAAO,SAASF,MAAM,sCAAsC8N,UAAU,UAAUrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,SACpLwS,GAAI,SAAU,iBAAkB,aAAc,WAAa,cAAC,GAAD,CAA2B9O,OAAO,aAAa4N,UAAU,SAAS7Q,OAAQ,CAAEimD,UAAU,GAAQziD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,0CAA0Csf,SAAUyjC,GAAoB/1C,WAAS,IACrSgC,GAAI,SAAU,iBAAkB,gBAAkB,cAAC,GAAD,CAAW9O,OAAO,cAAclB,KAAK,cAAcsgB,SAAU0jC,KAC/Gh0C,GAAI,SAAU,iBAAkB,SAAW,cAAC,GAAD,CAA8B9O,OAAO,OAAOF,MAAM,4CAA4Csf,SAAU0jC,KACnJh0C,GAAI,SAAU,iBAAkB,YAAc,cAAC,KAAD,CAAc9O,OAAO,UAAU7B,cAAc,a,WCnBjG+kD,GAZK,SAAC,GAAyE,IAAvEx/C,EAAsE,EAAtEA,UAAqCyB,GAAiC,EAA3D6D,QAA2D,EAAjC7D,QAAqB1K,GAAY,EAAzByF,SAAyB,4DAEzF,IAAKiF,EAAQ,OAAO,KAEpB,IAAMrF,EAAK,UAAMqF,EAAOrG,KAAb,aAAsBqG,EAAOsoB,MAA7B,KAEX,OACI,cAAC3U,GAAA,EAAD,aAAMhZ,MAAOA,EAAO4D,UAAWA,GAAejJ,KCDvCD,I,SAAAA,GARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,uX,8BCYDwoD,GAAkB,WAAkC,IAAjCpwC,EAAgC,uDAAtB,GAAIqwC,EAAkB,uDAAP,GAE/CC,EAAUC,KAAWvwC,EAASqwC,GAAU/pD,KAAI,SAAAY,GAAE,MAAK,CAAEA,SACrDspD,EAAaD,KAAWF,EAAUrwC,GAAS1Z,KAAI,SAAAY,GAAE,MAAK,CAAEA,SAE9D,MAAO,CACHopD,QAASA,EAAQnkD,OAAS,EAAImkD,OAAUtlD,EACxCwlD,WAAYA,EAAWrkD,OAAS,EAAIqkD,OAAaxlD,IAK5CylD,GAAmB,SAAnBA,EAAmBhmD,GAsC5B,OArCenD,OAAOD,KAAKoD,GAAMwI,QAAO,SAAC4D,EAAK9L,GAC1C,GAAIA,EAAI2lD,WAAW,KACf,OAAO75C,EAGX,IAO+D,EAPzD85C,EAAUlmD,EAAKM,GAErB,OAAgB,OAAZ4lD,QAAgC3lD,IAAZ2lD,EACb95C,EAGPlD,MAAM8d,QAAQk/B,GACY,kBAAfA,EAAQ,IAAkC,OAAfA,EAAQ,GACnC,2BACA95C,GADP,wBAEK9L,EAAM4lD,EAAQrqD,IAAImqD,IAFvB,yBAGQ1lD,EAHR,OAGmB4lD,EAAQrqD,KAAI,SAAAsB,GAAC,OAAIA,EAAEV,OAHtC,IAMO,2BAAK2P,GAAZ,mBAAkB9L,EAAM4lD,IAIT,kBAAZA,GAAoC,OAAZA,EACxB,uCACA95C,GACC85C,GACAA,EAAQzpD,IADR,0BAEI6D,EAFJ,OAEe4lD,EAAQzpD,KAJ/B,mBAMK6D,EAAM0lD,EAAiBE,KAIzB,2BAAK95C,GAAZ,mBAAkB9L,EAAM4lD,MACzB,KAKMC,GAAoB,SAApBA,EAAqBC,EAAK9lD,GACnC,OAAO8lD,EAAIvqD,KAAI,SAAAo8B,GACX,OAAI/uB,MAAM8d,QAAQiR,GAAakuB,EAAkBluB,EAAK33B,GAC9B,kBAAR23B,EAAyBouB,GAASpuB,EAAK33B,GAChD23B,MAIFouB,GAAW,SAAXA,EAAYC,EAAKhmD,GAC1B,IAAM1D,EAAOC,OAAOD,KAAK0pD,GACnBC,EAAS,GAWf,OAVA3pD,EAAKoM,SAAQ,SAAAizC,GACT,GAAIA,IAAM37C,EAAK,CACX,IAAM23B,EAAMquB,EAAIrK,GACZhkB,aAAevO,KAAM68B,EAAOtK,GAAKhkB,EAC5B/uB,MAAM8d,QAAQiR,GAAMsuB,EAAOtK,GAAKkK,GAAkBluB,EAAK33B,GAE5DimD,EAAOtK,GADa,kBAARhkB,GAA4B,OAARA,EACpBouB,EAASpuB,EAAK33B,GACb23B,MAGlBsuB,GCpFL3X,GAAWC,0BAAe,CAC9BC,IAAK0X,MAGDxX,GAAWC,aAAU,yCAAC,WAAOlqC,EAAP,qBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,eAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAYrBsX,GAAoB,IAAIC,eAAW,SAAC5W,EAAW6W,GAMnD,OALI7W,EAAUllC,YAAcklC,EAAUllC,UAAUuuC,OAE9CrJ,EAAUllC,UAAYy7C,GAASvW,EAAUllC,UAAW,eAG/C+7C,EAAQ7W,MAGF,OAAIC,gBAAa,CAC9BpzB,KAAM+wB,gBAAK,CACTsB,GACAyX,GACA7X,KAEFoB,MAAO,IAAIC,iBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,gBAEf1H,MAAO,CACL0H,YAAa,mBC3CNwW,GAAmBj8C,eAAH,sHAShBk8C,GAA2Bl8C,eAAH,6WAkBjCi8C,ICzBSE,GAAsBn8C,mBAAH,oOAM1Bk8C,ICyDSE,GA/CoB,SAAC,GAMlB,EALdrkD,SAKc,EAJd8I,QAIe,IAHftF,EAGc,EAHdA,UACAyB,EAEc,EAFdA,OAIM8D,GAFQ,EADdnO,SACc,sEAEGoO,gBACXC,EAAUC,eACVxI,EAASC,eAJD,EAKgBiB,oBAAS,GALzB,mBAKPrE,EALO,KAKE8L,EALF,KAORi7C,EAAevmD,uBAAY,WDpBtB,IAACssB,ECsBRhhB,GAAW,GACXN,EAASQ,iBDvBD8gB,ECyBD,CACHxiB,MAAO,CAAE9N,GAAIkL,EAAOlL,KDzBrBw4C,GAAaxqC,OAAO,CACvBC,SAAUo8C,GACVl8C,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OCsBPvH,MAAK,WACJgH,EAAO,kCAAmC,OAAQ,CAAE0G,YAAa,IACjE6B,OAJJ,OAMW,SAAChI,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAPlG,SASa,WACLP,GAAW,GACXN,EAASc,qBAElB,CAACR,EAAY3I,EAAQuI,EAASM,KAAYM,KAAU5E,IAGvD,OACI,cAACqE,GAAA,EAAD,CACI5J,QAAS4kD,EACT1kD,MAAM,yBACNP,SAAU9B,EAEViG,UAAWA,EALf,SAOI,cAAC+gD,GAAD,KAHI,WCxCVC,GAA4B,SAAC,GAAyE,IAAvExkD,EAAsE,EAAtEA,SAAqB1C,GAAiD,EAA5DkG,UAA4D,EAAjDlG,MAAwB1C,GAAyB,EAA3C0lB,QAA2C,EAAlCV,QAAkC,EAAzBhlB,UAAaL,EAAY,8EAGvG,OACI,eAAC6J,EAAA,EAAD,2BAAgB7J,GAAhB,cACKqU,GAAI,SAAU,mBAAqB,cAAC,GAAD,CAA4BhU,SAAUA,EAAUoF,SAAUA,EAAUiF,OAAQ3H,IAC/GsR,GAAI,SAAU,mBAAqB,cAAC,KAAD,CAAYhU,SAAUA,EAAUoF,SAAUA,EAAUiF,OAAQ3H,SA8D7FmnD,GAzDY,SAAAlqD,GACvB,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAEpC,OACI,eAAC,GAAD,yBACIkJ,QAAS,cAAC,GAAD,IACT5b,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KACrCA,GAHR,cAKI,eAAC,GAAD,WACKqU,GAAI,SAAU,iBAAkB,SAAW,cAAC,KAAD,CAAW9O,OAAO,SAC7D8O,GAAI,SAAU,iBAAkB,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,gBACpE8O,GAAI,SAAU,iBAAkB,OAAS,cAAC81C,GAAA,EAAD,CAAY5kD,OAAO,KAAnB,SACtC,cAACszB,GAAA,EAAD,CAAiBpZ,UAAU,EAA3B,SACI,cAAC,GAAD,CAAala,OAAO,cAG3B8O,GAAI,SAAU,iBAAkB,OAAS,cAAC81C,GAAA,EAAD,CAAY5kD,OAAO,KAAnB,SACtC,cAACszB,GAAA,EAAD,CAAiBpZ,UAAU,EAA3B,SACI,cAAC,GAAD,CAAala,OAAO,cAG3B8O,GAAI,SAAU,iBAAkB,QAAU,cAAC81C,GAAA,EAAD,CAAY5kD,OAAO,MAAnB,SACvC,cAACszB,GAAA,EAAD,CAAiBpZ,UAAU,EAA3B,SACI,cAAC,GAAD,CAAala,OAAO,cAG3B8O,GAAI,SAAU,iBAAkB,aAAc,WAAa,cAACukB,GAAA,EAAD,CAAqBrzB,OAAO,aAAa4N,UAAU,SAAS9N,MAAM,0CAAlE,SACxD,cAACwzB,GAAA,EAAD,CAAiBpZ,UAAU,EAA3B,SACI,cAAC,GAAD,CAAYla,OAAO,aAG1B8O,GAAI,SAAU,iBAAkB,gBAAkB,cAAC,GAAD,CAAW9O,OAAO,gBACpE8O,GAAI,SAAU,iBAAkB,SAAW,cAAC,GAAD,CAAW9O,OAAO,OAAOF,MAAM,8CAC1EgP,GAAI,SAAU,iBAAkB,oBAAsB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,kBAAkB2G,QAASqgB,OACnGlY,GAAI,SAAU,iBAAkB,oBAAsB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,kBAAkB2G,QAASqgB,OACnGlY,GAAI,SAAU,iBAAkB,YAAc,cAAC,GAAD,CAAc9O,OAAO,UAAU0qC,eAAgB,8CAA+CC,gBAAiB,+CAAgD7qC,MAAO,6CAGzN,cAAC,GAAD,CAAWqO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACKzU,GAAI,SAAU,iBAAkB,OAAS,cAAC,KAAD,CAAW9O,OAAO,OAC3D8O,GAAI,SAAU,iBAAkB,cAAe,SAAW,cAAC+6B,GAAA,EAAD,CAAgB7pC,OAAO,cAAc4N,UAAU,WAAW9N,MAAM,4CAA4Cqa,MAAM,EAAlH,SACvD,cAAC,KAAD,CAAWna,OAAO,WAErB8O,GAAI,SAAU,iBAAkB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvFlY,GAAI,SAAU,iBAAkB,cAAgB,cAACkP,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,iBCxEtG69B,GAAqBrqD,G,UCDrB0hB,GAAY,CACd,CAAEjiB,GAAI,YAAa6E,KAAM,0CACzB,CAAE7E,GAAI,cAAe6E,KAAM,4CAC3B,CAAE7E,GAAI,6BAA8B6E,KAAM,2DAC1C,CAAE7E,GAAI,wBAAyB6E,KAAM,sDACrC,CAAE7E,GAAI,8BAA+B6E,KAAM,4DAC3C,CAAE7E,GAAI,cAAe6E,KAAM,4CAC3B,CAAE7E,GAAI,cAAe6E,KAAM,4CAC3B,CAAE7E,GAAI,eAAgB6E,KAAM,6CAC5B,CAAE7E,GAAI,wBAAyB6E,KAAM,uDAO1BgmD,GAJU,SAAArqD,GACrB,OAAQ,cAAC6rB,GAAA,EAAD,2BAAiB7rB,GAAjB,IAAwBgrB,QAASvJ,OCTvC3T,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACTC,WAAY,cAId21C,GAAa,SAAC,GAAkD,IAAhDrhD,EAA+C,EAA/CA,UAAWyB,EAAoC,EAApCA,OAAQnF,EAA4B,EAA5BA,OAAQglD,EAAoB,EAApBA,IAAQvqD,EAAY,qDAE3DuO,EAAUT,KACV1I,EAAQ5D,IAAIkJ,EAAQnF,GAC1B,OAAKH,EAID,sBAAK6D,UAAWsF,EAAQ2J,KAAxB,UACI,cAACqM,GAAD,CAAe7c,MAAO,CAAEtC,MAAOA,KAC9BmlD,GAAO,cAACzjD,GAAA,EAAD,yBAAYC,QAAQ,QAAQkC,UAAWA,GAAemW,GAAuBpf,IAA7E,aAAuFoF,QANlF,MAkBzBklD,GAAWjoD,aAAe,CACtBgd,UAAU,GAGCirC,UCvBTE,GAAuB,SAAAxqD,GAAK,OAC9B,qCACKqU,GAAI,SAAU,QAAW,cAAC,KAAD,eAAsBrU,IAC/CqU,GAAI,UAAW,QAAW,cAACE,GAAA,EAAD,eAAsBvU,QAInDyqD,GAAY,SAACzqD,GAAD,OACd,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAChC,cAAC,GAAD,CAAeQ,OAAO,aACtB,cAAC,GAAD,CAAWA,OAAO,cAIpBghD,GAAc,CAChB/mD,IAAI,EACJ6E,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXvF,OAAO,EACPyS,KAAM/M,GACNzK,UAAU,EACV0K,WAAY,OAGV2/C,GAAU,SAAA1qD,GACZ,IAAMuO,EAAUsT,KACV/d,EAAYC,cACZ/B,EAAkBC,YAAkBjC,GACpC6F,EAAWD,GAAe5D,EAAgBojB,aAAcmhC,GAAa,CAAEziD,cACvEuf,EAAmBjc,IAAMmT,OAAO,MAEtC,OACI,cAACrY,EAAA,EAAD,CAAqBC,MAAK,2BAAOH,GAAP,IAAwB6D,aAAlD,SACI,cAACzD,EAAA,EAAD,uCACQpC,GACAgC,GAFR,IAGI0hB,kBAAmB,cAAC,GAAD,IACnBxa,QAAS,cAAC,GAAD,CAAWsN,QAAS6M,IAJjC,SAMI,eAACJ,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAAC,GAAD,CAAmBvc,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,gBACjB8O,GAAI,UAAW,MAAO,SAAW,cAAC,GAAD,CAAW9O,OAAO,SACnD8O,GAAI,UAAW,MAAO,aAAe,cAAC,GAAD,CAAW9O,OAAO,aACvD8O,GAAI,UAAW,MAAO,UAAY,cAAC,GAAD,CAAY9O,OAAO,QAAQglD,KAAG,IACjE,cAAChnC,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvE,cAACwB,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvE,eAAC,GAAD,CAAY7a,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,QAAU,cAAC,GAAD,IACxBA,GAAI,SAAU,QAAU,cAAC,GAAD,iBAQjDq2C,GAAQroD,aAAe,CACnBC,OAAQ,CAAE0qB,YAAa,CAAC,YAAa,cAAe,6BAA8B,wBAAyB,8BAA+B,cAAe,cAAe,eAAgB,0BACxL1sB,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAKnB6oD,ICQUtH,GDRVsH,M,sLEtFT58C,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,kBAAgB,CAClB4B,WADE,EAAG1U,MAEL2P,MAAO,GACPG,OAAQ,GACR0jC,aAAc,EACdC,OAAQ,UACR8R,QAAS,SAEbC,MAAO,gBAAGxlD,EAAH,EAAGA,MAAH,MAAgB,CACnBylD,UAAU,WAAD,OAAazlD,SAsCfw1B,2BA/BO,SAAC,GAKL,IAJdx1B,EAIa,EAJbA,MAIa,IAHbD,eAGa,MAHH,aAGG,EAFb2lD,EAEa,EAFbA,QAEa,IADbjjD,aACa,MADLzC,EACK,EAAbwlD,EAAa,EAAbA,MAEMr8C,EAAUT,GAAU,CAAE1I,UAKtB2lD,EAAiB,GAKvB,OAJID,IACAC,EAAeC,YAJC,SAAA5rD,GAAC,OAAI0rD,EAAQ1lD,EAAOhG,KAQpC,iCACI6J,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQq8C,MAAQA,IAErBzlD,QAdY,SAAA/F,GAAC,OAAI+F,EAAQC,EAAOhG,IAehCyI,MAAOA,EACPojD,SAAU,EACVC,UAhBc,SAAA9rD,GAAC,OAXb,KAWiBA,EAAE+rD,SAAqBhmD,EAAQC,EAAOhG,KAiBrD2rD,O,oBDpCVj9C,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,GAGNmS,KAAM,CACF3V,QAAS,OACT0V,oBAAqB,kBACrBghC,iBAAkB,GAClB9gC,QAAS,GAEb+gC,OAAQ,CACJt2C,MAAO,GACPG,OAAQ,GACRo2C,MAAO,OACP1S,aAAc,EACdnjC,OAAQ,eAEZoG,MAAO,CACH9G,MAAO,SAIFw2C,GAAc,SAAC,GAMrB,IALHhyC,EAKE,EALFA,SACAiyC,EAIE,EAJFA,cACApI,EAGE,EAHFA,OACAn6C,EAEE,EAFFA,UAGMsF,GADJ,EADFg8C,IAEgBz8C,MAGV29C,EAAe,SAACC,EAAStnD,GACvBunD,sBAAWD,IACXnyC,EAAS,CACLgxC,IAAKmB,EACLnmD,OAAQ,OACTnB,IAkBX,OACI,cAAC0pB,GAAA,EAAD,CAAO7kB,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAArC,SACI,cAACioB,GAAA,EAAD,CAAajoB,UAAWsF,EAAQ8b,KAAhC,SACKzrB,KAAIwkD,GAAQ,SAACwI,EAAG5M,GACb,OACI,cAAC,GAAD,CAEI55C,MAAOwmD,EACPrB,IAAKqB,EACLzmD,QAASsmD,EACTX,QAASU,EACTK,WAAY,CACRhB,UAAU,WAAD,OAAae,KANrB5M,WAoCjCuM,GAAYlpD,aAAe,CACvB+gD,QAXqBA,GAWG,CAACrV,KAAK+d,KAAMC,KAAQC,KAAYC,KAAQC,KAAMC,KAAWC,KAAMC,KAAMhe,KAAOie,KAAYC,KAAMpe,KAAQqe,KAAOve,KAAQwe,KAAYC,KAAOC,KAAUzrC,MAVtJkiC,GAAO73C,QAAO,SAAC4D,EAAK/J,GACpC,IAAMwnD,EAAa,CAACxnD,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,KAAQA,EAAM,MAE1I,MAAM,GAAN,mBAAW+J,GAAQy9C,KACpB,MA8BQC,I,MAAAA,wBAAUtB,IErIVuB,GCSI,SAAC,GAgBb,IAfHjiD,EAeE,EAfFA,OACAgL,EAcE,EAdFA,WACAxQ,EAaE,EAbFA,MAaE,IAZFoQ,cAYE,MAZO,QAYP,EAXFgf,EAWE,EAXFA,OACAC,EAUE,EAVFA,QACAnb,EASE,EATFA,SACArN,EAQE,EARFA,QACA7L,EAOE,EAPFA,SACAkF,EAME,EANFA,OACAof,EAKE,EALFA,SAKE,IAJF5d,eAIE,MAJQ,SAIR,EAHF4tB,EAGE,EAHFA,WACA1rB,EAEE,EAFFA,UACGpF,EACD,oKAOE+wB,aAAS,aACT/pB,SACA4pB,SACAlb,WACAmb,UACAr0B,WACAkF,SACAof,YACG9gB,IAZHrE,EAHF,EAGEA,GACAqc,EAJF,EAIEA,MACAgZ,EALF,EAKEA,WALF,IAMEC,KAAQpuB,EANV,EAMUA,MAAO8Q,EANjB,EAMiBA,QANjB,EAkB8BnQ,mBAAS,MAlBvC,mBAkBKC,EAlBL,KAkBeC,EAlBf,KAkCF,OACI,qCACI,cAAC8R,GAAA,EAAD,qCACI7Z,GAAIA,GACAqc,GAFR,IAGI5S,UAAWA,EACXlC,QAASA,EACTL,SAAU8Q,IAAW9Q,GACrBmP,WACK2B,GAAW9Q,GAAUmP,EAClB,cAACkf,GAAA,EAAD,CACIvd,QAASA,EACT9Q,MAAOA,EACPmP,WAAYA,IAEhB,KAERxQ,MACI,cAACgV,GAAA,EAAD,CACIhV,MAAOA,EACPE,OAAQA,EACRlF,SAAUA,EACVw0B,WAAYA,IAGpBpf,OAAQA,EACRif,QAxCQ,SAACtwB,GAAW,IAAD,IACtBqD,QAAmD,yBAA3C,UAAArD,EAAM2oD,qBAAN,mBAAqBC,qBAArB,eAAoCxtD,MAC7C+H,EAAYnD,EAAMiE,gBAuCd4T,WAAU,2BACH0Y,GADG,IAENs4B,eACI,cAAC9wC,GAAA,EAAD,CAAgBtH,SAAS,QAAzB,SACI,cAAC0P,GAAD,CAAe7c,MAAO,CAAEtC,MAAOyW,EAAM1Z,cAI7C+J,GACA1G,GAAkB3B,KAE1B,cAAC0E,EAAA,EAAD,CACI/I,GAAG,sBACHgI,KAAMC,QAAQH,GACdA,SAAUA,EACVkB,QAlDQ,WAChBjB,EAAY,OAkDJkB,aAAc,CACVC,SAAU,SACVC,WAAY,UAEhBC,gBAAiB,CACbF,SAAU,MACVC,WAAY,UAXpB,SAcI,cAAC,GAAD,CACIvD,MAAOyW,EAAM1Z,MACboX,SA1DK,SAAC,GAAa,IAAXgxC,EAAU,EAAVA,IACpB1uC,EAAMtC,SAASgxC,YC5BR2C,GAhBG,SAAAltD,GAGd,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC0kB,GAAA,EAAD,CAAY7U,SAAS,OAArB,UACKwE,GAAI,SAAU,MAAO,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACxFgC,GAAI,SAAU,MAAO,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAE1FgC,GAAI,SAAU,MAAO,aAAe,cAAC,GAAD,CAAe9O,OAAO,WAAWof,SAAUC,iBAC/EvQ,GAAI,SAAU,MAAO,UAAY,cAAC,GAAD,CAAY9O,OAAO,iB,gCCT/DuI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,SAMjCm4C,GAAa,SAAAntD,GACf,IAAMuO,EAAUT,KACVs/C,EAAiC,WAAtBptD,EAAM0K,OAAOmN,KAE9B,OACI,eAAC6P,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,QAAU,cAACsT,GAAA,EAAD,IACzB,cAAC,GAAD,IACCtT,GAAI,SAAU,SAAW+4C,GAAY,cAACC,GAAA,EAAD,CAAcz9C,UAAQ,EAAC8M,KAAM,cAAC,KAAD,WAuBhE4wC,GAlBC,SAAAttD,GAGZ,OACI,cAAC,GAAD,yBAAM6H,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,aACI,cAAC,GAAD,UACI,eAAC0kB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,MAAO,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUC,eAAYvS,WAAS,IACxFgC,GAAI,SAAU,MAAO,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAcsf,WAAS,EAACxS,WAAS,IAE1FgC,GAAI,SAAU,MAAO,aAAe,cAAC,GAAD,CAAe9O,OAAO,WAAWof,SAAUC,iBAC/EvQ,GAAI,SAAU,MAAO,UAAY,cAAC,GAAD,CAAY9O,OAAO,mBCvCnEuI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QA6BRu9C,GAvBG,SAAC,GAAuD,IAA5Cj/C,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCAC/DuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAW1K,EAAX0K,OACR,IAAKA,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAE3B,OACI,cAACka,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,cAACioB,GAAA,EAAD,UACI,cAAC7J,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,SACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,MAAO,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAAKigB,cAAY,EAArC,SAAuC3iB,IACvEgQ,GAAI,SAAU,MAAO,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAApB,SAAkCgG,cCWnFygD,GA7BC,SAAAxtD,GACZ,IAAM8oB,EAAiB1hB,IAAMmT,OAAO,MAEpC,OACI,eAAC,GAAD,yBAAM1S,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAA9D,cACI,cAAC,GAAD,IAEA,eAAC,GAAD,WACI,cAAC,GAAD,CAAYuF,OAAO,UACnB,cAAC,GAAD,CAAWA,OAAO,SAClB,cAAC,GAAD,CAAWA,OAAO,gBAGtB,cAAC,GAAD,CAAWmO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACI,cAAC,KAAD,CAAWvjB,OAAO,OAClB,cAAC,GAAD,CAAaA,OAAO,YAAY4N,UAAU,OAA1C,SACI,cAAC,KAAD,CAAW5N,OAAO,WAEtB,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvC,cAAChJ,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,iBChCrDkhC,GAAU1tD,KCDV+N,GAAYC,aAAW,CACzByZ,QAAS,CACL7S,WAAY,SACZD,QAAS,OACT1E,WAAY,EACZ8W,cAAe,KAcR4mC,GAVI,SAAC,GAA4B,IAA1BzmD,EAAyB,EAAzBA,SAAajH,EAAY,4BACrCuO,EAAUT,KAChB,OACI,qBAAK7E,UAAWsF,EAAQiZ,QAAxB,SACK3e,WAASjK,IAAIqI,GAAU,SAACuU,GAAD,OAAYzS,uBAAayS,EAAQxb,SCftD,eAA+B,IAA5BK,EAA2B,EAA3BA,SAAUwQ,EAAiB,EAAjBA,MAAOtR,EAAU,EAAVA,IAC/B,OAAON,QAAQQ,IACXF,EAAIX,KAAI,SAAAY,GAAE,OCDH,YAAwB,IAAtBa,EAAqB,EAArBA,SAAUiN,EAAW,EAAXA,MACvB,OAAOC,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,kKAAuBrN,EAAoBA,EACjCA,GAIlBsN,UAAW,CAAEL,SACbM,QAAS,SAAClH,GACNmH,MAAMnH,MDPNinD,CAAiB98C,EAAS,CAAExQ,SAAUwQ,EAAMrR,GAAIa,SAAWiN,MAAO,CAAC9N,GAAIqR,EAAMrR,GAAImM,OAAS,CAACtL,WAAUiN,MAAO,CAAC9N,YAEnHL,MAAK,SAAA+P,GAKH,MAAO,CAAEnM,KAJImM,EAAQ3D,QACjB,SAAC4D,EAAD,OAAQpM,EAAR,EAAQA,KAAR,4BAAuBoM,GAAvB,CAA4BpM,EAAKvD,OACjC,SEeNsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCukD,aAAc,CACVxoD,MAAOiE,EAAM4E,QAAQvH,MAAMwH,KAC3B,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,KAEhD,uBAAwB,CACpBC,gBAAiB,qBA8DlB0/C,GAxDU,SAAC,GAOR,EANdpoD,SAMe,IAtCe,EAiC9BpF,EAKc,EALdA,SACSiO,EAIK,EAJdC,QACAtF,EAGc,EAHdA,UAEAO,GACc,EAFd9I,aAEc,EADd8I,aACG3F,EAAW,0FAERiqD,EAAaxsC,cAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,UAAUssC,UAAUhrD,OAAMu5B,MACxE9tB,EAAWC,eACXC,EAAUC,eACVxI,EAASC,eACTwI,EAAcC,eACdN,EAAUT,GAAU,CAAES,QAASD,IAPvB,EAQgBjH,oBAAS,GARzB,mBAQPrE,EARO,KAQE8L,EARF,KAkCd,OACI,cAACC,GAAA,EAAD,yBACI5J,QA1BY,WAEhB2J,GAAW,GACXN,EAASQ,gBAETg/C,GAAoB,CAChB3tD,WACAwQ,MAAOi9C,EACPvuD,IAAKiK,IACNrK,MAAK,WACJuP,IACAvI,EAAO,qCAAsC,OAAQ,CAAE0G,YAAarD,EAAY/E,SAChFmK,EAAYvO,MAPhB,OAUW,SAACqG,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAXlG,SAaa,WACLP,GAAW,GACXN,EAASc,oBAObxK,SAAU9B,EACVqC,MAAM,mBACN4D,UAAS,2BAAsBsF,EAAQq/C,aAA9B,YAA8C3kD,MA7EjC,EA+EApF,GA9E9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,sMAyEzB,aAQI,cAAC,KAAD,MAHI,W,qBClFD,eAAwB,IAAtBzP,EAAqB,EAArBA,SAAUiN,EAAW,EAAXA,MACvB,OAAOC,KAAiBC,OAAO,CAC3BC,SAAUC,mBAAF,4KAAwBrN,EAAoBA,EACjCA,GAInBsN,UAAW,CAAEL,SACbM,QAAS,SAAClH,GACNmH,MAAMnH,OCaZoH,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4kD,cAAe,OA2DJC,GAxDW,SAAC,GAOT,EANdzoD,SAMe,IA7Be,EAwB9BpF,EAKc,EALdA,SACSiO,EAIK,EAJdC,QACAtF,EAGc,EAHdA,UAEAO,GACc,EAFd9I,aAEc,EADd8I,aACG3F,EAAW,0FAERiqD,EAAaxsC,cAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMC,UAAUssC,UAAUhrD,OAAMu5B,MACxE9tB,EAAWC,eACXC,EAAUC,eACVxI,EAASC,eACTwI,EAAcC,eACdN,EAAUT,GAAU,CAAES,QAASD,IAPvB,EAQgBjH,oBAAS,GARzB,mBAQPrE,EARO,KAQE8L,EARF,KAkCd,OACI,cAACC,GAAA,EAAD,yBACI5J,QA1BY,WAEhB2J,GAAW,GACXN,EAASQ,gBC/CF,YAA+B,IAA5B3O,EAA2B,EAA3BA,SAAUwQ,EAAiB,EAAjBA,MAAOtR,EAAU,EAAVA,IAC/B,OAAON,QAAQQ,IACXF,EAAIX,KAAI,SAAAY,GAAE,OACN2uD,GAAkBt9C,EAAS,CAAExQ,SAAUwQ,EAAMrR,GAAIa,SAAWiN,MAAO,CAAC9N,GAAIqR,EAAMrR,GAAImM,OAAS,CAACtL,WAAUiN,MAAO,CAAC9N,YAEpHL,MAAK,SAAA+P,GAKH,MAAO,CAAEnM,KAJImM,EAAQ3D,QACjB,SAAC4D,EAAD,OAAQpM,EAAR,EAAQA,KAAR,4BAAuBoM,GAAvB,CAA4BpM,EAAKvD,OACjC,QDyCJ4uD,CAAqB,CACjB/tD,WACAwQ,MAAOi9C,EACPvuD,IAAKiK,IACNrK,MAAK,WACJuP,IACAvI,EAAO,sCAAuC,OAAQ,CAAE0G,YAAarD,EAAY/E,SACjFmK,EAAYvO,MAPhB,OAUO,SAACqG,GACJP,EAAyB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cAX/F,SAaS,WACLP,GAAW,GACXN,EAASc,oBAOTxK,SAAU9B,EACVqC,MAAM,oBACN4D,UAAS,4BAAuBsF,EAAQ0/C,cAA/B,YAAgDhlD,MApEnC,EAsEApF,GArE9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,sMAgEzB,aAQI,cAAC,KAAD,MAHI,WElDVhC,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4kD,cAAe,OAGbI,GAAgB,SAAC,GAShB,IA/B2B,EAuBrB//C,EAQP,EARFC,QACAtF,EAOE,EAPFA,UAEA5I,GAKE,EANF8E,QAME,EALF9E,UACAqK,EAIE,EAJFA,OACAjF,EAGE,EAHFA,SACUgb,EAER,EAFF5Q,SACGhM,EACD,2FACI0K,EAAUT,GAAU,CAAES,QAASD,IAC/BE,EAAWC,eACXoB,EAAW6Q,eACXhS,EAAUC,eACVxI,EAASC,eALb,EAM4BiB,oBAAS,GANrC,mBAMKrE,EANL,KAMc8L,EANd,KAiCF,OACI,cAACC,GAAA,EAAD,yBACI5J,QA3Bc,WAClB2J,GAAW,GACXN,EAASQ,gBAETm/C,GAAiB,CACb9tD,WACAiN,MAAO,CAAC9N,GAAIkL,EAAOlL,MAEtBL,MAAK,WACFgH,EAAO,sCAAuC,OAAQ,CAAE0G,YAAa,IACrEgD,EAAS4Q,EAAYhb,GACrBiJ,OAPJ,OASO,SAAChI,GACJP,EACqB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BACrD,cAZR,SAeS,WACLP,GAAW,GACXN,EAASc,oBAOTxK,SAAU9B,EACV+D,QAAQ,YACRuB,KAAK,SACLjD,MAAM,oBACN4D,UAAS,4BAAuBsF,EAAQ0/C,cAA/B,YAAgDhlD,MAvEnC,EAyEApF,GAxE9B4B,SAD6B,EAE7B8I,QAF6B,EAG7B7N,aAH6B,EAI7B6O,aAJ6B,EAK7BC,yBAL6B,EAM7BC,QAN6B,EAO7BpK,MAP6B,EAQ7BqK,SAR6B,EAS7BrP,SAT6B,EAU7BsP,OAV6B,EAW7BnG,YAX6B,EAY7BoG,SAZ6B,EAa7BC,SAb6B,EAc7BC,cAd6B,sMAiEzB,aAUI,cAAC,KAAD,MAHI,WAqBhBu+C,GAAchsD,aAAe,CACzBwN,UAAU,GAGCw+C,UCzFT/vC,GAAY,kBAAM,GAElBgwC,GAA6B,SAAAtuD,GAAK,OACpC,qCAEKqU,GAAI,UAAW,cAAgB,cAAC,GAAD,eAAuBrU,IACtDqU,GAAI,SAAU,cAAgB,cAAC,GAAD,2BAAsBrU,GAAtB,IAA6B0c,KAAM,cAAC,KAAD,WAKpE6xC,GAAkB,SAACvuD,GAAD,OACpB,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAChC,cAACqnB,GAAA,EAAD,CAAgB7mB,OAAO,eAAeF,MAAM,uCAAuC8N,UAAU,OAAOrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKsV,YAAU,EAAC0J,UAAU,gBAA9K,SACI,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,OAE1D,cAAC+N,GAAA,EAAD,CAAW9mB,OAAO,kBAClB,cAAC8mB,GAAA,EAAD,CAAW9mB,OAAO,uBAUpBipD,GAAuB,SAACxuD,GAC1B,OACI,cAAC4tB,GAAA,EAAD,CAAyBzrB,MAAOnC,EAAM0K,OAAOrK,SAA7C,SACI,cAAC,GAAD,2BAAmBL,GAAnB,IAA0BK,SAAUL,EAAM0K,OAAOrK,SAAUqK,OAAQ,CAAElL,GAAIQ,EAAM0K,OAAOiB,MAAQ5E,QAAQ,aAK5G0nD,GAAsB,SAACzuD,GACzB,OACI,cAAC4tB,GAAA,EAAD,CAAyBzrB,MAAOnC,EAAM0K,OAAOrK,SAA7C,SACI,cAACgtD,GAAA,EAAD,2BAAkBrtD,GAAlB,IAAyBK,SAAUL,EAAM0K,OAAOrK,SAAUqK,OAAQ,CAAElL,GAAIQ,EAAM0K,OAAOiB,MAAQ+Q,KAAM,cAAC,KAAD,IAAuB3V,QAAQ,aAMxI2nD,GAAgB,SAAA1uD,GAClB,IAAMsC,EAAS,CAAE0qB,YAAa,CAAC,YAAa,cAAe,gBAAiB,6BAA8B,wBAAyB,8BAA+B,cAAe,cAAe,eAAgB,gBAAiB,wBAAyB,eAAgB,QAAQ1qB,QAAO,SAACjC,GAAD,OAAcgU,GAAI,UAAWhU,OAChT2B,EAAkBC,YAAkB,2BAAKjC,GAAN,IAAasC,YAChDiM,EAAUsT,KACVwB,EAAmBjc,IAAMmT,OAAO,MAEtC,OACI,cAACrY,EAAA,EAAD,CAAqBC,MAAOH,EAA5B,SACI,cAACI,EAAA,EAAD,yBACI8G,QAAS,cAAC,GAAD,CAAiBsN,QAAS6M,IACnCK,kBAAmB,cAAC,GAAD,IACnB7d,UAAU,EACVvD,OAAQA,GACJtC,GALR,aAOI,eAACijB,GAAA,EAAD,CAAwC1U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAAhE,UACI,cAAC,GAAD,CAAWvc,OAAO,aAClB,cAAC,GAAD,CAAmBA,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,gBAClB,cAAC,KAAD,CAAWA,OAAO,iBAAiBF,MAAM,uCAAuCua,UAAU,IAC1F,cAAC2D,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvC,eAAC,GAAD,CAAYxM,UAAU,QAAtB,UACI,cAAC,GAAD,IACA,cAAC,GAAD,gBAQxB2uC,GAAcrsD,aAAe,CACzB/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,YAAaC,MAAO,SAGxB6sD,UC9FTC,I,QAAgB5uD,M,qBCyCP4M,GAxCK,WAChB,IAAM7I,EAAYC,cACZ1D,EAAW2D,cACX4I,EAAW9I,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IAgCxE,OAFiBjH,GAAegH,EA7BZ,CAChBpN,IAAI,EACJ6E,MAAM,EACN0I,aAAa,EACbC,UAAW,CACPxN,IAAI,EACJ6E,MAAM,EACN0G,WAAY,QAEhBkC,UAAWtC,GACXuC,UAAWvC,GACXqoB,OAAO,EACP47B,OAAO,EACP97B,OAAO,EACP+7B,cAAc,EACdh6C,UAAU,EACVi6C,KAAMhkD,GACNooB,OAAQ,CACJ1zB,IAAI,EACJa,SAAUyK,GACVC,WAAY,UAEhBmtB,aAAc,CACV14B,IAAI,EACJ6E,MAAM,EACN0G,WAAY,gBAEhBA,WAAY,QAEuC,CAAEjH,eCtB9CirD,GATe,SAAA/uD,GAAK,OAC/B,qCACKqU,GAAI,UAAW,SAAW,cAACE,GAAA,EAAD,eAAsBvU,IAChDqU,GAAI,SAAU,SAAW,cAAC,GAAD,eAAsBrU,QCMlDgvD,GAAc,SAAC7sD,GAAW,IAAD,EACDsR,GAAc,UAAW,QAA3Cw7C,EADmB,EACnBA,QADmB,EACVH,KACjB,OAAOG,GAAUA,EAAQ1qD,SAASpC,EAAMkC,OAmC7B6qD,GAhCI,SAAClvD,GAAD,OACf,eAAC6e,GAAD,2BAAwB7e,GAAxB,cACI,cAAC,GAAD,CAAauF,OAAO,IAAIR,UAAQ,IAChC,cAAC,GAAD,CAAWQ,OAAO,OAAOjD,OAAQ0sD,GAAa1vC,UAAU,kBACxD,cAAC,GAAD,CAAsB/Z,OAAO,SAASmC,MAAO,CAAEqN,MAAO,OACrDV,GAAI,UAAW,OAAQ,eAAgB,iBAAmB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,kBAAkBF,MAAM,qCAAqC8N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAA5K,SACvD,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,SAEzDjK,GAAI,UAAW,OAAQ,WAAa,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,wBAAwBF,MAAM,2CAA2C8N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKgf,UAAU,gBAAxL,SACjC,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,SAEzDjK,GAAI,UAAW,OAAQ,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,uBAAuBF,MAAM,wCAAwC8N,UAAU,YAAYrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAvK,SACjC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,OAAQ,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,0CAA0C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAA7K,SACjC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,OAAQ,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,0CAA0C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAA7K,SACjC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,OAAQ,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,yBAAyBF,MAAM,0CAA0C8N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAA7K,SACjC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,OAAQ,WAAa,cAACnB,GAAA,EAAD,CAAqB3N,OAAO,0BAA0BF,MAAM,2CAA2C8N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAhL,SACjC,cAAC,KAAD,CAAwBme,eAAgB,cAAC,GAAD,IAAoBD,aAAc,cAAC,GAAD,IAAkBE,gBAAiBJ,SAEhHjK,GAAI,UAAW,OAAQ,WAAa,cAAC,GAAD,CAAa9O,OAAO,kBAAkBF,MAAM,uCAAuCvC,cAAc,SC1CxIqsD,GAAc,SAAA9qD,GAChB,IAAI+qD,EAAW/qD,EAAKjB,MAAM,MAAQ,GAC9BisD,EAAQD,EAASE,QACjBC,EAASH,EAASI,MAEtB,OADAJ,GAAYC,EAAMI,OAAO,IAAMF,EAASA,EAAOE,OAAO,GAAKJ,EAAMI,OAAO,KAAKC,eAI3E5hD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCsmD,MAAO,CACH56C,MAAO1L,EAAM2L,QAAQ,GACrBE,OAAQ7L,EAAM2L,QAAQ,GACtBnO,SAAU,QAEd+oD,MAAO,CACH76C,MAAO1L,EAAM2L,QAAQ,GACrBE,OAAQ7L,EAAM2L,QAAQ,QAcf66C,GATK,SAAC,GAA2C,IAAzC5mD,EAAwC,EAAxCA,UAAWyB,EAA6B,EAA7BA,OAAQpC,EAAqB,EAArBA,KAAStI,EAAY,6CACrDuO,EAAUT,KAChB,IAAKpD,EAAQ,OAAO,KAFuC,IAGnDrG,EAA2BqG,EAA3BrG,KAAMyrD,EAAqBplD,EAArBolD,SAAU9+B,EAAWtmB,EAAXsmB,OAClB9S,EAAO4xC,GAAYzrD,EAEzB,OAAQ,cAAC+rB,GAAA,EAAD,yBAAQ2/B,IAAK7xC,EAAM8xC,IAAKh/B,EAAQ/nB,UAAS,UAAKA,EAAL,YAAkBsF,EAAQjG,KAAa8W,GAAuBpf,IAAvG,aAAgHmvD,GAAYjxC,O,WCzBlIpQ,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4mD,MAAO,gBAAEC,EAAF,EAAEA,OAAF,EAAUC,OAAV,MAAuB,CAC1BhiD,gBAAiB+hD,EAAS7mD,EAAM4E,QAAQvH,MAAMwH,KAAO7E,EAAM4E,QAAQmiD,QAAQliD,KAC3E28C,UAAU,aAAD,OAAexhD,EAAM4E,QAAQ6L,WAAWC,SAErDw0B,IAAK,CACDr5B,OAAQ,EACRjC,QAAS,EACTskB,SAAU,OAKZ84B,GAAc,SAAC,GAAkC,IAAjCppD,EAAgC,EAAhCA,SAAUyD,EAAsB,EAAtBA,OAAW1K,EAAW,qCAE5CmwD,EADc7uC,cAAY,SAAAC,GAAK,OAAIA,EAAM+uC,cAAah0B,MACjC/3B,SAASmG,EAAOlL,IACrC0wD,EAASxlD,EAAOwlD,OAChB3hD,EAAUT,GAAU,CAACoiD,SAAQC,WAEnC,OAAKzlD,EAIL,cAAC6lD,GAAA,EAAD,CACI9nD,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChD4F,QAAS,CAAC0hD,MAAO1hD,EAAQ0hD,MAAO1hB,IAAKhgC,EAAQggC,KAC7CiiB,WAAaL,IAAWD,EACxBnpD,QAAQ,MAJZ,SAMMK,IAAM2B,aAAa9B,EAAnB,aACEyD,UACG1K,MAZS,MAmBxBqwD,GAAYhuD,aAAe,CACvBgd,UAAU,GAGCgxC,UCIAI,GAlCM,SAACzwD,GAClB,IAAMmJ,EAAWC,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACzDgF,EAAUsT,KAEhB,OAAO1Y,EACH,cAAC2Z,GAAA,EAAD,CACIC,YAAa,SAAArY,GAAM,OAAIA,EAAOrG,MAC9Bob,SAAS,SAGb,eAACwD,GAAA,EAAD,2BAAcjjB,GAAd,IAAqBkjB,SAAS,OAAO3U,QAAS,CAAEuT,IAAKvT,EAAQuT,KAA7D,UACI,cAAC,GAAD,UACI,cAAC,GAAD,CAAaxZ,KAAK,YAEtB,cAAC,GAAD,CAAmB/C,OAAO,OAAOjB,OAAO,WACxC,cAAC,KAAD,CAAWiB,OAAO,gBACjB8O,GAAI,UAAW,OAAQ,SAAW,cAAC,GAAD,CAAW9O,OAAO,SACpD8O,GAAI,UAAW,OAAQ,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACrD8O,GAAI,UAAW,OAAQ,UAAY,cAAC,GAAD,CAAY9O,OAAO,UACtD8O,GAAI,UAAW,OAAQ,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACtD,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,aAAcvC,gBAAiBjR,EAAQyT,OAAQ9V,QAASqgB,OAC/H,cAAChJ,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvE,cAACwB,GAAA,EAAD,CAAWhe,OAAO,YAAYwa,UAAU,QAAQ7Y,cAAeqH,EAAQwT,eACvE,eAAC,GAAD,CAAY7a,cAAa,UAAKqH,EAAQwT,aAAb,YAA6BxT,EAAQ2T,YAA9D,UACK7N,GAAI,SAAU,SAAW,cAAC,GAAD,IACzBA,GAAI,SAAU,SAAW,cAAC,GAAD,IACzBA,GAAI,SAAU,SAAW,cAAC,GAAD,YCpCpCq8C,GAAW,SAAC1wD,GACd,IAAM6F,EAAW8qD,KACXttC,EAAmBjc,IAAMmT,OAAO,MAEtC,OACI,cAAC,EAAD,2BACQva,GADR,IAEI0jB,kBAAmB,cAAC,GAAD,IACnBxa,QAAS,cAAC,GAAD,CAAYsN,QAAS6M,IAC9Bxd,SAAUA,EAJd,SAMI,cAAC,GAAD,QAKZ6qD,GAASruD,aAAe,CACpB/B,QAAS,GACTwF,KAAM,CAAElE,MAAO,OAAQC,MAAO,QAInB6uD,U,0CCpBTE,GAAqB,SAACzuD,EAAOskD,EAAWzmD,GAC5C,GAAKmC,EAAL,CAEA,IAAM0uD,EAAc1uD,EAAMsC,QAAU,EAC9BqsD,EAAiB,QAASC,KAAK5uD,GAC/B6uD,EAAiB,QAASD,KAAK5uD,GAC/B8uD,EAAc,kCAA6CF,KAAK5uD,GAChE+uD,EAAc,QAAQH,KAAK5uD,GAGjC,OAFgB0uD,GAAeC,GAAkBE,GAAkBC,GAAeC,OAEjE5tD,EAAY,mCA2ChB6tD,GAxCO,SAAC,GAKhB,IAAD,IAJFC,wBAIE,aAHFzsC,gBAGE,MAHO,GAGP,MAFFgQ,kBAEE,MAFS,GAET,EADC30B,EACD,8DAC4BqH,mBAAS+pD,GADrC,mBACKC,EADL,KACcC,EADd,KAEIxtD,EAAYC,cAMlB,OACI,cAACgY,GAAA,EAAD,2BACQ/b,GADR,IAEI2kB,SAAQ,CAAGisC,IAAH,mBAA0BjsC,IAClC9M,KAAMw5C,EAAU,OAAS,WACzB18B,WAAU,2BAAOA,GAAP,IAAmB48B,aAAc,iBAC3Ct1C,WAAY,CACRC,aACI,cAACC,GAAA,EAAD,CAAgBtH,SAAS,MAAzB,SACI,cAAC7M,EAAA,EAAD,CACIC,aAAYnE,EACRutD,EACM,mCACA,mCAEVlsD,QAnBJ,WAChBmsD,GAAYD,IAYI,SAQKA,EAAU,cAAC,KAAD,IAAiB,cAAC,KAAD,aCpCzCp8B,GAba,SAACj1B,GACzB,IAAMgW,EAAO8N,eAOb,OACI,cAAC,GAAD,2BAAe9jB,GAAf,IAAsBuZ,SAND,SAACpX,GACtB6T,EAAKmO,OAAO,YAAa,IACzBnO,EAAKmO,OAAO,SAAK7gB,QCFnBwK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC4G,oBAAqB,CACjBD,UAAW,EACX8W,aAAc,OAsEPgQ,GAtCmB,SAAC,GAA6B,IAA3B7tB,EAA0B,EAA1BA,UAAcjJ,EAAY,6BAEnDkS,GADQpE,KACGiW,eAAX7R,QACJ5P,EAAS,GAEPy0B,EAAiB/2B,EAAM0K,QAAU1K,EAAM0K,OAAOqsB,eAC9CC,EAAoB9kB,GAAUA,EAAO6kB,eACrCE,EAAe/kB,GAAUA,EAAOglB,EAChCC,EAhCgB,SAAC92B,EAAU02B,GAEjC,GAAI12B,IAAa02B,EACjB,OAAQ12B,GACJ,IAAK,YACD,OAEJ,IAAK,cACD,MAAO,CAAE8S,UAAW,YAAa7Q,OAAQ,aAE7C,IAAK,cACD,OAEJ,IAAK,cACD,MAAO,CAAE6Q,UAAW,cAAe7Q,OAAQ,eAE/C,IAAK,eACD,MAAO,CAAE6Q,UAAW,cAAe7Q,OAAQ,eAE/C,QACI,QAYe80B,CAAkBJ,EAAmBD,GACtDtZ,EAAc0Z,GAAkBjlB,EAAOilB,EAAe70B,QAY5D,OATImb,GAAeA,EAAYhZ,SAC3BnC,EAAO60B,EAAe70B,QAAU,CAAE+0B,MAAO5Z,IAGzCwZ,IACA30B,EAAO40B,EAAID,GAIVD,EAGD,qCACI,cAAC,KAAD,CAAa32B,SAAS,eAAekF,OAAO,IAAI0D,UAAWA,EAAW+S,YAAU,IAC/Emb,GAAkB,cAACjkB,GAAA,EAAD,CAAqB7S,SAAS,eAAekF,OAAM,UAAK4xB,EAAe70B,QAAU6Q,UAAWgkB,EAAehkB,UAAWrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAK,8CAAyC8xB,EAAehkB,WAAad,WAAS,EAA9P,SACf,cAACe,GAAA,EAAD,CAAwB0L,WAAW,WAEvC,cAAC5L,GAAA,EAAD,yBAAqBC,UAAW6jB,EAAmB10B,OAAQA,EAAQwD,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,KAASN,GAA5H,IAAmIqS,WAAS,EAA5I,SACI,cAAC,GAAD,CAAoByM,WAAW,OAAOgD,KAAK,UATxB,MCpD7BxD,GAAY,kBAAM,GAElB0wC,GAAc,SAAC7sD,GACjB,IAAM4R,EAAaN,GAAc,SAAU,QAE3C,OADiBM,EAAW+6C,MAAQ/6C,EAAW+6C,KAAK0C,KAAQ,IAC7CjtD,SAASpC,EAAMkC,OAS5BotD,GAAgB,CALN,SAACtvD,EAAO+P,GACpB,IAAKA,EAAO8gB,QAAU9gB,EAAO4gB,QAAU5gB,EAAO08C,MAC1C,MAAO,wCAIT1G,GAAe,CAACtjC,eAAY8sC,aAAU,IACtCC,GAAe,CAAC/sC,gBAChBgtC,GAAmB,CAAChtC,gBA+BXitC,GA7BI,SAAA7xD,GAGf,OACI,cAAC,KAAD,2BAAYA,GAAZ,aACI,eAAC43B,GAAA,EAAD,CAAY/nB,SAAS,OAArB,UACI,eAACgoB,GAAA,EAAD,CAASxyB,MAAM,8BAAf,UACKgP,GAAI,SAAU,OAAQ,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUujC,GAAc71C,WAAS,IAC3FgC,GAAI,SAAU,OAAQ,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAc8M,WAAS,IACjFgC,GAAI,SAAU,OAAQ,aAAe,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,WAAW8M,WAAS,IAC3EgC,GAAI,SAAU,OAAQ,SAAW,cAAC,GAAD,CAAW9O,OAAO,OAAOjD,OAAQ0sD,GAAarqC,SAAUgtC,KACzFt9C,GAAI,SAAU,OAAQ,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQof,SAAU8sC,KACtEp9C,GAAI,SAAU,OAAQ,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQsS,KAAK,QAAQ8M,SAAU8sC,GAAe98B,WAAY,CAAE48B,aAAc,kBAC9Hl9C,GAAI,SAAU,OAAQ,UAAY,cAAC,GAAD,CAAY9O,OAAO,QAAQof,SAAU8sC,GAAe98B,WAAY,CAAE48B,aAAc,kBAClHl9C,GAAI,SAAU,OAAQ,iBAAmB,cAAC,GAAD,CAAY9O,OAAO,iBAC5D8O,GAAI,SAAU,OAAQ,aAAe,cAAC,GAAD,CAAe9O,OAAO,WAAWof,SAAUitC,QAErF,eAAC/5B,GAAA,EAAD,CAASxyB,MAAM,qCAAqCxC,KAAK,SAAzD,UACKwR,GAAI,SAAU,OAAQ,iBAAmB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,kBAAkB4N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCuQ,YAAU,EAAC0J,UAAU,gBAAvL,SACtC,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,OAE1D,cAAC,GAAD,CAAqB/Y,OAAO,iBAAiBlB,KAAK,iBAAiB8mB,OAAO,kCAAkCvV,YAAU,EAACqiB,WAAY,KAAM3Y,UAAU,kBACnJ,cAAC,GAAD,CAA2B/Z,OAAO,YAAYF,MAAM,2C,gCC5ClEyI,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCyoD,UAAW,CACP1sD,MAAOiE,EAAM4E,QAAQvH,MAAMwH,KAC3B6jD,YAAa3jD,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,IAC5C,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQvH,MAAMwH,KAAM,KAChD6jD,YAAa1oD,EAAM4E,QAAQvH,MAAMwH,KACjC,uBAAwB,CACpBC,gBAAiB,iBAK7B6jD,YAAa,CACT5sD,MAAOiE,EAAM4E,QAAQgS,QAAQ/R,KAC7B6jD,YAAa1oD,EAAM4E,QAAQgS,QAAQ6tB,MACnC,UAAW,CACP3/B,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,KAClD6jD,YAAa1oD,EAAM4E,QAAQgS,QAAQ/R,KACnC,uBAAwB,CACpBC,gBAAiB,qBA4DlB8jD,GArDG,SAAC,GAA0D,EAAxDxsD,SAAyD,IAA/CiF,EAA8C,EAA9CA,OAA8BzB,GAAgB,EAAtC4G,SAAsC,EAAhB5G,WACnDsF,EAAUT,KACV3H,EAASC,eAF0D,EAK5B8rD,aACzC,OACAxnD,EAAOlL,GAF2C,YAAC,eAG9CkL,GAH6C,IAGrCwlD,QAAQ,IACrBxlD,EACA,CACIkF,UAAU,EACV8wB,UAAW,YAAc,EAAX39B,KAEVoD,EAAO,8BAA+B,OAAQ,IAAI,IAEtDw6B,UAAW,SAACj6B,GAAD,OAAWP,EAAO,UAAD,OAAWO,EAAM2I,SAAW,cAhBS,mBAKlE8iD,EALkE,KAK5CC,EAL4C,KAKrDpvD,QALqD,EAmBxBkvD,aAC7C,OACAxnD,EAAOlL,GAF+C,YAAC,eAGlDkL,GAHiD,IAGzCwlD,QAAQ,IACrBxlD,EACA,CACIkF,UAAU,EACV8wB,UAAW,YAAc,EAAX39B,KAEVoD,EAAO,gCAAiC,OAAQ,IAAI,IAExDw6B,UAAW,SAACj6B,GAAD,OAAWP,EAAO,UAAD,OAAWO,EAAM2I,SAAW,cA9BS,mBAmBlEgjD,EAnBkE,KAmB1CC,EAnB0C,KAmBnDtvD,QAetB,OAAO0H,EAAOwlD,OACR,cAACnhD,GAAA,EAAD,CACE1J,MAAM,kBACNF,QAASktD,EACTvtD,SAAUwtD,EACVrpD,UAAS,UAAKsF,EAAQyjD,YAAb,YAA4B/oD,GAJvC,SAME,cAAC,KAAD,MAEF,cAAC8F,GAAA,EAAD,CACE1J,MAAM,gBACNF,QAASgtD,EACTrtD,SAAUstD,EACVnpD,UAAS,UAAKsF,EAAQujD,UAAb,YAA0B7oD,GAJrC,SAME,cAAC,KAAD,OC9ENo0B,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,CAEvChE,MAAO,CACHqP,QAAS,QACT69C,SAAU,SACVC,aAAc,WACdvwC,WAAY,cAIdwwC,GAAW,SAAC,GAAgF,IAA9ExpD,EAA6E,EAA7EA,UAAoBqF,EAAyD,EAAlEC,QAA0B7D,EAAwC,EAAxCA,OAAQnF,EAAgC,EAAhCA,OAAQlF,EAAwB,EAAxBA,SAC/DkO,GADuF,oEAC7E8uB,GAAc,CAAE9uB,QAASD,KACnCxK,EAAYC,cAEZioB,EAAYxqB,IAAIkJ,EAAQnF,GAC9B,IAAKymB,EAAY,OAAO,KAExB,IAAM3mB,EAAQvB,EAAU,aAAD,OAAczD,EAAd,kBAAgCkF,EAAhC,YAA0CymB,GAAa,CAAClkB,EAAGkkB,IAElF,OACI,cAAC3N,GAAA,EAAD,CACI/V,KAAK,QACLiG,QAAS,CAAC2J,KAAK3J,EAAQ2J,KAAM7S,MAAOkJ,EAAQlJ,OAC5C4D,UAAS,UAAKA,GACd5D,MAAOA,KAMnBotD,GAASpwD,aAAe,CACpBgd,UAAU,GAKCozC,UCpCT3kD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAEnC8mD,OAAQ,CACJhiD,gBAAiB9E,EAAM4E,QAAQmiD,QAAQliD,KACvC9I,MAAOiE,EAAM4E,QAAQkT,gBAAgB9X,EAAM4E,QAAQmiD,QAAQliD,WAK7DwkD,GAAa,SAAC,GAAwB,IAAvBhoD,EAAsB,EAAtBA,OACX6D,GADiC,0BACvBT,MACVwiD,EAAchvC,cAAY,SAAAC,GAAK,OAAIA,EAAM+uC,cAAah0B,MAC5D,IAAK5xB,EAAQ,OAAO,KACpB,IAAMioD,EAAWrC,EAAY/rD,SAASmG,EAAOlL,IACvC6F,EAAQstD,EAAW,uCAAH,oDAAwBjoD,EAAOkoD,UAAP,+DAAmChoD,KAAOF,EAAOkoD,WAAW/nD,OAAO,SAAY,IAE/H,OAAO,cAACwT,GAAA,EAAD,CACD/V,KAAK,QACLiG,QAAS,CAAC2J,KAAM3J,EAAQ2J,MACxBjP,UAAW0pD,EAAWpkD,EAAQ4hD,OAAS,GACvC9qD,MAAOA,KAIfqtD,GAAWrwD,aAAe,CACtBgd,UAAU,GAGCqzC,U,qBC5BT5kD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CAEnCqT,KAAM,CACFtX,MAAO,WAEXytD,KAAM,CACF1kD,gBAAiB9E,EAAM4E,QAAQ4kD,KAAK3kD,KACpC9I,MAAOiE,EAAM4E,QAAQkT,gBAAgB9X,EAAM4E,QAAQ4kD,KAAK3kD,OAE5D4rB,QAAS,CACL3rB,gBAAiB9E,EAAM4E,QAAQ6rB,QAAQ5rB,KACvC9I,MAAOiE,EAAM4E,QAAQkT,gBAAgB9X,EAAM4E,QAAQ6rB,QAAQ5rB,WAK7D4kD,GAAa,SAAC,GAAwB,IAAvBpoD,EAAsB,EAAtBA,OACX6D,GADiC,0BACvBT,MAEhB,IAAKpD,EAAQ,OAAO,KAEpB,IAAMqoD,EAAeroD,GAAUA,EAAOqsB,eAChCi8B,EAA2BtoD,GAAUA,EAAOwtB,aAC5C7yB,EAAQ0tD,EAAe,6HAA2BC,EAA2B,uHAA0B,gEACvGt2C,EAASq2C,GAAiBC,EAAqD,KAAxB,cAAC,KAAD,IACvDC,GAAcF,IAAiBC,EAGrC,OAAO,cAAC30C,GAAA,EAAD,CACH/V,KAAK,QACLoU,KAAMA,EACNnO,QAAS,CAAC2J,KAAM3J,EAAQ2J,KAAMwE,KAAMnO,EAAQmO,MAC5CzT,UAAWgqD,EAAY1kD,EAAQurB,QAAUvrB,EAAQskD,KACjDxtD,MAAOA,KAIfytD,GAAWzwD,aAAe,CACtBgd,UAAU,GAGCyzC,UCnCThlD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,IAKnBkjD,WAAY,CACR9tD,MAAOiE,EAAM4E,QAAQkT,gBAAgB9X,EAAM4E,QAAQvH,MAAMwH,MACzDC,gBAAiB9E,EAAM4E,QAAQvH,MAAMwH,UAwC9BilD,GApCI,SAAC,GAAuD,IAA5C7kD,EAA2C,EAApDC,QAA0BtF,EAA0B,EAA1BA,UAAcjJ,EAAY,uCAChEuO,EAAUT,GAAU,CAAES,QAASD,IAC7B5D,EAAqB1K,EAArB0K,OAAqB1K,EAAbK,SAChB,IAAKqK,EAAU,OAAO,KACtB,IAAMrG,EAAOqG,EAAOrG,KACd0I,EAAcrC,EAAOqC,YAErBmjD,GADKxlD,EAAOlL,GACHkL,EAAOwlD,QAGtB,OACI,cAACjpC,GAAA,EAAD,CAAMhe,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAApC,SACI,qBAAKvB,MAAO,CAAEuL,QAAS,IAAvB,SACI,eAACoU,GAAA,EAAD,CAAMC,WAAS,EAACtS,QAAS,EAAzB,UACI,eAACqS,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,IAAE,EAAb,UACKlT,GAAI,SAAU,OAAQ,SAAW,cAACvN,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B1C,IAC3DgQ,GAAI,SAAU,OAAQ,gBAAkB,cAACvN,GAAA,EAAD,CAAYC,QAAQ,YAAYigB,cAAY,EAA5C,SAA8Cja,IACtFsH,GAAI,SAAU,OAAQ,WAAa,cAAC,GAAD,CAAY3J,OAAQA,IACxD,cAAC,GAAD,CAAYA,OAAQA,IACnBwlD,GAAU,cAAC7xC,GAAA,EAAD,CAAMpV,UAAS,UAAKsF,EAAQ0S,KAAb,YAAqB1S,EAAQ2kD,YAAc7tD,MAAM,2EAAeiD,KAAK,aAEnG,cAAC+e,GAAA,EAAD,CAAM1b,MAAI,EAAV,SAEI,cAAC,GAAD,2BAAc3L,GAAd,IAAqBuF,OAAO,oBC9B9C+Y,GAAY,kBAAM,GAElB0wC,GAAc,SAAC7sD,GACjB,IAAM4R,EAAaN,GAAc,SAAU,QAE3C,OADiBM,EAAW+6C,MAAQ/6C,EAAW+6C,KAAK0C,KAAQ,IAC7CjtD,SAASpC,EAAMkC,OAQ5BotD,GAAgB,CALN,SAACtvD,EAAO+P,GACpB,IAAKA,EAAO8gB,QAAU9gB,EAAO4gB,QAAU5gB,EAAO08C,MAC1C,MAAO,wCAIT1G,GAAe,CAACtjC,eAAY8sC,aAAU,IACtCC,GAAe,CAAC/sC,gBAEhB9W,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCme,QAAS,CACL9S,QAAS,OACT,yBAA0B,CACtB/M,YAAa0B,EAAM2L,QAAQ,KAGnCojB,0BAA2B,CACvB1jB,QAAS,OACT6b,cAAe,cAMjB6iC,GAAc,SAAApzD,GAChB,IAAMuO,EAAUT,KAEhB,OACI,eAAC4Z,GAAA,EAAD,2BAAa1nB,GAAb,IAAoBuO,QAAS,CAAEiZ,QAASjZ,EAAQiZ,SAAhD,UACKnT,GAAI,SAAU,SAAW,cAACsT,GAAA,EAAD,IACzBtT,GAAI,SAAU,SAAW,cAACsT,GAAA,EAAD,CAAY9X,SAAS,OAAOxK,MAAM,8BAA8ByK,eAAe,EAAO/I,QAAQ,aACxH,cAAC,GAAD,IACCsN,GAAI,MAAO,SAAW,cAAC,GAAD,CAAWxE,SAAS,SAC1CwE,GAAI,SAAU,SAAW,cAAC,GAAD,CAAcxE,SAAS,SACjD,cAAC,GAAD,SA+CGwjD,GA1CE,SAAArzD,GACb,IAAMgC,EAAkB2kB,aAAkB3mB,GACpCuO,EAAUT,KACVquB,EAAO7a,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,OAAMG,MACxCg3B,EAAQ9xD,IAAIQ,EAAiB,CAAC,SAAU,SAAWR,IAAI26B,EAAM,CAAC,OAEpE,OACI,cAACvV,GAAA,EAAD,CAAqBzkB,MAAOH,EAA5B,SACI,eAAC,GAAD,qCACI6F,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KACrCA,GACAgC,GAHR,cAKI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAAC41B,GAAA,EAAD,CAAYpQ,QAAS,cAAC,GAAD,IAArB,UACI,eAACqQ,GAAA,EAAD,CAASxyB,MAAM,8BAAf,UACKgP,GAAI,SAAU,OAAQ,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUujC,GAAc71C,WAAS,IAC3FgC,GAAI,SAAU,OAAQ,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAc8M,WAAS,IACjFgC,GAAI,SAAU,OAAQ,aAAe,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,WAAW8M,WAAS,IAC3EgC,GAAI,SAAU,OAAQ,UAAYi/C,GAAS,cAAC,GAAD,CAAW/tD,OAAO,OAAOjD,OAAQ0sD,GAAarqC,SAAUgtC,KACnGt9C,GAAI,SAAU,OAAQ,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQof,SAAU8sC,KACtEp9C,GAAI,SAAU,OAAQ,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQsS,KAAK,QAAQ8M,SAAU8sC,GAAe98B,WAAY,CAAE48B,aAAc,kBAC9Hl9C,GAAI,SAAU,OAAQ,UAAY,cAAC,GAAD,CAAY9O,OAAO,QAAQof,SAAU8sC,GAAe98B,WAAY,CAAE48B,aAAc,kBAClHl9C,GAAI,SAAU,OAAQ,iBAAmB,cAAC,GAAD,CAAY9O,OAAO,iBAC5D8O,GAAI,SAAU,OAAQ,aAAe,cAAC,GAAD,CAAe9O,OAAO,gBAEhE,eAACsyB,GAAA,EAAD,CAASxyB,MAAM,6BAA6BxC,KAAK,SAAjD,UACKwR,GAAI,SAAU,OAAQ,iBAAmB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,kBAAkB4N,UAAU,eAAerN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,qCAAqCuQ,YAAU,EAAC0J,UAAU,gBAAvL,SACtC,cAAC,KAAD,CAAmBR,WAAW,OAAOJ,gBAAiBJ,OAE1D,cAAC,GAAD,CAAqB/Y,OAAO,iBAAiBlB,KAAK,iBAAiB8mB,OAAO,kCAAkCvV,YAAU,EAACqiB,WAAY,KAAM3Y,UAAU,kBACnJ,cAAC,GAAD,CAA2B/Z,OAAO,YAAYF,MAAM,+BAA+Bsf,SAAUC,eAAYrF,cAAehR,EAAQ6pB,2CClB7Im7B,GA3DE,SAAAvzD,GACb,IAAMgC,EAAkB2vB,aAAkB3xB,GACpC8oB,EAAiB1hB,IAAMmT,OAAO,MAC9ByX,EAAoB5qB,IAAMmT,OAAO,MACjCwc,EAAiB/0B,EAAgB0I,QAAU1I,EAAgB0I,OAAOqsB,eAExE,OACI,cAACnF,GAAA,EAAD,CAAqBzvB,MAAOH,EAA5B,SACI,eAAC,GAAD,qCAAU6F,MAAO,cAAC,KAAD,aAAgBtC,OAAO,QAAWvF,KAAeA,GAAWgC,GAA7E,cACI,cAAC,GAAD,IAEA,eAAC,GAAD,WACKqS,GAAI,SAAU,OAAQ,SAAW,cAAC,KAAD,CAAW9O,OAAO,SACnD8O,GAAI,SAAU,OAAQ,gBAAkB,cAAC,KAAD,CAAW9O,OAAO,gBAC1D8O,GAAI,SAAU,OAAQ,aAAe,cAAC,KAAD,CAAW9O,OAAO,aACvD8O,GAAI,SAAU,OAAQ,SAAW,cAAC,GAAD,CAAW9O,OAAO,SACnD8O,GAAI,SAAU,OAAQ,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACpD8O,GAAI,SAAU,OAAQ,UAAY,cAAC,KAAD,CAAW9O,OAAO,UACpD8O,GAAI,SAAU,OAAQ,UAAY,cAAC,GAAD,CAAY9O,OAAO,UACrD8O,GAAI,SAAU,OAAQ,UAAY,cAAC,GAAD,CAAY9O,OAAO,iBACrD8O,GAAI,SAAU,OAAQ,iBAAmB,cAAC,GAAD,CAAa9O,OAAO,eAAe4N,UAAU,eAA7C,SACtC,cAAC,KAAD,CAAW5N,OAAO,cAI1B,cAAC,GAAD,CAAkBF,MAAM,qCAAxB,SACKgP,GAAI,SAAU,OAAQ,WAAa0iB,GAAkB,cAAC6B,GAAA,EAAD,CAAqBrzB,OAAO,YAAY4N,UAAW4jB,EAAgB1xB,MAAK,sCAAiC0xB,GAAzG,SAClD,cAAC8B,GAAA,EAAD,CAAiBpZ,SAAS,OAA1B,SACI,cAACkZ,GAAA,EAAD,CAAWpzB,OAAO,eAK9B,cAAC,GAAD,CAAWmO,OAAS,qBAAKiE,IAAKmR,MAE9B,cAAC,GAAD,CAAaA,eAAgBA,EAA7B,SACI,eAAC,GAAD,WACI,cAAC,KAAD,CAAWvjB,OAAO,OACjB8O,GAAI,SAAU,OAAQ,SAAW,cAAC,GAAD,CAAa9O,OAAO,YAAY4N,UAAU,OAA1C,SAC9B,cAAC,KAAD,CAAW5N,OAAO,WAEtB,cAACge,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,OACvC,cAAChJ,GAAA,EAAD,CAAWhe,OAAO,YAAY2G,QAASqgB,YAI9ClY,GAAI,UAAW,YAAc,cAAC,GAAD,CAAWX,OAAS,qBAAKiE,IAAKqa,MAC3D3d,GAAI,UAAW,YAAc,cAAC,GAAD,CAAayU,eAAgBkJ,EAAmB3sB,MAAM,yBAAtD,SAC1B,cAAC,GAAD,UACI,cAAC,KAAD,CAAsB8N,UAAU,UAAU7O,OAAO,OAAOwB,KAAM,CAAElE,MAAO,YAAaC,MAAO,QAAUvB,QAAS,GAAIiG,WAAY,cAAC0rB,EAAA,EAAD,IAA9H,SACI,cAAC,GAAD,CAA0B1sB,OAAO,sBCpEvDiuD,GAAWzzD,K,qBCMFA,OATf,SAAcC,GACZ,OACE,eAACC,EAAA,EAAD,2BAAaD,GAAb,cACE,sBAAM+U,MAAM,KAAKG,OAAO,KAAKoP,GAAG,IAAImvC,GAAG,IAAIliB,KAAK,YAChD,sBAAMxY,SAAS,UAAUC,SAAS,UAAU94B,EAAE,oYAAoYqxC,KAAK,c,yCCLhbloC,GAAQqqD,aAAe,CAChCzlD,QAAS,CAELgS,QAAS,CACL/R,KAAM,WAEV4L,WAAY,CACRwpC,QAAS,WAEb5jC,KAAM,CACFxR,KAAM,YAGdylD,QAAS,CACL5+C,MAAO,IACP6+C,YAAa,IAEjB/5C,KAAM,CACF9E,MAAO,IACP6+C,YAAa,IAEjBC,UAAW,CACPC,eAAgB,CACZ57C,KAAM,CACF/J,gBAAiB,sBACjB,aAAc,CACVA,gBAAiB,yBAI7B4lD,cAAe,CACX77C,KAAM,CACF,wBAAyB,CAKrBkZ,QAAS,KACT1c,QAAS,QACTK,MAAO,OACPG,OAAQ,OACRL,SAAU,WACVM,IAAK,EACLC,MAAO,EACPjH,gBAAiB,eACjBmwC,QAAS,GACT1F,aAAc,aAI1Bob,UAAW,CACPC,QAAS,CACLrb,aAAc,IAGtBsb,SAAU,CACNC,WAAY,CACRtJ,UAAW,sIAGnBuJ,aAAc,CACVC,UAAW,CACPphD,QAAS,UACT,gBAAiB,CACbqmC,YAAa,IAEjB,eAAgB,CACZC,aAAc,MAI1B+a,gBAAiB,CACbp8C,KAAM,CACFqf,SAAU,QACV5vB,YAAa,KAGrB4sD,QAAS,CACLr8C,KAAM,CACFzC,OAAQ,EACRmjC,aAAc,IAGtB4b,kBAAmB,CACft8C,KAAM,CACF+J,WAAY,iBAGpBwyC,SAAU,CACNrjC,QAAS,CACLjjB,gBAAiB,UACjB+B,OAAQ,KAIpBlQ,MAAO,CACH+zD,cAAe,CACXh+C,eAAe,M,gCCnFrBjI,GAAYC,cAAW,SAAC1E,GAAD,MAAY,CACjC2M,KAAM,CACF/C,QAAS,iBAEb4I,MAAO,CACH7L,UAAW,OAEfwL,OAAQ,CACJzG,MAAO,OACP+R,aAAc,GAElBpK,KAAM,CACF/U,YAAa0B,EAAM2L,QAAQ,IAE/ByO,QAAS,CACL/O,QAAS,OACT6b,cAAe,SACftd,QAAS,oBAGjB,CAAE5O,KAAM,gBAGNqwD,GAAQ,SAAC,GAAD,QACV5/B,KAAQtd,EADE,EACFA,QAAS9Q,EADP,EACOA,MACViuB,EAFG,EAEV9Y,MACG7b,EAHO,uCAKV,cAACqZ,GAAA,EAAD,qCACI3S,SAAU8Q,IAAW9Q,GACrBmP,WAAY2B,GAAW9Q,EACvBK,QAAQ,SACRuB,KAAK,SACDqsB,GACA30B,GANR,IAOIqS,WAAS,MAkHFsiD,GA9GG,SAAA30D,GAAU,IAChBygB,EAAezgB,EAAfygB,WADe,EAEOm0C,cAAgB,GAFvB,mBAEhB5xD,EAFgB,KAEP8L,EAFO,KAGjB8/C,EAAQiG,eACR/wD,EAAYC,cACZoC,EAASC,eACTmI,EAAUT,GAAU9N,GA2C1B,OACI,cAAC,KAAD,CACI0S,SA/BO,SAAAR,GACXpD,GAAW,GACX8/C,EAAM18C,EAAQuO,GACbthB,MAAK,WACF2P,GAAW,MAFf,OAIO,SAAApI,GACHoI,GAAW,GAEX,IAAMgmD,EAAepuD,GAASA,EAAMquD,eAAiBruD,EAAMquD,cAAc,IAAMruD,EAAMquD,cAAc,GAC7FC,EAAaF,GAAgBA,EAAaE,WAC1C11D,EAAO01D,GAAcA,EAAW11D,KAChC21D,EAAeD,GAAcA,EAAWC,aACxC5lD,EAAWylD,GAAgBA,EAAazlD,SAAY3I,EAAM2I,SAAW,gBAE3E,OAAQ/P,GACJ,IAAK,sBACD6G,EAAO,8BAA+B,UAAW,CAAE0G,YAAaooD,IAClE,MACF,IAAK,cACD9uD,EAAO,sBAAuB,WAChC,MACF,QACIA,EAAQkJ,EAAS,gBASzBsV,SA5CS,SAACzS,GACd,IAAM6E,EAAS,CAAEm+C,cAAU5xD,EAAW6xD,cAAU7xD,GAQhD,OANK4O,EAAOgjD,WACRn+C,EAAOm+C,SAAWpxD,EAAU,2BAE3BoO,EAAOijD,WACRp+C,EAAOo+C,SAAWrxD,EAAU,2BAEzBiT,GAoCHhE,OAAQ,gBAAGxD,EAAH,EAAGA,aAAH,OACJ,uBAAMmD,SAAUnD,EAAc6lD,YAAU,EAAxC,UACI,sBAAKnsD,UAAWsF,EAAQyH,KAAxB,UACI,qBAAK/M,UAAWsF,EAAQsN,MAAxB,SACI,cAAC,KAAD,CACIvC,WAAS,EACT9Z,GAAG,WACH6E,KAAK,WACL2a,UAAW01C,GACXrvD,MAAOvB,EAAU,oBACjBgB,SAAU9B,MAGlB,qBAAKiG,UAAWsF,EAAQsN,MAAxB,SACI,cAAC,KAAD,CACIrc,GAAG,WACH6E,KAAK,WACL2a,UAAW01C,GACXrvD,MAAOvB,EAAU,oBACjB+T,KAAK,WACL/S,SAAU9B,EACVuuD,aAAa,0BAIzB,cAAC8D,GAAA,EAAD,CAAa9mD,QAAS,CAAC2J,KAAM3J,EAAQkV,SAArC,SACI,eAAC,KAAD,CACI1c,QAAQ,YACR8Q,KAAK,SACLzS,MAAM,UACNuT,kBAAgB,EAChB7T,SAAU9B,EACViG,UAAWsF,EAAQiN,OANvB,UAQKxY,GACG,cAAC4iD,GAAA,EAAD,CACI38C,UAAWsF,EAAQmO,KACnBpU,KAAM,GACNu9C,UAAW,IAGlB/hD,EAAU,+BC7HjCgK,GAAYC,cAAW,SAAC1E,GAAD,MAAY,CACrC6E,KAAM,CACFwG,QAAS,OACT6b,cAAe,SACfpa,UAAW,QACXjB,OAAQ,MACRP,WAAY,SACZuT,eAAgB,aAChBotC,iBAAkB,YAClBC,eAAgB,QAChBpnD,gBAAiB,WAKrBijB,QAAS,CACLphB,UAAW,MACXunB,SAAU,KAEdi+B,QAAS,CACL9gD,QAAS,OACT6b,cAAe,SACf5b,WAAY,UAEhB8gD,KAAM,CAEF5K,UAAWxhD,EAAMqsD,QAAQ,GACzB9c,aAAc,SACd/xC,SAAU,GACVigB,aAAc,IAElB6uC,YAAa,CACTvwD,MAAOiE,EAAM4E,QAAQkT,gBAAgB9X,EAAM4E,QAAQiQ,KAAK+B,SACxD3N,SAAU,IACVyN,UAAW,UAGf+F,KAAM,CACF9V,UAAW,MACX4oC,aAAc,IAElB5nB,OAAQ,CACJvb,OAAQ,MACRf,QAAS,OACTwT,eAAgB,UAEpBxL,KAAM,CACFvO,gBAAiB9E,EAAM4E,QAAQka,UAAU,MAE7CytC,MAAO,CACHlhD,QAAS,OACTwT,eAAgB,SAChBjV,QAAS,iBAGbwQ,QAAS,CACL/O,QAAS,OACTzB,QAAS,iBAEbuI,OAAQ,CACJzG,MAAO,WAIX,CAAE1Q,KAAM,YAINwxD,GAAQ,SAAA71D,GAAU,IAEhBqJ,EAQArJ,EARAqJ,MAEAJ,GAMAjJ,EAPAuO,QAOAvO,EANAiJ,WACAhC,EAKAjH,EALAiH,SAIGpD,GACH7D,EAJA81D,cAIA91D,EAHA+1D,gBAGA/1D,EAFA6H,MARe,YAUf7H,EAVe,uFAYbuO,EAAUT,GAAU9N,GACpBg2D,EAAWpsD,mBAAQ,kBAAM8pD,aAAerqD,KAAQ,CAACA,IACjD4sD,EAAYC,eACZ17C,EAAUC,eAYhB,OAXAxZ,qBAAU,WACNg1D,EAAU,IAAI,GACT92D,MAAK,WAEFqb,EAAQ9O,KAAK,QAHrB,OAKW,iBAGZ,CAACuqD,EAAWz7C,IAGX,cAAC27C,GAAA,EAAD,CAAe9sD,MAAO2sD,EAAtB,SACI,8CACI/sD,UAAW0M,KAAWpH,EAAQL,KAAMjF,IAChCpF,GAFR,cAII,sBAAKoF,UAAWsF,EAAQ6iB,QAAxB,UACI,sBAAKnoB,UAAWsF,EAAQinD,QAAxB,UACI,cAACY,GAAD,CAAUntD,UAAWsF,EAAQknD,OAC7B,cAAC3uD,GAAA,EAAD,CAAYC,QAAQ,KAAKkC,UAAWsF,EAAQonD,YAA5C,0PAEJ,eAAC1uC,GAAA,EAAD,CAAMhe,UAAWsF,EAAQuX,KAAzB,UACI,qBAAK7c,UAAWsF,EAAQyiB,OAAxB,SACI,cAACZ,GAAA,EAAD,CAAQnnB,UAAWsF,EAAQmO,KAA3B,SACI,cAAC,KAAD,QAGPzV,QAkCT,cAAC,KAAD,WAehB4uD,GAAMxzD,aAAe,CACjBgH,MAAOgtD,GACPpvD,SAAU,cAAC,GAAD,KAGC4uD,U,UC9LA,OAA0B,uCCYnC/nD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCitD,OAAQ,CACJphD,OAAQ,IACRL,SAAU,WACV09C,SAAU,SAEdnhC,QAAS,CACL1c,QAAS,OACT6b,cAAe,SACf5b,WAAY,WACZukB,SAAU,EACVhpB,OAAQ,GAEZrI,MAAO,GAGPyf,UAAW,CACP5S,QAAS,OACTwT,eAAgB,SAChBvT,WAAY,SACZ1B,QAAS,QAIX0N,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,GAAS3X,OAsC3Du2D,GApCMt8C,sBAAW,WAAetC,GAAQ,oBAAC,IAC9CpJ,EAAUT,KAEhB,OAEI,eAACuZ,GAAA,EAAD,CAAMC,WAAS,EAAf,UACI,cAACD,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,GAAI,GAAImD,GAAI,EAAGzhB,UAAWsF,EAAQ+Y,UAA7C,SACKjT,GAAI,SAAU,QACR,sBAAK3M,MAAO,CAAE4K,SAAU,KAAxB,UACC,cAACxL,GAAA,EAAD,CAAYC,QAAQ,KAAK3B,MAAM,UAAU4hB,cAAY,EAAC/d,UAAWsF,EAAQ1G,MAAzE,iUACA,cAACf,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAlE,8UACA,cAAC,KAAD,CACIhI,UAAW2B,GACXhJ,IAAKA,EACLuH,GAAG,aACHnY,QAAQ,YACR3B,MAAM,UACNuT,kBAAgB,EAChBjR,MAAO,CAAEsI,UAAW,IAPxB,sGAWD,qBAAKtI,MAAO,CAAE4K,SAAU,KAAxB,SACC,cAACxL,GAAA,EAAD,CAAYC,QAAQ,KAAK3B,MAAM,UAAU4hB,cAAY,EAAC/d,UAAWsF,EAAQ1G,MAAzE,4PAGZ,cAACwf,GAAA,EAAD,CAAM1b,MAAI,EAAC4b,GAAI,GAAImD,GAAI,EAAGzhB,UAAWsF,EAAQ+Y,UAA7C,SACI,qBAAK0oC,IAAK+F,GAAiBhG,IAAI,QAAQroD,MAAO,CAAEqN,MAAO,OAAQzC,SAAU,e,qBCjDnFxE,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCinB,eAAgB,CACZpb,OAAQ,QAEZ8b,OAAQ,CACJ5rB,MAAOqnD,KAAW,KAClBt+C,gBAAiBs+C,KAAW,MAEhC5kD,MAAO,CACHkV,WAAY,IACZ3S,WAAY,UAIduW,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,GAAS3X,OAkC3Dw2D,GAhCQv8C,sBAAW,SAACja,EAAO2X,GACtC,IAAMpJ,EAAUT,KAGhB,OAFgB2oD,aAAUC,OAEVC,IAAwB,KAGpC,cAAC1vC,GAAA,EAAD,UACI,eAAC6J,GAAA,EAAD,CACI9R,UAAW2B,GACXhJ,IAAKA,EACLuH,GAAG,wBACHjW,UAAWsF,EAAQ+hB,eAJvB,UAMI,cAACS,GAAA,EAAD,CACIC,OAAQ,cAACZ,GAAA,EAAD,CAAQnoB,aAAW,aAAalB,QAAQ,UAAUkC,UAAWsF,EAAQyiB,OAArE,SACJ,cAAC,KAAD,MAEJnpB,MAAM,+FACNopB,qBAAsB,CAAElqB,QAAS,aACjCwH,QAAS,CAAE1G,MAAO0G,EAAQ1G,SAE9B,cAACqpB,GAAA,EAAD,UACI,cAACpqB,GAAA,EAAD,CAAYC,QAAQ,QAAQ3B,MAAM,gBAAgB4Z,UAAU,IAA5D,2V,oBCjDdlR,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC2M,KAAM,CACFtB,QAAS,OACTC,WAAY,UAEhBrD,MAAO,CACHyD,MAAO,GACPkB,WAAY,UAEhB2gD,UAAW,CACPtd,YAAa,EACbC,aAAc,EACd,gBAAiB,CACbD,YAAa,GAEjB,eAAgB,CACZC,aAAc,IAGtBrgB,SAAU,CACNA,SAAU,GAEd29B,SAAU,CACN9hD,MAAO,SAIT+hD,GAAW,SAACt3D,GACd,IACM8R,EAAQ9R,EAAGqe,MADF,aACgB,GAC/B,OAAOgT,OAAOvf,IA2BHylD,GAxBuB,SAAC,GAA4B,EAA1B9tD,UAA2B,IAAbjJ,EAAY,6BACzDuO,EAAUT,KAEhB,OACI,cAAC42B,GAAA,EAAD,2BAAgB1kC,GAAhB,aACI,eAAC2kC,GAAA,EAAD,CAAoBp2B,QAAS,CAAEyH,KAAMzH,EAAQyH,KAAM1E,MAAO/C,EAAQ+C,OAAlE,UACI,cAACwmB,GAAA,EAAD,CAAkBzyB,MAAM,sCAAsCka,cAAehR,EAAQqoD,UAArF,SACK,cAAG7+B,SAAH,EAAa6M,eAAb,IAA6BC,EAA7B,EAA6BA,UAAWrlC,EAAxC,EAAwCA,GAAOqE,EAA/C,qEACG,cAACkY,GAAA,EAAD,2BAAelY,GAAf,IAAqBrE,GAAIqlC,EAAU,QAASt/B,OAAQs/B,EAAU,QAASlgB,SAAUC,eAAY9hB,aAAY,yCAAWg0D,GAASt3D,GAAM,SAG3I,cAACuc,GAAA,EAAD,CAAWxW,OAAO,cAAcF,MAAM,6CAA6Cka,cAAa,UAAKhR,EAAQqoD,UAAb,YAA0BroD,EAAQ2qB,UAAY7mB,WAAS,IACvJ,cAAC0J,GAAA,EAAD,CAAWxW,OAAO,QAAQF,MAAM,uCAAuCka,cAAa,UAAKhR,EAAQqoD,UAAb,YAA0BroD,EAAQsoD,UAAYxkD,WAAS,IAC3I,cAACylB,GAAA,EAAD,CAAkBzyB,MAAM,wCAAwCka,cAAa,UAAKhR,EAAQqoD,UAAb,YAA0BroD,EAAQsoD,UAA/G,SACK,cAAG9+B,SAAH,EAAa6M,eAAb,IAA6BC,EAA7B,EAA6BA,UAAWrlC,EAAxC,EAAwCA,GAAkBqE,GAA1D,EAA4CoF,UAA5C,kFACG,cAAC8mC,GAAA,EAAD,2BAAiBlsC,GAAjB,IAAuBrE,GAAIqlC,EAAU,UAAWt/B,OAAQs/B,EAAU,UAAWlgB,SAAUC,eAAY9hB,aAAcg0D,GAASt3D,GAAM,EAAG6S,WAAS,QAGpJ,cAAC86B,GAAD,CAAc5nC,OAAO,WAAWF,MAAM,0CAA0Cka,cAAa,UAAKhR,EAAQqoD,UAAb,YAA0BroD,EAAQsoD,UAAY/zD,cAAc,EAAOuP,WAAS,WCtC1K2kD,GAdG,SAACh3D,GACf,IAAMgW,EAAO8N,eAQb,OACI,cAAC,GAAD,2BAAe9jB,GAAf,IAAsBuZ,SAPD,SAACnV,GACRA,EAAME,OAAOnC,MAC3B6T,EAAKmO,OAAO,2BAA4B,MACxCnO,EAAKmO,OAAO,kBAAmB,WCUxB6yC,GAhBG,SAACh3D,GACf,IAAMgW,EAAO8N,eAUb,OACI,cAAC,GAAD,2BAAe9jB,GAAf,IAAsBuZ,SATD,SAACnV,GACRA,EAAME,OAAOnC,MAC3B6T,EAAKmO,OAAO,yBAA0B,MACtCnO,EAAKmO,OAAO,gBAAiB,MAC7BnO,EAAKmO,OAAO,0BAA2B,MACvCnO,EAAKmO,OAAO,0BAA2B,WCKhC8yC,GAbK,SAACj3D,GACjB,IAAMgW,EAAO8N,eAOb,OACI,cAAC,GAAD,2BAAe9jB,GAAf,IAAsBuZ,SANC,SAACnV,GACxB,IAAMjC,EAAQiC,EAAME,OAAOnC,MAC3B6T,EAAKmO,OAAO,kBAAmBhiB,Q,WCcjCk7B,GAAgBtvB,cAAW,SAAA1E,GAAK,MAAK,CACvC4X,KAAM,YAAiB,IACb9S,EAnBS,SAACwO,GACpB,OAAQA,GACJ,IAAK,QACD,MAAO,UAEX,IAAK,OACD,MAAO,UAEX,IAAK,UACD,MAAO,UAEX,QACI,MAAO,WAOau6C,CADN,EAAbv6C,QAEL,MAAO,CACHvX,MAAOiE,EAAM4E,QAAQkT,gBAAgBhT,GACrCA,gBAAiBA,QAKvBgpD,GAAa,SAAC,GAAiF,IAA/EluD,EAA8E,EAA9EA,UAAoBqF,EAA0D,EAAnEC,QAA0B7D,EAAyC,EAAzCA,OAAQnF,EAAiC,EAAjCA,OAAQlF,EAAyB,EAAzBA,SACjEsc,GAD0F,oEACjFnb,IAAIkJ,EAAQnF,IACrBgJ,EAAU8uB,GAAc,CAAE1gB,SAAQpO,QAASD,IAC3CxK,EAAYC,cAClB,IAAK4Y,EAAU,OAAO,KACtB,IAAMtX,EAAQvB,EAAU,aAAD,OAAczD,EAAd,kBAAgCkF,EAAhC,YAA0CoX,GAAU,CAAE7U,EAAG6U,IAEhF,OACI,cAAC0B,GAAA,EAAD,CACI9P,QAAS,CAAE2J,KAAM3J,EAAQ0S,MACzBhY,UAAWA,EACX5D,MAAOA,EACPiD,KAAK,WAMjB6uD,GAAW90D,aAAe,CACtBgd,UAAU,EACVhf,SAAU,0BACVkF,OAAQ,UAKG4xD,UCpDTrpD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,GACNwE,KAAM,CACF/U,YAAa,IAEjBmV,SAAU,CAAEC,WAAY,KACxBC,UAAW,CACPD,WAAY,IACZ3X,MAAO,QAEXyC,MAAO,GACPuvD,IAAK,CAAEh6C,WAAY,MAEnB,CAAE/Y,KAAM,iCAGNgZ,GAAa,SAAC,GASb,IARHC,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QACAmP,EAEE,EAFFA,kBACG1d,EACD,kHACIuO,EAAUT,GAAU,CAAES,QAASD,IAC/B2O,EAAiBS,EAAkBJ,GACzC,IAAKA,EAAW9d,GAAI,OAAO,cAAC,KAAD,2BAAkCQ,GAAlC,aAA0Cid,IAA3BK,EAAW9d,IACrD,IAAMme,EAAgBJ,IAAqBjM,EACrCsM,EAAUC,KAAMZ,EAAgBQ,GAChCK,EAAQ3c,KAAM8b,EAAgBW,GAGpC,OACI,eAAC,KAAD,yBAEId,SAAUa,EACV1U,UAAW0M,KAAWpH,EAAQ2J,KAAT,gBAChB3J,EAAQuO,SAAWU,KAEpBxd,GANR,cAQI,cAACq3D,GAAA,EAAD,UACKv5C,EAAMlf,KAAI,SAACqf,EAAM3M,GAAP,OAAkB,sBAAkBrI,UAAYgV,EAAKjB,UAAazO,EAAQyO,UAAY,GAApE,SAAyEiB,EAAKC,MAAnE5M,QAE5C,cAAC,GAAD,2BAAgBtR,GAAhB,IAAuB0K,OAAQ4S,EAAYrU,UAAWsF,EAAQ6oD,UAVzD95C,EAAW9d,KAe5B6d,GAAWhb,aAAe,CACtBhC,SAAU,2BAGCgd,I,kBAAAA,MCpCAi6C,GAjBqB,SAACt3D,GAAW,IAAD,MACrCgW,EAAO8N,eACL5R,EAAW6R,eAAX7R,OACFqlD,EAA6Bj2C,cAAY,SAAAC,GAAK,OAAI/f,IAAI+f,EAAD,mDAO3D,OACI,cAAC6K,GAAA,EAAD,2BAAkDpsB,GAAlD,IAAyDsC,OAAQ,CAAEuV,MAAM,UAAA3F,EAAO4+B,kBAAP,eAAmBj5B,MAAO3F,EAAO4+B,WAAWj5B,KAAO,KAAM2/C,WAAY,SAAWj+C,SAN3H,SAACpX,GAC/B,IAAMs1D,EAAej2D,IAAI+1D,EAAD,UAAgCp1D,EAAhC,kBACxB6T,EAAKmO,OAAO,kBAAmBszC,GAAgB,KAI/C,SACI,cAAC,GAAD,CAAmB34C,WAAW,OAAOL,eAAgB,cAAC,GAAD,IAAgBvS,QAAS,CAAEpH,WAAU,UAACoN,EAAO4+B,kBAAR,aAAC,EAAmBj5B,WADlH,UAAqB3F,EAAO4+B,kBAA5B,aAAqB,EAAmBj5B,OCMjCy/C,GAjBqB,SAACt3D,GAAW,IAAD,IACrCgW,EAAO8N,eACL5R,EAAW6R,eAAX7R,OACFqlD,EAA6Bj2C,cAAY,SAAAC,GAAK,OAAI/f,IAAI+f,EAAD,iDAO3D,OACI,cAAC6K,GAAA,EAAD,2BAAgDpsB,GAAhD,IAAuDsC,OAAQ,CAAEuV,MAAM,UAAA3F,EAAO++B,gBAAP,eAAiBp5B,MAAO3F,EAAO++B,SAASp5B,KAAO,KAAM2/C,WAAY,SAAWj+C,SANrH,SAACpX,GAC/B,IAAMs1D,EAAej2D,IAAI+1D,EAAD,UAAgCp1D,EAAhC,kBACxB6T,EAAKmO,OAAO,gBAAiBszC,GAAgB,KAI7C,SACI,cAAC,GAAD,CAAmB34C,WAAW,OAAOL,eAAgB,cAAC,GAAD,IAAgBvS,QAAS,CAAEpH,UAAWoN,EAAO++B,SAASp5B,UAD/G,UAAqB3F,EAAO++B,gBAA5B,aAAqB,EAAiBp5B,OCftC/J,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACrC6O,KAAM,CACJxD,QAAS,OACT6b,cAAe,cA2BJmnC,GAvBU,SAAC,GAA0C,IAAzCzwD,EAAwC,EAAxCA,SAAUyD,EAA8B,EAA9BA,OAAQnF,EAAsB,EAAtBA,OAAWvF,EAAW,8CAC7DuO,EAAUT,KACRoE,EAAW6R,eAAX7R,OACFylD,EAAgBn2D,IAAI0Q,EAAQ3M,GAGlC,OAAOoyD,GAAiB1rD,MAAM8d,QAAQ4tC,IAAkBA,EAAclzD,OAAS,EAC7E,qBAAKwE,UAAWsF,EAAQ2J,KAAxB,SACCy/C,EAAc/4D,KAAI,SAAC+M,EAAM2F,GAExB,OAAOvI,uBAAaF,WAASmY,KAAK/Z,GAAf,YAAC,eACfjH,GADc,IAEjBqD,IAAI,GAAD,OAAKkC,EAAL,YAAe+L,EAAf,KACH9R,GAAG,GAAD,OAAK+F,EAAL,YAAe+L,EAAf,KACF5G,SACAnF,OAAO,GAAD,OAAKA,EAAL,YAAe+L,EAAf,aAIR,MC4CSsmD,GAnEW,SAAC,GAiBpB,IAhBL/sD,EAgBI,EAhBJA,OACAgL,EAeI,EAfJA,WAeI,KAdJxQ,MAcI,EAbJoQ,eAaI,MAbK,QAaL,EAZJgf,EAYI,EAZJA,OACAC,EAWI,EAXJA,QACAnb,EAUI,EAVJA,SACArN,EASI,EATJA,QAEA7L,GAOI,EARJqK,OAQI,EAPJrK,UACAkF,EAMI,EANJA,OACAof,EAKI,EALJA,SAKI,IAJJ5d,eAII,MAJM,SAIN,EAHJ4tB,EAGI,EAHJA,WACA1rB,EAEI,EAFJA,UACGpF,EACC,2KAEIqO,EAAW6R,eAAX7R,OACF2lD,EAAer2D,IAAI0Q,EAAQ3M,GAH7B,EAWAqvB,aAAS,aACX/pB,SACA4pB,SACAlb,WACAmb,UACA5xB,aAAc+0D,EAAeA,EAAa11D,WAAQmB,EAClDjD,WACAkF,OAAO,GAAD,OAAKA,EAAL,UACNof,YACG9gB,IAbHrE,EAPE,EAOFA,GACAqc,EARE,EAQFA,MACAgZ,EATE,EASFA,WATE,IAUFC,KAAQpuB,EAVN,EAUMA,MAAO8Q,EAVb,EAUaA,QAajB,OAAOqgD,GAAgBA,EAAaxzD,KAClC,cAACgV,GAAA,EAAD,qCACE7Z,GAAIA,GACAqc,GAFN,IAGE5S,UAAWA,EACXlC,QAASA,EACTL,SAAU8Q,IAAW9Q,GACrBmP,WACG2B,GAAW9Q,GAAUmP,EACpB,cAACkf,GAAA,EAAD,CACEvd,QAASA,EACT9Q,MAAOA,EACPmP,WAAYA,IAEZ,KAEN+O,SAAUiQ,EACVxvB,MAAOwyD,EAAaxzD,KACpBoR,OAAQA,EACRkf,WAAYA,GACRzoB,GACA1G,GAAkB3B,KAEtB,MCxDSi0D,GATW,SAAA93D,GACtB,OACI,eAACw6C,GAAA,EAAD,CAAOC,SAAS,UAAU/9B,KAAM,cAAC,KAAD,IAAiBhV,MAAO,CAAEof,aAAc,IAAxE,UACI,cAAC4zB,GAAA,EAAD,+DACA,oxBAAoJ,kGAApJ,WCMGqd,GAVS,SAAA/3D,GACpB,OACI,eAACw6C,GAAA,EAAD,CAAOC,SAAS,UAAU/9B,KAAM,cAAC,KAAD,IAAiBhV,MAAO,CAAEof,aAAc,IAAxE,UACI,cAAC4zB,GAAA,EAAD,+DACA,wwBAAkJ,kGAAlJ,WCNNsd,GAAwBtqD,mBAAH,wmBAQrBuqD,GAAyBvqD,mBAAH,6YAQtBwqD,GAAoBxqD,mBAAH,uhBAQjByqD,GAAmBzqD,mBAAH,6mBAQhB0qD,GAAgB1qD,mBAAH,8O,0CClCN2qD,GAAoB3qD,mBAAH,oJCExB4qD,GAAU,SAACC,GAAD,OACZC,KAAcD,GAAI,sCAAIzoC,EAAJ,yBAAIA,EAAJ,uBAAa/uB,KAAKC,UAAU8uB,OC4B5C2oC,IDjBqBH,IAAQ,SAACj4D,GAAD,gDAAc,WAAO8B,EAAO+P,EAAQlS,GAAtB,kBAAAyrB,EAAA,8DAC/BnoB,IAAVnB,EADyC,8CACbmB,GADa,uBAEtB2C,KAAa,SAAU5F,EAAX,gBAAwBL,EAAMqE,KAAOlC,IAF3B,uBAErCY,EAFqC,EAErCA,KAFqC,kBAG5B,OAATA,OAAiBO,EAAY,CAAE+L,QAAS,uBAAwBygB,KAAM,CAAE3tB,WAHnC,2CAAd,6DCiBZ,CDVYm2D,IAAQ,SAACj4D,EAAUkF,GAAX,gDAAsB,WAAOpD,EAAO+P,EAAQlS,GAAtB,kBAAAyrB,EAAA,8DAC/CnoB,IAAVnB,EADyD,8CAC7BmB,GAD6B,uBDfjDwsB,ECiBoC,CAAExiB,MAAM,gBAAI/H,EAASpD,IDhB9DoL,KAAiBk+B,MAAM,CAC1BA,MAAO4sB,GACP1qD,UAAU,eAAMmiB,GAEhBqjB,YAAa,cACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,MCQ+C,uBAE7C3D,EAF6C,EAErDA,KAAQA,KAF6C,kBAG5C,OAATA,OAAiBO,EAAY,CAAE+L,QAAS,uBAAwBygB,KAAM,CAAE3tB,WAHnB,iCDflD,IAAC2tB,ICeiD,OAAtB,4DCUnB4oC,CAAoB,WAAY,UAElDp6C,GAAY,kBAAM,GAElBxQ,GAAYC,MAAW,SAAA1E,GAAK,MAAK,CACnCsvD,YAAa,CACT9jD,SAAU,WACVO,MAAO/L,EAAM2L,QAAQ,GACrBG,IAAK9L,EAAM2L,QAAQ,GACnB5P,MAAOiE,EAAM4E,QAAQiT,KAAK,UAI5B03C,GAAgB,CAClBhpB,aAAc,CACVjC,kCAAkC,GAEtCkD,eAAgB,CAAC,CAAExsC,KAAM,mCAAW45C,OAAQ,EAAGn5C,UAAU,IACzDgsC,WAAY,CACRn0B,OAAQ,UAEZs0B,SAAU,CACNt0B,OAAQ,SACRk8C,SAAU,EACVC,eAAgB,KAsKlBtzD,GAAoB,SAAC,GAAD,EACtBC,SADsB,EAEtBiE,UAFsB,EAGtBqc,QAHsB,EAItBV,QAJsB,EAKtBC,QALsB,EAMtB9K,QANsB,EAOtBvX,OAPsB,EAQtBD,QARsB,EAStBgjB,SATsB,EAUtBnI,MAVsB,EAWtB8iB,UAXsB,EAYtBD,UAZsB,EAatBx0B,QAbsB,EActBia,YAdsB,EAetBmC,UAfsB,0LAoBXywC,GAtLM,SAAC,GAKhB,EAJF9xD,SAIG,IAHHO,EAGE,EAHFA,KACAgB,EAEE,EAFFA,QACGxI,EACD,6CACIwO,EAAWC,eACXtI,EAASC,eACTmI,EAAUT,GAAU9N,GACpB8D,EAAYC,cAJhB,EAK4BsD,oBAAS,GALrC,mBAKKrE,EALL,KAKc8L,EALd,KAOI0xB,EAAah9B,uBAAY,SAAC0O,GAAY,IH5BbnP,EG8BnB6sC,EAAuD19B,EAAvD09B,aAAciB,EAAyC3+B,EAAzC2+B,eAAgBC,EAAyB5+B,EAAzB4+B,WAAYG,EAAa/+B,EAAb++B,SAElDziC,EAASQ,gBACTF,GAAW,IHjCgB/L,EGoCR6sC,EHlCnB7sC,EAAK+N,cAAe/N,EAAK+N,YAAe/N,EAAK+N,YAAYtR,GAAM,CAAEA,GAAIuD,EAAK+N,YAAYtR,IAAO,MAC7FuD,EAAKi2D,oBAAqBj2D,EAAK8tC,eAAiB9tC,EAAKi2D,kBAAkBp6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACpFuD,EAAKk2D,gBAAiBl2D,EAAKm2D,WAAan2D,EAAKk2D,cAAcr6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACxEuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAE5D+N,KAAiBC,OAAO,CAC3BC,SAAUuqD,GACVrqD,UAAU,eAAM5K,GAChB6K,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAAQ,uBAAIA,EAAS/yC,YAAb,aAAI,EAAeA,SGwB1B5D,MAAK,SAAAqM,GACF,IAAMmkC,EAAiBnkC,EAAOhM,GAQ9B,OH9BoB,SAACqxC,EAAgBlB,GAEjD,IAAMypB,EAAWvoB,EAAejyC,KAAI,SAAAy6D,GAChC,OAAO9rD,KAAiBC,OAAO,CAC3BC,SAAUwqD,GACVtqD,UAAU,2BACH0rD,GADE,IAELzpB,aAAc,CAAEpwC,GAAImwC,KAExB/hC,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAAQ,uBAAIA,EAAS/yC,YAAb,aAAI,EAAeA,WAGvC,OAAO9D,QAAQQ,IAAI25D,GACdj6D,MAAK,SAAAm6D,GACF,OAAOA,EAAU70D,UGQb80D,CAAqB1oB,EAAgBlB,GAChCxwC,MAAK,SAAAqM,GACF7E,QAAQ0K,IAAI7F,MAGb,CAAEmkC,qBAEZxwC,MAAK,YAAyB,IHVV2wB,EGUZ6f,EAAqB,EAArBA,eAGL,OHbiB7f,EGaOghB,EHX7BvjC,KAAiBC,OAAO,CAC3BC,SAAUyqD,GACVvqD,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAAQ,uBAAIA,EAAS/yC,YAAb,aAAI,EAAeA,SGMlB5D,MAAK,SAAAqM,GACF,IAAMguD,EAAehuD,EAAOhM,GAC5B,MAAO,CAAEmwC,iBAAgB6pB,sBAGpCr6D,MAAK,YAAuC,IHR1B2wB,EGQV6f,EAAmC,EAAnCA,eAAgB6pB,EAAmB,EAAnBA,aAGrB,OHXe1pC,EGWOmhB,EHT3B1jC,KAAiBC,OAAO,CAC3BC,SAAU0qD,GACVxqD,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAAQ,uBAAIA,EAAS/yC,YAAb,aAAI,EAAeA,SGIlB5D,MAAK,SAAAqM,GACF,IAAMiuD,EAAajuD,EAAOhM,GAC1B,MAAO,CAAEmwC,iBAAgB6pB,eAAcC,oBAGlDt6D,MAAK,YAEF,OHRY,SAAC,GAAkD,IAAhDwwC,EAA+C,EAA/CA,eAAgB6pB,EAA+B,EAA/BA,aAAcC,EAAiB,EAAjBA,WAEzD,OAAOlsD,KAAiBC,OAAO,CAC3BC,SAAU2qD,GACVzqD,UAAW,CACPnO,GAAImwC,EACJ6pB,eACAC,cAEJ7rD,QAAS,SAAClH,GACNmH,MAAMnH,MAEXvH,MAAK,SAAA22C,GAAa,IAAD,EAGhB,iBAAOA,EAAS/yC,YAAhB,aAAO,EAAeA,QGPP22D,CAAa,CAAE/pB,eAF8B,EAA/CA,eAEiC6pB,aAFc,EAA/BA,aAE+BC,WAFA,EAAjBA,gBAItCt6D,MAAK,SAACqM,GAEH,IAAMmuD,EAAWnuD,EAAOhM,GACxB2G,EAAO,wCAAyC,OAAQ,CACpDuN,OAAQ,cAAC,KAAD,CACJtO,MAAM,UACN4Z,UAAWC,KACXC,GAAE,UAAKC,aAAa,gBAAiBw6C,GAAnC,SAAqDrxD,KAAK,QAHxD,SAIHxE,EAAU,yBA1C3B,OA8CW,SAAC4C,GACJP,EAAwB,kBAAVO,EAAqBA,EAAQA,EAAM2I,SAAW,6BAA8B,cA/ClG,SAiDa,WACLP,GAAW,GACXN,EAASc,gBACT9G,SAET,IAKH,OAAQ,eAAC2J,GAAA,EAAD,yBACJynD,sBAAoB,EACpBC,sBAAoB,EACpBxnD,WAAW,EACXC,SAAS,KACTgoC,OAAO,OACP9yC,KAAMA,EACN4K,kBAAgB,4BAChB5J,QAASA,GACLhD,GAAkBxF,IATlB,cAWJ,eAACuS,GAAA,EAAD,CAAa/S,GAAG,4BAAhB,+JAEI,cAACwI,EAAA,EAAD,CACIC,aAAYnE,EAAU,mBACtBmF,UAAWsF,EAAQoqD,YACnBxzD,QAASqD,EAHb,SAKI,cAAC,KAAD,SAGR,eAAC,KAAD,CAAY+c,KAAMib,EAAY7wB,OAAQ3M,EAASwP,cAAeomD,GAAelxD,MAAO,CAAE4xC,YAAa,EAAGC,aAAc,GAApH,UACI,eAAC,KAAD,CAAgBl0C,MAAM,qBAAMhF,SAAS,eAArC,UACKgU,GAAI,SAAU,eAAgB,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,oBAAoBof,SAAUC,eAAYvS,WAAS,EAAChN,MAAM,uCACrHgP,GAAI,SAAU,eAAgB,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,2BAA2B8M,WAAS,EAAChN,MAAM,8CAC7GgP,GAAI,SAAU,eAAgB,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,qBAAqBF,MAAM,wCACvFgP,GAAI,SAAU,eAAgB,qCAAuC,cAAC84B,GAAD,CAAc5nC,OAAO,gDAAgDF,MAAM,mEAChJgP,GAAI,SAAU,eAAgB,cAAe,gBAAkB,cAAC+X,GAAA,EAAD,CAAgB7mB,OAAO,8BAA8B4N,UAAU,cAAcrN,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAKqkB,SAAUC,eAAYvf,MAAM,4CAA4CuQ,YAAU,EAAC0J,UAAU,gBAA/N,SAC5D,cAAC,GAAD,CAAmBR,WAAY8c,GAAWnd,eAAgB,cAAC,GAAD,IAAoBC,gBAAiBJ,OAElGjK,GAAI,SAAU,eAAgB,iBAAkB,kBAAoB,cAAC,GAAD,CAA+B9O,OAAO,iBAAiBF,MAAM,oDAEtI,eAAC,KAAD,CAAgBA,MAAM,+DAAahF,SAAS,aAA5C,UACI,cAAC,GAAD,IACCgU,GAAI,SAAU,aAAc,SAAW,cAACyjB,GAAA,EAAD,CAAkBvY,cAAehR,EAAQqoD,UAAzC,SACnC,kBAAG7+B,EAAH,EAAGA,SAAH,EAAav4B,GAAb,wCACG,cAACuc,GAAA,EAAD,CAAWxW,OAAO,kBAAkBof,SAAUC,eAAYvS,WAAS,EAAChN,MAAM,mCAAmCvC,aAAY,OAAEi1B,QAAF,IAAEA,GAAF,UAAEA,EAAU6X,oBAAZ,aAAE,EAAwBvrC,UAG1JgQ,GAAI,SAAU,aAAc,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,yBAAyB8M,WAAS,EAAChN,MAAM,4CACzGgP,GAAI,SAAU,aAAc,SAAW,cAACylD,GAAD,CAAqBv0D,OAAO,kBAAkBlB,KAAK,iBAAiBhE,SAAS,eAAe8qB,OAAO,kCAAkCxG,SAAUC,eAAYvf,MAAM,qCACxMgP,GAAI,SAAU,aAAc,gBAAiB,4BAA8B,cAAC0lD,GAAD,CAAuCx0D,OAAO,8BAA8B4N,UAAU,0BAA0BwR,SAAUC,eAAYvf,MAAM,4CAA4CuQ,YAAU,EAAC0J,UAAU,kBACxRjL,GAAI,SAAU,aAAc,iBAAmB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,0BAA0BF,MAAM,6CACjGgP,GAAI,SAAU,aAAc,QAAU,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,iBAAiBF,MAAM,kCAAkCsf,SAAUC,iBAC3HvQ,GAAI,SAAU,aAAc,gBAAkB,cAAC,GAAD,CAAY9O,OAAO,yBAAyBF,MAAM,4CAChGgP,GAAI,SAAU,aAAc,SAAW,cAAC,GAAD,CAAoB9O,OAAO,+BAA3B,SACpC,cAAC,GAAD,SAGR,eAAC,KAAD,CAAgBF,MAAM,yDAAYhF,SAAS,WAA3C,UACI,cAAC,GAAD,IACCgU,GAAI,SAAU,WAAY,SAAW,cAACyjB,GAAA,EAAD,CAAkBvY,cAAehR,EAAQqoD,UAAzC,SACjC,kBAAG7+B,EAAH,EAAGA,SAAH,EAAav4B,GAAb,wCACG,cAACuc,GAAA,EAAD,CAAWxW,OAAO,gBAAgBof,SAAUC,eAAYvS,WAAS,EAAChN,MAAM,iCAAiCvC,aAAY,OAAEi1B,QAAF,IAAEA,GAAF,UAAEA,EAAU6X,oBAAZ,aAAE,EAAwBvrC,UAGtJgQ,GAAI,SAAU,WAAY,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,uBAAuBsf,WAAS,EAACxS,WAAS,EAAChN,MAAM,0CAC/GgP,GAAI,SAAU,WAAY,SAAW,cAAC2lD,GAAD,CAAmBz0D,OAAO,gBAAgBlB,KAAK,eAAehE,SAAS,eAAe8qB,OAAO,gCAAgCxG,SAAUC,eAAYvf,MAAM,mCAC9LgP,GAAI,SAAU,WAAY,gBAAiB,0BAA4B,cAAC4lD,GAAD,CAAqC10D,OAAO,4BAA4B4N,UAAU,wBAAwBwR,SAAUC,eAAYvf,MAAM,0CAA0CuQ,YAAU,EAAC0J,UAAU,kBAC5QjL,GAAI,SAAU,WAAY,SAAW,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,gBAAgBF,MAAM,iCAAiCsf,SAAU8zC,GAAgB5iD,WAAW,uQACrJxB,GAAI,SAAU,WAAY,iBAAmB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,wBAAwBF,MAAM,2CAC7FgP,GAAI,SAAU,WAAY,SAAW,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,gBAAgBF,MAAM,mCAC/EgP,GAAI,SAAU,WAAY,aAAe,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,oBAAoB20D,KAAM,EAAGv1C,SAAUC,eAAYvf,MAAM,uCACtHgP,GAAI,SAAU,WAAY,mBAAqB,cAAC07B,GAAA,EAAD,CAAaxqC,OAAO,0BAA0B20D,KAAM,EAAGv1C,SAAUC,eAAYvf,MAAM,6CAClIgP,GAAI,SAAU,WAAY,SAAW,cAAC,GAAD,CAAoB9O,OAAO,6BAA3B,SAClC,cAAC,GAAD,SAGR,eAAC,KAAD,CAAgBF,MAAM,iFAAtB,UACKgP,GAAI,SAAU,aAAc,WAAa,cAAC,GAAD,CAAa9O,OAAO,oBAAoBlB,KAAK,mBAAmBhE,SAAS,eAAe8qB,OAAO,oCAAoC9lB,MAAM,qCAAqCwQ,WAAW,sVAClOxB,GAAI,SAAU,eAAgB,UAAW,WAAa,cAACyjB,GAAA,EAAD,CAAkBvY,cAAehR,EAAQqoD,UAAzC,SAClD,kBAAG7+B,EAAH,EAAGA,SAAH,EAAav4B,GAAb,wCACG,cAACulB,GAAD,CAAsCxf,OAAO,0BAA0B4N,UAAU,SAAS7Q,OAAQ,CAAEjC,SAAU,eAAgB0d,aAAY,UAAEga,EAASkZ,gBAAX,aAAE,EAAmBp5B,MAAQ/R,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,wCAAwCgN,WAAS,OAG1RgC,GAAI,SAAU,eAAgB,aAAc,cAAgB,cAAC8lD,GAAA,QAAD,CAAyC50D,OAAO,6BAA6B4N,UAAU,YAAY7Q,OAAQ,CAAEjC,SAAU,gBAAkByF,KAAM,CAAElE,MAAO,OAAQC,MAAO,OAASvB,QAAS,IAAK+E,MAAM,2CAA2CgN,WAAS,eC7MtTtS,I,YAAAA,GARf,SAAcC,GACZ,OACE,cAACC,EAAA,EAAD,2BAAaD,GAAb,aACE,sBAAME,EAAE,gbCMR4N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCinB,eAAgB,CACZpb,OAAQ,QAEZrN,MAAO,CACHkV,WAAY,IACZ3S,WAAY,MAEhB4mB,OAAQ,CACJ5rB,MAAOiE,EAAM4E,QAAQiQ,KAAK+B,QAC1B9R,gBAAiB,eA+BVisD,GA3BgB,SAAC,GAAgE,IAA9DnxD,EAA6D,EAA7DA,UAAoBqF,EAAyC,EAAlDC,QAA0BpJ,EAAwB,EAAxBA,QAC7DoJ,GADqF,iDAC3ET,GAAU,CAAES,QAASD,KAErC,OACI,cAAC2Y,GAAA,EAAD,CAAMhe,UAAWA,EAAjB,SACI,eAAC6nB,GAAA,EAAD,CACI3rB,QAASA,EACT8D,UAAWsF,EAAQ+hB,eAFvB,UAII,cAACS,GAAA,EAAD,CACIC,OAAQ,cAACZ,GAAA,EAAD,CAAQnoB,aAAW,SAASlB,QAAQ,UAAUkC,UAAWsF,EAAQyiB,OAAjE,SACJ,cAACqpC,GAAD,MAEJxyD,MAAM,qJACNopB,qBAAsB,CAAElqB,QAAS,aACjCwH,QAAS,CAAE1G,MAAO0G,EAAQ1G,SAE9B,cAACqpB,GAAA,EAAD,UACI,cAACpqB,GAAA,EAAD,CAAYC,QAAQ,QAAQ3B,MAAM,gBAAgB4Z,UAAU,IAA5D,mXClBLs7C,GApBsB,SAAC,GAAsD,EAApDrxD,UAAoD,EAAzCsF,QAA0C,IAAbvO,EAAY,yCAChEqH,oBAAS,GADuD,mBACjFG,EADiF,KAC3E+I,EAD2E,KAGlFI,EAAanN,uBAAY,WAC3B+M,GAAQ,KACT,IAEGU,EAAczN,uBAAY,WAC5B+M,GAAQ,KACT,IAEH,OACI,qCACI,cAAC,GAAD,CAAwBpL,QAASwL,IACjC,cAAC4pD,GAAD,aAA0B/yD,KAAMA,EAAMgB,QAASyI,GAAiBjR,QCVtE8N,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCie,UAAW,CACPrR,WAAY,QAuBLukD,GAnBI,WACf,IAAMjsD,EAAUT,KAEhB,OACI,sBAAK7E,UAAWsF,EAAQ+Y,UAAxB,UACI,cAACmzC,GAAA,EAAD,CAAO5yD,MAAO6yD,MACd,cAAC,GAAD,IACA,eAAC,GAAD,CAAkBnzC,GAAI,CAAE2C,MAAO,YAAa5hB,KAAM,CAAC,GAAI,QAAUjD,MAAM,8BAA8BqC,MAAO,CAAEuL,QAAS,IAAvH,UACI,cAAC,GAAD,IACCoB,GAAI,SAAU,iBAAmBA,GAAI,SAAU,kBAAoBA,GAAI,SAAU,eAAiBA,GAAI,SAAU,aAC7G,cAAC,GAAD,W,yCCxBPsmD,GAAyBjtD,mBAAH,iS,+BCC7BktD,GAAeltD,mBAAH,mPAcH,cACX,OAAOH,KAAiBk+B,MAAM,CAC1BA,MAAOmvB,GACPhtD,QAAS,SAAClH,GACNmH,MAAMnH,OCSLsjC,GAAet8B,mBAAH,iIA3BN,uVAiCJ,YAACoiB,GAEZ,OAAOviB,KAAiBk+B,MAAM,CAC1BA,MAAOzB,GACPr8B,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OC3CLm0D,GAAa,aAEbC,GAAY,SAAC3+B,GAAD,MAAW,CAChCtkB,KAAMgjD,GACNp6B,QAAStE,ICJAy+B,GAAe,eAEfG,GAAiB,SAACzK,GAAD,MAAkB,CAC5Cz4C,KAAM+iD,GACNn6B,QAAS,CAAE6vB,iBCJF0K,GAAW,WAEXC,GAAU,SAAC9+B,GAAD,MAAW,CAC9BtkB,KAAMmjD,GACNv6B,QAAS,CAAEtE,UCgBTruB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6xD,YAAa,CACTxmD,QAAS,OACT6b,cAAe,SACf5b,WAAY,SACZoL,UAAW,SACX9M,QAAS5J,EAAM2L,QAAQ,GACvBuiB,SAAU,KAEd4jC,aAAc,CACV1lD,QAASpM,EAAM2L,QAAQ,IACvB5P,MAAOiE,EAAM4E,QAAQka,UAAUizC,aAC/BjtD,gBAAiB9E,EAAM4E,QAAQgS,QAAQ6tB,WAIzCutB,GAAoB,SAACr7D,GACvB,IAAM8D,EAAYC,cAClB,OACI,cAACu3D,GAAA,EAAD,CACIp8C,GAAG,WACH6D,YAAajf,EAAU,qBACvBy3D,SAAU,cAAC,KAAD,IACVp2D,QAASnF,EAAMmF,WA2FZq2D,GAnFI,SAAC,GAAkB,IAAbx7D,EAAY,oBAC3Bm8B,EAAO7a,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,OAAMG,MACxCg0B,EAAchvC,cAAY,SAAAC,GAAK,OAAIA,EAAM+uC,cAAah0B,MACtD9tB,EAAWC,eACXF,EAAUT,KACVhK,EAAYC,cAgElB,OAjDA03D,2BAAgBd,GAAwB,CACpCe,OAAQnuD,KACRouD,mBAhBuB,SAAC,GAAsF,EAApFD,OAAqF,IAAD,IAA5EE,iBAAoB74D,KAAQutD,YAAeuL,EAAiC,EAAjCA,KAAMC,EAA2B,EAA3BA,eACnF,GAAID,GAAQA,EAAK1L,OAERG,EAAY/rD,SAASs3D,EAAKr8D,KAAOgP,EAASusD,GAAe,GAAD,mBAAKzK,GAAL,CAAkBuL,EAAKr8D,WACjF,CAEH,IAAMu8D,EAAczL,EAAYhuD,QAAO,SAAA9C,GAEnC,OAAOA,KADQq8D,EAAOA,EAAKr8D,GAAKs8D,EAAet8D,OAGnDgP,EAASusD,GAAegB,QAShC96D,qBAAU,WAAM,8CACZ,iCAAAwqB,EAAA,+EAE8DuwC,KAF9D,gBAEqCC,EAFrC,EAEgBl5D,KAAQutD,YACV4L,EAAiBD,EAAar9D,KAAI,SAAAu9B,GAAI,OAAIA,EAAK38B,MACrDgP,EAASusD,GAAemB,IAJhC,gDAOQv1D,QAAQ0K,IAAI,UAAZ,MAPR,0DADY,sBAaZ,OAba,WAAD,wBAWZsa,GAEO,WACHnd,EAASusD,GAAe,QAG7B,CAACvsD,IAEJvN,qBAAU,WAAM,8CAEZ,mCAAAwqB,EAAA,wEAE2B0wC,aAAU1F,aAAU2F,MAA/BxU,EAFhB,EAEgBA,OAFhB,SAGkDyU,GAAW,CAAE/uD,MAAO,CAAEgvD,OAAQ1U,KAHhF,gBAG8B2U,EAH9B,EAGgBx5D,KAAQA,KAEhByL,EAASysD,GAAQsB,IACjB/tD,EAASssD,GAAUyB,IAN3B,kDAWQ51D,QAAQ0K,IAAI,UAAZ,MAXR,2DAFY,sBAkBZ,OAlBa,WAAD,wBAgBZsa,GAEO,WACHnd,EAASysD,GAAQ,OACjBzsD,EAASssD,GAAU,UAGxB,CAACtsD,EAAUysD,GAASH,KAGnB,eAAC0B,GAAA,EAAD,yBAAU9/C,KAAM,cAAC,GAAD,CAAahS,OAAQyxB,EAAM7zB,KAAK,QAAQW,UAAWsF,EAAQ4sD,gBAAsBn7D,GAAjG,cACKm8B,GACG,sBAAKlzB,UAAWsF,EAAQ2sD,YAAxB,UACI,cAAC,GAAD,CAAaxwD,OAAQyxB,EAAM7zB,KAAK,UAChC,cAACxB,GAAA,EAAD,CAAYC,QAAQ,QAAQW,MAAO,CAAEsI,UAAW,GAAhD,SAAsDmsB,EAAK93B,OAC3D,cAACyC,GAAA,EAAD,CAAYC,QAAQ,QAAQ3B,MAAM,gBAAgB4hB,cAAY,EAA9D,SAAgEljB,EAAU,6BAAD,OAA8Bq4B,EAAK2yB,MAAQ,CAAEhnD,EAAGq0B,EAAK2yB,YAErI3yB,GAAS,cAAC,GAAD,CAAmBzxB,OAAQyxB,S,qDCvH3CruB,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnCozD,SAAU,CACNllC,SAAU,KAEdvG,OAAQ,OAKNrQ,GAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,KAAD,aAAMiJ,SAAUjJ,EAAK+kD,UAAU,QAAW18D,OA2B5E28D,GAzBC1iD,sBAAW,WAA8CtC,GAAS,IAApDtT,EAAmD,EAAnDA,KAAmBk4B,GAAgC,EAA7CxvB,YAA6C,EAAhCwvB,KAAKvL,EAA2B,EAA3BA,OAAWhxB,EAAgB,qDACvEuO,EAAUT,KAChB,OACI,eAAC,KAAD,yBACIkR,UAAW2B,GACXhJ,IAAKA,EACL+kB,KAAMH,EACNj4B,OAAO,SACPs4D,IAAI,WACJx3D,MAAM,UACNmJ,QAAS,CAAC2J,KAAM3J,EAAQkuD,WACpBz8D,GARR,cAWI,cAAC68D,GAAA,EAAD,UACA,cAACzsC,GAAA,EAAD,CAAQrpB,QAAQ,UAAUgpD,IAAK1rD,EAAM2rD,IAAKh/B,EAA1C,SACK3sB,EAAKorD,OAAO,GAAGC,kBAGpB,cAAC2H,GAAA,EAAD,CAAcp3C,QAAS5b,WCtB7By4D,GAAYpvD,eAAH,wNA6DAqvD,GAnDE,SAAC/8D,GACd,IAAM8D,EAAYC,cADM,EAEQsD,mBAAS,MAFjB,mBAEjBC,EAFiB,KAEPC,EAFO,KASlB0J,EAAc,SAAA7M,GAChBmD,EAAY,OAIRqgD,EAAWuU,aAAU1F,aAAU2F,MAA/BxU,OAEA7kD,EAASi6D,oBAASF,GAAW,CACjCpB,OAAQnuD,KACRI,UAAW,CAAE2uD,OAAQ1U,KAFjB7kD,KAKFq5B,EAAOr5B,GAAQA,EAAKA,MAAQA,EAAKA,KAAKq5B,KAAK33B,OAAS,GAAKob,KAAO9c,EAAKA,KAAKq5B,MAAM,SAACC,GAAD,OAASA,EAAIh4B,QAEnG,OAAK+3B,EAGD,qCACI,cAACx0B,EAAA,EAAD,CAASC,MAAO/D,EAAU,0BAA2B,CAAEgE,EAAG,SAA1D,SACI,cAACE,EAAA,EAAD,CAAYE,gBAAc,YAAY9C,MAAM,UAAUD,QAxB9C,SAAAf,GAChBmD,EAAYnD,EAAMiE,gBAuBV,SACI,cAAC,KAAD,QAGJ,cAAC,KAAD,CACI7I,GAAG,YACH8H,SAAUA,EACV21D,aAAW,EACXz1D,KAAMC,QAAQH,GACdkB,QAASyI,EALb,SAOCmrB,EAAKx9B,KAAI,SAAAy9B,GAAG,OACT,cAAC,GAAD,aAEIl3B,QAAS8L,GACLorB,GAFCA,EAAI78B,YAlBX,MC1ChBsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6zD,OAAQ,CACJrS,UAAW,sHAEfhjD,MAAO,CACHqV,KAAM,EACNs1C,aAAc,WACdvwC,WAAY,SACZswC,SAAU,UAEdz9C,OAAQ,CACJoI,KAAM,OAuBCigD,GAlBE,SAAC,GAAkB,IAAbn9D,EAAY,oBACzBuO,EAAUT,KAEhB,OACI,eAACsvD,GAAA,EAAD,yBAAQh4D,MAAM,WAAcpF,GAA5B,IAAmCq9D,SAAU,cAAC,GAAD,IAAcp0D,UAAWsF,EAAQ2uD,OAA9E,UACI,cAACp2D,GAAA,EAAD,CACIC,QAAQ,KACR3B,MAAM,UACN6D,UAAWsF,EAAQ1G,MACnBrI,GAAG,sBAEP,qBAAKA,GAAG,wBACR,cAAC,GAAD,S,qBC4CNsO,GAAYC,cACd,SAAA1E,GAAK,YAAK,CACN6O,KAAM,CACFhD,OAAQ,qBAEZooD,OAAQ,GACRvjD,MAAO,GACPwjD,gBAAiB,GACjBC,iBAAkB,GAClBC,eAAgB,GAChBC,kBAAmB,GACnBC,sBAAuB,GACvBC,qBAAsB,GACtBC,uBAAwB,GACxBC,wBAAyB,GACzBC,MAAO,GACPC,MAAO,CACHnpD,SAAU,QACVK,OAAQ,oBACR+oD,UAAW,SAEXC,eAAgB,OAChBC,gBAAiB,OACjB,uBAAwB,CACpBzpD,QAAS,SAGjB0pD,aAAW,GACPvpD,SAAU,WACVE,MAAO,SAAC/U,GAAD,OACHA,EAAMwH,KACAoQ,IAAUvO,EAAO,gBAvGX,KAwGNuO,IACEvO,EACA,sBAzGW,KA4GvBkf,WAAYlf,EAAMmf,YAAYC,OAAO,QAAS,CAC1Cs6B,OAAQ15C,EAAMmf,YAAYu6B,OAAOsb,MACjC31C,SAAUrf,EAAMmf,YAAYE,SAAS41C,gBAEzCnwD,gBAAiB,cACjBowD,YAAa,QAfN,eAgBNl1D,EAAMC,YAAY0X,KAAK,MAAQ,CAC5BhR,UAAW,EACXkF,OAAQ,QACRL,SAAU,UACV1G,gBAAiB9E,EAAM4E,QAAQ6L,WAAd,UApBd,eAsBNzQ,EAAMC,YAAY6gB,GAAG,MAAQ,CAC1Bq0C,OAAQ,SAvBL,wBAyBC,WAzBD,MA4Bf,CAAEn6D,KAAM,cAGGo6D,GA/HC,SAACz+D,GAAW,IAEpBiH,EAKAjH,EALAiH,SAIGpD,GACH7D,EAJA0+D,WAIA1+D,EAHAsI,KAGAtI,EAFAuO,QALmB,YAOnBvO,EAPmB,6CAQjBwO,EAAWC,eACXkwD,EAAWv1D,aAAc,SAAAC,GAAK,OAChCA,EAAMC,YAAYC,KAAK,SAGrB/B,GADU4B,aAAc,SAAAC,GAAK,OAAIA,EAAMC,YAAYC,KAAK,SACjD+X,cACT,SAAAC,GAAK,OAAIA,EAAMC,MAAMo9C,GAAGC,gBAE5BC,eACA,IAAMC,EAAgB,kBAAMvwD,EAASwwD,cAAsBx3D,KAjBpC,EAkBoBsG,GAAU,2BAC9C9N,GAD6C,IAEhDwH,UAFI42D,EAlBe,EAkBfA,YAAaJ,EAlBE,EAkBFA,MAAUzvD,EAlBR,uCAuBvB,OAAOowD,EACH,cAAC/9B,GAAA,EAAD,yBACI75B,QAAQ,YACRS,KAAMA,EACNy3D,WAAY,CACRh2D,UAAWm1D,GAEf51D,QAASu2D,EACTxwD,QAASA,GACL1K,GARR,aAUKoD,KAGL,cAAC25B,GAAA,EAAD,yBACI75B,QAAQ,YACRS,KAAMA,EACNy3D,WAAY,CACRh2D,UAAWm1D,GAEf51D,QAASu2D,EACTxwD,QAASA,GACL1K,GARR,aAUI,qBAAKoF,UAAW+0D,EAAhB,SAAwB/2D,Q,yCCtD9B6G,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACF4O,aAAc,EACd,eAAgB,CACZA,aAAc,IAGtBo4C,eAAgB,CACZjpD,WAAY5M,EAAM2L,UAClBskC,YAAajwC,EAAM2L,QAAQ,QAmBpBmqD,GAdG,SAAC,GAAmC,IAAjCt3D,EAAgC,EAAhCA,MAAOZ,EAAyB,EAAzBA,SAClBsH,GAD2C,oCACjCT,MAChB,OAAwB,IAApB7G,EAASxC,OAAqB,KAG9B,sBAAKwE,UAAWsF,EAAQ2J,KAAxB,YACQrQ,GAAU,cAACf,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAC/Y,UAAWsF,EAAQ2wD,eAA7F,SAA+Gr3D,IAC5HZ,M,wCCHAsqB,GAAW6tC,cAdT,SAAA/1D,GAAK,MAAK,CACrB6O,KAAM,GACNhK,KAAM,CACFwG,QAAS,QAEboR,KAAM,CACF5I,KAAM,YAEVmiD,YAAa,CACTniD,KAAM,eAKUkiD,EAAmB,YAOpC,IANHv3D,EAME,EANFA,MACAod,EAKE,EALFA,MACAhe,EAIE,EAJFA,SACAsH,EAGE,EAHFA,QACAtF,EAEE,EAFFA,UAEE,kEAEF,OADAq2D,eACKr4D,EAGD,sBAAKgC,UAAW0M,KAAW,aAAcpH,EAAQ2J,KAAMjP,GAAvD,UACI,cAACwxD,GAAA,EAAD,CAAO5yD,MAAOA,IACd,sBAAKoB,UAAS,UAAKsF,EAAQL,MAA3B,UACI,qBAAKjF,UAAS,UAAKsF,EAAQ8wD,aAA3B,SACEt2D,uBAAaF,WAASmY,KAAK/Z,GAAW,MAEvCge,GAASlc,uBAAakc,EAAO,UATlB,QA4BbyM,GAZF,SAAA1xB,GAAK,OACd,cAAC,GAAD,eAAcA,K,WC9CHu/D,GAFc,SAAC18D,EAAM28D,GAAP,gBAAsBA,GAAtB,OAAgC38D,ICiB9C48D,IAZG1xD,cAAW,SAAA1E,GAAK,MAAK,MAIlB,SAAC,GAGf,IAFHqT,EAEE,EAFFA,KACG1c,EACD,wBACF,OAAQ,cAAC4G,GAAA,EAAD,2BAAkB5G,GAAlB,aAA0B0c,OCChC5O,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACF0gC,aAAcvvC,EAAMu5C,MAAMhK,aAC1B9xB,aAAc,EACd,eAAgB,CACZA,aAAc,GAElB,UAAW,CACP3Y,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,MAEtD,iBAAkB,CACdC,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,MAEpD,iBAAkB,CAChB9I,MAAOiE,EAAM4E,QAAQgS,QAAQ/R,KAC7BC,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,MAEpD,uBAAwB,CACtBC,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,MAG1Dma,WAAY,CACRxhB,SAAU,GACVyhB,UAAW,eACXC,WAAYlf,EAAMmf,YAAYC,OAAO,YAAa,CAC9CC,SAAUrf,EAAMmf,YAAYE,SAASC,YAG7CC,WAAY,CACVN,UAAW,kBAEbo3C,aAAc,CACVjqD,OAAQ,GAEZhK,OAAQ,gBAAEk0D,EAAF,EAAEA,MAAF,MAAc,CAClBrmB,YAAajwC,EAAM2L,QAAQ,GAAK3L,EAAM2L,QAAQ,EAAE2qD,SA2DzCC,GAvDE,SAAXA,EAAY,GAIX,IAHHj0D,EAGE,EAHFA,KACAg0D,EAEE,EAFFA,MAGMpxD,GADJ,gCACcT,GAAU,CAAC6xD,WACrB35C,EAAW65C,eACXhiD,EAAQiiD,eACNtgE,EAAgDmM,EAAhDnM,GAAI6E,EAA4CsH,EAA5CtH,KAAMqY,EAAsC/Q,EAAtC+Q,KAAMqjD,EAAgCp0D,EAAhCo0D,MAJtB,EAIsDp0D,EAAzBnE,YAJ7B,SAIyCP,EAAa0E,EAAb1E,SAJzC,EAK0BG,IAAMC,SAASG,GALzC,mBAKKw4D,EALL,KAKaC,EALb,KAMInjD,EAAWijD,GAASA,EAAMl9D,OAASmjB,EAASkH,SAASxD,QAAQ7L,EAAMhb,KAAM,IAMzEq9D,EAAc,GAWpB,OAVIH,IACAG,EAAYlhD,UAAYC,KACxBihD,EAAYhhD,GAAKqgD,GAAqBQ,EAAMl9D,KAAMgb,EAAM0e,MAExDt1B,IACAi5D,EAAY/6D,QAVI,WAChB86D,GAAWD,KAcPxgE,GAAM6E,EACX,qCACK,eAAC87D,GAAA,EAAD,yBACIC,OAAK,EACL5kD,QAAM,EACNsB,SAAUA,EACVvO,QAAS,CAAC2J,KAAM3J,EAAQ2J,MACxBjP,UAAWsF,EAAQ9C,QACfy0D,GANR,cAQKxjD,GAAQ,cAAC,GAAD,aAAcA,KAAMA,GAAUA,EAAK1c,MAAMqgE,oBAClD,cAAChJ,GAAA,EAAD,CAAcp3C,QAAS5b,EAAMkK,QAAS,CAAC2J,KAAM3J,EAAQmxD,gBACpDzzD,MAAM8d,QAAQ9iB,GACT,cAAC,KAAD,CAAYgC,UAAS,UAAKsF,EAAQ8Z,WAAb,YAA2B23C,EAASzxD,EAAQqa,WAAa,MAC9E,SAGT3c,MAAM8d,QAAQ9iB,IACX,cAACkiB,GAAA,EAAD,CAAUC,GAAI42C,EAAQ32C,QAAQ,OAAOC,eAAa,EAAlD,SACI,cAAC,KAAD,CAAMtK,UAAU,MAAMshD,gBAAc,EAApC,SACKr5D,EAASrI,KAAI,SAAA2hE,GAAK,OAAK,cAACX,EAAD,CAAUj0D,KAAM40D,EAAsBZ,MAAOA,EAAM,GAAvBY,EAAM/gE,cAIrE,MCjGPsO,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFohC,YAAajwC,EAAM2L,UACnBukC,aAAclwC,EAAM2L,eAItBwrD,GAAO,SAAC,GAKP,IAJHv3D,EAIE,EAJFA,UACA4Q,EAGE,EAHFA,KACU4mD,EAER,EAFFhE,SAGMluD,GADJ,+CACcT,MAGhB,OACI,cAAC,KAAD,CAAMkR,UAAU,MAAM/V,UAAWA,EAAWsF,QAAS,CAAC2J,KAAM3J,EAAQ2J,MAApE,SACK2B,EAAKjb,KAAI,SAAA69D,GAAQ,OAAI1zD,uBAAa03D,EAAmB,CAClDp9D,IAAKo5D,EAASj9D,GACdmM,KAAM8wD,EACNkD,MAPE,UAalBa,GAAKn+D,aAAe,CAChBo6D,SAAU,cAAC,GAAD,KAKC+D,UClCT1yD,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFnD,MAAO,KAEXtJ,OAAQ,CACJ6tC,YAAajwC,EAAM2L,QAAQ,QAiBpBypD,GAbC,SAAC,GAIX,EAHFiC,OAGG,IAFH/M,EAEE,EAFFA,QAGMplD,GADJ,oCACcT,MAEhB,OACI,cAAC,GAAD,CAAM+L,KAAM85C,EAAS1qD,UAAWsF,EAAQ2J,QClB1CpK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFnD,MAAO,SAeA4rD,GAXD,SAAC3gE,GAEX,IAAMuO,EAAUT,KAEhB,OACI,qBAAK7E,UAAWsF,EAAQ2J,QCR1BpK,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACTwkB,SAAU,EACV0nC,UAAW,GAEfxvC,QAAS,CACLne,QAAS5J,EAAM2L,QAAQ,EAAG,GAC1BkkB,SAAU,EACV0nC,UAAW,OAIb17C,GAAU,SAAC,GAIV,IAHHD,EAGE,EAHFA,MACAy7C,EAEE,EAFFA,OAIMnyD,GAFJ,kCAEcT,MACV+P,EAAQiiD,eAEd,OACI,sBAAK72D,UAAWsF,EAAQ2J,KAAxB,UACI,cAAC4V,GAAA,EAAD,CAAO7kB,UAAWsF,EAAQ6iB,QAA1B,SACKsvC,EAAOn1D,QAAO,SAACC,EAAD,EAAkC8F,GAAW,IAAlC9R,EAAiC,EAAjCA,GAAIqD,EAA6B,EAA7BA,KAAMmc,EAAuB,EAAvBA,UAgBhC,OAdc,IAAV1N,GACA9F,EAAOE,KACH,cAAC,KAAD,CAAOm1D,OAAK,EAACh+D,KAAMgb,EAAM0e,IAAzB,SACI,cAAC,KAAD,CAAUrd,GAAIqgD,GAAqB18D,EAAMgb,EAAM0e,QADnD,sBAAkD/8B,KAK1DgM,EAAOE,KACH,cAAC,KAAD,CAAOm1D,OAAK,EAACh+D,KAAM08D,GAAqB18D,EAAMgb,EAAM0e,KAApD,SACKxzB,uBAAaiW,EAAW,KADkCxf,IAM5DgM,IACR,MAENzC,uBAAakc,EAAO,QAKjCC,GAAQ7iB,aAAe,CACnB4iB,MAAO,cAAC,GAAD,KAIIC,UCvDTpX,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACTwkB,SAAU,EACVlpB,UAAW3G,EAAM2L,QAAQ,QAI3B8rD,GAAS,SAAC,GAKT,IAJMC,EAIP,EAJFpN,QACSqN,EAGP,EAHF5vC,QACAwuB,EAEE,EAFFA,cAGMrxC,GADJ,qDACcT,MACR4yD,EAAoB9gB,EAApB8gB,OAAQ/M,EAAY/T,EAAZ+T,QAEhB,OACI,sBAAK1qD,UAAWsF,EAAQ2J,KAAxB,UACKnP,uBAAag4D,EAAkB,CAC5BpN,YAEH5qD,uBAAai4D,EAAkB,CAC5BN,eAMhBI,GAAOz+D,aAAe,CAClBsxD,QAAS,cAAC,GAAD,IACTviC,QAAS,cAAC,GAAD,KAIE0vC,ICpCAA,GDoCAA,G,oCEiBf,I,GA8BeG,GA9BM,SAAC,GAAwB,IAAtBp+D,EAAqB,EAArBA,KAAqB,2BACDwE,mBAAS,KADR,mBAClC65D,EADkC,KACpBC,EADoB,KAUzC,OARAlgE,qBAAU,WACNu0C,MAAM3yC,GACL1D,MAAK,SAAAiiE,GAAG,OAAIA,EAAIljD,UAChB/e,MAAK,SAAA+e,GACFijD,EAAgBjjD,QAErB,IAGC,qBAAKjV,UAAU,gBAAf,SACI,cAAC,KAAD,CACI1D,OAAQ27D,EACRG,YAAY,OC7DbC,GAPG,SAAC,GAA0B,IAAzBr6D,EAAwB,EAAxBA,SACVue,GADkC,4BACxBmxC,KAGhB,OAFA4K,aAAU7K,IAAwBlxC,GAE1B,mCAAGve,KCFT6G,GAAYC,cAAW,SAAA1E,GAAK,MAAK,CACpC6O,KAAK,CACAxD,QAAS,OACTwT,eAAgB,SAChBvT,WAAY,SACZI,MAAO,GACPG,OAAQ,GACRvN,YAAa,OAWN65D,GAPO,SAAC,GAAyB,EAAxBv6D,SAAwB,4BAAC,IACvCsH,EAAUT,KAGpB,OAFoB2oD,aAAUC,OAEXC,IAAmB,sBAAM1tD,UAAWsF,EAAQ2J,KAAzB,0BAA4C,M,ICtBnE,ICAA,ICAA,I,QC0CAupD,GA7BC,SAACzhE,GAEb,IAAMwlB,EAAUk8C,eAFO,ECRZ,SAAU5xC,GACrB,IAAMthB,EAAWC,eADU,EAEDpH,mBAAS,CAC/BtE,UAAMO,EACNoD,WAAOpD,EACPN,SAAS,IALc,mBAEpBue,EAFoB,KAEb4zB,EAFa,KAiC3B,OAzBAl0C,qBAAU,WACNuN,EAASQ,gBACT/P,QAAQQ,IAAIqwB,EAAKlxB,KAAI,SAAAy9B,GAAG,OAAIA,EAAIoP,UAC/BtsC,MAAM,SAAA4D,GACH,IAAMyI,EAASskB,EAAKlxB,KAAI,SAACy9B,EAAK/qB,GAAN,MAAiB,CACrCjN,KAAMg4B,EAAIh4B,KACVtB,KAAMA,EAAKuO,GAAOvO,SAEtBoyC,EAAS,CACLpyC,KAAMyI,EACNxI,SAAS,EACTC,QAAQ,OAThB,OAYO,SAAAyD,GACHyuC,EAAS,CACTzuC,QACA1D,SAAS,EACTC,QAAQ,OAhBZ,SAkBW,WACPuL,EAASc,qBAEd,CAACd,EAAUshB,IAEPvO,EDhBwBogD,CANZ/3D,mBAAQ,iBAAM,CAC7B,CACIvF,KAAM,OACNonC,MAAOl+B,KAAiBk+B,MAAM,CAAEA,MAAO/9B,mBAAF,6DAAyCylC,YAAa,qBAEhG,CAAC3tB,KACGziB,EATgB,EAShBA,KAKD6+D,GAdiB,EASV5+D,QATU,EASD0D,MAKL,CAHF,CAAErC,KAAMw9D,IAAcr8C,QAASmxC,KACjC5zD,GAAQA,EAAK,IAAMA,EAAK,GAAGA,KAAK++D,MAAQ/+D,EAAK,GAAGA,KAAK++D,MAAQ,CAACz9D,KAAMtB,EAAK,GAAGA,KAAK++D,KAAKz9D,KAAMmhB,QAASziB,EAAK,GAAGA,KAAK++D,KAAKt8C,WAIpI,OACI,8BACKo8C,EAAShjE,KAAI,SAACi0D,EAAMvhD,GAAP,OACVuhD,EACC,gCACG,cAAC/rD,GAAA,EAAD,CAAYC,QAAQ,KAApB,SAA0B8rD,EAAKxuD,OAC/B,cAACyC,GAAA,EAAD,CAAYC,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAlE,SAAoE6rC,EAAKrtC,YAFlElU,GAGD,WEpCX,OAA0B,qCCYnCovD,GAAS,CAgBb,CACElhE,GAAI,YACJqD,KAAM,kBACNmc,UAAW,cAAC,GAAD,UAAW,cAAC,GAAD,CAAcnc,KAAMk/D,QAE5C,CACEviE,GAAI,UACJqD,KAAM,WACNmc,UAAW,cAAC,GAAD,MAKT20C,GAAU,CAuBd,CACEn0D,GAAI,YACJ6E,KAAM,8FACNqY,KAAM,cAAC,GAAD,CAAe2jD,kBAAmB,CAAE34D,MAAO,CAAEtC,MAAO,UAAWuC,YAAa,MAClFo4D,MAAOW,GAAO7uD,MAAK,SAAAkuD,GAAK,MAAiB,cAAbA,EAAMvgE,OAEpC,CACEA,GAAI,UACJ6E,KAAM,uCACN07D,MAAOW,GAAO7uD,MAAK,SAAAkuD,GAAK,MAAiB,YAAbA,EAAMvgE,QCvDvBwiE,GATM,SAAChiE,GAElB,OACI,cAAC,GAAD,yBAA+B6H,MAAM,wBAA2B7H,GAAhE,aACI,cAACiiE,GAAD,CAAeriB,cAAe,CAAE8gB,UAAQ/M,kBCV9CuO,GAAeniE,KCcf+N,GAAYC,cAAW,SAAA1E,GAAK,YAAK,CACnC6O,KAAM,CACF0gC,aAAcvvC,EAAMu5C,MAAMhK,aAC1Bx7B,WAAY/T,EAAM2L,UAClBrN,YAAa0B,EAAM2L,UACnB8R,aAAc,EACd,eAAgB,CACZA,aAAc,GAElB,UAAW,CACP3Y,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,OAG1DwI,OAAQ,CACJtR,MAAOiE,EAAM4E,QAAQgS,QAAQ/R,KAC7BC,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,KAClD,UAAW,CACPC,gBAAiBC,gBAAK/E,EAAM4E,QAAQgS,QAAQ/R,KAAM,MAG1DwO,KAAM,CAAEtX,MAAO,WACf8I,MAAI,GACAwG,QAAS,OACT6b,cAAe,SACfrI,eAAgB,aAChBlY,UAAW,QACX8W,aAAc,OALd,eAMCzd,EAAMC,YAAY0X,KAAK,MAAQ,CAC5BhR,UAAW,IAPf,4BASY3G,EAAMmf,YAAYC,OAAO,QAAS,CAC1Cs6B,OAAQ15C,EAAMmf,YAAYu6B,OAAOsb,MACjC31C,SAAUrf,EAAMmf,YAAYE,SAAS41C,iBAXzC,GAcJ92D,KAAM,CACFuN,MAAO6C,IAAUvO,EAAO,aAvCN,MAyCtB84D,OAAQ,CACJptD,MAAO6C,IAAUvO,EAAO,mBAzCC,QA2C7B,CAAEhF,KAAM,WAwCNm8D,GAAO,SAAC,GAQP,IAAD,EAPOlyD,EAOP,EAPFC,QACAtF,EAME,EANFA,UAEAm5D,GAIE,EALFhC,MAKE,EAJFgC,cACAC,EAGE,EAHFA,YAIMv+D,GADJ,EAFFw+D,OAEE,qFACgBv+D,eACZwK,EAAUT,GAAU,CAAES,QAASD,IAC/B9G,EAAO8Z,cAAY,SAAAC,GAAK,OAAIA,EAAMC,MAAMo9C,GAAGC,eAC3C0D,EAAsBjhD,aAAYkhD,KAAclmC,MAChDmmC,EAAkBnhD,cAAY,SAAAC,GAAK,OAAIA,EAAM2R,QAAU3R,EAAM2R,OAAOwvC,kBAAiBpmC,MAI3F,GAFAhb,cAAY,SAAAC,GAAK,OAAIA,EAAMohD,OAAO38C,SAASkH,aAEtCu1C,EAAiB,OAAO,KAE7B,IAAMG,EAAe,CACjBv9C,SAAS,EACT3I,KAAMwlD,GACN79D,KAAM,QACN6H,QAAS,CAAE22D,UAAW,UAKpBC,EAFS,sBAAOP,GAAP,CAA4BK,IAEPtgE,QAAO,SAAAjC,GAAQ,SAAyC,IAAnCoiE,EAAgBpiE,EAASgE,UAC5E0+D,EAAmBzlB,mBAAQwlB,GAAmB,SAAAziE,GAAQ,OAAIA,EAAS6L,QAAQ22D,WAAa,aAE9F,OACI,sBACI55D,UAAW0M,KACPpH,EAAQL,MADS,oBAGZK,EAAQ/G,KAAOA,GAHH,eAIZ+G,EAAQ4zD,QAAU36D,GAJN,GAMjByB,GAPR,UAWKm5D,GAAgB,cAACY,GAAA,EAAD,CAAmB79D,QAASk9D,EAAaY,cAAez7D,EAAM+G,QAAS,CAAE2J,KAAM3J,EAAQ2J,KAAMxB,OAAQnI,EAAQmI,OAAQgG,KAAMnO,EAAQmO,MAAQ0jD,OAAO,IAClKxgE,OAAOD,KAAKojE,GAAkBnkE,KAAI,SAAAskE,GAAK,OACpC,cAAC,GAAD,CAEIr7D,MAAO/D,EAAU,eAAD,OAAgBo/D,IAFpC,SAIKH,EAAiBG,GAAO5gE,QAAO,SAAA8R,GAAC,OAAIA,EAAEiR,WAASzmB,KAAI,SAAAyB,GAAQ,OACxD,cAACi7D,GAAA,EAAD,CAEIp8C,GAAE,WAAM7e,EAASgE,MACjBkK,QAAS,CAAE2J,KAAM3J,EAAQ2J,KAAMxB,OAAQnI,EAAQmI,OAAQgG,KAAMnO,EAAQmO,MACrEqG,YAAajf,EAAU,aAAD,OAAczD,EAASgE,KAAvB,SAAoC,CAAEyD,EAAGzH,EAASgE,KAAMwI,YAAa,IAC3F0uD,SAAUl7D,EAASqc,KAAO,cAACrc,EAASqc,KAAV,IAAoB,cAAC,KAAD,IAC9CvX,QAASk9D,EACTY,cAAez7D,GANVnH,EAASgE,UALjB6+D,UAwDzB1C,GAAKn+D,aAAe,CAChBggE,YAAa,kBAAM,OAGR7B,U,uCCzLT1yD,GAAYC,cACd,SAAC1E,GAAD,MAAY,CACR3C,MAAO,CACHyH,gBAAiB9E,EAAM4E,QAAQvH,MAAMyZ,KACrC/a,MAAOiE,EAAM4E,QAAQvH,MAAM00D,cAE/BthC,QAAS,CACL3rB,gBAAiB9E,EAAM4E,QAAQvH,MAAMonC,MACrC1oC,MAAOiE,EAAM4E,QAAQvH,MAAM00D,cAE/B+H,KAAM,CACF/9D,MAAOiE,EAAM4E,QAAQgS,QAAQ6tB,UAGrC,CAAEzpC,KAAM,mBAGN++D,GAAe,SAAApjE,GAObA,EALAuO,QAFuB,IAGvBsJ,EAIA7X,EAJA6X,KACA5O,EAGAjJ,EAHAiJ,UACAo6D,EAEArjE,EAFAqjE,iBACGx/D,EANmB,YAOtB7D,EAPsB,qDAQFqH,oBAAS,GARP,mBAQnBG,EARmB,KAQb+I,EARa,KASpB+yD,EAAehiD,aAAYiiD,MAC3B/0D,EAAWC,eACX3K,EAAYC,cACZy/D,EAAS11D,GAAU9N,GAEzBiB,qBAAU,WACNsP,IAAU+yD,KACX,CAACA,IAEJ,IAAMxoD,EAAqBtX,uBAAY,WACnC+M,GAAQ,KACT,CAACA,IAEE2pC,EAAe12C,uBAAY,WACzB8/D,GAAgBA,EAAa1zD,WAC7BpB,EAASi1D,gBACTC,KAAqBC,KAAK,MAAO,CAAEC,QAAQ,KAE/Cp1D,EAASq1D,kBACV,CAACr1D,EAAU80D,IAERQ,EAAatgE,uBAAY,WAC3BgL,EAAS20D,gBACTO,KAAqBC,KAAK,MAAO,CAAEC,QAAQ,MAC5C,CAACp1D,IAEJ,OACI,cAACk3C,GAAA,EAAD,aACIl+C,KAAMA,EACN6H,QACIi0D,GACAA,EAAaj0D,SACbvL,EAAUw/D,EAAaj0D,QAASi0D,EAAaS,aAEjDV,iBACKC,GAAgBA,EAAaD,kBAC9BA,EAEJW,0BAA2BV,GAAgBA,EAAa1zD,SACxDkqC,SAAUI,EACV1xC,QAASsS,EACT6qC,aAAc,CACV18C,UAAW0M,KACP6tD,EAAQF,GAAgBA,EAAazrD,MAASA,GAC9C5O,IAGRyK,OACI,qCACM4vD,GAAgBA,EAAa1zD,SAC3B,cAAC,KAAD,CACIxK,MAAM,UACN6D,UAAWu6D,EAAOL,KAClB76D,KAAK,QACLnD,QAAS2+D,EAJb,SAMKhgE,EAAU,oBAEf,KACFw/D,GAAgBA,EAAaS,aAAeT,EAAaS,YAAYrwD,OACnE3K,uBAAau6D,EAAaS,YAAYrwD,QACtC,SAGR7P,KAShBu/D,GAAa/gE,aAAe,CACxBwV,KAAM,OACNwrD,iBAAkB,KAGPD,I,YAAAA,MCvEAa,GA7CiB,SAACtiD,GAE7B,IAAM1b,EAAeC,eAFmB,EAGhBmB,mBAAS,IAHO,mBAGjCtE,EAHiC,KAG3BmhE,EAH2B,OAIV78D,oBAAS,GAJC,mBAIjCrE,EAJiC,KAIxB8L,EAJwB,OAKZzH,oBAAS,GALG,mBAKjCpE,EALiC,KAKzBkhE,EALyB,KAoCxC,MAAO,CACHphE,OACAC,UACAC,SACAC,YAjCgBM,sBAAW,yCAAC,WAAOX,GAAP,8BAAA4oB,EAAA,yDACvB5oB,EADuB,wDAE5BiM,GAAW,GAFiB,EAIFjM,EAAKO,MAAM,KAJT,kBAIrBC,EAJqB,KAIb+gE,EAJa,oBAKLn+D,EAAao+D,eAAe,aAAc,CAAEhhE,QALvC,OAKtByyC,EALsB,OAMtBwuB,EANsB,UAMRxuB,EAAS/yC,YAND,iBAMR,EAAeuhE,mBANP,aAMR,EAA4BniE,MAChD+hE,GAAQ,SAAAhpB,GAEJ,OADuBz5C,IAAI,eAAKy5C,GAAN,CAAe73C,GAAf,mBAAuB+gE,IAAU5iE,IAAI8iE,EAAaF,OAGhFt1D,GAAW,GACXq1D,GAAU,GAZkB,4CAAD,sDAc5B,CAACD,IAoBA/gE,aAlBiBK,uBAAY,SAACX,EAAMV,GACpC,GAAKU,EAAL,CAD8C,MAGpBA,EAAKO,MAAM,KAHS,kBAGvCC,EAHuC,KAG/B+gE,EAH+B,WAK9CF,GAAQ,SAAAhpB,GACJ,IAAMqpB,EAAiB9iE,IAAI,eAAKy5C,GAAN,CAAe73C,GAAf,mBAAuB+gE,IAAUjiE,GAE3D,OADA8D,EAAau+D,eAAe,aAAc,CAAEnhE,MAAKlB,MAAOX,IAAI+iE,EAAgB,CAAClhE,MACtEkhE,QAGZ,CAACL,MC1BOO,GAXmB,SAAC,GAAkB,IAAhBx9D,EAAe,EAAfA,SAE3By9D,EAAmBT,KAEzB,OACI,cAAC,EAAkBU,SAAnB,CAA4BxiE,MAAOuiE,EAAnC,SACKz9D,KCFA29D,GAAW,SAAA5kE,GACpB,OACI,cAAC,GAAD,UACI,cAAC,KAAD,2BACQA,GADR,IAEI6kE,OAAQzH,GACRvjD,KAAM2mD,GACN8C,aAAcF,GACdzP,QAAS8K,SCZV,cAA4C,IAA3CqG,EAA0C,uDAA5B,KAA4B,yCAApBjtD,EAAoB,EAApBA,KAAM4oB,EAAc,EAAdA,QACxC,GAAI5oB,IAASgjD,GAAY,CAErB,IAAKp6B,EAAS,OAAO,EAFA,IAGb1J,EAAiC0J,EAAjC1J,eAAgBmB,EAAiBuI,EAAjBvI,aAElB6sC,EAAehuC,GAAmBmB,GAAgBA,EAAanB,eAC/DiuC,EAAmB,CACrBC,UAAW,CACPA,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,4BAA4B,EAC5BC,uBAAuB,EACvBC,6BAA6B,GAEjCN,YAAa,CACTD,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,4BAA4B,EAC5BC,uBAAuB,EACvBC,6BAA6B,GAEjCL,YAAa,CACTF,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,4BAA4B,EAC5BC,uBAAuB,EACvBC,6BAA6B,GAEjCJ,aAAc,CACVH,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,4BAA4B,EAC5BC,uBAAuB,EACvBC,6BAA6B,GAEjCH,YAAa,CACTJ,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,4BAA4B,EAC5BC,uBAAuB,EACvBC,6BAA6B,IAI/B9C,EAAkBsC,EAAiBD,GAEzC,QAAOrC,GAAkB,CACrB3rC,iBACA2rC,mBAGR,OAAOoC,G,UClELW,GAAiB/3D,mBAAH,sWCDdg4D,GAAsBh4D,mBAAH,yfAeV,YAACoiB,GACZ,OAAOviB,KAAiBC,OAAO,CAC3BC,SAAUi4D,GACV/3D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OCjBZi/D,GAAQj4D,mBAAH,wG,SAMIk4D,K,gFAAf,6BAAAn6C,EAAA,sEAEwBo6C,KAAiBr4D,OAAO,CACxCC,SAAUk4D,GACV/3D,QAAS,SAAClH,GACNmH,MAAMnH,MALlB,cAEUo/D,EAFV,yBASWA,EAAM/iE,KAAKA,KAAKmvC,OAT3B,4C,sBAcA,I,GAAMP,GAAWC,0BAAe,CAC5BC,IAAKk0B,MAGHh0B,GAAWC,aAAU,yCAAC,WAAOlqC,EAAP,qBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAENw5D,KAFM,cAEpB1zB,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAYrB3kC,GAAoB,IAAIulC,gBAAa,CACvCpzB,KAAMqyB,GAAS54B,OAAOw4B,IACtBoB,MAAO,IAAIC,iBACXC,eAAgB,CACZC,WAAY,CACVC,YAAa,eACb6yB,YAAa,UAEfv6B,MAAO,CACL0H,YAAa,eACb6yB,YAAa,UAKjBC,GAAWv4D,mBAAH,4LAKC,YAACoiB,GACZ,OAAOviB,GAAiBC,OAAO,CAC3BC,SAAUw4D,GACVt4D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OC/DZirC,GAAWC,0BAAe,CAC9BC,IAAKq0B,MAGDn0B,GAAWC,aAAU,yCAAC,WAAOlqC,EAAP,qBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,eAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,GAC3Ci0B,QAASC,QARa,2CAAD,yDAaZ,OAAItzB,gBAAa,CAC9BpzB,KAAMqyB,GAAS54B,OAAOw4B,IACtBoB,MAAO,IAAIC,iBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,eACb6yB,YAAa,UAEfv6B,MAAO,CACL0H,YAAa,eACb6yB,YAAa,UC7BbK,GAAoB34D,mBAAH,sLAaR,cACb,OAAO44D,GAAiB76B,MAAM,CAC1BA,MAAO46B,GACPlzB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OCTH6/D,GAAe,CACxB3X,MAAM,WAAD,8BAAE,oDAAAnjC,EAAA,6DAASypC,EAAT,EAASA,SAAUC,EAAnB,EAAmBA,SAAnB,kBLQKrlC,EKNmE,CAAE8+B,MAAOsG,EAAUC,SAAUA,GLOrG0Q,KAAiBr4D,OAAO,CAC3BC,SAAUg4D,GACV93D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,MKbP,uBAES3D,KAAQ6rD,MAAS1c,EAF1B,EAE0BA,MAAOs0B,EAFjC,EAEiCA,aAAcrqC,EAF/C,EAE+CA,KAE9ColC,aAAUnF,IAAmBlqB,EAAO,CAAEu0B,OAAQC,MAC9CnF,aAAUoF,IAAsBH,EAAc,CAAEC,OAAQC,OAEpDvqC,GAAsB,YAAdA,EAAK2yB,KAPlB,uBAQW,IAAIzvD,MAAM,4BARrB,yBAWOunE,GAAczqC,GAXrB,yBAamC0qC,KAbnC,qBAaiB1yD,EAbjB,EAaSpR,KAAQoR,QACDA,EAAM1P,OAdtB,0CAcuCxF,QAAQ6nE,OAAO,CAAEz3D,QAAS,+BAdjE,eAeCkE,GAAQwzD,OAAO,IACfxzD,GAAQwzD,OAAO7yD,GAAiBC,IAhBjC,kBAkBQlV,QAAQC,WAlBhB,qCAoBC8nE,aAAa5K,IAAmB,CAAEqK,OAAQC,MAC1CM,aAAaL,IAAsB,CAAEF,OAAQC,MAEvC1R,EAAa,MAAS,KAAMD,eAAiB,KAAMA,cAAc,IAAM,KAAMA,cAAc,GAAGC,WAC9F11D,EAAO01D,GAAcA,EAAW11D,OAChCg9D,EAAStH,GAAcA,EAAWx1D,KAEjB,gBAATF,EA3Bf,kCA2B6C2nE,GAAY,CAAE35D,MAAO,CAAEgvD,UAAUpM,QAAQ,IA3BtF,qDLQI,IAACpgC,IKRL,qBAAF,mDAAC,GAgCNwyC,OAAQ,SAAC3gD,GAGL,OAFAqlD,aAAa5K,IAAmB,CAAEqK,OAAQC,MAC1CM,aAAaL,IAAsB,CAAEF,OAAQC,MACtCznE,QAAQC,WAEnBgoE,WAAY,SAACvlD,GACT,IAAMhF,EAASgF,EAAOhF,OACtB,OAAe,MAAXA,GAA6B,MAAXA,GAClBqqD,aAAa5K,IAAmB,CAAEqK,OAAQC,MAC1CM,aAAaL,IAAsB,CAAEF,OAAQC,MACtCznE,QAAQ6nE,UAEZ7nE,QAAQC,WAEnB+2D,UAAW,SAACt0C,GACR,OAAS80C,aAAU2F,OAAuB+K,aAAa1Q,aAAUkQ,MAC3D1nE,QAAQC,UACRD,QAAQ6nE,UAElBM,eAAe,WAAD,8BAAE,WAAOzlD,GAAP,wBAAA8J,EAAA,6DAENymB,EAAQukB,aAAU2F,KAClBiL,EAAelL,aAAUjqB,GACzB4c,EAAOuY,EAAavY,KAJd,kBAO0B+X,KAP1B,oBAOQ1yD,EAPR,EAOApR,KAAQoR,QAEDA,EAAM1P,OATb,0CAS8BxF,QAAQ6nE,OAAO,CAAEz3D,QAAS,+BATxD,eAWRkE,GAAQwzD,OAAO,IACfxzD,GAAQwzD,OAAO7yD,GAAiBC,IAZxB,kBAcDlV,QAAQC,QAAQ,CAAEqU,WAASu7C,UAd1B,2DAkBD7vD,QAAQ6nE,OAAR,OAlBC,0DAAF,mDAAC,ICQJQ,GA9CW,SAAC,GAA0C,EAAzC33D,OAA0C,IAAlCjF,EAAiC,EAAjCA,OAC1ByxB,GAD2D,EAAzBlzB,UAAyB,+CACpDqY,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,OAAMG,OADmB,EAEnC41B,aAAU,WAFyB,mBAE1D6U,EAF0D,KAEhD/jE,EAFgD,KAEhDA,QACXmD,EAASC,eACTmhE,EAAYxjD,eACZvV,EAAWC,eAmCjB,OAAO,cAACkZ,GAAA,EAAD,CACH6/C,YAjCgB,kBAAMT,EAAO,CAC7BlvD,KAAM,SACNxX,SAAU,UACVogC,QAAS,CACLjhC,GAAIkL,EAAOlL,GACXuD,KAAK,eAAKwkE,EAAUr1D,QACpBu1D,aAAa,eAAK/8D,KAG1B,CACIg2B,UAAW,YAAe,IAAZ39B,EAAW,EAAXA,KAEJ2kE,EAAa,CACfrjE,KAAMtB,EAAKsB,KACX0I,YAAahK,EAAKgK,YAClBuvD,OAAQv5D,EAAKu5D,OACbtpC,MAAOjwB,EAAKiwB,MACZF,MAAO/vB,EAAK+vB,MACZg8B,KAAM/rD,EAAK+rD,KACXF,MAAO7rD,EAAK6rD,OAGhBzoD,EAAO,iCACPqI,EAASysD,GAAQ,2BACV9+B,GACAurC,SASX5iE,SAAU9B,KCtDZklD,GAAe,CAACtjC,eAAY8sC,aAAU,IACtCiW,GAAgB,SAACxlE,EAAO+P,GAC1B,IAAKA,EAAO8gB,QAAU9gB,EAAO4gB,QAAU5gB,EAAO08C,MAC1C,MAAO,uCAWTgZ,GAAiB,SAAA5nE,GACnB,OACI,cAAC0nB,GAAA,EAAD,2BAAa1nB,GAAb,aACKqU,GAAI,SAAU,YAAc,cAAC,GAAD,QAKnCwzD,GAAc,SAAC,GAAgC,EAA9B/R,cAA+B,IAAb91D,EAAY,iCAGjD,OACI,eAAC,GAAD,2BAAUA,GAAV,IAAiB6H,MAAM,6CAAUxH,SAAS,OAA1C,UACI,cAAC,GAAD,IACA,cAAC,GAAD,UACI,eAACqkB,GAAA,EAAD,CAAY8C,QAAS,cAAC,GAAD,IAArB,UACKnT,GAAI,SAAU,UAAW,SAAW,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,OAAOof,SAAUujC,GAAc71C,WAAS,IAC9FgC,GAAI,SAAU,UAAW,gBAAkB,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,cAAc8M,WAAS,IACpFgC,GAAI,SAAU,UAAW,aAAe,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,WAAW8M,WAAS,IAC9EgC,GAAI,SAAU,UAAW,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQof,SAAU,CAACgjD,MAC1EtzD,GAAI,SAAU,UAAW,UAAY,cAAC0H,GAAA,EAAD,CAAWxW,OAAO,QAAQsS,KAAK,QAAQ8M,SAAU,CAACgjD,IAAgBhzC,WAAY,CAAE48B,aAAc,kBACnIl9C,GAAI,SAAU,UAAW,UAAY,cAAC,GAAD,CAAY9O,OAAO,QAAQof,SAAU,CAACgjD,IAAgBhzC,WAAY,CAAE48B,aAAc,kBACvHl9C,GAAI,SAAU,UAAW,iBAAmB,cAAC,GAAD,CAAY9O,OAAO,iBAC/D8O,GAAI,SAAU,UAAW,aAAe,cAAC,GAAD,CAAe9O,OAAO,uBAOnFsiE,GAAYxlE,aAAe,CACvBhC,SAAU,UACVoF,SAAU,WACVoK,UAAU,GAKd,I,qEAQei4D,GARI,SAAC9nE,GAChB,IAAMm8B,EAAO7a,cAAY,SAAAC,GAAK,OAAIA,EAAM4a,OAAMG,MAC9C,OAAKH,EAEE,cAAC,GAAD,aAAa38B,GAAI28B,EAAK38B,IAAQQ,IAFnB,MC/DP,IACX,cAAC,KAAD,CAAqB6C,KAAK,WAAWmc,UAAW,SAAAhf,GAAK,OAAI,cAAC,GAAD,eAAiBA,MAA/D,WACX,cAAC,KAAD,CAAsB6C,KAAK,SAASmc,UAAW,SAAAhf,GAAK,OAAI,cAAC,GAAD,eAAkBA,MAA/D,a,mBCFT+nE,GAAgBr6D,mBAAH,iYAeJ,YAACoiB,GACd,OAAOk4C,KAAyBx6D,OAAO,CACrCC,SAAUs6D,GACVp6D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACRmH,MAAMnH,OCpBNuhE,GAAgBv6D,mBAAH,obAeJ,YAACoiB,GACd,OAAOk4C,KAAyBx6D,OAAO,CACrCC,SAAUw6D,GACVt6D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACRmH,MAAMnH,OChBZ,4CAAe,WAAOmR,EAAMxX,EAAUshB,GAAvB,gDAAA8J,EAAA,yDAEH1oB,EAAuB4e,EAAvB5e,KAAM0kE,EAAiB9lD,EAAjB8lD,aAEG,cAAbpnE,EAJO,sBAKCwX,EALD,cAMEqwD,KANF,SAYEC,KAZF,gCAaKplE,EAAKqlE,kBAAmBrlE,EAAK8+C,aAAe9+C,EAAKqlE,gBAAgBxpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAf3D,oEAsBM,gBAAba,EAtBO,sBAuBCwX,EAvBD,cAwBEqwD,KAxBF,UA+BEC,KA/BF,2BAyBKplE,EAAK8/B,YAAa9/B,EAAK8/B,UAAa9/B,EAAK8/B,UAAUrjC,GAAM,CAAEA,GAAIuD,EAAK8/B,UAAUrjC,IAAO,MACrFuD,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UA5B3D,oCAgCKuD,EAAK8/B,YAAa9/B,EAAK8/B,UAAa9/B,EAAK8/B,UAAUrjC,IAAMioE,EAAa5kC,UAAa,CAAErjC,GAAIuD,EAAK8/B,UAAUrjC,IAAO,MAC/GuD,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAnC3D,oEA0CM,gBAAba,EA1CO,sBA2CCwX,EA3CD,cA4CEqwD,KA5CF,UAkDEC,KAlDF,mCAmDKplE,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UArD3D,oEA4DM,gBAAba,EA5DO,sBA6DCwX,EA7DD,cA8DEqwD,KA9DF,UAwEEC,KAxEF,2BA+DKplE,EAAKk6B,cAAel6B,EAAKk6B,YAAel6B,EAAKk6B,YAAYz9B,GAAM,CAAEA,GAAIuD,EAAKk6B,YAAYz9B,IAAO,MAC7FuD,EAAKqgC,cAAergC,EAAKqgC,YAAergC,EAAKqgC,YAAY5jC,GAAM,CAAEA,GAAIuD,EAAKqgC,YAAY5jC,IAAO,MAC7FuD,EAAKk8B,6BAA8Bl8B,EAAKk8B,2BAA8Bl8B,EAAKk8B,2BAA2Bz/B,GAAM,CAAEA,GAAIuD,EAAKk8B,2BAA2Bz/B,IAAO,MACzJuD,EAAKi+B,8BAA+Bj+B,EAAKi+B,4BAA+Bj+B,EAAKi+B,4BAA4BxhC,GAAM,CAAEA,GAAIuD,EAAKi+B,4BAA4BxhC,IAAO,MAC7JuD,EAAKulE,mBAAoBvlE,EAAK4gC,cAAgB5gC,EAAKulE,iBAAiB1pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACjFuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UArE3D,oCAyEKuD,EAAKk6B,cAAel6B,EAAKk6B,YAAel6B,EAAKk6B,YAAYz9B,IAAMioE,EAAaxqC,YAAe,CAAEz9B,GAAIuD,EAAKk6B,YAAYz9B,IAAO,MACzHuD,EAAKqgC,cAAergC,EAAKqgC,YAAergC,EAAKqgC,YAAY5jC,IAAMioE,EAAarkC,YAAe,CAAE5jC,GAAIuD,EAAKqgC,YAAY5jC,IAAO,MACzHuD,EAAKk8B,6BAA8Bl8B,EAAKk8B,2BAA8Bl8B,EAAKk8B,2BAA2Bz/B,IAAMioE,EAAaxoC,2BAA8B,CAAEz/B,GAAIuD,EAAKk8B,2BAA2Bz/B,IAAO,MACpMuD,EAAKi+B,8BAA+Bj+B,EAAKi+B,4BAA+Bj+B,EAAKi+B,4BAA4BxhC,IAAMioE,EAAazmC,4BAA+B,CAAExhC,GAAIuD,EAAKi+B,4BAA4BxhC,IAAO,MACzMuD,EAAKulE,mBAAoBvlE,EAAK4gC,cAAgB5gC,EAAKulE,iBAAiB1pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACjFuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UA/E3D,oEAsFM,kBAAba,EAtFO,sBAuFCwX,EAvFD,cAwFEqwD,KAxFF,UA8FEC,KA9FF,mCA+FKplE,EAAKk5C,4BAA6Bl5C,EAAKoK,uBAAyBpK,EAAKk5C,0BAA0Br9C,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC5GuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAjG3D,oEAwGM,+BAAba,EAxGO,sBAyGCwX,EAzGD,cA0GEqwD,KA1GF,UAgHEC,KAhHF,mCAiHKplE,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAnH3D,oEA0HM,0BAAba,EA1HO,uBA2HCwX,EA3HD,cA4HEqwD,KA5HF,UAmIEC,KAnIF,4BA6HKplE,EAAK+hB,gBAAiB/hB,EAAK+hB,cAAiB/hB,EAAK+hB,cAActlB,GAAM,CAAEA,GAAIuD,EAAK+hB,cAActlB,IAAO,MACrGuD,EAAKwlE,kCAAmCxlE,EAAKw8B,6BAA+Bx8B,EAAKwlE,gCAAgC3pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9HuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAhI3D,qCAoIKuD,EAAK+hB,gBAAiB/hB,EAAK+hB,cAAiB/hB,EAAK+hB,cAActlB,IAAMioE,EAAa3iD,cAAiB,CAAEtlB,GAAIuD,EAAK+hB,cAActlB,IAAO,MACnIuD,EAAKwlE,kCAAmCxlE,EAAKw8B,6BAA+Bx8B,EAAKwlE,gCAAgC3pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9HuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAvI3D,wEA8IM,gCAAba,EA9IO,uBA+ICwX,EA/ID,cAgJEqwD,KAhJF,WAuJEC,KAvJF,8BAiJKplE,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo+B,wBAAyBp+B,EAAKo+B,sBAAyBp+B,EAAKo+B,sBAAsB3hC,GAAM,CAAEA,GAAIuD,EAAKo+B,sBAAsB3hC,IAAO,MACrIuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UApJ3D,sCAwJKuD,EAAKslE,kBAAmBtlE,EAAKi5B,aAAej5B,EAAKslE,gBAAgBzpE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC9EuD,EAAKo+B,wBAAyBp+B,EAAKo+B,sBAAyBp+B,EAAKo+B,sBAAsB3hC,IAAMioE,EAAatmC,sBAAyB,CAAE3hC,GAAIuD,EAAKo+B,sBAAsB3hC,IAAO,MAC3KuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UA3J3D,wEAkKM,iBAAba,EAlKO,uBAmKCwX,EAnKD,cAoKEqwD,KApKF,WA4KEC,KA5KF,8BAqKKplE,EAAK+N,cAAe/N,EAAK+N,YAAe/N,EAAK+N,YAAYtR,GAAM,CAAEA,GAAIuD,EAAK+N,YAAYtR,IAAO,MAC7FuD,EAAKi2D,oBAAqBj2D,EAAK8tC,eAAiB9tC,EAAKi2D,kBAAkBp6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACpFuD,EAAKk2D,gBAAiBl2D,EAAKm2D,WAAan2D,EAAKk2D,cAAcr6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACxEuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAzK3D,sCA6KKuD,EAAK+N,cAAe/N,EAAK+N,YAAe/N,EAAK+N,YAAYtR,IAAMioE,EAAa32D,YAAe,CAAEtR,GAAIuD,EAAK+N,YAAYtR,IAAO,MACzHuD,EAAKi2D,oBAAqBj2D,EAAK8tC,eAAiB9tC,EAAKi2D,kBAAkBp6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACpFuD,EAAKk2D,gBAAiBl2D,EAAKm2D,WAAan2D,EAAKk2D,cAAcr6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACxEuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAjL3D,wEAwLM,kBAAba,EAxLO,uBAyLCwX,EAzLD,cA0LEqwD,KA1LF,WA+LEC,KA/LF,8BA2LKplE,EAAK6sC,eAAgB7sC,EAAK6sC,aAAgB7sC,EAAK6sC,aAAapwC,GAAM,CAAEA,GAAIuD,EAAK6sC,aAAapwC,IAAO,MACjGuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UA5LpE,sCAgMKuD,EAAK6sC,eAAgB7sC,EAAK6sC,aAAgB7sC,EAAK6sC,aAAapwC,IAAMioE,EAAa73B,aAAgB,CAAEpwC,GAAIuD,EAAK6sC,aAAapwC,IAAO,MAC9HuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAjMpE,wEAwMM,0BAAba,EAxMO,wBAyMCwX,EAzMD,eA0MEqwD,KA1MF,YAgNEC,KAhNF,uCAiNKplE,EAAKk5C,4BAA6Bl5C,EAAKoK,uBAAyBpK,EAAKk5C,0BAA0Br9C,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC5GuD,EAAKo2D,aAAcp2D,EAAKqK,QAAUrK,EAAKo2D,WAAWv6D,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAC/DuD,EAAK0P,UAAW1P,EAAKsK,KAAOtK,EAAK0P,QAAQ7T,KAAI,SAAAY,GAAE,MAAK,CAAEA,UAnN3D,wEA0NM,iBAAba,EA1NO,wBA2NCwX,EA3ND,eA4NEqwD,KA5NF,YAiOEC,KAjOF,uCAkOKplE,EAAKylE,WAAYzlE,EAAKkwB,MAAQlwB,EAAKylE,SAAS5pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,UACzDuD,EAAK0lE,YAAa1lE,EAAKmwB,OAASnwB,EAAKg0B,eAAiBh0B,EAAK0lE,UAAU7pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,KAAIa,SAAU0C,EAAKg0B,mBAAqB,IAnO/H,wEA0OM,SAAb12B,EA1OO,wBA2OCwX,EA3OD,eA4OEqwD,KA5OF,YAuQEC,KAvQF,0BA8OKplE,EAAKm1B,eAAgBn1B,EAAKm1B,aAAgBn1B,EAAKm1B,aAAa14B,GAAM,CAAEA,GAAIuD,EAAKm1B,aAAa14B,IAAO,MACjGuD,EAAK0lE,YAAa1lE,EAAKmwB,OAASnwB,EAAKg0B,eAAiBh0B,EAAK0lE,UAAU7pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,KAAIa,SAAU0C,EAAKg0B,mBAAqB,IACzHh0B,EAAKoyD,SAhPX,0EAkPgDuT,GAAa,CACxD9Z,MAAO7rD,EAAK6rD,MAAQ7rD,EAAK6rD,MAAQ,KACjC57B,MAAOjwB,EAAKiwB,MAAQjwB,EAAKiwB,MAAQ,KACjCF,MAAO/vB,EAAK+vB,MAAQ/vB,EAAK+vB,MAAQ,KACjCzuB,KAAMtB,EAAKsB,KACX8wD,SAAUpyD,EAAKoyD,SACfrG,KAAM/rD,EAAK+rD,OAxPhB,yBAkP+B6Z,EAlP/B,EAkPS5lE,KAAQ2lE,aAShB/mD,EAAO5e,KAAP,2BACOA,GADP,IAEIu5D,OAAQqM,EAAKnpE,GACbovD,MAAO+Z,EAAK/Z,MAAQ+Z,EAAK/Z,MAAQ,KACjC57B,MAAO21C,EAAK31C,MAAQ21C,EAAK31C,MAAQ,KACjCF,MAAO61C,EAAK71C,MAAQ61C,EAAK71C,MAAQ,KACjCzuB,KAAMskE,EAAKtkE,KACXyqD,KAAM6Z,EAAK7Z,OAlQhB,kCAyQK/rD,EAAKm1B,eAAgBn1B,EAAKm1B,aAAgBn1B,EAAKm1B,aAAa14B,IAAMioE,EAAavvC,aAAgB,CAAE14B,GAAIuD,EAAKm1B,aAAa14B,IAAO,MAC9HuD,EAAK0lE,YAAa1lE,EAAKmwB,OAASnwB,EAAKg0B,eAAiBh0B,EAAK0lE,UAAU7pE,KAAI,SAAAY,GAAE,MAAK,CAAEA,KAAIa,SAAU0C,EAAKg0B,mBAAqB,IACxHulC,EAASv5D,EAAKu5D,OACdnH,EAAWpyD,EAAKoyD,SAGjBmH,GAAWnH,EA/QjB,2DAiRMmH,IAAUnH,EAjRhB,oCAkRoDuT,GAAa,CACxD9Z,MAAO7rD,EAAK6rD,MAAQ7rD,EAAK6rD,MAAQ,KACjC57B,MAAOjwB,EAAKiwB,MAAQjwB,EAAKiwB,MAAQ,KACjCF,MAAO/vB,EAAK+vB,MAAQ/vB,EAAK+vB,MAAQ,KACjCzuB,KAAMtB,EAAKsB,KACX8wD,SAAUpyD,EAAKoyD,SACfrG,KAAM/rD,EAAK+rD,OAxRpB,kBAkRmC6Z,EAlRnC,EAkRa5lE,KAAQ2lE,aAShB/mD,EAAO5e,KAAP,2BACOA,GADP,IAEIu5D,OAAQqM,EAAKnpE,GACbovD,MAAO+Z,EAAK/Z,MAAQ+Z,EAAK/Z,MAAQ,KACjC57B,MAAO21C,EAAK31C,MAAQ21C,EAAK31C,MAAQ,KACjCF,MAAO61C,EAAK71C,MAAQ61C,EAAK71C,MAAQ,KACjCzuB,KAAMskE,EAAKtkE,KACXyqD,KAAM6Z,EAAK7Z,OAlSpB,aAsSKwN,EAtSL,oCAuSoDsM,GAAa,CACxDppE,GAAIuD,EAAKu5D,OACT1N,MAAO7rD,EAAK6rD,MAAQ7rD,EAAK6rD,MAAQ,KACjC57B,MAAOjwB,EAAKiwB,MAAQjwB,EAAKiwB,MAAQ,KACjCF,MAAO/vB,EAAK+vB,MAAQ/vB,EAAK+vB,MAAQ,KACjCzuB,KAAMtB,EAAKsB,KACX8wD,SAAUpyD,EAAKoyD,SACfrG,KAAM/rD,EAAK+rD,KACXoB,OAAQntD,EAAKmtD,SA/StB,kBAuSmCyY,EAvSnC,EAuSa5lE,KAAQ6lE,aAWhBjnD,EAAO5e,KAAP,2BACOA,GADP,IAEIu5D,OAAQqM,EAAKnpE,GACbovD,MAAO+Z,EAAK/Z,MAAQ+Z,EAAK/Z,MAAQ,KACjC57B,MAAO21C,EAAK31C,MAAQ21C,EAAK31C,MAAQ,KACjCF,MAAO61C,EAAK71C,MAAQ61C,EAAK71C,MAAQ,KACjCzuB,KAAMskE,EAAKtkE,KACXyqD,KAAM6Z,EAAK7Z,OAzTpB,2DAqUM,YAAbzuD,EArUO,wBAsUCwX,EAtUD,eAuUEswD,KAvUF,0BAwUO7L,EAASv5D,EAAKu5D,OACdnH,EAAWpyD,EAAKoyD,SAClB0T,EAAW,GAGVvM,GAAWnH,EA7UjB,2DA+UMmH,IAAUnH,EA/UhB,oCAgVoDuT,GAAa,CACxD9Z,MAAO7rD,EAAK6rD,MAAQ7rD,EAAK6rD,MAAQ,KACjC57B,MAAOjwB,EAAKiwB,MAAQjwB,EAAKiwB,MAAQ,KACjCF,MAAO/vB,EAAK+vB,MAAQ/vB,EAAK+vB,MAAQ,KACjCzuB,KAAMtB,EAAKsB,KACX8wD,SAAUpyD,EAAKoyD,SACfrG,KAAM/rD,EAAK+rD,OAtVpB,kBAgVmC6Z,EAhVnC,EAgVa5lE,KAAQ2lE,aAShBG,EAAWF,EAzVhB,aA4VKrM,EA5VL,oCA6VoDsM,GAAa,CACxDppE,GAAIuD,EAAKu5D,OACT1N,MAAO7rD,EAAK6rD,MAAQ7rD,EAAK6rD,MAAQ,KACjC57B,MAAOjwB,EAAKiwB,MAAQjwB,EAAKiwB,MAAQ,KACjCF,MAAO/vB,EAAK+vB,MAAQ/vB,EAAK+vB,MAAQ,KACjCzuB,KAAMtB,EAAKsB,KACX8wD,SAAUpyD,EAAKoyD,SACfrG,KAAM/rD,EAAK+rD,OApWpB,kBA6VmC6Z,EA7VnC,EA6Va5lE,KAAQ6lE,aAUhBC,EAAWF,EAvWhB,gBA0WChnD,EAAO5e,KAAP,2BACOA,GADP,IAEIu5D,OAAQuM,EAASrpE,GACjBovD,MAAOia,EAASja,MAAQia,EAASja,MAAQ,KACzC57B,MAAO61C,EAAS71C,MAAQ61C,EAAS71C,MAAQ,KACzCF,MAAO+1C,EAAS/1C,MAAQ+1C,EAAS/1C,MAAQ,KACzCzuB,KAAMwkE,EAASxkE,KACfyqD,KAAM+Z,EAAS/Z,OAjXpB,8FA0XJ,CAAEj3C,OAAMxX,WAAUshB,WA1Xd,6CAAf,0DCu1BemnD,GAp0BU,SAAAC,GAAa,OAAI,SAACC,EAAW3oE,EAAUshB,GAAY,IAKhEniB,EAA2BmiB,EAA3BniB,GAAIuD,EAAuB4e,EAAvB5e,KAAuB4e,EAAjB8lD,aAElB,GAAiB,cAAbpnE,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOjG,GACP73B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOnG,KAIf,KAAKgkC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOlG,KAIf,KAAK4iC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOhG,GACP93B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO/F,GACP/3B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,gBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO3F,GACPn4B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO7F,KAIf,KAAK0jC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO5F,KAIf,KAAKsiC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO1F,GACPp4B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOzF,GACPr4B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,kBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOrF,GACPz4B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOvF,KAIf,KAAKojC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOtF,KAIf,KAAKgiC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOpF,GACP14B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOnF,GACP34B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,+BAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO/E,GACP/4B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOjF,KAIf,KAAK8iC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOhF,KAIf,KAAK0hC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO9E,GACPh5B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO7E,GACPj5B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,0BAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOzE,GACPr5B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO3E,KAIf,KAAKwiC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO1E,KAIf,KAAKohC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOxE,GACPt5B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOvE,GACPv5B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,+CAAba,EACA,OAAQ2oE,GACJ,KAAKM,KACD,MAAO,CACH79B,MAAO1E,GACPp5B,UAAW,CACPrL,OAAQ,CACJm7C,SAAU97B,EAAOpiB,MAGzBiqE,cAAe,SAAC1zB,GAIZ,MAAO,CACH/yC,KAHS+yC,EAAS/yC,KAAK8N,MAAMjS,KAAI,SAAA+M,GAAI,kCAAUA,GAAV,IAAgBnM,GAAImM,EAAKmB,WAI9D9G,MAAO8vC,EAAS/yC,KAAKiD,MAAMkkB,SAUnD,GAAiB,gCAAb7pB,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOnE,GACP35B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOrE,KAIf,KAAKkiC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOpE,KAIf,KAAK8gC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOlE,GACP55B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOjE,GACP75B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,gBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO5D,GACPl6B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO9D,KAIf,KAAK2hC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO7D,KAIf,KAAKugC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO3D,GACPn6B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO1D,GACPp6B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,gBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOtD,GACPx6B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOxD,KAIf,KAAKqhC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOvD,KAIf,KAAKigC,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOrD,GACPz6B,UAAU,aAAGL,MAAO,CAAE9N,GAAIA,GAAMuD,EAAKvD,KAASuD,KAItD,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOpD,GACP16B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,iBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOhD,GACP96B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOlD,KAIf,KAAK+gC,KACD,IAAMJ,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAOjD,KAIf,KAAK2/B,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO/C,GACP/6B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO9C,GACPh7B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,kBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO5C,GACPl7B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK2oE,KACD,IAAMe,EAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,GADP,IAEIz9B,MAAO3C,GACPn7B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO1C,GACPp7B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,0BAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOrC,GACPz7B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOvC,KAIf,KAAKogC,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOtC,KAIf,KAAKg/B,KACD,IAAMe,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOpC,GACP17B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOnC,GACP37B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,iBAAba,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO/B,GACP/7B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOjC,KAIf,KAAK8/B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOhC,KAIf,KAAK0+B,KACD,IAAMe,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO9B,GACPh8B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO7B,GACPj8B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,eAAba,EACA,OAAQ2oE,GACJ,IAAK,iBAED,MAAO,CACHv9B,MAAOP,GACPv9B,UAAU,eAAMgU,GAChB6nD,cAAgB,YAEZ,MAAO,CAAEzmE,KAFiB,EAAXA,QAO3B,IAAK,iBACD,MAAO,CACH0oC,MAAON,GACPx9B,UAAU,eAAMgU,GAChB6nD,cAAgB,YACZ,MAAO,CAAEzmE,KADiB,EAAXA,QAUnC,GAAiB,SAAb1C,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOzB,GACPr8B,UAAW,CAAEL,MAAO,CAAE9N,SAI9B,KAAK4pE,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO3B,KAIf,KAAKw/B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAO1B,KAIf,KAAKo+B,KACD,IAAMe,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOxB,GACPt8B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAIvC,KAAKwmE,KACD,IAAML,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOvB,GACPv8B,UAAW,CAAEL,MAAO,CAAE9N,SAQtC,GAAiB,YAAba,EACA,OAAQ2oE,GACJ,KAAKb,KACD,IAAMe,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOtB,GACPx8B,UAAU,aAAGL,MAAO,CAAE9N,OAASuD,KAQ/C,GAAiB,YAAb1C,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOlB,KAIf,KAAK6+B,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOpB,KAIf,KAAKi/B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOnB,KAQvB,GAAiB,cAAbjqC,EACA,OAAQ2oE,GACJ,KAAKC,KACD,IAAMC,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOd,KAIf,KAAKy+B,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOhB,KAIf,KAAK6+B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOf,KAQvB,GAAiB,4BAAbrqC,EACA,OAAQ2oE,GACJ,KAAKI,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOZ,KAIf,KAAKy+B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOX,KAQvB,GAAiB,0BAAbzqC,EACA,OAAQ2oE,GACJ,KAAKI,KACL,KAAKC,KACD,IAAMH,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOT,KAIf,KAAKs+B,KACD,IAAMJ,GAAaC,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,GAClE,OAAO,2BACAunD,IADP,IAEIz9B,MAAOR,KAQvB,MAAkB,YAAd+9B,EACO,CACHv9B,MAAOL,GACPz9B,UAAU,eAAMgU,GAChB6nD,cAAgB,YAEZ,MAAO,CACHzmE,KAHgC,EAArBA,KAAQA,KACf0mE,cAUDN,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,K,UCn0BvD,IACX1b,aAXwB,SAAC4R,EAAMxX,EAAUshB,GACzC,OAV4B+nD,aAAqB,CACjDhO,OAAQnuD,KACR47D,WAAYA,GACZJ,cAAe,CAAEY,eAOUxqE,KAApB,yCAAyB,WAAOyqE,GAAP,kBAAAn+C,EAAA,sEAEMo+C,GAAShyD,EAAMxX,EAAUshB,GAF/B,uBAEZmoD,EAFY,EAEpBnoD,OAFoB,kBAIrBioD,EAAS/xD,EAAMxX,EAAUypE,IAJJ,2CAAzB,wDAWP79C,eAd0B,CAAC,YAAa,cAAe,gBAAiB,6BAA8B,wBAAyB,8BAA+B,cAAe,cAAe,eAAgB,gBAAiB,wBAAyB,YAAa,SAAU,MAAO,eAAgB,SAAU,OAAQ,UAAW,UAAW,YAAa,6CAA8C,wBAAyB,0BAA2B,eCiBlb88B,GAAmB,SAAnBA,EAAmBhmD,GAsC5B,OArCenD,OAAOD,KAAKoD,GAAMwI,QAAO,SAAC4D,EAAK9L,GAC1C,GAAIA,EAAI2lD,WAAW,KACf,OAAO75C,EAGX,IAO+D,EAPzD85C,EAAUlmD,EAAKM,GAErB,OAAgB,OAAZ4lD,QAAgC3lD,IAAZ2lD,EACb95C,EAGPlD,MAAM8d,QAAQk/B,GACY,kBAAfA,EAAQ,IAAkC,OAAfA,EAAQ,GACnC,2BACA95C,GADP,wBAEK9L,EAAM4lD,EAAQrqD,IAAImqD,IAFvB,yBAGQ1lD,EAHR,OAGmB4lD,EAAQrqD,KAAI,SAAAsB,GAAC,OAAIA,EAAEV,OAHtC,IAMO,2BAAK2P,GAAZ,mBAAkB9L,EAAM4lD,IAIT,kBAAZA,GAAoC,OAAZA,EACxB,uCACA95C,GACC85C,GACAA,EAAQzpD,IADR,0BAEI6D,EAFJ,OAEe4lD,EAAQzpD,KAJ/B,mBAMK6D,EAAM0lD,EAAiBE,KAIzB,2BAAK95C,GAAZ,mBAAkB9L,EAAM4lD,MACzB,KAKMC,GAAoB,SAApBA,EAAqBC,EAAK9lD,GACnC,OAAO8lD,EAAIvqD,KAAI,SAAAo8B,GACX,OAAI/uB,MAAM8d,QAAQiR,GAAakuB,EAAkBluB,EAAK33B,GAC9B,kBAAR23B,EAAyBouB,GAASpuB,EAAK33B,GAChD23B,MAIFouB,GAAW,SAAXA,EAAYC,EAAKhmD,GAC1B,IAAM1D,EAAOC,OAAOD,KAAK0pD,GACnBC,EAAS,GAWf,OAVA3pD,EAAKoM,SAAQ,SAAAizC,GACT,GAAIA,IAAM37C,EAAK,CACX,IAAM23B,EAAMquB,EAAIrK,GACZhkB,aAAevO,KAAM68B,EAAOtK,GAAKhkB,EAC5B/uB,MAAM8d,QAAQiR,GAAMsuB,EAAOtK,GAAKkK,GAAkBluB,EAAK33B,GAE5DimD,EAAOtK,GADa,kBAARhkB,GAA4B,OAARA,EACpBouB,EAASpuB,EAAK33B,GACb23B,MAGlBsuB,GCpFL3X,GAAWC,0BAAe,CAC9BC,IAAKk4B,MAGDh4B,GAAWC,aAAU,yCAAC,WAAOlqC,EAAP,qBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,eAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAYrBsX,GAAoB,IAAIC,eAAW,SAAC5W,EAAW6W,GAMnD,OALI7W,EAAUllC,YAAcklC,EAAUllC,UAAUuuC,OAE9CrJ,EAAUllC,UAAYy7C,GAASvW,EAAUllC,UAAW,eAG/C+7C,EAAQ7W,MAGF,OAAIC,gBAAa,CAC9BpzB,KAAM+wB,gBAAK,CACTsB,GACAyX,GACA7X,KAEFoB,MAAO,IAAIC,iBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,gBAEf1H,MAAO,CACL0H,YAAa,mBC3CN62B,GAAgBt8D,eAAH,+GCEbu8D,GAAiBv8D,mBAAH,mYAKrBs8D,ICLOjgC,GAAiBr8B,mBAAH,0SAIrBs8D,ICJOE,GAA8Bx8D,mBAAH,4YAKlCs8D,ICJOhgC,GAAet8B,mBAAH,8JAInBs8D,ICyDSG,GA1DE,CACb7jE,QAAS,SAACqb,GAAY,IJGVmO,EIFAxtB,EAAkEqf,EAAlErf,OADS,EACyDqf,EAA1Dpb,WAAcC,EADb,EACaA,KAAMlG,EADnB,EACmBA,QADnB,EACyDqhB,EAA3B7b,KAAQlE,EADtC,EACsCA,MAAOC,EAD7C,EAC6CA,MAE9D,OJAQiuB,EIAO,CACXxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WJHD03C,GAAavM,MAAM,CACtBA,MAAOw+B,GACPt8D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OIDPvH,MAAK,YAAoC,IAAD,IAAhC4D,KAAQ8N,EAAwB,EAAxBA,MAAOw5D,EAAiB,EAAjBA,SACtB,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5B15D,QAAS,SAAC+Q,GAAY,IHbVmO,EGcAvwB,EAAQoiB,EAARpiB,IAER,OHhBQuwB,EGgBO,CACXxtB,OAAQ,CACJ/C,OAEJe,QAASf,EAAIkF,QHnBduzC,GAAavM,MAAM,CACtBA,MAAO1B,GACPp8B,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OGePvH,MAAK,YACJ,MAAO,CACH4D,KAFyB,EAAtBA,KAAQ8N,MAECjS,IAAImqD,SAI5B7U,iBAAkB,SAACvyB,GAAY,IF1BnBmO,EE2BAxtB,EAAkEqf,EAAlErf,OADkB,EACgDqf,EAA1Dpb,WAAcC,EADJ,EACIA,KAAMlG,EADV,EACUA,QADV,EACgDqhB,EAA3B7b,KAAQlE,EAD7B,EAC6BA,MAAOC,EADpC,EACoCA,MAE9D,OF7BQiuB,EE6BgB,CACpBxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WFhCD03C,GAAavM,MAAM,CACtBA,MAAOy+B,GACPv8D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OE4BPvH,MAAK,YAAoC,IAAD,IAAhC4D,KAAQ8N,EAAwB,EAAxBA,MAAOw5D,EAAiB,EAAjBA,SACtB,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5BC,OAAQ,SAAC5oD,GAAY,IDzCTmO,EC0COnO,EAAPniB,GAER,OD5CQswB,EC4CM,CACVxiB,MAAOqU,GD5CRq2B,GAAavM,MAAM,CACtBA,MAAOzB,GACPr8B,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OCwCPvH,MAAK,YAAyB,IAAdwM,EAAa,EAArB5I,KAAQ4I,KACf,MAAO,CACH5I,KAAMgmD,GAAiBp9C,SCxDjC6+D,IAAW,sBACZpB,KAAW,WADC,gBAEZH,KAAU,UAFE,gBAGZK,KAAW,WAHC,gBAIZD,KAAqB,oBAJT,gBAKZnB,KAAS,UALG,gBAMZC,KAAS,UANG,gBAOZsC,KAAc,cAPF,gBAQZlB,KAAS,UARG,gBASZmB,KAAc,cATF,IAiBXvB,GAAa,CACfgB,aAUW,IACXlkE,aANwB,SAAC+iE,EAAW3oE,EAAUshB,GAE9C,OAAOwnD,GAAW9oE,GAbJ,SAAC2oE,GAEf,OADewB,GAAYxB,IAAcA,EAYb2B,CAAU3B,IAAYrnD,IAKlDsK,eAT0BrsB,OAAOD,KAAKwpE,KCtBpCyB,GAAe,SAACn/B,EAAO99B,EAAWkkC,GACtC,IAAMtV,EAAG,UAAMsV,EAAN,mBAAoBpG,GAApB,OAA4B99B,EAAS,WAAOA,EAAP,KAAqB,IACnE,OAAO6nC,MACHjZ,EACA,CACImZ,OAAQ,MACRC,YAAa,OACbvpC,QAAS,CACL,eAAgB,oBAEpBwpC,eAAgB,6BAChBC,KAAM,SAGb12C,MAAK,SAAA22C,GACF,IAAKA,EAASC,GACV,MAAMD,EAEV,OAAOA,EAASE,UAEnB72C,MAAM,YACL,OADiB,EAAV4D,QAlBF,OAqBA,SAAA2D,GACH,MAAMrH,MAAMqH,OAmBHmkE,GAbe,SAACp/B,EAAO99B,EAAW67D,GAAyC,IAA1B33B,EAAyB,uDAAnB4D,IAClE,OAAIxpC,MAAM8d,QAAQ0hB,GACPxsC,QAAQQ,IAAIgsC,EAAM7sC,KAAI,SAAAs4B,GAAC,OAAI0zC,GAAa1zC,EAAGvpB,EAAWkkC,OAC5D1yC,MAAM,SAAAqM,GACH,OAAOg+D,EAAch+D,MAGlBo/D,GAAan/B,EAAO99B,EAAWkkC,GAAK1yC,MAAM,SAAAqM,GAC/C,OAAOg+D,EAAch+D,OCrC/B,4CAAe,WAAOqM,EAAMxX,EAAUshB,GAAvB,UAAA8J,EAAA,+EAEJ,CAAC5T,OAAMxX,WAAUshB,WAFb,2CAAf,0DC4CemnD,GA1CU,SAACE,EAAW3oE,EAAUshB,GAERA,EAA3BniB,GAA2BmiB,EAAvB5e,KAAuB4e,EAAjB8lD,aAFqC,IAIjDnyB,EAAQ1qC,OAASqkC,SAAS,GAAI,QAAQre,OACtC2kB,EAAM3qC,OAASgmB,OAErB,GAAiB,mBAAbvwB,EACA,OAAQ2oE,GACJ,KAAKM,KACD,MAAO,CACH79B,MAAM,iEAAD,OAAmE9pB,EAAOpiB,IAAIiS,KAAK,KAAnF,oBAAmG8jC,EAAnG,gBAAgHC,EAAhH,cAGLi0B,cAAe,SAAA1zB,GAeX,MAAO,CACH/yC,KAfe+yC,EAAXtqC,OAEa5M,KAAI,SAAA+M,GAAI,MAAK,CAC9BnM,GAAImM,EAAKsqC,OAAO60B,KAChBA,KAAMn/D,EAAKsqC,OAAO60B,KAClB59D,UAAWtC,KAAOgmB,MAAMslB,mBAAQvqC,EAAKuG,OAAQ,CAAC,GAAI,QAAQ,IAAM,IAAI,IAAIrH,kBCVrF,IACX5E,aAVc,yCAAG,WAAO8kE,EAAOC,EAAWC,GAAzB,8BAAAx/C,EAAA,sEACoBo+C,GAASkB,EAAOC,EAAWC,GAD/C,uBACZpzD,EADY,EACZA,KAAMxX,EADM,EACNA,SAAUshB,EADJ,EACIA,OADJ,EAEuBunD,GAAWrxD,EAAMxX,EAAUshB,GAA9D8pB,EAFY,EAEZA,MAAO99B,EAFK,EAELA,UAAW67D,EAFN,EAEMA,cAFN,kBAIZ9N,GAAOjwB,EAAO99B,EAAW67D,IAJb,2CAAH,0DAWdv9C,eAZ0B,CAAC,mBCF/B,4CAAe,WAAOpU,EAAMxX,EAAUshB,GAAvB,UAAA8J,EAAA,+EAEJ,CAAC5T,OAAMxX,WAAUshB,WAFb,2CAAf,0DC6EemnD,GA3EU,SAAAC,GAAa,OAAI,SAACC,EAAW3oE,EAAUshB,GAEzBA,EAA3BniB,GAA2BmiB,EAAvB5e,KAAuB4e,EAAjB8lD,aAElB,GAAiB,iBAAbpnE,EACA,OAAQ2oE,GACJ,KAAKC,KAED,MAAO,CACHx9B,MAAOoM,GACPlqC,UAAW,CAAEL,MAAO,CAAE4jC,KAAMvvB,EAAOniB,KACnCgqE,cAAe,YAAiD,IAAD,IAA7CzmE,KAAQA,EAAqC,EAArCA,KAAqC,EAA/BC,QAA+B,EAAtBkoE,cAErC,MAAO,CACHnoE,KAFaA,EAAT4I,QAQpB,KAAK29D,KACD,MAAO,CACH79B,MAAOmM,GACPjqC,UAAW,CACPrL,OAAQ,CACJ8yC,MAAOzzB,EAAOpiB,MAGtBiqE,cAAe,YAAiD,IAAD,IAA7CzmE,KAAQA,EAAqC,EAArCA,KAAqC,EAA/BC,QAA+B,EAAtBkoE,cAErC,MAAO,CACHnoE,KAFwBA,EAApB8N,MAGJ7K,MAHwBjD,EAAbsnE,SAGKC,cAKhC,KAAKjB,KACD,MAAO,CACH59B,MAAOmM,GACPjqC,UAAU,eACHgU,GAEP6nD,cAAe,YAAiD,IAAD,IAA7CzmE,KAAQA,EAAqC,EAArCA,KAAqC,EAA/BC,QAA+B,EAAtBkoE,cAErC,MAAO,CACHnoE,KAFwBA,EAApB8N,MAGJ7K,MAHwBjD,EAAbsnE,SAGKC,cAUxC,MAAkB,YAAdtB,EACO,CACHv9B,MAAOL,GACPz9B,UAAU,eAAMgU,GAChB6nD,cAAgB,YAEZ,MAAO,CACHzmE,KAHgC,EAArBA,KAAQA,KACf0mE,cASDN,aAAWJ,EAAXI,CAA0BH,EAAW3oE,EAAUshB,KCrDvD,IACX1b,aAXwB,SAAC4R,EAAMxX,EAAUshB,GACzC,OAV4B+nD,aAAqB,CACjDhO,OAAQnuD,GACR47D,WAAYA,GACZJ,eAAe,IAOY5pE,KAApB,yCAAyB,WAAOyqE,GAAP,kBAAAn+C,EAAA,sEAEMo+C,GAAShyD,EAAMxX,EAAUshB,GAF/B,uBAEZmoD,EAFY,EAEpBnoD,OAFoB,kBAIrBioD,EAAS/xD,EAAMxX,EAAUypE,IAJJ,2CAAzB,wDAWP79C,eAd0B,CAAC,iB,qBCRlBk/C,GAAiBz9D,mBAAH,yMAMrBi8C,ICNOyhB,GAAoB19D,mBAAH,wUAOxBi8C,ICPO0hB,GAAoB39D,mBAAH,mSAMxBi8C,ICNOugB,GAA8Bx8D,mBAAH,iVAOlCi8C,ICNO2hB,GAAkB59D,mBAAH,6MAMtBi8C,ICuES4hB,GAxEC,CACZ9iD,OAAQ,SAAC9G,GAAY,ILETmO,EKAA/sB,EAAS4e,EAAT5e,KAER,OLFQ+sB,EKEM,CACVjU,MAAM,eACC9Y,ILHRi1C,GAAaxqC,OAAO,CACvBC,SAAU09D,GACVx9D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OKCPvH,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,QAInCrF,QAAS,SAACqb,GAAY,IJXVmO,EIYAxtB,EAAkEqf,EAAlErf,OADS,EACyDqf,EAA1Dpb,WAAcC,EADb,EACaA,KAAMlG,EADnB,EACmBA,QADnB,EACyDqhB,EAA3B7b,KAAQlE,EADtC,EACsCA,MAAOC,EAD7C,EAC6CA,MAE9D,OJdQiuB,EIcO,CACXxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WJjBD03C,GAAavM,MAAM,CACtBA,MAAO2/B,GACPz9D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OIaPvH,MAAK,YAA8C,IAAD,IAA1C4D,KAAQA,KAAQ8N,EAA0B,EAA1BA,MAAOw5D,EAAmB,EAAnBA,SAC9B,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5B15D,QAAS,SAAC+Q,EAAQ5X,GAAa,IH3BnB+lB,EG4BAvwB,EAAQoiB,EAARpiB,IAER,OH9BQuwB,EG8BO,CACXxtB,OAAQ,CACJ/C,OAEJe,QAASf,EAAIkF,QHjCduzC,GAAavM,MAAM,CACtBA,MAAO4/B,GACP19D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OG6BPvH,MAAK,YACJ,MAAO,CACH4D,KAFmC,EAAhCA,KAAQA,KAAQ8N,MAEPjS,IAAImqD,SAI5B7U,iBAAkB,SAACvyB,GAAY,IFxCnBmO,EEyCAxtB,EAAkEqf,EAAlErf,OADkB,EACgDqf,EAA1Dpb,WAAcC,EADJ,EACIA,KAAMlG,EADV,EACUA,QADV,EACgDqhB,EAA3B7b,KAAQlE,EAD7B,EAC6BA,MAAOC,EADpC,EACoCA,MAE9D,OF3CQiuB,EE2CgB,CACpBxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WF9CD03C,GAAavM,MAAM,CACtBA,MAAOy+B,GACPv8D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OE0CPvH,MAAK,YAA8C,IAAD,IAA1C4D,KAAQA,KAAQ8N,EAA0B,EAA1BA,MAAOw5D,EAAmB,EAAnBA,SAC9B,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5BC,OAAQ,SAAC5oD,GAAY,IDvDTmO,ECwDOnO,EAAPniB,GAER,OD1DQswB,EC0DM,CACVxiB,MAAOqU,GD1DRq2B,GAAavM,MAAM,CACtBA,MAAO6/B,GACP39D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OCsDPvH,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,SCxE1B6/D,GAAyB99D,mBAAH,qOAM7Bk8C,ICNO6hB,GAA6B/9D,mBAAH,6WAOjCk8C,ICPO8hB,GAA6Bh+D,mBAAH,wUAMjCk8C,ICNO+hB,GAAuCj+D,mBAAH,sXAO3Ck8C,ICNOgiB,GAA0Bl+D,mBAAH,yOAM9Bk8C,ICPOiiB,GAAyBn+D,mBAAH,6RAM7Bk8C,ICNOkiB,GAAyBp+D,mBAAH,0OAM7Bk8C,IAGS,YAAC95B,GACZ,OAAOkoB,GAAaxqC,OAAO,CACvBC,SAAUq+D,GACVn+D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OCbL0kC,GAAY19B,mBAAH,qNCiJPq+D,GAzIQ,CACnBtjD,OAAQ,SAAC9G,GAAY,IRDTmO,EQGA/sB,EAAS4e,EAAT5e,KAEFmc,EAAKnc,EAAKipE,MAAQtjB,GAAgB3lD,EAAKipE,YAAS1oE,EAChD2oE,EAAKlpE,EAAKmpE,MAAQxjB,GAAgB3lD,EAAKmpE,YAAS5oE,EAChD6oE,EAAMppE,EAAKqpE,OAAS1jB,GAAgB3lD,EAAKqpE,aAAU9oE,EAEnDuY,EAAQwwD,KAAKtpE,EAAM,CAAC,QAAS,QAAS,SAAU,kBAAmB,oBAEzE,ORXQ+sB,EQWM,CACVjU,MAAM,2BACCA,GADF,IAEDqD,KACA+sD,KACAE,SRfLn0B,GAAaxqC,OAAO,CACvBC,SAAU+9D,GACV79D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OQaPvH,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,QAInCrF,QAAS,SAACqb,GAAY,IPvBVmO,EOwBAxtB,EAAkEqf,EAAlErf,OADS,EACyDqf,EAA1Dpb,WAAcC,EADb,EACaA,KAAMlG,EADnB,EACmBA,QADnB,EACyDqhB,EAA3B7b,KAAQlE,EADtC,EACsCA,MAAOC,EAD7C,EAC6CA,MAE9D,OP1BQiuB,EO0BO,CACXxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WP7BD03C,GAAavM,MAAM,CACtBA,MAAOggC,GACP99D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OOyBPvH,MAAK,YAA8C,IAAD,IAA1C4D,KAAQA,KAAQ8N,EAA0B,EAA1BA,MAAOw5D,EAAmB,EAAnBA,SAC9B,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5B15D,QAAS,SAAC+Q,GAAY,INvCVmO,EMwCAvwB,EAAQoiB,EAARpiB,IAER,ON1CQuwB,EM0CO,CACXxtB,OAAQ,CACJ/C,OAEJe,QAASf,EAAIkF,QN7CduzC,GAAavM,MAAM,CACtBA,MAAOigC,GACP/9D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OMyCPvH,MAAK,YACJ,MAAO,CACH4D,KAFmC,EAAhCA,KAAQA,KAAQ8N,MAEPjS,IAAImqD,SAI5B7U,iBAAkB,SAACvyB,GAAY,ILpDnBmO,EKqDAxtB,EAAkEqf,EAAlErf,OADkB,EACgDqf,EAA1Dpb,WAAcC,EADJ,EACIA,KAAMlG,EADV,EACUA,QADV,EACgDqhB,EAA3B7b,KAAQlE,EAD7B,EAC6BA,MAAOC,EADpC,EACoCA,MAE9D,OLvDQiuB,EKuDgB,CACpBxtB,SACAwD,KAAM,CAAC,gBAAGlE,EAAQC,EAAMuoE,gBACxB5jE,OACAlG,WL1DD03C,GAAavM,MAAM,CACtBA,MAAOkgC,GACPh+D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OKsDPvH,MAAK,YAA8C,IAAD,IAA1C4D,KAAQA,KAAQ8N,EAA0B,EAA1BA,MAAOw5D,EAAmB,EAAnBA,SAC9B,MAAO,CACHtnE,KAAM8N,EAAMjS,IAAImqD,IAChB/iD,MAAOqkE,EAASC,gBAI5BC,OAAQ,SAAC5oD,GAAY,IJnETmO,EIoEAtwB,EAAOmiB,EAAPniB,GAER,OJtEQswB,EIsEM,CACVxiB,MAAO,CAAE9N,OJtEVw4C,GAAavM,MAAM,CACtBA,MAAOmgC,GACPj+D,UAAU,eAAMmiB,GAChBqjB,YAAa,eACbvlC,QAAS,SAAClH,GACNmH,MAAMnH,OIkEPvH,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,QAInCo7D,OAAQ,SAACplD,GAAY,IH/ETmO,EGiFAtwB,EAA2BmiB,EAA3BniB,GAAIuD,EAAuB4e,EAAvB5e,KAAM0kE,EAAiB9lD,EAAjB8lD,aACZ5rD,EAAQwwD,KAAKtpE,EAAM,CAAC,KAAM,YAAa,YAAa,cAAe,QAAS,QAAS,SAAU,kBAAmB,oBAElHmc,EAAKnc,EAAKipE,MAAQtjB,GAAgB3lD,EAAKipE,MAAOvE,EAAauE,YAAS1oE,EACpE2oE,EAAKlpE,EAAKmpE,MAAQxjB,GAAgB3lD,EAAKmpE,MAAOzE,EAAayE,YAAS5oE,EACpE6oE,EAAMppE,EAAKqpE,OAAS1jB,GAAgB3lD,EAAKqpE,OAAQ3E,EAAa2E,aAAU9oE,EAE9E,OHxFQwsB,EGwFM,CACVxiB,MAAO,CAAE9N,MACTqc,MAAM,2BACCA,GADF,IAEDqD,KACA+sD,KACAE,SH7FLn0B,GAAaxqC,OAAO,CACvBC,SAAUo+D,GACVl+D,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OG2FPvH,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,QAInC2gE,OAAQ,SAAC3qD,GAAY,IACTniB,EAAOmiB,EAAPniB,GAER,OAAO+sE,GAAe,CAClBj/D,MAAO,CAAE9N,QACVL,MAAK,YAAmC,IAAhBwM,EAAe,EAA/B5I,KAAQA,KAAQ4I,KACvB,MAAO,CACH5I,KAAMgmD,GAAiBp9C,QAInC6gE,WAAY,SAAC7qD,GAAY,IACbpiB,EAAQoiB,EAARpiB,IAER,OAAON,QAAQQ,IACXF,EAAIX,KAAI,SAAAY,GAAE,OACN+sE,GAAe,CAAEj/D,MAAO,CAAE9N,YAEhCL,MAAK,SAAA+P,GAEH,MAAO,CAAEnM,KADImM,EAAQ3D,QAAO,SAAC4D,EAAD,OAAwBxD,EAAxB,EAAQ5I,KAAQA,KAAQ4I,KAAxB,4BAA2CwD,GAA3C,CAAgDxD,EAAKnM,OAAK,SAI9FksB,QAAS,SAAC/J,GAAY,IDzHVmO,EC0HAzrB,EAASsd,EAATtd,KAER,OD5HQyrB,EC4HO,CAAEzrB,QD3Hd2zC,GAAavM,MAAM,CACtBA,MAAOL,GACPz9B,UAAU,eAAMmiB,GAChBliB,QAAS,SAAClH,GACNmH,MAAMnH,OCuHevH,MAAK,YAE1B,MAAO,CACH4D,KAH8C,EAArBA,KAAQA,KAC7B0mE,iBC1Ide,IAAW,sBACZpB,KAAW,WADC,gBAEZH,KAAU,UAFE,gBAGZK,KAAW,WAHC,gBAIZD,KAAqB,oBAJT,gBAKZnB,KAAS,UALG,gBAMZC,KAAS,UANG,gBAOZsC,KAAc,cAPF,gBAQZlB,KAAS,UARG,gBASZmB,KAAc,cATF,IAiBXvB,GAAa,CACfoC,WACAQ,mBCjBEU,GAAgB,CAACC,GAAkBC,GAAkBC,GAAwBC,GD2BpE,CACX5mE,aANwB,SAAC+iE,EAAW3oE,EAAUshB,GAE9C,OAAOwnD,GAAW9oE,GAdJ,SAAC2oE,GAEf,OADewB,GAAYxB,IAAcA,EAab2B,CAAU3B,IAAYrnD,IAKlDsK,eAT0BrsB,OAAOD,KAAKwpE,M,oBEhB3B2D,GALP,2BACDC,MACAC,M,qBCEQC,GATqB,CAChC,iBAAkB,CACdv5D,OAAQ,CACJw5D,KAAM,iCACNvkB,SAAU,oCCgBPwkB,GApBsB,CACjC,iBAAkB,CACdz5D,OAAQ,CACJ05D,eAAgB,wFAChBC,aAAc,+FAElBC,cAAe,CACXjoE,MAAO,gHACPkoE,WAAY,gEACZC,UAAW,6IACXC,iBAAkB,4JAClBC,aAAc,qJACdC,uBAAwB,4FACxBC,oBAAqB,sJACrBC,eAAgB,yZAChBC,KAAM,0ZCi1BZC,GAAoB,CACtBC,GAAI,CACAt6D,OAAO,2BACAu6D,KAAgBD,GAAGt6D,QADpB,IAEFw6D,WAAY,kHACZC,aAAc,0LACdC,oBAAqB,uGACrBC,kBAAmB,6HACnBC,eAAgB,oGAChBC,aAAc,8FACdC,eAAgB,yDAChBlC,OAAQ,8FACRmC,QAAS,2EACTC,UAAW,gEACXC,WAAY,6CACZ5lD,KAAM,iFACN6lD,OAAQ,uCACRC,MAAO,uCACPC,OAAQ,mDACRC,YAAa,QACbC,UAAW,MACXC,uBAAwB,gMACxBC,0BAA2B,yQAC3BC,WAAY,OACZC,IAAK,iFACLC,MAAO,uFACPC,QAAS,0GACTC,4BAA6B,2GAC7BC,YAAa,iCACbC,MAAO,yDACPC,aAAc,8FACdC,aAAc,4GAElBC,QAAA,2BACO3B,KAAgBD,GAAhB,SADP,IAEI6B,KAAM,SAEVrpE,KAAK,2BACEynE,KAAgBD,GAAGxnE,MADtB,IAEAspE,QAAS,iBACT5uB,MAAO,yFACP6uB,OAAQ,gGACRC,QAAS,+CAEbn0D,MAAM,2BACCoyD,KAAgBD,GAAGnyD,OADrB,IAEDk+B,QAAS,CACL10C,MAAO,4QAGfgK,QAAQ,2BACD4+D,KAAgBD,GAAG3+D,SADnB,IAEHygE,QAAS,+IACTG,KAAM,sDACND,QAAS,gJACTE,oBAAqB,qPAEzBC,WAAW,2BACJlC,KAAgBD,GAAGmC,YADhB,IAENC,UAAW,+DACXC,SAAU,uHACVC,mBAAoB,wHAExB3H,KAAK,2BACEsF,KAAgBD,GAAGrF,MADtB,QAEA4H,kBAAmB,gEACnBC,aAAc,gEACdC,mBAAoB,qVAEpBC,yBAA0B,0MAN1B,gBAOC,uCAAyC,uOAP1C,gBAQC,oDAAsD,yRARvD,gBASC,+BAAiC,gYATlC,gBAUC,4BAAyB,4GAV1B,gBAWC,oBAAsB,8HAXvB,sCAYqB,4rCAZrB,8BAaa,gYAbb,KAeJpN,aAAa,2BACN2K,KAAgBD,GAAG1K,cADd,IAERqN,cAAe,8FACfC,kCAAmC,owBACnCC,eAAgB,sgBAChBC,oBAAqB,8kBACrBC,mBAAoB,wfACpBC,iCAAkC,+eAClCC,gCAAiC,+kBACjCC,oCAAqC,i7DACrCC,YAAa,oJACbC,cAAe,0JACfC,sBAAuB,0GACvBC,iBAAkB,qJAClBC,gBAAiB,mdAErBj+B,WAAW,2BACJ26B,KAAgBD,GAAG16B,YADhB,IAENk+B,OAAQ,wJACRC,WAAY,kIACZC,cAAe,oIACfC,iBAAkB,20BC77BxBC,GAAW,CACb9E,GAAIC,GACJ8E,GDy9BI,2EA79ByB,CAC7BpwD,UAAW,CACPwjD,UAAW,CACP5gE,KAAM,uFACNwV,KAAM,uFACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX20C,aAAc,6CACdz0C,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACPglE,iBAAkB,gFAEtB5wB,MAAO,gHACP6uB,OAAQ,iGAEZ7K,YAAa,CACT7gE,KAAM,mOACNwV,KAAM,6FACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX21B,UAAW,uCACX5F,YAAa,qEACbjB,aAAc,mDACd+1C,aAAc,qEACd3kE,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACPglE,iBAAkB,gFAEtB5wB,MAAO,mLACP6uB,OAAQ,iGAEZiC,cAAe,CACX3tE,KAAM,mLACNwV,KAAM,mLACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXJ,MAAO,wBACPK,uBAAwB,qBACxBC,QAAS,uCACTC,KAAM,kCAEV6zC,MAAO,4JACP6uB,OAAQ,iGAEZzK,2BAA4B,CACxBjhE,KAAM,2YACNwV,KAAM,6CACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN03B,WAAY,iCACZjvB,MAAO,wBACPglE,iBAAkB,+EAClB/kE,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX6kE,aAAc,qEACd/1C,aAAc,mDACd5uB,QAAS,uCACTC,KAAM,iCACN+1B,YAAa,8CAEjB8d,MAAO,uQACP6uB,OAAQ,iGAEZxK,sBAAuB,CACnBlhE,KAAM,2VACNwV,KAAM,6CACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX6uB,WAAY,iCACZjvB,MAAO,wBACPglE,iBAAkB,+EAClBhtD,cAAe,wFACfitD,aAAc,qEACd/1C,aAAc,mDACduD,6BAA8B,0DAC9Bye,sBAAuB,uHACvBzC,uBAAwB,6HACxBnuC,QAAS,uCACTC,KAAM,kCAEV6zC,MAAO,+OACP6uB,OAAQ,iGAEZvK,4BAA6B,CACzBnhE,KAAM,+ZACNwV,KAAM,iHACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbo0B,sBAAuB,qBACvBnF,aAAc,mDACd/uB,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXJ,MAAO,wBACPglE,iBAAkB,+EAClB1kE,QAAS,uCACTC,KAAM,kCAEV6zC,MAAO,oRACP6uB,OAAQ,iGAEZ1K,YAAa,CACThhE,KAAM,6IACNwV,KAAM,6IACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX8uB,aAAc,mDACdoH,YAAa,6CACbye,aAAc,6CACd5iB,2BAA4B,qBAC5BkC,sBAAuB,qBACvB/zB,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACPglE,iBAAkB,+EAClB/1C,WAAY,iCACZjrB,YAAa,mDACbmhE,iBAAkB,0EAEtB/wB,MAAO,wIACP6uB,OAAQ,iGAEZ5K,YAAa,CACT9gE,KAAM,+RACNwV,KAAM,yGACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX+vB,YAAa,qEACbmG,YAAa,6CACbnE,2BAA4B,qBAC5BkC,sBAAuB,qBACvBH,4BAA6B,oDAC7B2C,cAAe,qBACfv2B,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACPglE,iBAAkB,+EAClB/1C,WAAY,iCACZoC,SAAU,kCACVC,OAAQ,wCACRt5B,SAAU,yDACV8+B,gBAAiB,2JACjBnG,WAAY,uHAEhByjB,MAAO,iNACP6uB,OAAQ,iGAEZmC,eAAgB,CACZl+D,OAAQ,CACJxU,GAAI,KACJ2+B,SAAU,kCACVC,OAAQ,wCACRrxB,YAAa,qDAGrBq4D,aAAc,CACV/gE,KAAM,yKACNwV,KAAM,6CACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXgsD,WAAY,4HACZ9rD,QAAS,uCACTC,KAAM,iCACNyD,YAAa,mDACb+/B,eAAgB,iCAChB/jC,MAAO,wBACPglE,iBAAkB,+EAClB/iC,kBAAmB,uCACnBojC,iBAAkB,8FAClBC,wBAAyB,sEACzBn0B,OAAQ,gEACRn5C,SAAU,yDACV8rC,gBAAiB,oGACjBjD,iCAAkC,iHAClC4N,uBAAwB,6HACxB82B,iBAAkB,yEAClBlhC,WAAY,oGACZC,SAAU,kHACVN,WAAY,+DACZ,kBAAmB,wFACnBG,SAAU,yDACV,gBAAiB,kFACjBqhC,gBAAiB,oGACjBC,aAAc,iHACdC,aAAc,uCACd7hC,QAAS,8CAEbuQ,MAAO,sJACP6uB,OAAQ,iGAEZ0C,WAAY,CACRz+D,OAAQ,CACJxU,GAAI,KACJkzE,eAAgB,yDAChBruE,KAAM,mDACN0I,YAAa,mDACbgkC,aAAc,uFACd4hC,GAAI,MACJ3hC,YAAa,kFACb4hC,oBAAqB,qJACrBC,GAAI,oCACJC,WAAY,uGACZv2C,IAAK,qCACL1kB,KAAM,qBACN+nC,cAAe,2EACfjjC,OAAQ,wCAEZ0O,MAAO,CACHxT,KAAM,CACFk7D,SAAU,mDACVC,KAAM,6BACNC,KAAM,6BACNC,OAAQ,6BACRC,OAAQ,yCACRC,KAAM,iCACNC,OAAQ,yBACRC,MAAO,uBACPC,OAAQ,wBACRC,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,cAAe,uDAEnBh3D,OAAQ,CACJi3D,MAAO,mDACPC,KAAM,2BACNC,OAAQ,6CACRC,KAAM,gDAIlBC,wBAAyB,CACrB3oD,MAAO,CACH1O,OAAQ,CACJi3D,MAAO,mDACPC,KAAM,2BACNI,QAAS,oCAIrBC,SAAU,CACNlgE,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbgkC,aAAc,uFACdG,KAAM,8BACN2hC,GAAI,oCACJsB,KAAM,2BACNrb,eAAgB,8FAChBsb,IAAK,8HACLt/C,KAAM,OACN+jC,SAAU,sEACVhhD,KAAM,qBACN+nC,cAAe,2EACfjjC,OAAQ,wCAEZ0O,MAAO,CACH1O,OAAQ,CACJi3D,MAAO,mDACPC,KAAM,2BACNC,OAAQ,6CACRC,KAAM,8CAEVl8D,KAAM,CACFw8D,GAAI,eACJC,MAAO,SACPC,MAAO,SACPC,MAAO,SACPC,MAAO,SACPC,cAAe,8CACfC,cAAe,oFACfC,YAAa,uCACbC,KAAM,uBACNC,MAAO,6BACPC,MAAO,6BACPC,OAAQ,yBACRC,OAAQ,yBACRC,OAAQ,yBACRC,iBAAkB,8FAClBC,iBAAkB,qGAClBC,aAAc,4EACdC,YAAa,sEACbC,SAAU,qCACVC,UAAW,mDACXC,iBAAkB,wFAClBC,gBAAiB,+IACjBC,aAAc,kEACdC,YAAa,iEACbC,aAAc,uEACdC,QAAS,UACTC,QAAS,6CACTC,MAAO,kBACPC,aAAc,iBACdC,aAAc,iBACdC,aAAc,iBACdC,gBAAiB,oBACjBC,WAAY,aACZC,WAAY,+DACZC,OAAQ,6BACRC,UAAW,2CACXC,QAAS,WACTC,UAAW,iBAIvBC,sBAAuB,CACnBtrD,MAAO,CACH1O,OAAQ,CACJi3D,MAAO,mDACPC,KAAM,2BACNI,QAAS,oCAIrB2C,cAAe,CACXvyE,KAAM,qEACNwV,KAAM,qEACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXE,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACPmxC,OAAQ,gEACR44B,OAAQ,iCACR/xE,SAAU,yDACVyc,MAAO,yDACPquB,aAAc,sBAGlBvkB,MAAO,CACHvmB,SAAU,CACNgyE,KAAM,yDACNC,MAAO,qDAGf71B,MAAO,oGACP6uB,OAAQ,iGAEZvzD,sBAAuB,CACnBnY,KAAM,uPACNwV,KAAM,qJACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXoE,MAAO,IACP2sC,OAAQ,SACRhc,MAAO,+EACP2Z,GAAI,+EACJo7B,SAAU,KACVn7B,IAAK,gFACLo7B,UAAW,MACXn7B,QAAS,oFACTo7B,cAAe,IACfx7B,UAAW,mEACXC,QAAS,sEACTI,mBAAoB,+FACpB5uC,uBAAwB,qBACxBgqE,2BAA4B,qBAC5BC,kBAAmB,qBACnBhqE,QAAS,uCACTC,KAAM,iCACNgqE,UAAW,kHAEf/jC,WAAY,CACRgkC,aAAc,wbAElB1I,OAAQ,CACJ/mE,MAAO,wKACPupB,QAAS,goBACTra,OAAQ,uCACR6iC,SAAU,wFAEdsH,MAAO,gMACP6uB,OAAQ,kMACRwH,iBAAkB,wfAClBC,mBAAoB,0tBAExBC,UAAW,CACPpzE,KAAM,qPACNwV,KAAM,iIACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX20C,aAAc,6CACdz0C,QAAS,uCACTC,KAAM,iCACNP,MAAO,wBACP4qE,eAAgB,2DAChBC,mBAAoB,2EAExBtsD,MAAO,CACHxT,KAAM,CACFuE,OAAQ,6CACRC,MAAO,mDACP5D,MAAO,6CACP8D,QAAS,6CACTC,sBAAuB,uHACvBF,MAAO,uEAGf4kC,MAAO,0GACP6uB,OAAQ,iGAEZ6H,OAAQ,CACJvzE,KAAM,2EACNwV,KAAM,2EACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX20C,aAAc,6CACdz0C,QAAS,uCACTyqE,YAAa,uCACbC,gBAAiB,sDACjBzqE,KAAM,iCACNP,MAAO,yBAEXue,MAAO,CACHxT,KAAM,CACFuE,OAAQ,6CACRC,MAAO,mDACP5D,MAAO,6CACP8D,QAAS,6CACTC,sBAAuB,uHACvBF,MAAO,uEAGf4kC,MAAO,0GACP6uB,OAAQ,iGAEZhE,eAAgB,CACZ1nE,KAAM,+LACNwV,KAAM,yGACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACXujC,KAAM,wCACNvxB,GAAI,2BACJ+sD,GAAI,iCACJE,IAAK,4EACL/+D,QAAS,uCACT2qE,UAAW,+DACX9xB,KAAM,OACN+xB,YAAa,6CACb9zD,QAAS,mDACT3C,MAAO,yDACP02D,gBAAiB,0GACjBC,gBAAiB,0GACjBJ,gBAAiB,sDACjBzqE,KAAM,iCACNP,MAAO,yBAEXue,MAAO,CACHxT,KAAM,CACFuE,OAAQ,6CACRC,MAAO,mDACP5D,MAAO,6CACP8D,QAAS,6CACTC,sBAAuB,uHACvBF,MAAO,sEAEX4H,QAAS,CACL4yD,KAAM,mDACNC,MAAO,0DAEXiB,YAAa,CACTG,MAAO,6CACPC,WAAY,sIACZC,SAAU,0DACVC,cAAe,mJACfC,UAAW,0DACXC,eAAgB,mJAChBC,SAAU,8CACVC,cAAe,uIACfC,UAAW,iCACXC,mBAAoB,yDACpBC,gBAAiB,iJACjBC,aAAc,oGACdC,cAAe,8FACfC,gBAAiB,0GACjBC,aAAc,kFACdC,QAAS,kFACTC,UAAW,8EACXC,UAAW,oFACXC,SAAU,8FACVC,UAAW,wFACXC,YAAa,oGACbC,SAAU,4EACVC,kBAAmB,2JACnBC,uBAAwB,sPAGhCx4B,MAAO,iKACP6uB,OAAQ,iGAEZxE,QAAS,CACLlnE,KAAM,mGACN2P,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,2EACN2uB,MAAO,QACPmJ,KAAM,2EACNyrB,OAAQ,gFAGhB+xB,IAAK,CACDt1E,KAAM,qEACNwV,KAAM,qEACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACb8K,KAAM,qBACNxX,SAAU,uCACV+E,MAAO,2BACP6H,UAAW,6CACXD,UAAW,uCACXE,UAAW,yDACX0sE,SAAU,iCACVC,SAAU,gDACVC,SAAU,iCACVC,aAAc,iDAElB1uD,MAAO,CACHxT,KAAM,CACFmiE,KAAM,mGACNC,OAAQ,0DAEZ55E,SAAU,CACN4kE,UAAW,uCACXC,YAAa,6CACbI,2BAA4B,qBAC5BC,sBAAuB,qBACvBC,4BAA6B,oDAC7BH,YAAa,qEACbF,YAAa,mDACbC,aAAc,qBACd5oD,sBAAuB,sEACvBirC,KAAM,6EAGdvG,MAAO,oGACP6uB,OAAQ,iGAEZhiB,UAAW,CACP1pD,KAAM,6CACNwV,KAAM,6CACN7F,OAAQ,CACJxU,GAAI,KACJa,SAAU,uCACVgE,KAAM,mDACN0I,YAAa,mDACbmtE,UAAW,uCACXC,UAAW,uCACXC,cAAe,6BACfC,cAAe,yCAEnBhvD,MAAO,CACHhrB,SAAU,CACN4kE,UAAW,uCACXC,YAAa,6CACb8M,cAAe,wFACf1M,2BAA4B,qBAC5BC,sBAAuB,qBACvBC,4BAA6B,oDAC7BH,YAAa,qEACbF,YAAa,mDACbC,aAAc,qBACdwR,cAAe,iCACfp6D,sBAAuB,sEACvB89D,aAAc,+DACd7yB,KAAM,8EAIlB8yB,QAAS,CACLl2E,KAAM,6CACNwV,KAAM,6CACN7F,OAAQ,CACJxU,GAAI,KACJa,SAAU,uCACVgE,KAAM,mDACNqP,OAAQ,mDACR3G,YAAa,mDACb,YAAa,oGACb,gBAAiB,sHACjBE,UAAW,2BACXutE,cAAe,6BACfC,cAAe,wCACfztE,UAAW,4EAEfqe,MAAO,CACH3X,OAAQ,CACJgnE,QAAS,6CACTC,QAAS,yDACTC,QAAS,8FACTC,QAAS,6CACTC,SAAU,iFACVC,SAAU,2EACVC,QAAS,6CACTC,QAAS,oGACTC,MAAO,oGACPC,OAAQ,0GACRC,UAAW,qEACXC,YAAa,4EAEjBh7E,SAAU,CACN4kE,UAAW,uCACXC,YAAa,6CACb8M,cAAe,wFACf1M,2BAA4B,qBAC5BC,sBAAuB,qBACvBC,4BAA6B,oDAC7BH,YAAa,qEACbF,YAAa,mDACbC,aAAc,qBACdwR,cAAe,iCACfp6D,sBAAuB,sEACvB89D,aAAc,+DACd7yB,KAAM,8EAIlB6yB,aAAc,CACVj2E,KAAM,uIACNwV,KAAM,uIACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,mDACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX2K,KAAM,qBACNsa,IAAK,qBACLC,IAAK,qBACLC,KAAM,2BACNC,KAAM,2BACNC,IAAK,2EACLC,SAAU,6CACVC,cAAe,gEACfC,SAAU,mDACVC,aAAc,oGACdC,cAAe,oGACfC,cAAe,kFACfC,MAAO,6CACPC,YAAa,yDACbC,MAAO,QACPC,MAAO,2EACP8D,eAAgB,uCAChB7D,OAAQ,uCACRooD,eAAgB,gEAChBC,gBAAiB,qGACjBC,kBAAmB,qGACnBC,kBAAmB,6HACnBC,kBAAmB,2GACnBC,gBAAiB,qGACjBC,kBAAmB,qGACnBC,kBAAmB,6HACnBC,kBAAmB,2GACnBC,mBAAoB,uEACpB7kD,EAAG,kCAEP7L,MAAO,CACHxT,KAAM,CACFmkE,YAAa,8FACbC,WAAY,wFACZC,iBAAkB,0JAClBC,iBAAkB,sDAG1BC,KAAM,CACFC,QAAS,mDACTnpD,OAAQ,wCAEZguB,MAAO,wIACP6uB,OAAQ,iGAEZtoB,KAAM,CACFpjD,KAAM,yJACNwV,KAAM,yJACN7F,OAAQ,CACJxU,GAAI,KACJ6E,KAAM,2EACN0I,YAAa,mDACbE,UAAW,uCACXD,UAAW,uCACXE,UAAW,mDACX8lB,MAAO,QACPF,MAAO,6CACPo9B,OAAQ,2EACRrB,aAAc,+FACdC,KAAM,2BACNF,MAAO,iCACPgE,UAAW,qDACX0pB,QAAS,6CACTnnB,SAAU,uCACVj9B,aAAc,+DACdrjB,SAAU,yDACVkiB,eAAgB,uCAChB7D,OAAQ,uCACRooD,eAAgB,gEAChBC,gBAAiB,qGACjBC,kBAAmB,qGACnBC,kBAAmB,6HACnBC,kBAAmB,2GACnBa,mBAAoB,uHACpBZ,gBAAiB,qGACjBC,kBAAmB,qGACnBC,kBAAmB,6HACnBC,kBAAmB,2GACnBC,mBAAoB,uEACpB7kD,EAAG,iCACHslD,UAAW,2EACXC,cAAe,2FAEnBpxD,MAAO,CACHyjC,KAAM,CACF6W,MAAO,iCACP+W,QAAS,uCACTC,WAAY,+DACZC,MAAO,iFACPC,SAAU,6CACVC,SAAU,qEACVC,WAAY,2DAGpBX,KAAM,CACFC,QAAS,mDACTnpD,OAAQ,wCAEZguB,MAAO,8IACP6uB,OAAQ,iGAEZiN,OAAQ,CACJhpE,OAAQ,CACJxU,GAAI,KACJa,SAAU,wCAEdgrB,MAAO,CACHhrB,SAAU,CACN4kE,UAAW,uCACXC,YAAa,6CACbG,YAAa,qEACbF,YAAa,mDACbC,aAAc,wBAI1B6X,MAAO,CACH54E,KAAM,sEACNwV,KAAM,uEAEVqjE,KAAM,CACFlpE,OAAQ,CACJmpE,MAAO,uEAGfC,aAAc,CACVppE,OAAQ,CACJxU,GAAI,KACJ0xC,KAAM,8BACNv0B,OAAQ,uCACRo6B,KAAM,2BACNsmC,QAAS,wCAEbhyD,MAAO,CACH1O,OAAQ,CACJkxB,SAAU,qEACVG,MAAO,uCACPE,QAAS,mDACTE,GAAI,eACJE,WAAY,yEAIxBgvC,eAAgB,CACZtpE,OAAQ,CACJ9G,UAAW,6KAMC,CACxB2M,KAAM,CACF0jE,OAAQ,CACJj6B,QAAS,GACT7hC,UAAW,6CACXsH,KAAM,iFACNmK,OAAQ,uCACRsqD,YAAa,qEACbxgC,MAAO,iDAyIZ+wB,IA5BgC,CACnC0P,gBAAiB,CACbjiE,OAAQ,CACJkiE,MAAO,6CACPC,UAAW,0DAEf3pE,OAAQ,CACJy8B,KAAM,IACNvxB,GAAI,eACJ0+D,UAAW,6CACXC,SAAU,+DACVC,YAAa,kGAEjBlM,SAAU,CACNmM,eAAgB,kcAChBC,YAAa,wTACbvyC,MAAO,wGACPwyC,YAAa,6EAEjBC,WAAY,CACRC,gBAAiB,6FAUtBlR,IACAE,KC59BMiR,GAAeC,cAAqB,SAAA1+D,GAAM,OAAIiyD,GAASjyD,KAAS,MCT9D,cAA0C,IAAzCmlD,EAAwC,uDAA1B,GAA0B,yCAApBjtD,EAAoB,EAApBA,KAAM4oB,EAAc,EAAdA,QACtC,OAAI5oB,IAAS+iD,GACFn6B,EAAQ6vB,YAEZwU,GCJI,cAA4C,IAA3CA,EAA0C,uDAA5B,KAA4B,yCAApBjtD,EAAoB,EAApBA,KAAM4oB,EAAc,EAAdA,QACxC,OAAI5oB,IAASmjD,GACFv6B,EAAQtE,KAEZ2oC,GC6BX76D,IAAa5H,aAAe,CAC1BsD,WAAY,KAGdssB,IAAW5vB,aAAe,CACxBi2C,mBAAoB,CAAC,GAAI,GAAI,GAAI,MAGnC,IA4LegmC,GA5LH,WAAO,IAAD,EACwBj3E,mBAAS,MADjC,mBACTpB,EADS,KACKs4E,EADL,OAEcl3E,oBAAS,GAFvB,mBAETrE,EAFS,KAEA8L,EAFA,KAqBhB,OAjBA7N,qBAAU,WAWR,ORjDKhC,QAAQC,SAAQ,SAAC2Y,EAAMxX,EAAUshB,GAEtC,IAAM68D,EAAmB/R,GAAc56D,MAAK,SAAA4sE,GAAE,OAAIA,EAAGxyD,eAAe1nB,SAASlE,MAE7E,IAAKm+E,EAAkB,MAAM,IAAIn/E,MAAM,0BACvC,OAAOm/E,EAAiBv4E,aAAa4R,EAAMxX,EAAUshB,MQoC7BxiB,MAAK,SAAA8G,GACzBs4E,GAAgB,kBAAMt4E,KACtB6I,GAAW,MAMR,WACLyvE,EAAgB,SAGjB,IAECv7E,EAEA,6CAKF,cAAC07E,EAAA,EAAD,CACEC,kBAAgB,EAChBt1E,MAAOA,GACPu1E,OAAQha,GACRia,UAAWC,GACXvY,aAAcA,GACdtgE,aAAcA,EACdm4E,aAAcA,GACdW,UAAW7B,GACX8B,eAAgB,CAAE7iD,QAAMm0B,eAAap9B,WACrC+rD,aAAcA,GAVhB,SAYG,SAAA94D,GAAW,MAAI,CACd,cAAC+4D,EAAA,EAAD,CAAU76E,KAAK,YACbqd,KAAMrN,GAAI,UAAW,cAAgB4tC,GACrCx5B,OAAQpU,GAAI,SAAU,cAAgB8tC,GACtCg9B,KAAM9qE,GAAI,SAAU,cAAgBiuC,GACpC88B,KAAM/qE,GAAI,SAAU,cAAgBkuC,GACpC7lC,KAAM8lC,GACNt2C,QAAS,CAAE22D,UAAW,eAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,cACbqd,KAAMrN,GAAI,UAAW,gBAAkB2uB,GACvCva,OAAQpU,GAAI,SAAU,gBAAkB6uB,GACxCi8C,KAAM9qE,GAAI,SAAU,gBAAkBkvB,GACtC67C,KAAM/qE,GAAI,SAAU,gBAAkBovB,GACtC/mB,KAAMgnB,GACNx3B,QAAS,CAAE22D,UAAW,eAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,cACbqd,KAAMrN,GAAI,UAAW,gBAAkBwoB,GACvCpU,OAAQpU,GAAI,SAAU,gBAAkB2oB,GACxCmiD,KAAM9qE,GAAI,SAAU,cAAgB+oB,GACpCgiD,KAAM/qE,GAAI,SAAU,gBAAkBkqB,GACtC7hB,KAAMgiB,GACNxyB,QAAS,CAAE22D,UAAW,eAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,cACbqd,KAAMrN,GAAI,UAAW,gBAAkBk4B,GACvC9jB,OAAQpU,GAAI,SAAU,gBAAkB64B,GACxCiyC,KAAM9qE,GAAI,SAAU,gBAAkBi5B,GACtC8xC,KAAM/qE,GAAI,SAAU,gBAAkBk7B,GACtC7yB,KAAM8yB,GACNtjC,QAAS,CAAE22D,UAAW,eAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,eACbqd,KAAMrN,GAAI,UAAW,iBAAmBkgC,GACxC9rB,OAAQpU,GAAI,SAAU,iBAAmBugC,GACzCuqC,KAAM9qE,GAAI,SAAU,iBAAmB2gC,GACvCoqC,KAAM/qE,GAAI,SAAU,iBAAmB8jC,GACrCz7B,KAAM87B,GACRtsC,QAAS,CAAE22D,UAAW,eAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,gBACb86E,KAAM9qE,GAAI,SAAU,kBAAoBy7B,GACxCsvC,KAAM/qE,GAAI,SAAU,kBAAoBi8B,GACxC5zB,KAAM6zB,KAER,cAAC2uC,EAAA,EAAD,CAAU76E,KAAK,6BACbqd,KAAMrN,GAAI,UAAW,+BAAiCyqB,GACtDrW,OAAQpU,GAAI,SAAU,+BAAiC2qB,GACvDmgD,KAAM9qE,GAAI,SAAU,+BAAiC+qB,GACrDggD,KAAM/qE,GAAI,SAAU,+BAAiCgrB,GACrD3iB,KAAM4iB,GACNpzB,QAAS,CAAE22D,UAAW,UAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,wBACbqd,KAAMrN,GAAI,UAAW,0BAA4BurB,GACjDnX,OAAQpU,GAAI,SAAU,0BAA4B6sB,GAClDi+C,KAAM9qE,GAAI,SAAU,0BAA4BitB,GAChD89C,KAAM/qE,GAAI,SAAU,0BAA4B8tB,GAChDzlB,KAAM0lB,GACNl2B,QAAS,CAAE22D,UAAW,UAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,gBACbqd,KAAMrN,GAAI,UAAW,kBAAoB8O,GACzCsF,OAAQpU,GAAI,SAAU,kBAAoBoQ,GAC1C06D,KAAM9qE,GAAI,SAAU,kBAAoBuT,GACxCw3D,KAAM/qE,GAAI,SAAU,kBAAoB0d,GACxCrV,KAAMwV,GACNhmB,QAAS,CAAE22D,UAAW,UAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,8BACbokB,OAAQpU,GAAI,SAAU,gCAAkC0sB,GACxDo+C,KAAM9qE,GAAI,SAAU,gCAAkCkuB,GACtD68C,KAAM/qE,GAAI,SAAU,gCAAkCsuB,GACtDjmB,KAAMkmB,GACN12B,QAAS,CAAE22D,UAAW,UAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,wBACbqd,KAAMrN,GAAI,UAAW,0BAA4B2sC,GACjDv4B,OAAQpU,GAAI,SAAU,0BAA4B+sC,GAClD+9B,KAAM9qE,GAAI,SAAU,0BAA4BmtC,GAChD49B,KAAM/qE,GAAI,SAAU,0BAA4BstC,GAChDjlC,KAAMklC,GACN11C,QAAS,CAAE22D,UAAW,UAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,eACbqY,KAAMoc,GACNpX,KAAMrN,GAAI,UAAW,iBAAmBqf,GACxC0rD,KAAM/qE,GAAI,SAAU,iBAAmBqkB,GACvCjQ,OAAQpU,GAAI,SAAU,iBAAmBsjB,GACzCwnD,KAAM9qE,GAAI,SAAU,iBAAmBikB,GACvCpsB,QAAS,CAAE22D,UAAW,YAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,OACbqY,KAAM82C,GACN9xC,KAAMrN,GAAI,UAAW,SAAWq8C,GAChC0uB,KAAM/qE,GAAI,SAAU,SAAWk/C,GAC/B9qC,OAAQpU,GAAI,SAAU,SAAWw9C,GACjCstB,KAAM9qE,GAAI,SAAU,SAAWg/C,GAC/BnnD,QAAS,CAAE22D,UAAW,YAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,aACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,MACbqY,KAAM+wC,GACN/rC,KAAMrN,GAAI,UAAW,QAAUq2C,GAC/B00B,KAAM/qE,GAAI,SAAU,QAAUm5C,GAC9B/kC,OAAQpU,GAAI,SAAU,QAAU64C,GAChCiyB,KAAM9qE,GAAI,SAAU,QAAUi5C,GAC9BphD,QAAS,CAAE22D,UAAW,WACxB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,iBACbqY,KAAM0tC,GACN1oC,KAAMrN,GAAI,UAAW,mBAAqBiyC,GAC1C84B,KAAM/qE,GAAI,SAAU,mBAAqB61C,GACzCzhC,OAAQpU,GAAI,SAAU,mBAAqBi0C,GAC3C62B,KAAM9qE,GAAI,SAAU,mBAAqBm0C,GACzCt8C,QAAS,CAAE22D,UAAW,WACxB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,YACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,UACbqd,KAAMrN,GAAI,UAAW,YAAc0Y,GACnCqyD,KAAM/qE,GAAI,SAAU,YAAcwwC,GAClCnoC,KAAMooC,GACN54C,QAAS,CAAE22D,UAAW,WACxB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,YACbqd,KAAMrN,GAAI,UAAW,cAAgBq6C,GACrChyC,KAAMiyC,GACNziD,QAAS,CAAE22D,UAAW,WAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,YACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,mBACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,iBACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,4BACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,0BACf,cAAC66E,EAAA,EAAD,CAAU76E,KAAK,SACb+6E,KAAM/qE,GAAI,SAAU,WAAa0xC,GACjCrpC,KAAMD,GACNvQ,QAAS,CAAE22D,UAAW,WAExB,cAACqc,EAAA,EAAD,CAAU76E,KAAK,YACb+6E,KAAM/qE,GAAI,SAAU,cAAgBgrE,iBACpC3iE,KAAM4iE,iBACNpzE,QAAS,CAAE22D,UAAW,gBCxNhC0c,IAASxsE,OAAO,cAAC,GAAD,IAASypB,SAASC,eAAe,SCNzC,kBAAmB+iD,WAEnBC,OAAOC,iBAAiB,QAAQ,WAG5BF,UAAUG,cAAcC,SAFb,UAGNzgF,MAAK,SAAC0gF,GACHl5E,QAAQ0K,IAAI,6CAFpB,OAIW,SAAU3K,GACbC,QAAQD,MAAM,uBAAwBA,U,0JCLpDo5E,EAAS,cACTC,EAAW,8BAA0BD,EAA1B,KACXE,EAAW,cACXC,EAAW,gCAA4BD,EAA5B,wBAAuDD,EAAvD,KACXG,EAAY,gCAA4BD,EAA5B,KACZE,EAAa,iCAA6BD,EAA7B,KAEbE,EAAqB,cACrBC,EAA2B,0CAAsCD,EAAtC,KAG3BE,EAAU,SAACjgF,GACf,OAAQA,GACN,IAAK,YACH,OAAOy/E,EAET,IAAK,cACH,OAAOC,EAET,IAAK,cACD,OAAOC,EAEX,IAAK,cACD,OAAOC,EAEX,IAAK,eACD,OAAOC,EAEX,IAAK,gBACH,OAAOC,EAET,IAAK,6BACH,MA1B2B,cA4B7B,IAAK,wBACD,OAAOC,EAEX,IAAK,8BACD,OAAOC,IAMTnc,EAAU,SAAC7jE,EAAU0C,EAAMwe,GAAW,IAAD,EAEXxe,EAAKA,KAA5BvD,EAFkC,EAElCA,GAAI6E,EAF8B,EAE9BA,KAASoH,EAFqB,6BAInCgrC,EAAW,GAEjB,OAAQp2C,GACN,IAAK,YACHo2C,EAASwuB,UAAY,CAAEzlE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAC7D,MAEF,IAAK,cACH,IAAMmmB,EAAYp3B,EAAOo3B,UACzB4T,EAASwuB,UAAYpiC,EAAY,CAAErjC,GAAIqjC,EAAUrjC,GAAI6E,KAAMw+B,EAAUx+B,KAAMqY,KAAM6E,EAAK,UAAcvhB,MAAM0c,MAAS,KACnH+5B,EAASyuB,YAAc,CAAE1lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAC/D,MAEF,IAAK,cACH,IAAM0mB,EAAc33B,EAAO23B,YACrBP,EAAYO,GAAeA,EAAYP,UAC7C4T,EAASwuB,UAAYpiC,EAAY,CAAErjC,GAAIqjC,EAAUrjC,GAAI6E,KAAMw+B,EAAUx+B,KAAMqY,KAAM6E,EAAK,UAAcvhB,MAAM0c,MAAS,KACnH+5B,EAASyuB,YAAc9hC,EAAc,CAAE5jC,GAAI4jC,EAAY5jC,GAAI6E,KAAM++B,EAAY/+B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS4uB,YAAc,CAAE7lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAC/D,MAEF,IAAK,cACH,IAAM0mB,EAAc33B,EAAO23B,YACrBnG,EAAcxxB,EAAOwxB,YACrB4F,EAAYO,GAAeA,EAAYP,UAC7C4T,EAASwuB,UAAYpiC,EAAY,CAAErjC,GAAIqjC,EAAUrjC,GAAI6E,KAAMw+B,EAAUx+B,KAAMqY,KAAM6E,EAAK,UAAcvhB,MAAM0c,MAAS,KACnH+5B,EAASyuB,YAAc9hC,EAAc,CAAE5jC,GAAI4jC,EAAY5jC,GAAI6E,KAAM++B,EAAY/+B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS4uB,YAAcpoC,EAAc,CAAEz9B,GAAIy9B,EAAYz9B,GAAI6E,KAAM44B,EAAY54B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS0uB,YAAc,CAAE3lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAC/D,MAEF,IAAK,eACH,IAAM5L,EAAcrF,EAAOqF,YACrBmsB,EAAcnsB,GAAeA,EAAYmsB,YACzCmG,EAActyB,GAAeA,EAAYsyB,YACzCP,EAAYO,GAAeA,EAAYP,UAC7C4T,EAASwuB,UAAYpiC,EAAY,CAAErjC,GAAIqjC,EAAUrjC,GAAI6E,KAAMw+B,EAAUx+B,KAAMqY,KAAM6E,EAAK,UAAcvhB,MAAM0c,MAAS,KACnH+5B,EAASyuB,YAAc9hC,EAAc,CAAE5jC,GAAI4jC,EAAY5jC,GAAI6E,KAAM++B,EAAY/+B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS4uB,YAAcpoC,EAAc,CAAEz9B,GAAIy9B,EAAYz9B,GAAI6E,KAAM44B,EAAY54B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS0uB,YAAcr0D,EAAc,CAAEtR,GAAIsR,EAAYtR,GAAI6E,KAAMyM,EAAYzM,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS2uB,aAAe,CAAE5lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAChE,MAEF,IAAK,gBACH,IAAMkzB,EAAenkC,EAAOmkC,aACtB9+B,EAAc8+B,GAAgBA,EAAa9+B,YAC3CmsB,EAAcnsB,GAAeA,EAAYmsB,YACzCmG,EAActyB,GAAeA,EAAYsyB,YACzCP,EAAYO,GAAeA,EAAYP,UAC7C4T,EAASwuB,UAAYpiC,EAAY,CAAErjC,GAAIqjC,EAAUrjC,GAAI6E,KAAMw+B,EAAUx+B,KAAMqY,KAAM6E,EAAK,UAAcvhB,MAAM0c,MAAS,KACnH+5B,EAASyuB,YAAc9hC,EAAc,CAAE5jC,GAAI4jC,EAAY5jC,GAAI6E,KAAM++B,EAAY/+B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS4uB,YAAcpoC,EAAc,CAAEz9B,GAAIy9B,EAAYz9B,GAAI6E,KAAM44B,EAAY54B,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS0uB,YAAcr0D,EAAc,CAAEtR,GAAIsR,EAAYtR,GAAI6E,KAAMyM,EAAYzM,KAAMqY,KAAM6E,EAAK,YAAgBvhB,MAAM0c,MAAS,KAC7H+5B,EAAS2uB,aAAex1B,EAAe,CAAEpwC,GAAIowC,EAAapwC,GAAI6E,KAAMurC,EAAavrC,KAAMqY,KAAM6E,EAAK,aAAiBvhB,MAAM0c,MAAS,KAClI+5B,EAASmgC,cAAgB,CAAEp3E,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MACjE,MAEF,IAAK,6BACH+5B,EAAS6uB,2BAA6B,CAAE9lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAC9E,MAEF,IAAK,wBACH+5B,EAAS8uB,sBAAwB,CAAE/lE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MACzE,MAEF,IAAK,8BACH,IAAMykB,EAAwB11B,EAAO01B,sBACrCsV,EAAS8uB,sBAAwBpkC,EAAwB,CAAE3hC,GAAI2hC,EAAsB3hC,GAAI6E,KAAM88B,EAAsB98B,KAAMqY,KAAM6E,EAAK,sBAA0BvhB,MAAM0c,MAAS,KAC/K+5B,EAAS+uB,4BAA8B,CAAEhmE,KAAI6E,OAAMqY,KAAM6E,EAAMlhB,GAAUL,MAAM0c,MAKnF,OAAO+5B,G,OCtHH3oC,EAAYC,aAAW,SAAA1E,GAAK,YAAK,CACrC6O,MAAI,GACFxD,QAAS,OACTyB,UAAW,GACXxB,WAAY,aACZsB,WAAY,GACZ6tC,cAAe,EACf57B,eAAgB,YANd,cAOD7e,EAAMC,YAAY6gB,GAAG,MAAQ,CAC5BmvB,YAAa,EACbC,aAAc,IATd,cAWDlwC,EAAMC,YAAYC,KAAK,MAAQ,CAC9BgwC,aAAclwC,EAAM2L,QAAQ,KAZ5B,cAcD3L,EAAMC,YAAYC,KAAK,MAAQ,CAC9B0J,QAAS5J,EAAM2L,QAAQ,GACvB7G,gBAAiB9E,EAAM4E,QAAQ6L,WAAWC,QAhB1C,GAmBJwmE,SAAU,CACR9qE,OAAQ,EACRmjC,aAAc,GAEhB4nC,UAAW,CACT/qE,OAAQ,OAwCGgrE,IApCa,SAAC,GAAsC,IAApCx5E,EAAmC,EAAnCA,SAAU5G,EAAyB,EAAzBA,SAAaL,EAAY,uCAE1DuO,EAAUT,IACV20D,EAAkBnhD,aAAY,SAAAC,GAAK,OAAIA,EAAM2R,QAAU3R,EAAM2R,OAAOwvC,kBAAiBpmC,KAH3B,ED4FnD,SAASj8B,EAAUb,GAEhC,IAAMkhF,EAAiBp/D,aAAY,SAACC,GAAD,OAAWA,EAAMC,MAAMC,aAFtB,EAIVpa,mBAAS,CACjCtE,UAAMO,EACNoD,MAAO,KACP1D,SAAS,EACTC,QAAQ,IAR0B,mBAI7Bse,EAJ6B,KAItB4zB,EAJsB,KA2CpC,OAhCAl0C,qBAAU,WAAM,4CAEd,sBAAAwqB,EAAA,sDAEEle,IAAiBk+B,MAAM,CACrBA,MAAO/9B,kBAAF,+HAAcrN,EAA6BA,EACpCA,EAA2BigF,EAAQjgF,IAE/CsN,UAAW,CAAEL,MAAO,CAAC9N,OACrB2zC,YAAa,iBAEdh0C,MAAK,YAAe,IAAZ4D,EAAW,EAAXA,KACPoyC,EAAS,CACLpyC,KAAMmhE,EAAQ7jE,EAAU0C,EAAM29E,GAC9B19E,SAAS,EACTC,QAAQ,OAXd,OAcO,SAAAyD,GACHyuC,EAAS,CACLzuC,QACA1D,SAAS,EACTC,QAAQ,OApBlB,4CAFc,sBA2BVzD,GA3BW,WAAD,wBA2BNmsB,KAGP,CAACtrB,EAAUb,IAEP+hB,ECjI0Bo/D,CAAqBtgF,EAAUL,EAAM+C,MAAQ/C,EAAM+C,KAAKvD,IAAjFuD,EANwD,EAMxDA,KAAMC,EANkD,EAMlDA,QAEd,OARgE,EAMzC0D,MAEL,KAEd1D,EAEA,cAACy/B,EAAA,EAAD,CAAax6B,aAAW,aAAagB,UAAWsF,EAAQ2J,KAAxD,SACGrP,WAASjK,IAAIqI,GAAU,SAACa,EAAGwJ,GAAJ,OAAe,cAACsvE,EAAA,EAAD,CAAU75E,QAAQ,OAAOgO,MAAO,IAAKG,OAAQ,GAAgB3G,QAAS,CAAE2J,KAAM3J,EAAQgyE,WAAhCjvE,QAMjG,cAACmxB,EAAA,EAAD,CAAax6B,aAAW,aAAagB,UAAWsF,EAAQ2J,KAAM3J,QAAS,CAAEiyE,UAAWjyE,EAAQiyE,WAA5F,SACG33E,WAASjK,IAAIqI,GAAU,SAAA45E,GACtB,IAAMxgF,EAAWwgF,EAAW7gF,MAAMK,SAC5BqK,EAAS3H,EAAK1C,GAEpB,OAAOqK,GAAU+3D,GAAmB35D,yBAAe+3E,GAC/C93E,uBAAa83E,EAAY,CACzBn2E,SACA5F,UAAwC,IAA9B29D,EAAgBpiE,KAE1B,Y,qNCnECksB,EAAkB,CAC3Bu0D,KAAM,UAAWC,MAAO,UAAWC,IAAK,UACxCC,KAAM,UAAWC,OAAQ,WAGhBzqB,EAAY,SAACpyD,GACtB,IAAIuZ,EAAU4e,SAAS2kD,OAAOtjE,MAAM,IAAIujE,OACpC,WAAa/8E,EAAKqlB,QAAQ,+BAAgC,QAAU,aAExE,OAAO9L,EAAUyjE,mBAAmBzjE,EAAQ,SAAMta,GAGzCi+D,EAAY,SAACl9D,EAAMlC,GAAyB,IAAlB+J,EAAiB,uDAAP,IAE7CA,EAAO,aACHrJ,KAAM,KAEHqJ,IAGKo1E,SAAWp1E,EAAQo1E,QAAQC,cACnCr1E,EAAQo1E,QAAUp1E,EAAQo1E,QAAQC,eAGtC,IAAIC,EAAgB53D,mBAAmBvlB,GAAQ,IAAMulB,mBAAmBznB,GAExE,IAAK,IAAIs/E,KAAav1E,EAAS,CAC3Bs1E,GAAiB,KAAOC,EACxB,IAAI31D,EAAc5f,EAAQu1E,IACN,IAAhB31D,IACA01D,GAAiB,IAAM11D,GAI/B0Q,SAAS2kD,OAASK,GAGTxa,EAAe,SAAC3iE,GAAwB,IAAlB6H,EAAiB,uDAAP,GACzCq1D,EAAUl9D,EAAM,GAAP,YAAC,eACH6H,GADE,IAEL,WAAY,MAIPoS,EAAY,kBAAM,I,0KCrCzBqzB,EAAWC,yBAAe,CAC9BC,IAAKk4B,MAGDh4B,EAAWC,YAAU,uCAAC,WAAOlqC,EAAP,oBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,cAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAad2zB,EAAmB,IAAI/yB,eAAa,CAC/CpzB,KAAMiyB,EACNoB,MAAO,IAAIC,kBAGAg1B,EAA2B,IAAIl1B,eAAa,CACvDpzB,KAAMqyB,EAAS54B,OAAOw4B,GACtBoB,MAAO,IAAIC,gBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,eACb6yB,YAAa,UAEfv6B,MAAO,CACL0H,YAAa,eACb6yB,YAAa,W,gCCvCnB0b,w5BAAQ,KAAUC,SAElB,IAAMC,EAAsEnC,OAAOoC,IAEtEnnB,EAAYknB,EAAWE,qBAAuB,8FAC9C1b,EAAwB,QACxB2b,EAAiB,QACjB3lB,EAAiB,UAAM2lB,EAAN,eACjBpb,EAAoB,UAAMob,EAAN,kBACpBrb,EAAgBkb,EAAWI,yBAA2B,YACtD1gF,EAAa,UAAMygF,EAAN,YACblgB,EAAe+f,EAAWK,gBAAkB,wBAC5CtrB,EAAkBirB,EAAWM,mBAAqB,QAClDxrB,EAAsB,UAAMqrB,EAAN,oBACtBI,EAAiB,UAAMJ,EAAN,sBACjBK,EAAuBR,EAAWS,gCAAkCC,SAASV,EAAWS,iCAAmC,KAC3HE,EAAmCX,EAAWY,4CAA8CF,SAASV,EAAWY,6CAA+C,EAG/Jzc,EAAW6b,EAAWa,oBAAsB,wBAC5CC,EAAUd,EAAWe,mBAAqB,sBAC1Czc,EAAW0b,EAAWgB,oBAAsB,wBAC5C7Y,EAAW6X,EAAWiB,oBAAsB,wBAC5CC,EAAWlB,EAAWmB,oBAAsB,wBAC5CC,EAAqBpB,EAAWqB,8BAAgC,wBAChEC,EAActB,EAAWuB,uBAAyB,iCAClDC,EAAaxB,EAAWyB,sBAAwB,+BAChD5tC,EAAiBmsC,EAAW0B,0BAA4B,wBACxDC,EAAmB3B,EAAW4B,4BAA8B,wBAC5DC,EAAc7B,EAAW8B,uBAAyB,wBAClD5xC,EAAgB8vC,EAAW+B,yBAA2B,gCACtDrxC,EAAesvC,EAAWgC,wBAA0B,8BACpDr6B,EAAsBq4B,EAAWiC,+BAAiC,wBAClEC,EAAiBlC,EAAWmC,0BAA4B,qC,iCCjCrE,0IAIA,IAAMzE,EAAgBv/E,K,oOCuBhB8jB,EAAe,SAAC,GAAoD,IAAnD5a,EAAkD,EAAlDA,UAAW5D,EAAuC,EAAvCA,MAAe+Y,GAAwB,EAAhC1T,OAAgC,EAAxB0T,UAAwB,yDACrE,OAAQ,cAAC,IAAD,CAAM/Y,MAAOA,EAAO4D,UAAWA,EAAWmV,SAAUA,KA6X1DtQ,EAAYC,aACd,SAAA1E,GACI,IAAM26E,EACqB,UAAvB36E,EAAM4E,QAAQ4J,KACR,sBACA,4BAEV,MAAO,CACHyP,UAAW,CACP4R,SAAU,EACVrkB,SAAU,YAEdoM,KAAM,CACFxL,OAAQpM,EAAM2L,QAAQ,GAAK,GAAK,GAAK,IAEzCivE,oBAAqB,CACjBxuE,OAAQ,oBAEZyuE,UAAW,CACPhuE,SAAU,QAEdiuE,gBAAiB,CACbjuE,SAAU,OACV,UAAW,CACP/H,gBAAiB61E,IAGzBI,WAAY,CACRrvE,MAAO,OACPmkB,SAAU,MAItB,CAAE70B,KAAM,6BAGG+O,IA9ZgB,SAAApT,GAAU,IAEjCqkF,EAwCArkF,EAxCAqkF,gBACAzuE,EAuCA5V,EAvCA4V,WAHgC,GA0ChC5V,EAtCAuO,QAsCAvO,EArCAgrB,gBALgC,MAKtB,GALsB,EAMhC1L,EAoCAtf,EApCAsf,UACA2Y,EAmCAj4B,EAnCAi4B,WACAptB,EAkCA7K,EAlCA6K,OACAwH,EAiCArS,EAjCAqS,UACAwD,EAgCA7V,EAhCA6V,WACIujB,EA+BJp5B,EA/BAR,GACO65B,EA8BPr5B,EA9BA6b,MACYyd,EA6BZt5B,EA7BA60B,WACAxvB,EA4BArF,EA5BAqF,MACAmxB,EA2BAx2B,EA3BAw2B,oBAfgC,EA0ChCx2B,EA1BAyV,cAhBgC,MAgBvB,QAhBuB,EAiBhCiJ,EAyBA1e,EAzBA0e,gBACM6a,EAwBNv5B,EAxBA80B,KACAL,EAuBAz0B,EAvBAy0B,OACAlb,EAsBAvZ,EAtBAuZ,SACAmb,EAqBA10B,EArBA00B,QArBgC,EA0ChC10B,EApBAkM,QACImH,GAvB4B,aA2B5B,GA3B4B,GAuB5BA,0BACAmmB,EAxB4B,EAwB5BA,WAEGttB,GA1ByB,EAyB5B+P,WAzB4B,0EA0ChCjc,EAdA8e,kBA5BgC,MA4BnB,OA5BmB,IA0ChC9e,EAbA8rB,mBA7BgC,MA6BlB,KA7BkB,EA8BhC3qB,EAYAnB,EAZAmB,MACAd,EAWAL,EAXAK,SACAgtB,EAUArtB,EAVAqtB,UACyBqM,GASzB15B,EATA25B,wBACAp0B,GAQAvF,EARAuF,OACAq0B,GAOA55B,EAPA45B,gBAnCgC,GA0ChC55B,EANAggB,wBApCgC,WAqChC2E,GAKA3kB,EALA2kB,SArCgC,GA0ChC3kB,EAJA+G,gBAtCgC,OAsCtB,SAtCsB,MA0ChC/G,EAHAwe,qBAvCgC,OAuCjB,cAACqF,EAAD,IAvCiB,MA0ChC7jB,EAFAye,uBAxCgC,OAwCf,cAAC,IAAD,IAxCe,GAyC7B5a,GAzC6B,YA0ChC7D,EA1CgC,yaA2CpC85B,YACIhxB,yBAAegW,KAAgBJ,EAD5B,yLASP,IAAMnQ,GAAUT,EAAU9N,GAEtB+5B,GAAUxf,mBACVjT,GAAWiT,mBAvDqB,GA8DhCqa,YAAS,aACT/pB,SACArL,GAAI45B,EACJvd,MAAOwd,EACPvE,KAAMyE,EACN9E,SACAlb,WACAmb,UACAvzB,QACAd,WACAkF,UACAof,aACG9gB,KAhBHrE,GA1DgC,GA0DhCA,GACAqc,GA3DgC,GA2DhCA,MACAgZ,GA5DgC,GA4DhCA,WA5DgC,MA6DhCC,KAAQtd,GA7DwB,GA6DxBA,QAAS9Q,GA7De,GA6DfA,MAgBfwL,GAAS2J,GAAM1Z,OAAS,GA7EM,GA+EEiF,IAAMC,SAAS,IA/EjB,qBA+E7BoW,GA/E6B,MA+EhBuc,GA/EgB,MAiF9BC,GAAyBz2B,uBAC3B,SAAArB,GAAK,OAAI6oB,EAAQnZ,MAAK,SAAAoZ,GAAM,OAAIzpB,IAAIypB,EAAQa,KAAiB3pB,OAC7D,CAAC6oB,EAASc,IAGRw4D,GAAgB16E,mBAAQ,kBAAMsI,GAAOtT,IAAIq7B,MAAyB,CACpEA,GACA/nB,KAxFgC,GA2FsBgoB,YAAe,CACrEmqD,kBACAzuE,aACAoV,UACA1L,YACA2Y,aACAzB,sBACA9X,kBACAI,aACAgN,cACAtN,aAAc8lE,GACd1qD,mBACA5Z,qBAZIqV,GA3F4B,GA2F5BA,cAAeC,GA3Fa,GA2FbA,eAAgB6E,GA3FH,GA2FGA,eAejCC,GAAqB52B,uBACvB,SAAC62B,GACG,IAAMj2B,EAAQi2B,EACRl4B,EAAQiC,EAAME,OACdF,EAAME,OAAOnC,MACZk4B,EAEPL,GAAe73B,GACXkrB,GACAA,EAAUlrB,KAGlB,CAACkrB,EAAW2M,KAOhB/4B,qBAAU,WACNm5B,GAAmB,MACpB,CAACloB,GAAOV,KAAK,KAAM4oB,KAEtB,IAAMmqD,GAAgB/gF,uBAClB,SAACY,GAEG,GACIkgF,GAAc7/E,SACbgZ,GAAYhZ,QACC,cAAdL,EAAMf,IACR,CACE,IAAMmhF,EAAmBF,GAAc5kF,MACnC,EACA4kF,GAAc7/E,OAAS,GAE3BoX,GAAMtC,SAASirE,EAAiB5lF,IAAI02B,QAG5C,CAAC7X,GAAYhZ,OAAQ6wB,GAAgBzZ,GAAOyoE,KAG1Cr0D,GAAezsB,uBACjB,SAACmI,GACG,IAAI64E,GACCH,GAAmBC,GAAc//E,SAASoH,GAA3C,YACU24E,IADV,sBAEUA,IAFV,CAEyB34E,IAC7BquB,GAAe,IACfne,GAAMtC,SAASirE,EAAiB5lF,IAAI02B,OAExC,CAAC+uD,EAAiB/uD,GAAgBzZ,GAAOyoE,GAAetqD,KAGtDyqD,GAAejhF,uBACjB,SAAAmI,GAAI,OAAI,WACJ,IAAM64E,EAAgB,YAAOF,IAC7BE,EAAiBE,OAAOF,EAAiBG,QAAQh5E,GAAO,GACxDkQ,GAAMtC,SAASirE,EAAiB5lF,IAAI02B,QAExC,CAACzZ,GAAOyoE,GAAehvD,KA+BrBgF,GAAgB,SAAAze,GAClBke,GAAQzhB,QAAUuD,EA3BC,WACnB,GAAKke,GAAQzhB,QAAb,CAIA,IAAMiiB,EAAgBR,GAAQzhB,QAAQkiB,wBAKtC,GAAKlzB,GAASgR,QAEP,CACH,IAAMmiB,EAAiBnzB,GAASgR,QAAQkiB,wBAGpCC,EAAerW,IAAMmW,EAAcnW,GACnCqW,EAAepW,IAAMkW,EAAclW,IAEnC/c,GAASgR,QAAU,CACfkiB,sBAAuB,kBAAMD,UATrCjzB,GAASgR,QAAU,CAAEkiB,sBAAuB,kBAAMD,KAiBtDG,IAGEC,GAAan3B,uBACf,SAAAY,GACI41B,GAAe,IACfI,GAAmB,IACnBve,GAAM4Y,OAAOrwB,KAEjB,CAACg2B,GAAoBve,GAAOme,KAG1BY,GAAcp3B,uBAChB,SAAAq3B,GAAQ,OAAI,SAAAz2B,GACRy2B,EAASz2B,GACTyX,GAAM6Y,QAAQtwB,MAElB,CAACyX,KAGCxV,GAAc7C,uBAChB,SAAAq3B,GAAQ,OAAI,SAAAz2B,GACJA,EAAME,SAAWy1B,GAAQzhB,SACzBuiB,EAASz2B,MAGjB,IAcJ,OACI,cAAC,IAAD,yBACI02B,WAAYrd,GACZlE,SAAU0W,GACVzR,aAAc8lE,GACdvpD,aAAc,SAAApvB,GAAI,OAAI2pB,GAAe3pB,KACjC9H,IALR,aAOK,YASM,IA5BiBm3B,EAoBpBC,EAQE,EARFA,cACAC,EAOE,EAPFA,aACAC,EAME,EANFA,cACAC,EAKE,EALFA,aACAC,EAIE,EAJFA,OACYupD,EAGV,EAHF9pD,WACAvd,EAEE,EAFFA,iBACAsd,EACE,EADFA,SAEMS,EACFD,IA9BgBL,EA8BkB4pD,OA5BNthF,IAApCo2B,IAC2C,oBAApCA,IAEAA,GAAgCsB,IAuBjC,EAYEC,EAAc,CACdxG,OAAQkG,GACRjG,QAASkG,GAAYC,GACrB11B,QAASkB,GAAYw0B,GACrBqwB,UAAWq5B,KAXX9vD,GALF,EAIEj1B,GAJF,EAKEi1B,QAEAC,GAPF,EAMEnb,SANF,EAOEmb,SAEAtvB,GATF,EAQEuS,IARF,EASEvS,OACAkD,EAVF,EAUEA,KACGqsB,EAXL,yEAkBF,OACI,sBAAK1rB,UAAWsF,GAAQ+Y,UAAxB,UACI,cAAC,IAAD,yBACI9nB,GAAIA,GACJ6S,UAAWA,EACX4J,WAAY,CACR+X,SAAUsG,GACV/rB,QAAS,CACL2J,KAAMkI,IAAW7R,GAAQ21E,UAAT,eACX31E,GAAQ41E,gBACO,WAAZp9E,KAER8U,MAAOtN,GAAQ61E,YAEnBn3B,eACI,qBACIhkD,UAAWmX,IAAW,eACjB7R,GAAQ01E,oBACO,WAAZl9E,KAHZ,SAMKu9E,GAAc1lF,KAAI,SAAC+M,EAAM2F,GAAP,OACflK,IAAM2B,aAAayV,GAAc,CAC7Bnb,IAAKiO,EACL25C,UAAW,EACX5lD,MAAOgwB,GAAc1pB,GACrBjB,OAAQiB,EACR1C,UAAWsF,GAAQ0S,KACnB7C,SAAUqmE,GAAa94E,UAKvC8oB,SACAlb,SAAU,SAAAnV,GACNg2B,GAAmBh2B,IAEvBswB,WAEJhuB,SAAU8Q,KAAW9Q,IACrBrB,MACI,cAAC,IAAD,yBACIA,MAAOA,GACHm0B,GAFR,IAGIj0B,OAAQA,GACRlF,SAAUA,EACVw0B,WAEI,qBADOyE,EAEDA,EACAzE,MAIlB2G,gBAAiBL,EAAc,CAC3B1F,QAASj2B,KAEbqW,WACI,cAAC,IAAD,CACI2B,QAASA,GACT9Q,MAAOA,GACPmP,WAAYA,IAGpB9O,QAASA,GACT0O,OAAQA,EACRrQ,MAAOA,EACPkD,KAAMA,GACFqsB,GACAzoB,IAER,cAAC,IAAD,CACImvB,OAAQC,EACRI,UAAWN,EACP,GAEA,CAAEO,kBAAkB,IAExB5B,QAASA,GAAQzhB,QACjBjF,0BACIA,EATR,SAYK8mB,GAAeyqD,GAAkBhmF,KAC9B,SAAC0e,EAAYhM,GAAb,OACIlK,IAAM2B,aAAa0V,GAAnB,aACIpb,IAAKiyB,GAAehY,GACpBA,aACAhM,QACAiM,mBACAC,WAAY8mE,GAAc1lF,IAAI02B,IAAgB/wB,SAAS+wB,GAAehY,IACtEG,eACAC,kBAAmB2X,IAChB6F,EAAa,CAACvvB,KAAM2R,oB,mEClYhDvd,IARf,SAAcC,GACZ,OACE,cAAC,IAAD,2BAAaA,GAAb,aACE,sBAAME,EAAE,wL,8JCKR4N,EAAYC,aAAW,SAAA1E,GAAK,YAAK,CAC/Bie,WAAS,GACL5S,QAAS,OACT6b,cAAe,SACfrI,eAAgB,UAHX,cAIJ7e,EAAMC,YAAY6gB,GAAG,MAAQ,CAC1BjV,OAAQ,SALP,cAOJ7L,EAAMC,YAAYC,KAAK,MAAQ,CAC5B2L,OAAQ,QACRlF,UAAW,SATV,GAYT0M,KAAM,CACF3H,MAAO,MACPG,OAAQ,OAEZ7F,QAAS,CACL0Q,UAAW,SACX8kE,WAAY,qBACZvmC,QAAS,GACT7oC,OAAQ,SAEZ+R,QAAS,CACLzH,UAAW,SACX/P,UAAW,OAEf80E,IAAK,CACD1nE,WAAY,OAGpB,CAAE/Y,KAAM,iBAiDNmB,EAAoB,SAAC,GAAD,EACtBswD,cADsB,EAEtBt7C,QAFsB,EAGtBwL,SAHsB,EAItBnI,MAJsB,sEAeX6H,IArDA,SAAA1lB,GAAU,IACbiJ,EAAkGjJ,EAAlGiJ,UAA+CxD,GAAmDzF,EAAvFuO,QAAuFvO,EAA7DK,SAA6DL,EAAnDyF,UAAUiF,EAAyC1K,EAAzC0K,OAAQ7C,EAAiC7H,EAAjC6H,MAAOud,EAA0BplB,EAA1BolB,aAAiBvhB,EAD7E,YACsF7D,EADtF,+EAEduO,EAAUT,EAAU9N,GACpB8D,EAAYC,cAElB,OADAu7D,cAEI,8CACIr2D,UAAW0M,IAAWpH,EAAQ+Y,UAAWre,IACrCzD,EAAkB3B,IAF1B,cAII,cAAC,IAAD,CAAOgE,MAAOA,EAAOud,aAAcA,EAAc1a,OAAQA,IACzD,sBAAKzB,UAAWsF,EAAQc,QAAxB,UACI,cAAC,IAAD,CAAYpG,UAAWsF,EAAQmO,OAC/B,6BAAK5Y,EAAU,qBACf,gCAAMA,EAAU,sBAAhB,UAEJ,sBAAKmF,UAAWsF,EAAQiZ,QAAxB,UACI,cAAC,IAAD,CACIzgB,QAAQ,YACRiY,UAAWC,IACXC,GAAIzZ,EACJwD,UAAWsF,EAAQu2E,IAJvB,SAMKhhF,EAAU,oBAEf,cAAC,IAAD,CACIiD,QAAQ,YACRiY,UAAWC,IACXC,GAAE,aACFjW,UAAWsF,EAAQu2E,IAJvB,SAMKhhF,EAAU,mC,mEClEhB8hB,IAZQ,SAAC,GAA4C,IAA1CvlB,EAAyC,EAAzCA,SAAUkF,EAA+B,EAA/BA,OAAQmF,EAAuB,EAAvBA,OAClC5G,GADyD,8CAC7CC,eAElB,IAAK2G,EAAQ,OAAO,KACpB,IAAMq6E,EAAejhF,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEwM,YAAa,IACtEm4E,EAAaxjF,cAAIkJ,EAAQnF,GAE/B,MAAM,GAAN,OAAUw/E,GAAV,OAA0BC,EAAD,WAAmBA,GAAnB,YAAuCt6E,EAAOlL,O,qHCJrEsO,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACT6b,cAAe,SACf5b,WAAY,SACZuT,eAAgB,SAChBgR,SAAU,EACVnkB,MAAO,OACPG,OAAQ,OACRe,WAAY5M,EAAM2L,UAClB8uC,cAAez6C,EAAM2L,QAAQ,GAC7BspC,QAAS,IAEb5hC,KAAM,CACFoK,aAAc,OAIhBznB,EAAQ,SAAC,GAA2C,IAA1C4J,EAAyC,EAAzCA,UAAWpB,EAA8B,EAA9BA,MAAOgvC,EAAuB,EAAvBA,QAAY72C,EAAW,+CAC/CuO,EAAUT,EAAU9N,GACpB8D,EAAYC,cAClB,OACI,sBAAKkF,UAAW0M,IAAWpH,EAAQ2J,KAAMjP,GAAzC,UACI,cAAC,IAAD,CAAYA,UAAWsF,EAAQmO,KAAM7V,SAAS,UAC7CgB,GAAS,cAAC,IAAD,CAAYd,QAAQ,QAApB,SAA8BjD,EAAU+D,EAAO,CAACC,EAAGD,MAC5DgvC,GAAW,cAAC,IAAD,CAAY9vC,QAAQ,UAApB,SAAgCjD,EAAU+yC,EAAS,CAAC/uC,EAAG+uC,UAK/Ex3C,EAAMgD,aAAe,CACjBwF,MAAO,gBACPgvC,QAAS,oBAIEx3C,O,4GCpCTyO,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFxD,QAAS,OACT6b,cAAe,SACf5b,WAAY,SACZuT,eAAgB,SAChBgR,SAAU,EACVnkB,MAAO,OACPG,OAAQ,OACRe,WAAY5M,EAAM2L,UAClB8uC,cAAez6C,EAAM2L,QAAQ,GAC7BspC,QAAS,IAEb5hC,KAAM,CACFoK,aAAc,OAIhB8vB,EAAU,SAAC,GAA2C,IAA1C3tC,EAAyC,EAAzCA,UAAWpB,EAA8B,EAA9BA,MAAOgvC,EAAuB,EAAvBA,QAAY72C,EAAW,+CACjDuO,EAAUT,EAAU9N,GACpB8D,EAAYC,cAClB,OACI,sBAAKkF,UAAW0M,IAAWpH,EAAQ2J,KAAMjP,GAAzC,UACI,cAAC,IAAD,CAAkBA,UAAWsF,EAAQmO,KAAMpU,KAAM,GAAIlD,MAAM,YAC1DyC,GAAS,cAAC,IAAD,CAAYd,QAAQ,QAApB,SAA8BjD,EAAU+D,EAAO,CAACC,EAAGD,MAC5DgvC,GAAW,cAAC,IAAD,CAAY9vC,QAAQ,UAApB,SAAgCjD,EAAU+yC,EAAS,CAAC/uC,EAAG+uC,UAK/ED,EAAQv0C,aAAe,CACnBwF,MAAO,kBACPgvC,QAAS,sBAGED,O,wJCtCTquC,EAAoBv3E,kBAAH,gaCsBRw3E,EAvBgB,SAACllF,GAAW,IAEjCyF,EAA2BzF,EAA3ByF,SAAUjG,EAAiBQ,EAAjBR,GAAIa,EAAaL,EAAbK,SAChByD,EAAYC,cACZoC,EAASC,cACTof,EAAUk8C,cALwB,EDsB3B,SAASrhE,EAAUb,EAAIgmB,GAAU,IAAD,EAEjBne,mBAAS,CAC/BtE,UAAMO,EACNoD,MAAO,KACP1D,SAAS,EACTC,QAAQ,IAN+B,mBAEpCse,EAFoC,KAE7B4zB,EAF6B,KAoC3C,OA3BAl0C,qBAAU,WAEDzB,IAEL21C,GAAS,SAAAgwC,GAAS,kCAAUA,GAAV,IAAqBniF,SAAS,OAEhDuK,IAAiBk+B,MAAM,CACnBA,MAAOw5C,EACPt3E,UAAW,CAAEnO,MACb2zC,YAAa,iBAEZh0C,MAAK,YAAuB,IAAb4D,EAAY,EAAnBA,KAAOA,KACZoyC,EAAS,CACLpyC,OACAC,SAAS,EACTC,QAAQ,OATpB,OAYW,SAAAyD,GACHyuC,EAAS,CACLzuC,QACA1D,SAAS,EACTC,QAAQ,UAGrB,CAAC5C,EAAUb,EAAIgmB,IAEXjE,ECpDwC6jE,CAAa/kF,EAAUb,EAAIgmB,GAA9D9a,EAN0B,EAMhC3H,KAAcC,EANkB,EAMlBA,QAASC,EANS,EAMTA,OAM/B,OAZwC,EAMDyD,OAE5BP,EAAO,oCAAqC,WAIhD,CACLnD,UACAC,SACAmiB,aALmBthB,EAAU,2BAA4B,CAAE+I,YAAa,IAMxExM,WACAoF,WACAiF,SACA8a,Y,4ECdE1X,EAAYC,YAAW,CACzBmK,KAAM,GACNhK,KAAM,CACFwG,QAAS,QAEbmR,UAAW,CACP7V,UAAW,OAEfohB,QAAS,CACLlU,KAAM,YAEVsK,QAAS,CACL9S,QAAS,OACTwT,eAAgB,mBA8BXm9D,EAAgB,SAAC,GAgBvB,IAfH7zD,EAeE,EAfFA,YACA/N,EAcE,EAdFA,QAEAhe,GAYE,EAbFwf,MAaE,EAZFxf,UAES6I,GAUP,EAXFrH,SAWE,EAVFsH,SACAtF,EASE,EATFA,UACAmc,EAQE,EARFA,aACAW,EAOE,EAPFA,QACAV,EAME,EANFA,QACA3a,EAKE,EALFA,OACArK,EAIE,EAJFA,SACAwH,EAGE,EAHFA,MAEGhE,GACD,EAFF2hB,QAEE,uKACIjX,EAAUT,EAAU,CAAES,QAASD,IAC/BzL,EAAO6H,GAAUA,EAAOmnC,IACxByzC,EAAa56E,GAAUA,EAAO46E,WAC9BC,EAAuBC,YAAmB3iF,GAEhD,GAAI6H,GAAUA,EAAO+a,QACjB,OACI,cAACC,EAAA,EAAD,CACIrlB,SAAUA,EACVoF,SAAUA,EACViF,OAAQA,EACR7C,MAAOA,EACPud,aAAcA,EACdC,QAASA,EACTU,QAASA,IAfnB,IA1CqB,EA0CrB,EAoB0D,WAAdu/D,EAA0BG,IAAuBF,EAAvF9N,EApBN,EAoBMA,UAAkBz0E,GApBxB,EAoBiB0D,MApBjB,EAoBwB1D,SApBxB,EAoBiCC,OAEnC,OACI,8CACIgG,UAAW0M,IAAW,YAAapH,EAAQ2J,KAAMjP,MAlElC,EAmEOpF,GAlE9B4f,QADsB,EAEtBwB,MAFsB,EAGtBpd,MAHsB,EAItBZ,SAJsB,EAKtBgC,UALsB,EAMtBzJ,GANsB,EAOtBuD,KAPsB,EAQtBC,QARsB,EAStBC,OATsB,EAUtB5C,SAVsB,EAWtBqJ,UAXsB,EAYtBqc,QAZsB,EAatBV,QAbsB,EActBC,QAdsB,EAetB88C,aAfsB,EAgBtB58C,QAhBsB,EAiBtB3H,MAjBsB,EAkBtBmI,SAlBsB,EAmBtBxL,QAnBsB,EAoBtBtO,QApBsB,EAqBtByT,OArBsB,EAsBtBwG,YAtBsB,+OAiElB,cAII,cAACP,EAAA,EAAD,CACI/d,MAAOA,EACP6C,OAAQA,EACR0a,aAAcA,IAElB,sBAAKnc,UAAWsF,EAAQiZ,QAAxB,UACKgK,GAAepqB,IAAM2B,aAAayoB,EAAa,CAC5C/rB,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,aAEHojB,GAAWrc,IAAM2B,aAAa0a,EAAnB,aACRhe,WACA1C,KAAM2H,EACN2a,UACAU,UACA1lB,WACAqH,MAAO,CAAE0V,WAAY,SAClBqG,EAAQzjB,WAInB,qBACIiJ,UAAW0M,IAAWpH,EAAQL,KAAT,eAChBK,EAAQsX,WAAapC,IAF9B,SAKI,sBAAKxa,UAAS,UAAKsF,EAAQ6iB,SAA3B,UACKpuB,GAAW,sDACXy0E,GAAarwE,IAAM0B,eAAe,cAAC2uE,EAAD,OAAiC,WAAd6N,EAA0B,cAAC7N,EAAD,aAAW/sE,OAAQA,GAAY7G,IAAW,cAAC4zE,EAAD,eAuB9I4N,EAAchjF,aAAe,CACzBkM,QAAS,I,6BC5IPm3E,EAAuB,SAAC,GAA0B,IAAxBphF,EAAuB,EAAvBA,OAAuB,0BACnD,OACI,eAACm+B,EAAA,EAAD,CAAapiC,SAAUiE,EAAOjE,SAAU0C,KAAM,CAAEvD,GAAI8E,EAAO9E,IAA3D,UACI,cAACkjC,EAAA,EAAD,CAAYriC,SAAU,cACtB,cAACqiC,EAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,EAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,EAAA,EAAD,CAAYriC,SAAU,gBACtB,cAACqiC,EAAA,EAAD,CAAYriC,SAAU,qBAoBnBg/E,UAfO,SAAAr/E,GAElB,IAAMgC,EAAkBkjF,EAAuBllF,GACzCsE,EAASi4B,IAAIp7B,MAAMnB,EAAMgmB,SAASzK,QAAQ,GAAMkwB,MAEtD,OACI,cAAC,EAAD,yBACIja,YAAa,cAAC,EAAD,CAAsBltB,OAAQA,IAC3CuD,MAAO,cAAC,IAAD,aAAgBtC,OAAO,QAAWvF,KACrCA,GACAgC,M,kFC3BVsc,EAAY,kBAAM,GAWT22B,UATsB,SAAAj1C,GAEjC,OACI,cAAC,IAAD,2BAAyBA,GAAzB,aACI,cAAC,IAAD,CAAwB0e,gBAAiBJ,S,4ICD/CxQ,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnC6O,KAAM,CACFlI,UAAW3G,EAAM2L,QAAQ,GACzB8R,aAAczd,EAAM2L,UACpB,gBAAiB,CACbhF,UAAW,QAiCjB21E,EAA0B,SAAC,GAAoC,IAAlC1+E,EAAiC,EAAjCA,SAAUyD,EAAuB,EAAvBA,OACnC7H,GAD0D,qCACnD6H,GAAUA,EAAOmnC,KAExB+zC,EAA0BJ,YAAmB3iF,GAC7C0iF,EAAuB76E,GAAUA,EAAO46E,YAAmC,WAArB56E,EAAO46E,WAA0BO,IAAsBD,EAE3GE,EAAqBP,EAArBO,iBAGFC,EAFgBD,GAAoBA,EAAiBzjF,cAAgByjF,EAAiBzjF,aAAao1B,eAE5D,CACzClQ,GAAI,GACJoD,GAAI,EACJD,GAAI,EACJD,GAAI,EACJG,GAAI,GAGR,OACI,cAAC,IAAD,yBAAMjf,MAAI,GAAKo6E,GAAf,aACKh9E,uBAAaF,WAASmY,KAAK/Z,GAAW,CACnCs+E,6BAMDltC,UArDkB,SAAC,GAAqH,IAAnHpxC,EAAkH,EAAlHA,SAAmBqH,EAA+F,EAAxGC,QAA0B7D,EAA8E,EAA9EA,OAAQnF,EAAsE,EAAtEA,OAAQlF,EAA8D,EAA9DA,SAAUoF,EAAoD,EAApDA,SAAU+f,EAA0C,EAA1CA,QAASvc,EAAiC,EAAjCA,UAAW5D,EAAsB,EAAtBA,MACtHkJ,GAD4I,4GAClIT,EAAU,CAAES,QAASD,KAC/BxK,EAAYC,cACZinB,EAAUxpB,IAAIkJ,EAAQnF,GACtBikB,EAAkB9e,EACxB,OAAKA,GAAWsgB,EAAQvmB,OAGpB,sBAAKwE,UAAS,UAAKsF,EAAQ2J,KAAb,YAAqBjP,GAAnC,UACK5D,GAAS,cAAC,IAAD,CAAY0B,QAAQ,YAAY3B,MAAM,gBAAgB4hB,cAAY,EAAChF,QAAM,EAAzE,SAA2Ele,EAAUuB,KAC/F,cAAC,IAAD,CAAMiiB,WAAS,EAACtS,QAAS,EAAzB,SACKgW,EAAQpsB,KAAI,SAAAqsB,GAAM,OACf,cAAC06D,EAAD,CAAyBj7E,OAAQugB,EAAjC,SACKliB,uBAAaF,WAASmY,KAAK/Z,GAAW,CACnCyD,OAAQugB,EACR5qB,WACAoF,WACA+f,UACAgE,qBANsCyB,EAAOzrB,YAP9B,O,qLCbrCsO,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnCyc,KAAM,GACNkgE,YAAa,CACT/vE,WAAY,GAEhBqa,eAAgB,GAChB21D,OAAQ,GACRp+E,MAAO,CACHkV,WAAY,IACZ3S,WAAY,MAEhB4mB,OAAQ,CACJ5rB,MAAO,UACP+I,gBAAiB,eAInBwS,EAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,IAAD,aAAMiJ,SAAUjJ,GAAS3X,OAEpEkmF,EAAgBjsE,sBAAW,WAAuItC,GAAQ,EAA5I1O,UAA6I,IAAzHqF,EAAwH,EAAjIC,QAA0B7D,EAAuG,EAAvGA,OAAQjF,EAA+F,EAA/FA,SAAUpF,EAAqF,EAArFA,SAAkBmpB,GAAmE,EAA3EjkB,OAA2E,EAAnEikB,iBAAiBhE,EAAkD,EAAlDA,QAAS+/D,EAAyC,EAAzCA,qBAAyBvlF,EAAgB,kIACtKuO,EAAUT,EAAU,CAAES,QAASD,IAErC,IAAK5D,EAAQ,OAAO,KAHwJ,IAIpKo7E,EAAgEP,EAAhEO,iBAAkBK,EAA8CZ,EAA9CY,YAAa/jB,EAAiCmjB,EAAjCnjB,aAAc17D,EAAmB6+E,EAAnB7+E,MAAO1D,EAAYuiF,EAAZviF,QACtDojF,GAAoC,mBAAfD,EAA4BA,EAAYnmF,GAASmmF,IAAgB,cAAC,IAAD,IACtFE,EAAYjkB,EAAe,CAAEpjD,UAAW2B,EAAShJ,MAAKuH,GAAI,CAAEgO,SAAS,cAAD,OAAgBxiB,EAAOlL,GAAvB,SAAkC+b,OAAO,aAAD,OAAelb,EAAf,eAA8BmpB,EAAgBhqB,MAAS,GACnKuK,EAAU,CACZtE,WACApF,WACAqK,SACA8e,kBACAhE,WAGE8gE,EACF,eAAC,WAAD,WACI,cAAC,IAAD,CACIt1D,OAAQ,cAAC,IAAD,CAAQ/oB,aAAW,YAAYlB,QAAQ,UAAUwH,QAAS,CAAC8hB,aAAc9hB,EAAQyiB,QAAjF,SACH5pB,IAAM2B,aAAaq9E,KAExBv+E,MAAO6C,EAAOrG,KACd4sB,qBAAsB,CAAClqB,QAAQ,aAC/BwH,QAAS,CAAC2J,KAAM3J,EAAQ03E,OAAQp+E,MAAO0G,EAAQ1G,SAEnD,eAAC,IAAD,CAAa0G,QAAS,CAAC2J,KAAM3J,EAAQy3E,aAArC,UACMt/E,GAAS,cAAC,IAAD,IACT1D,GAAW,cAAC,IAAD,IACX8iF,GAAoB1+E,IAAM0B,eAAe,cAACg9E,EAAD,MAAyB,cAACA,EAAD,CAAkB/7E,QAASA,UAK3G,OAAIq4D,EAEI,cAAC,IAAD,CAAMn5D,UAAWsF,EAAQuX,KAAzB,SACI,cAAC,IAAD,2BAAoBugE,GAApB,IAA+B93E,QAAS,CAAC2J,KAAM3J,EAAQ+hB,gBAAvD,SACKlpB,IAAM2B,aAAau9E,QAOhC,cAAC,IAAD,CAAMr9E,UAAWsF,EAAQuX,KAAzB,SACK1e,IAAM2B,aAAau9E,QAUjBJ,a,oHChFT5nE,EAAY,kBAAM,GA4BT22B,UA1BsB,SAAAj1C,GAAU,IACnCuF,EAA8BvF,EAA9BuF,OAAQ4N,EAAsBnT,EAAtBmT,UAAW7Q,EAAWtC,EAAXsC,OACrB0T,EAAO8N,cACL5R,EAAW6R,YAAa,CAAElR,aAAc,CAAEX,QAAQ,KAAlDA,OACF/P,EAAQX,IAAI0Q,EAAQ3M,GAClBhG,EAAQykB,YACZ7Q,EACA,CAAE3M,KAAM,EAAGlG,QAAS,KACpB,CAAEsB,MAAO,OAAQC,MAAO,QAHF,YAAC,eAIlBS,GAJiB,IAIT2hB,YAAY,IACzB,CAAEC,SAAU/hB,IALR5C,IAcR,OANA0B,qBAAU,YACDkB,GAAS5C,EAAIkF,OAAS,GACvBuR,EAAKmO,OAAO5e,EAAQhG,KAEzB,CAACA,IAGA,cAAC,IAAD,2BAAyBS,GAAzB,aACI,cAAC,IAAD,CAAwB0e,gBAAiBJ,S,oFC5B/CxQ,EAAYC,YACd,CACIw4E,qBAAsB,CAClBr2E,OAAQ,MAEZs2E,iBAAkB,CACdC,UAAW,OACXC,UAAW,SAGnB,CAAEriF,KAAM,iCAoCGo3B,IAjCoB,SAAC,GAO7B,IANHx0B,EAME,EANFA,SACAo0B,EAKE,EALFA,OACAK,EAIE,EAJFA,UACA3B,EAGE,EAHFA,QAGE,IAFFxrB,QAASD,OAEP,WAFyBhL,EAEzB,EADF+P,EACE,EADFA,0BAEM9E,EAAUT,EAAU,CAAES,QAASD,IAErC,OACI,cAAC,IAAD,yBACI9G,KAAM6zB,EACN/zB,SAAUyyB,EACV9wB,UAAWsF,EAAQg4E,qBACnBI,UAAW,IACPtzE,GALR,aAOI,+CAAUgoB,EAASK,EAAY,IAA/B,aACI,cAAC,IAAD,CACIh0B,MAAO,CACHsI,UAAW,EACXunB,SAAUwC,EAAUA,EAAQ6sD,YAAc,MAE9C39E,UAAWsF,EAAQi4E,iBALvB,SAOKv/E,Y,+ICpCf6G,EAAYC,aACd,SAAA1E,GAAK,MAAK,CACN6O,KAAM,CACF6E,WAAY,KAEhBD,SAAU,CACNC,WAAY,KAEhBO,WAAY,CACR5I,QAAS,QACTmwE,WAAYx7E,EAAMo4B,WAAWojD,YAEjC5nE,eAAgB,CAAEF,WAAY,KAC9B8pE,0BAA2B,CAAE9pE,WAAY,QAE7C,CAAE1Y,KAAM,iCA4DGw1B,IAzDoB,SAAC,GAS7B,IAICjc,EACAE,EAbJR,EAQE,EARFA,WACAhM,EAOE,EAPFA,MACAiM,EAME,EANFA,iBACAC,EAKE,EALFA,WACAC,EAIE,EAJFA,YACSnP,EAGP,EAHFC,QACAmP,EAEE,EAFFA,kBACG7Z,EACD,kHACI0K,EAAUT,EAAU,CAAES,QAASD,IAC/BqP,EAAgBJ,IAAqBjM,EACrC2L,EAAiBS,EAAkBJ,GASzC,OALKxU,yBAAemU,KAChBW,EAAUC,IAAMZ,EAAgBQ,GAChCK,EAAQ3c,IAAM8b,EAAgBW,IAI9B,cAAC,IAAD,yBAEId,SAAUa,EACV1U,UAAW0M,IAAWpH,EAAQ2J,KAAT,eAChB3J,EAAQuO,SAAWU,KAEpB3Z,GANR,aAQKiF,yBAAemU,GACZlU,uBAAakU,EAAgB,CAAEQ,gBAE/B,qBAAKxU,UAAWsF,EAAQ+O,WAAxB,SACKQ,EAAMlf,KAAI,SAACqf,EAAM3M,GACd,OAAO2M,EAAKjB,UACR,sBAEI/T,UAAWsF,EAAQs4E,0BAFvB,SAIK5oE,EAAKC,MAHD5M,GAMT,wBAEIrI,UAAWsF,EAAQ0O,eAFvB,SAIKgB,EAAKC,MAHD5M,UArBpB2L,K,2DC5CF,aAAUpa,GAAO,IAAD,EAECwE,mBAAS,CACjCowE,eAAWn0E,EACXwiF,sBAAkBxiF,EAClB6iF,iBAAa7iF,EACb8+D,cAAc,EACd0kB,qBAAqB,EACrBpgF,WAAOpD,EACPN,SAAS,EACTC,QAAQ,IAVe,mBAEpBpD,EAFoB,KAEZwlD,EAFY,KA0D3B,OA7CApkD,qBAAU,WA8BN,OAJI4B,GAxBiB,SAACA,GAElBwiD,GAAU,SAAA8/B,GAAS,kCAAUA,GAAV,IAAqBniF,SAAS,OACjD,QAAO,qBAA6BH,EAAK6mB,QAAQ,aAAc,MAC1DvqB,MAAK,SAAAU,GACFwlD,EAAU,CACNoyB,UAAW53E,EAAM,QACjBimF,iBAAkBjmF,EAAOimF,iBACzBK,YAAatmF,EAAOimF,iBAAiBzjF,aAAaqa,KAClD0lD,aAAc36D,QAAQ5H,EAAM,SAC5BinF,oBAAqBr/E,QAAQ5H,EAAOimF,kBACpC9iF,SAAS,EACTC,QAAQ,OATpB,OAYW,SAAAyD,GACH2+C,EAAU,CACN3+C,QACA1D,SAAS,EACTC,QAAQ,OAMpB8jF,CAAalkF,GAGV,WACHwiD,EAAU,CACNoyB,eAAWn0E,EACXwiF,sBAAkBxiF,EAClB6iF,iBAAa7iF,EACb8+D,cAAc,EACd0kB,qBAAqB,EACrBpgF,WAAOpD,EACPN,SAAS,EACTC,QAAQ,OAIjB,CAACJ,IAEGhD,I,+LC9CLiO,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnCyc,KAAM,GACNkhE,YAAa,CACTtyE,QAAS,OACToS,aAAczd,EAAM2L,QAAQiyE,KAC5B/+D,eAAgB,iBAEpBg/D,WAAY,CACR9pE,WAAY,QAEhB4oE,YAAa,CACT/yE,QAAS,OA+GF,KACXwkE,UA5Fc,SAAC,GAA0B,IAAxB/sE,EAAuB,EAAvBA,OAAW1K,EAAY,0BAElCsE,EAAS6iF,IAAYhmF,MAAMnB,EAAMgmB,SAASzK,QAAQ,GAAMkwB,MAKxDl9B,EAAUT,IAPwB,EAQlBzG,mBAAS,MARS,mBAQjCk1B,EARiC,KAQ5B6qD,EAR4B,KAUlCC,EAAY,SAACC,EAAQxc,GACvB,GAAIpgE,EAAQ,CACR,IAAKogE,GAAgB,OAARvuC,EAETuuC,EADWqc,IAAYhmF,MAAMo7B,GAAK,GAAMkP,MAC9Bq/B,KAGd,IAAMyc,EAAyD,KAAvC9D,IAAYA,IAAYh/E,OAAS,GAAYg/E,IAAY+D,UAAU,EAAG/D,IAAYh/E,OAAS,GAAKg/E,IAExH2D,EAAO,GAAD,OAAIG,EAAJ,YAAuBD,EAAS,SAAW,SAA3C,6BAAwE19D,mBAAmBlf,EAAOmnC,MAAlG,OAAyGi5B,EAAO,SAAWA,EAAO,OAKhJ7pE,qBAAU,WAEN,GAAwB,iBAApBqD,EAAOjE,SAA6B,CACpC,IAAMorC,EAAQ/9B,kBAAH,+JACXH,IAAiBk+B,MAAM,CACnBA,QACA99B,UAAW,CAAEL,MAAO,CAAE9N,GAAI8E,EAAO9E,KACjC2zC,YAAa,iBACdh0C,MAAK,YAAyB,IAAd4D,EAAa,EAArBA,KAAQA,KACfskF,GAAU,EAAQtkF,EAAKkuC,UAAYluC,EAAKkuC,SAASC,MAASnuC,EAAK+J,UAIvE,OAAO,WACHs6E,EAAO,SAEZ,CAAC18E,IAMJ,OAAI6xB,EACO,qCACH,sBAAKtzB,UAAWsF,EAAQy4E,YAAxB,UACI,8BAAMt8E,EAAOrG,OACb,cAAC,IAAD,CACI4E,UAAWsF,EAAQ24E,WACnBliF,QAAS,cAAC,IAAD,CACLuU,SAXC,SAACnV,GAClBijF,EAAUjjF,EAAME,OAAOY,UAWPb,KAAK,WACLiE,KAAK,UAETm/E,eAAe,aAIvB,cAAC,IAAD,CAAMx+E,UAAWsF,EAAQuX,KAAzB,SACI,cAAC,IAAD,CAAa7c,UAAWsF,EAAQy3E,YAAat+E,MAAO,CAAEo8C,cAAe,GAArE,SACI,cAAC,IAAD,CAAQvnB,IAAKA,EAAK7nB,QAAQ,UAAU69C,SAAS,OAAOx9C,MAAM,OAAOG,OAAO,QAAQwyE,YAAY,aAMjG,8CAwBX5B,iBA7GqB,SAAC9lF,GACtB,OAAQ,yBA6GRmmF,YAPgB,SAACwB,GACjB,OAAQ,cAAC,IAAD,KAORvlB,cAAc,EACd0kB,qBAAqB,EACrBpgF,WAAOpD,EACPN,SAAS,EACTC,QAAQ,I,sHCxIN0uC,EAAWC,yBAAe,CAC9BC,IAAKk0B,MAGDh0B,EAAWC,YAAU,uCAAC,WAAOlqC,EAAP,oBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,cAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,GAC3C/rB,YAAaigD,QARS,2CAAD,yDAarBh0B,EAAS,IAAIC,IAAc,CAC/BR,IAAK6wC,IACLx2E,QAAS,CACPqmC,MAAM,EACNC,WAAW,EACXC,qBAAsB,EACtBC,iBAAiB,WAAD,4BAAE,4BAAAjnB,EAAA,sEACIwmB,cADJ,cACVC,EADU,yBAGT,CACLC,cAAeD,EAAK,iBAAaA,GAAU,KAJ7B,2CAAF,kDAAC,MAUfxyB,EAAOtc,iBACX,YAAgB,IAAbqoC,EAAY,EAAZA,MAAY,EACekH,YAAkBlH,GAAtCmH,EADK,EACLA,KAAMC,EADD,EACCA,UACd,MAAgB,wBAATD,GAAgD,iBAAdC,IAE3CT,EACAL,EAAS54B,OAAOw4B,IAGH,QAAImB,eAAa,CAC9BpzB,OACAqzB,MAAO,IAAIC,gBACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,gBAEf1H,MAAO,CACL0H,YAAa,oB,uHCnDbxB,EAAWC,yBAAe,CAC5BC,IAAKqxC,MAGHnxC,EAAWC,YAAU,uCAAC,WAAOlqC,EAAP,oBAAA2jB,EAAA,6DAAYrf,EAAZ,EAAYA,QAAZ,SAEN6lC,cAFM,cAEpBC,EAFoB,yBAInB,CACL9lC,QAAQ,2BACHA,GADE,IAEL+lC,cAAeD,EAAK,iBAAaA,GAAU,OAPrB,2CAAD,yDAYrBE,EAAS,IAAIC,IAAc,CAC/BR,IAAKuxC,IACLl3E,QAAS,CACPqmC,MAAM,EACNC,WAAW,EACXC,qBAAsB,EACtBC,iBAAiB,WAAD,4BAAE,4BAAAjnB,EAAA,sEACIwmB,cADJ,cACVC,EADU,yBAGT,CACLC,cAAeD,EAAK,iBAAaA,GAAU,KAJ7B,2CAAF,kDAAC,MAUfxyB,EAAOtc,iBACX,YAAgB,IAAbqoC,EAAY,EAAZA,MAAY,EACekH,YAAkBlH,GAAtCmH,EADK,EACLA,KAAMC,EADD,EACCA,UACd,MAAgB,wBAATD,GAAgD,iBAAdC,IAE3CT,EACAL,EAAS54B,OAAOw4B,IAGH,QAAImB,eAAa,CAC9BpzB,OACAqzB,MAAO,IAAIC,gBAAc,CAAE40C,iBAAkB,kBAAM,QACnD30C,eAAgB,CACdC,WAAY,CACVC,YAAa,eACb6yB,YAAa,UAEfv6B,MAAO,CACL0H,YAAa,eACb6yB,YAAa,W,mHCnDbl4D,EAAYC,aAAW,SAAA1E,GAAK,MAAK,CACnC4X,KAAM,CACFxL,OAAQ,EACRnD,SAAU,IACVuC,SAAU,WACV1G,gBAAiB,cACjByqC,aAAc,EACd,mBAAoB,CAChBzqC,gBAAiB9E,EAAM4E,QAAQyF,OAAOm0E,YAK5ClnE,EAAUvZ,IAAM6S,YAAW,SAACja,EAAO2X,GAAR,OAAgB,cAAC,IAAD,aAAMiJ,SAAUjJ,GAAS3X,OAEpEqhB,EAAWpH,sBAAW,WAA8EtC,GAAS,IAA5ErJ,EAA2E,EAApFC,QAAqClO,GAA+C,EAA1D4I,UAA0D,EAA/C5I,UAAUqK,EAAqC,EAArCA,OAAQ5F,EAA6B,EAA7BA,SAC3EyJ,GADwG,sEAC9FT,EAAU,CAACS,QAASD,KAC9BxK,EAAYC,cACZ8D,EAAK,UAAM/D,EAAU,aAAD,OAAczD,EAAd,SAA+B,CAAEyH,EAAGzH,EAAUwM,YAAa,IAA1E,YAAkFnC,EAAOrG,MAEpG,OACI,cAAC,IAAD,CAASwD,MAAOA,EAAOigF,UAAU,MAAM//E,WAAY,IAAnD,SACI,8BACA,cAAC,IAAD,CACIkB,UAAWsF,EAAQ0S,KACnB5b,MAAOqF,EAAOrG,KAEdqY,KAAM,cAAChS,EAAOgS,KAAR,IACNsC,UAAW2B,EACXhJ,IAAKA,EACLuH,GAAE,WAAM7e,EAAN,YAAkBqK,EAAOlL,GAAzB,SACFoiB,WAAS,EACT9c,SAAUA,WAQXuc,O,qr6fC3CT0mE,EAAyBr6E,kBAAH,oLASb,WAAC84D,GACZ,OAAOX,IAAiBr4D,OAAO,CAC3BC,SAAUs6E,EACVp6E,UAAW,CAAE64D,gBACb54D,QAAS,SAAClH,GACNmH,MAAMnH,OCZLurC,EAAc,uCAAG,sCAAAxmB,EAAA,yDACtBu8D,EAAkBvxB,YAAU2F,KAC5B6rB,EAAqBxxB,YAAUkQ,MAEhCQ,EAAa6gB,IAAqB7gB,EAAa8gB,EAAoB,WAJ5C,0CAOsCC,EAAaD,GAPnD,oBAOVllF,KAAO2L,QAAUwjC,EAPP,EAOOA,MAAOs0B,EAPd,EAOcA,aAEhCjF,YAAUnF,IAAmBlqB,EAAO,CAACu0B,OAAQC,MAC7CnF,YAAUoF,IAAsBH,EAAc,CAACC,OAAQC,MAEvDshB,EAAkB91C,EAZA,wDAelB80B,YAAa5K,IAAmB,CAACqK,OAAQC,MACzCM,YAAaL,IAAsB,CAACF,OAAQC,MACtC,IAAIrnE,MAAJ,UAAa,KAAMgQ,QAAQqa,QAAQ,UAAW,IAAIA,QAAQ,kBAAmB,MAjBjE,iCAqBnBs+D,GArBmB,0DAAH,qDAwBd7gB,EAAe,SAACj1B,EAAOi2C,GAChC,GAAGj2C,EAAO,CACN,IAAMm1B,EAAelL,YAAUjqB,GACzBk2C,EAAe37D,KAAK47D,MAAQ,IAElC,OADgBhhB,EAAaihB,IAAM,GAAMF,EAGzC,OAAO,K","file":"static/js/main.78790c02.chunk.js","sourcesContent":["var map = {\n\t\"./Dashboard\": [\n\t\t240\n\t],\n\t\"./Dashboard/\": [\n\t\t240\n\t],\n\t\"./Dashboard/DashboardCard\": [\n\t\t374\n\t],\n\t\"./Dashboard/DashboardCard.js\": [\n\t\t374\n\t],\n\t\"./Dashboard/DashboardNestedGridField\": [\n\t\t373\n\t],\n\t\"./Dashboard/DashboardNestedGridField.js\": [\n\t\t373\n\t],\n\t\"./Dashboard/DashboardReferenceArrayInput\": [\n\t\t372\n\t],\n\t\"./Dashboard/DashboardReferenceArrayInput.js\": [\n\t\t372\n\t],\n\t\"./Dashboard/DashboardReferenceArrayInputWithDefault\": [\n\t\t377\n\t],\n\t\"./Dashboard/DashboardReferenceArrayInputWithDefault.js\": [\n\t\t377\n\t],\n\t\"./Dashboard/DashboardShow\": [\n\t\t368\n\t],\n\t\"./Dashboard/DashboardShow.js\": [\n\t\t368\n\t],\n\t\"./Dashboard/GasMeterUnit/CurrentData\": [\n\t\t763,\n\t\t54\n\t],\n\t\"./Dashboard/GasMeterUnit/CurrentData.js\": [\n\t\t763,\n\t\t54\n\t],\n\t\"./Dashboard/GasMeterUnit/GasQualityCertificate\": [\n\t\t764,\n\t\t57\n\t],\n\t\"./Dashboard/GasMeterUnit/GasQualityCertificate.js\": [\n\t\t764,\n\t\t57\n\t],\n\t\"./Dashboard/GasMeterUnit/Template\": [\n\t\t765,\n\t\t67\n\t],\n\t\"./Dashboard/GasMeterUnit/Template.js\": [\n\t\t765,\n\t\t67\n\t],\n\t\"./Dashboard/index\": [\n\t\t240\n\t],\n\t\"./Dashboard/index.js\": [\n\t\t240\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1015;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./AnalyticsAbnormal\": [\n\t\t819,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t31\n\t],\n\t\"./AnalyticsAbnormal.js\": [\n\t\t819,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t31\n\t],\n\t\"./AnalyticsMissingIntervalsDistrict\": [\n\t\t766,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t58\n\t],\n\t\"./AnalyticsMissingIntervalsDistrict.js\": [\n\t\t766,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t58\n\t],\n\t\"./AnalyticsMissingIntervalsRegion\": [\n\t\t767,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t59\n\t],\n\t\"./AnalyticsMissingIntervalsRegion.js\": [\n\t\t767,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t59\n\t],\n\t\"./DesynchronizationTimeDistrict\": [\n\t\t768,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t60\n\t],\n\t\"./DesynchronizationTimeDistrict.js\": [\n\t\t768,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t60\n\t],\n\t\"./DesynchronizationTimeRegion\": [\n\t\t761,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t65\n\t],\n\t\"./DesynchronizationTimeRegion.js\": [\n\t\t761,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t65\n\t],\n\t\"./DeviceDailyPoint\": [\n\t\t769,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t11\n\t],\n\t\"./DeviceDailyPoint.js\": [\n\t\t769,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t11\n\t],\n\t\"./DeviceDailyUug\": [\n\t\t770,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t12\n\t],\n\t\"./DeviceDailyUug.js\": [\n\t\t770,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t12\n\t],\n\t\"./DeviceEK290DailyPoint\": [\n\t\t771,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t13\n\t],\n\t\"./DeviceEK290DailyPoint.js\": [\n\t\t771,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t13\n\t],\n\t\"./DeviceEK290DailyUug\": [\n\t\t772,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t14\n\t],\n\t\"./DeviceEK290DailyUug.js\": [\n\t\t772,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t14\n\t],\n\t\"./DeviceHourlyPoint\": [\n\t\t773,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t15\n\t],\n\t\"./DeviceHourlyPoint.js\": [\n\t\t773,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t15\n\t],\n\t\"./DeviceHourlyUug\": [\n\t\t774,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t16\n\t],\n\t\"./DeviceHourlyUug.js\": [\n\t\t774,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t16\n\t],\n\t\"./DeviceIRVISK300DailyPoint\": [\n\t\t775,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t17\n\t],\n\t\"./DeviceIRVISK300DailyPoint.js\": [\n\t\t775,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t17\n\t],\n\t\"./DeviceIRVISK300DailyUug\": [\n\t\t776,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t18\n\t],\n\t\"./DeviceIRVISK300DailyUug.js\": [\n\t\t776,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t18\n\t],\n\t\"./DeviceSUPERFLOW21VHourlyPoint\": [\n\t\t777,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t19\n\t],\n\t\"./DeviceSUPERFLOW21VHourlyPoint.js\": [\n\t\t777,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t19\n\t],\n\t\"./DeviceSUPERFLOW21VHourlyUgg\": [\n\t\t778,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t20\n\t],\n\t\"./DeviceSUPERFLOW21VHourlyUgg.js\": [\n\t\t778,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t20\n\t],\n\t\"./EventCounterUug\": [\n\t\t779,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t36\n\t],\n\t\"./EventCounterUug.js\": [\n\t\t779,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t36\n\t],\n\t\"./EventDefaultUug\": [\n\t\t780,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t37\n\t],\n\t\"./EventDefaultUug.js\": [\n\t\t780,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t37\n\t],\n\t\"./EventEmergencySituationsUug\": [\n\t\t781,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t38\n\t],\n\t\"./EventEmergencySituationsUug.js\": [\n\t\t781,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t38\n\t],\n\t\"./EventSummaryCounterUug\": [\n\t\t782,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t21\n\t],\n\t\"./EventSummaryCounterUug.js\": [\n\t\t782,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t21\n\t],\n\t\"./EventSummaryDefaultUug\": [\n\t\t783,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t22\n\t],\n\t\"./EventSummaryDefaultUug.js\": [\n\t\t783,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t22\n\t],\n\t\"./EventSummaryVKG2Uug\": [\n\t\t784,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t23\n\t],\n\t\"./EventSummaryVKG2Uug.js\": [\n\t\t784,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t23\n\t],\n\t\"./EventVKG2Uug\": [\n\t\t785,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t39\n\t],\n\t\"./EventVKG2Uug.js\": [\n\t\t785,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t39\n\t],\n\t\"./ExcelNovokubanskDistrict\": [\n\t\t786,\n\t\t42\n\t],\n\t\"./ExcelNovokubanskDistrict.js\": [\n\t\t786,\n\t\t42\n\t],\n\t\"./ExcelNovokubanskRegion\": [\n\t\t787,\n\t\t32\n\t],\n\t\"./ExcelNovokubanskRegion.js\": [\n\t\t787,\n\t\t32\n\t],\n\t\"./ExcelPowerOutageVKG2District\": [\n\t\t788,\n\t\t43\n\t],\n\t\"./ExcelPowerOutageVKG2District.js\": [\n\t\t788,\n\t\t43\n\t],\n\t\"./ExcelPowerOutageVKG2Region\": [\n\t\t789,\n\t\t33\n\t],\n\t\"./ExcelPowerOutageVKG2Region.js\": [\n\t\t789,\n\t\t33\n\t],\n\t\"./ExcelTechnologicalDailyConsumer\": [\n\t\t790,\n\t\t48,\n\t\t61\n\t],\n\t\"./ExcelTechnologicalDailyConsumer.js\": [\n\t\t790,\n\t\t48,\n\t\t61\n\t],\n\t\"./ExcelTechnologicalDailyDistrict\": [\n\t\t791,\n\t\t49,\n\t\t62\n\t],\n\t\"./ExcelTechnologicalDailyDistrict.js\": [\n\t\t791,\n\t\t49,\n\t\t62\n\t],\n\t\"./ExcelTechnologicalDailyExtendedConsumer\": [\n\t\t792,\n\t\t44\n\t],\n\t\"./ExcelTechnologicalDailyExtendedConsumer.js\": [\n\t\t792,\n\t\t44\n\t],\n\t\"./ExcelTechnologicalDailyExtendedDistrict\": [\n\t\t793,\n\t\t45\n\t],\n\t\"./ExcelTechnologicalDailyExtendedDistrict.js\": [\n\t\t793,\n\t\t45\n\t],\n\t\"./ExcelTechnologicalDailyExtendedRegion\": [\n\t\t794,\n\t\t34\n\t],\n\t\"./ExcelTechnologicalDailyExtendedRegion.js\": [\n\t\t794,\n\t\t34\n\t],\n\t\"./ExcelTechnologicalDailyRegion\": [\n\t\t795,\n\t\t50,\n\t\t55\n\t],\n\t\"./ExcelTechnologicalDailyRegion.js\": [\n\t\t795,\n\t\t50,\n\t\t55\n\t],\n\t\"./ExcelTechnologicalHourlyConsumer\": [\n\t\t796,\n\t\t51,\n\t\t63\n\t],\n\t\"./ExcelTechnologicalHourlyConsumer.js\": [\n\t\t796,\n\t\t51,\n\t\t63\n\t],\n\t\"./ExcelTechnologicalHourlyDistrict\": [\n\t\t797,\n\t\t52,\n\t\t64\n\t],\n\t\"./ExcelTechnologicalHourlyDistrict.js\": [\n\t\t797,\n\t\t52,\n\t\t64\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedConsumer\": [\n\t\t798,\n\t\t46\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedConsumer.js\": [\n\t\t798,\n\t\t46\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedDistrict\": [\n\t\t799,\n\t\t47\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedDistrict.js\": [\n\t\t799,\n\t\t47\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedRegion\": [\n\t\t800,\n\t\t35\n\t],\n\t\"./ExcelTechnologicalHourlyExtendedRegion.js\": [\n\t\t800,\n\t\t35\n\t],\n\t\"./ExcelTechnologicalHourlyRegion\": [\n\t\t801,\n\t\t53,\n\t\t56\n\t],\n\t\"./ExcelTechnologicalHourlyRegion.js\": [\n\t\t801,\n\t\t53,\n\t\t56\n\t],\n\t\"./GasQualityCertificateRegion\": [\n\t\t802,\n\t\t0,\n\t\t1,\n\t\t66\n\t],\n\t\"./GasQualityCertificateRegion.js\": [\n\t\t802,\n\t\t0,\n\t\t1,\n\t\t66\n\t],\n\t\"./MonitoredObjectsRegion\": [\n\t\t803,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t41\n\t],\n\t\"./MonitoredObjectsRegion.js\": [\n\t\t803,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t41\n\t],\n\t\"./UniversalDailyArea\": [\n\t\t804,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t4\n\t],\n\t\"./UniversalDailyArea.js\": [\n\t\t804,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t4\n\t],\n\t\"./UniversalDailyConsumer\": [\n\t\t805,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t5\n\t],\n\t\"./UniversalDailyConsumer.js\": [\n\t\t805,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t5\n\t],\n\t\"./UniversalDailyDistrict\": [\n\t\t806,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t6\n\t],\n\t\"./UniversalDailyDistrict.js\": [\n\t\t806,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t6\n\t],\n\t\"./UniversalDailyGRO\": [\n\t\t807,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t7\n\t],\n\t\"./UniversalDailyGRO.js\": [\n\t\t807,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t7\n\t],\n\t\"./UniversalDailyGRS\": [\n\t\t808,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t8\n\t],\n\t\"./UniversalDailyGRS.js\": [\n\t\t808,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t8\n\t],\n\t\"./UniversalDailyPoint\": [\n\t\t809,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t24\n\t],\n\t\"./UniversalDailyPoint.js\": [\n\t\t809,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t24\n\t],\n\t\"./UniversalDailyRegion\": [\n\t\t810,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t9\n\t],\n\t\"./UniversalDailyRegion.js\": [\n\t\t810,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t9\n\t],\n\t\"./UniversalDailyUug\": [\n\t\t811,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t25\n\t],\n\t\"./UniversalDailyUug.js\": [\n\t\t811,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t25\n\t],\n\t\"./UniversalHourlyArea\": [\n\t\t812,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t10\n\t],\n\t\"./UniversalHourlyArea.js\": [\n\t\t812,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t10\n\t],\n\t\"./UniversalHourlyPoint\": [\n\t\t813,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t26\n\t],\n\t\"./UniversalHourlyPoint.js\": [\n\t\t813,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t26\n\t],\n\t\"./UniversalHourlyUug\": [\n\t\t814,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t27\n\t],\n\t\"./UniversalHourlyUug.js\": [\n\t\t814,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t27\n\t],\n\t\"./UniversalSUPERFLOW21VHourlyPoint\": [\n\t\t815,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t28\n\t],\n\t\"./UniversalSUPERFLOW21VHourlyPoint.js\": [\n\t\t815,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t28\n\t],\n\t\"./UniversalSUPERFLOW21VHourlyUgg\": [\n\t\t816,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t29\n\t],\n\t\"./UniversalSUPERFLOW21VHourlyUgg.js\": [\n\t\t816,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t29\n\t],\n\t\"./___UniversaCounterDailyCorrector\": [\n\t\t817,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t40\n\t],\n\t\"./___UniversaCounterDailyCorrector.js\": [\n\t\t817,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t40\n\t],\n\t\"./___UniversalCounterDailyUug\": [\n\t\t818,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t30\n\t],\n\t\"./___UniversalCounterDailyUug.js\": [\n\t\t818,\n\t\t0,\n\t\t3,\n\t\t1,\n\t\t2,\n\t\t30\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1043;\nmodule.exports = webpackAsyncContext;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","\nimport { useEffect } from 'react';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport isEqual from 'lodash/isEqual';\nimport { useListContext } from 'react-admin'\nimport { LOCAL_STORAGE } from '../../appsettings';\n\n\n\nconst useListPropsPreferencesLocal = () => {\n const { resource, perPage, setPerPage, currentSort, setSort, filterValues, displayedFilters, setFilters } = useListContext()\n const listPropsContext = { perPage, currentSort, filterValues, displayedFilters };\n const listPropsContextSignature = JSON.stringify(listPropsContext)\n\n useEffect(() => {\n const storageProps = JSON.parse(localStorage.getItem(LOCAL_STORAGE)) || {};\n const listPropsPreferences = get(storageProps, [resource, \"list\", \"props\"], {});\n set(storageProps, [resource, \"list\", \"props\"], { ...listPropsPreferences, perPage, currentSort, filterValues, displayedFilters });\n localStorage.setItem(LOCAL_STORAGE, JSON.stringify(storageProps));\n }, [listPropsContextSignature])\n\n useEffect(() => {\n const storageProps = JSON.parse(localStorage.getItem(LOCAL_STORAGE)) || {};\n const listPropsPreferences = get(storageProps, [resource, \"list\", \"props\"], listPropsContext);\n if (isEqual(listPropsContext, listPropsPreferences)) return\n setPerPage(listPropsPreferences.perPage)\n setSort(listPropsPreferences.currentSort.field, listPropsPreferences.currentSort.order)\n setFilters(listPropsPreferences.filterValues, listPropsPreferences.displayedFilters)\n }, [])\n}\n\nexport default useListPropsPreferencesLocal","import React from 'react';\nimport useListPropsPreferencesLocal from '../../../controller/preferences/useListPropsPreferencesLocal';\n\n\nconst ListProrsPreferences = props => {\n useListPropsPreferencesLocal()\n return null;\n};\n\nexport default ListProrsPreferences;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useListController, ListContextProvider, ListView } from 'react-admin';\nimport ListProrsPreferences from './ListProrsPreferences';\n\n\n\nconst List = props => {\n const controllerProps = useListController(props)\n\n return (\n \n \n \n \n );\n};\n\nList.propTypes = {\n actions: PropTypes.oneOfType([PropTypes.bool, PropTypes.element]),\n aside: PropTypes.element,\n bulkActionButtons: PropTypes.oneOfType([PropTypes.element, PropTypes.bool]),\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n filter: PropTypes.object,\n filterDefaultValues: PropTypes.object,\n filters: PropTypes.element,\n pagination: PropTypes.oneOfType([PropTypes.element, PropTypes.bool]),\n perPage: PropTypes.number.isRequired,\n sort: PropTypes.shape({\n field: PropTypes.string,\n order: PropTypes.string,\n }),\n authProvider: PropTypes.func,\n hasCreate: PropTypes.bool.isRequired,\n hasEdit: PropTypes.bool.isRequired,\n hasList: PropTypes.bool.isRequired,\n hasShow: PropTypes.bool.isRequired,\n location: PropTypes.any,\n match: PropTypes.any,\n path: PropTypes.string,\n resource: PropTypes.string.isRequired,\n};\n\nList.defaultProps = {\n filter: {},\n perPage: 10,\n};\n\nexport default List;\n","import { createContext } from 'react';\n\nconst PreferenceContext = createContext();\n\nPreferenceContext.displayName = 'PreferenceContext';\n\nexport default PreferenceContext","import { useContext } from \"react\";\nimport PreferenceContext from \"./PreferenceContext\";\n\nconst usePreferenceContext = () => useContext(PreferenceContext);\n\nexport default usePreferenceContext","\nimport { useEffect, useCallback } from 'react';\nimport get from 'lodash/get';\nimport usePreferenceContext from './usePreferenceContext';\n\n\n\nexport const usePreferences = (\n path = '',\n defaultValue\n) => {\n const { data, loading, loaded, readStorage, writeStorage } = usePreferenceContext();\n const [key] = path.split('.');\n\n\n useEffect(() => {\n if (data[key] === undefined && !loading) {\n readStorage(path)\n }\n }, [data, key, loaded]);\n\n const writeState = useCallback(value => {\n writeStorage(path, value);\n }, [key]);\n\n\n return [get(data, path, defaultValue), writeState, loaded, loading];\n};\n","//import { usePreferences } from '@react-admin/ra-preferences';\nimport { usePreferences } from './usePreferences';\n\nconst useColumnsPreferences = (resource, initialValue) => usePreferences(`${resource}.list.columns`, initialValue);\n\nexport default useColumnsPreferences\n","import React from 'react';\nimport { FormControlLabel, Checkbox, Box } from '@material-ui/core';\nimport {\n useTranslate,\n useResourceContext,\n getFieldLabelTranslationArgs,\n} from 'react-admin';\n\nimport { usePreferences } from '@react-admin/ra-preferences';\nimport useColumnsPreferences from '../../../controller/preferences/useColumnsPreferences';\n\nconst SelectColumnsMenu = ({\n columns,\n ...rest\n}) => {\n\n const translate = useTranslate();\n const resource = useResourceContext();\n const [columnsPref, setColumnsPref] = useColumnsPreferences(resource, Object.keys(columns))\n\n const addColumn = (event) => {\n setColumnsPref(\n Object.keys(columns).filter(\n name => name === event.target.name || columnsPref.includes(name)\n )\n );\n };\n\n const removeColumn = (event) => {\n // always leave at least one column\n if (columnsPref.length > 1) {\n setColumnsPref(\n columnsPref.filter(name => name !== event.target.name)\n );\n }\n };\n\n return (\n \n {Object.keys(columns).map(name => (\n
\n \n }\n label={translate(\n ...getFieldLabelTranslationArgs({\n label: columns[name].props.label,\n resource,\n source: name,\n })\n )}\n />\n
\n ))}\n
\n );\n};\n\nexport default SelectColumnsMenu;\n","import React, { useCallback } from 'react';\nimport DownloadIcon from '@material-ui/icons/GetApp';\nimport {\n fetchRelatedRecords,\n useDataProvider,\n useNotify,\n useListContext,\n useResourceContext,\n useTranslate,\n} from 'ra-core';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Typography from '@material-ui/core/Typography';\n\n\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst ExportButtonAsMenuItem = props => {\n const {\n maxResults = 5000,\n onClick,\n label = 'ra.action.export',\n exporter: customExporter,\n sort, // deprecated, to be removed in v4\n ...rest\n } = props;\n const {\n filter,\n filterValues,\n currentSort,\n exporter: exporterFromContext,\n total,\n } = useListContext(props);\n const translate = useTranslate()\n const resource = useResourceContext(props);\n const exporter = customExporter || exporterFromContext;\n const dataProvider = useDataProvider();\n const notify = useNotify();\n const handleClick = useCallback(\n event => {\n dataProvider\n .getList(resource, {\n sort: currentSort || sort,\n filter: filter\n ? { ...filterValues, ...filter }\n : filterValues,\n pagination: { page: 1, perPage: maxResults },\n })\n .then(\n ({ data }) =>\n exporter &&\n exporter(\n data,\n fetchRelatedRecords(dataProvider),\n dataProvider,\n resource\n )\n )\n .catch(error => {\n console.error(error);\n notify('ra.notification.http_error', 'warning');\n });\n if (typeof onClick === 'function') {\n onClick(event);\n }\n },\n [\n currentSort,\n dataProvider,\n exporter,\n filter,\n filterValues,\n maxResults,\n notify,\n onClick,\n resource,\n sort,\n ]\n );\n\n return (\n \n \n \n \n {translate(label)}\n \n )\n};\n\n\nconst sanitizeRestProps = ({\n basePath,\n filterValues,\n resource,\n ...rest\n}) => rest;\n\n\n\nexport default ExportButtonAsMenuItem;\n","import React, { Children, isValidElement } from 'react';\nimport { Tooltip, IconButton, Menu } from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport { useTranslate } from 'react-admin';\nimport { Popover } from '@material-ui/core';\nimport SelectColumnsMenu from '../preferences/SelectColumnsMenu';\nimport ExportButtonAsMenuItem from './ExportButtonAsMenuItem';\n\n\nconst MoreButton = ({\n label = 'ra.action.more',\n children,\n cellClassName,\n preference,\n columns,\n ...rest }) => {\n const translate = useTranslate();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n\n const handleClick = (event) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (event) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n return (\n
\n \n \n \n \n \n \n\n {Children.map(children, field =>\n field && isValidElement(field)\n ? React.cloneElement(field, { ...rest })\n : null\n )}\n \n {/* \n \n */}\n
\n );\n}\n\nexport default MoreButton;","import React, { cloneElement, useMemo } from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { sanitizeListRestProps, useListContext, useResourceContext, useResourceDefinition } from 'ra-core';\nimport { CreateButton, ExportButton, TopToolbar, useTranslate } from 'react-admin';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuList from '@material-ui/core/MenuList';\nimport Divider from '@material-ui/core/Divider';\nimport ListActionsMoreButton from './ListActionsMoreButton';\nimport SelectColumnsMenu from '../preferences/SelectColumnsMenu';\nimport ExportButtonAsMenuItem from './ExportButtonAsMenuItem';\n\n\n\nconst ListActions = (props) => {\n const { className, exporter, filters, columns, ...rest } = props;\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const {\n currentSort,\n displayedFilters,\n filterValues,\n basePath,\n selectedIds,\n showFilter,\n total,\n } = useListContext(props);\n const resource = useResourceContext(rest);\n const { hasCreate } = useResourceDefinition(rest);\n const translate = useTranslate()\n\n return useMemo(\n () => isMobile ? (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n {hasCreate && }\n {exporter !== false && (\n \n )}\n \n ) : (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n {hasCreate && }\n \n {translate('ra-preferences.action.choose_columns', {\n _: 'Choose columns',\n })}\n \n \n \n {exporter !== false && (\n \n )}\n \n \n \n ),\n [resource, displayedFilters, filterValues, selectedIds, filters, total, isMobile] // eslint-disable-line react-hooks/exhaustive-deps\n );\n};\n\nListActions.propTypes = {\n basePath: PropTypes.string,\n className: PropTypes.string,\n currentSort: PropTypes.any,\n displayedFilters: PropTypes.object,\n exporter: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n filters: PropTypes.element,\n filterValues: PropTypes.object,\n hasCreate: PropTypes.bool,\n resource: PropTypes.string,\n onUnselectItems: PropTypes.func.isRequired,\n selectedIds: PropTypes.arrayOf(PropTypes.any),\n showFilter: PropTypes.func,\n total: PropTypes.number,\n selectedColumns: PropTypes.exact({\n columns: PropTypes.objectOf(PropTypes.node),\n preferences: PropTypes.string\n }),\n};\n\nListActions.defaultProps = {\n selectedIds: [],\n onUnselectItems: () => null,\n};\n\n\nexport default ListActions;","const booleanFormatter = (key, value, model, record, translate) => {\n if (value === true) return \"Да\"\n if (value === false) return \"Нет\" \n}\n\nexport default booleanFormatter;","import moment from 'moment'\n\nconst dateFormatter = (key, value, model, record, translate) => {\n return moment(value).format(\"DD.MM.YYYY hh:mm:ss\");\n};\n\n\n\nexport default dateFormatter;","const enumFormatter = (key, value, model, record, translate) => {\n const { __resource } = model;\n return translate(`resources.${__resource}.enums.${key}.${value}`, {_: value})\n};\n\n\n\nexport default enumFormatter;","\nconst numberFormatter = (key, value, model, record, translate) => {\n const formatter = new Intl.NumberFormat('ru-RU', { maximumFractionDigits: 4 });\n return formatter.format(value);\n};\n\n\n\nexport default numberFormatter;","import jsonExport from 'jsonexport/dist';\nimport { downloadCSV } from 'react-admin';\nimport booleanFormatter from './booleanFormatter';\nimport dateFormatter from './dateFormatter';\nimport enumFormatter from './enumFormatter';\nimport numberFormatter from './numberFormatter';\n\n\n\n\nconst parseHeaders = (model, externalKey) => {\n const { __resource, ...object } = model\n\n const array = Object.keys(object).reduce((result, key) => {\n const value = object[key]\n if (typeof value === 'object') {\n const nested = parseHeaders(value, key)\n result.push(...nested)\n } else {\n if (Boolean(value)) {\n const item = externalKey ? `${externalKey}.${key}` : key;\n result.push(item)\n }\n };\n\n return result;\n }, []);\n\n return array\n}\n\nconst parseHeadesTitles = (model, translate, externalObject, externalKey) => {\n const { __resource, ...object } = model\n\n const array = Object.keys(object).reduce((result, key) => {\n const value = object[key]\n if (typeof value === 'object') {\n const nested = parseHeadesTitles(value, translate, model, key)\n result.push(...nested)\n } else {\n if (Boolean(value)) {\n const item = externalObject ? `${translate(`resources.${externalObject.__resource}.fields.${externalKey}`)}.${translate(`resources.${__resource}.fields.${key}`)}` : translate(`resources.${__resource}.fields.${key}`);\n result.push(item)\n }\n };\n\n return result;\n }, []);\n\n return array\n}\n\nconst parseRecord = (model, record, translate) => {\n const { __resource, ...object } = model\n const data = {}\n Object.keys(object).forEach(key => {\n const value = object[key]\n const valueRecord = record[key]\n if (typeof value === 'object') {\n if (valueRecord instanceof Array) {\n data[key] = valueRecord.map(item => parseRecord(value, item, translate))\n } else if (typeof valueRecord === 'object') {\n data[key] = parseRecord(value, valueRecord, translate)\n }\n } else {\n if (Boolean(value)) {\n data[key] = (typeof value === 'function') ? value(key, valueRecord, model, record, translate) : valueRecord\n }\n };\n\n });\n\n return data\n}\n\nconst exporter = (title, model, { translate, ...options }) => (records, fetchRelatedRecords, dataProvider, resource) => {\n\n const headers = parseHeaders(model)\n const rename = parseHeadesTitles(model, translate)\n const data = records.map(record => parseRecord(model, record, translate));\n\n const BOM = \"\\uFEFF\";\n\n jsonExport(data, {\n rowDelimiter: \";\",\n headers,\n rename,\n ...options,\n }, (err, csv) => {\n downloadCSV(BOM + csv, title);\n });\n};\n\n\n\nexport default exporter\nexport {\n parseHeaders,\n parseHeadesTitles,\n parseRecord,\n booleanFormatter,\n dateFormatter,\n enumFormatter,\n numberFormatter,\n}","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasDistributorStations: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistributorStation\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"BalanceRegion\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\nexport default ({resource, where}) => {\n return apolloCoreClient.mutate({\n mutation: gql`mutation remove${resource}($where: ${resource}WhereUniqueInput!) {\n data: remove${resource}(where: $where) {\n id\n }\n }`,\n variables: { where },\n onError: (error) => {\n alert(error)\n }\n });\n};","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNotify, useUnselectAll, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport RemoveIcon from '@material-ui/icons/Delete';\nimport removeManyToTrash from '../../dataProvider/Core/removeManyToTrash';\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n removeButton: {\n color: theme.palette.error.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}));\n\nconst BulkRemoveButton = ({ \n basePath,\n resource,\n classes: classesOverride,\n className,\n filterValues,\n selectedIds,\n ...rest }) => {\n\n const dispatch = useDispatch();\n const refresh = useRefresh();\n const notify = useNotify();\n const unselectAll = useUnselectAll();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n \n const handleClick = () => {\n\n setLoading(true);\n dispatch(fetchStart());\n\n removeManyToTrash({\n resource,\n ids: selectedIds,\n }).then(() => {\n refresh();\n notify( 'ra.notification.moved_to_trash', 'info', { smart_count: selectedIds.length } );\n unselectAll(resource)\n \n })\n .catch((error) => {\n notify( typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning' );\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n );\n \n};\n\nexport default BulkRemoveButton;","import removeToTrash from './removeToTrash';\n\n\nexport default ({ ids, resource }) => {\n return Promise.all(\n ids.map(id =>\n removeToTrash({resource, where: {id}})\n )\n ).then(results => {\n const data = results.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n return { data };\n });\n};","import React, { useState, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Form } from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Typography from '@material-ui/core/Typography';\nimport LabelIcon from '@material-ui/icons/Label';\nimport {\n useDataProvider,\n useNotify,\n useRefresh,\n Button as RaButton,\n useUnselectAll,\n sanitizeEmptyValues,\n fetchStart,\n fetchEnd,\n AutocompleteArrayInput, ReferenceArrayInput,\n} from 'react-admin';\n\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\nimport intersectionBy from 'lodash/intersectionBy'\nimport { groupBy } from 'lodash';\nimport updateManyTags from \"../../dataProvider/Core/updataManyTags.js\";\n\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n mt3: { marginTop: 16 },\n referenceArrayInput: {\n zIndex: 1000\n }\n}));\n\nconst defaultSubscription = {\n submitting: true,\n pristine: true,\n valid: true,\n invalid: true,\n};\n\nconst BulkUpdateTagsButton = ({ selectedIds, basePath, record, resource, className, redirect: redirectTo, ...props }) => {\n const refresh = useRefresh();\n const notify = useNotify();\n const unselectAll = useUnselectAll();\n const dispatch = useDispatch();\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [records, setRecords] = useState([]);\n const [intersectionTags, setIntersectionTags] = useState([]);\n const dataProvider = useDataProvider();\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n dispatch(fetchStart());\n dataProvider.getMany(resource, {\n ids: selectedIds\n })\n .then(result => {\n const items = result.data;\n\n const tags = items.map(gasMeterPad => gasMeterPad.tags)\n const intersectionTags = intersectionBy.apply(null, [...tags, \"id\"])\n\n setIntersectionTags(intersectionTags);\n setRecords(items);\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n dispatch(fetchEnd());\n });\n },\n [selectedIds, dispatch]\n );\n\n\n const handleClose = () => {\n setOpen(false);\n setRecords([])\n setIntersectionTags([])\n };\n\n const handleUpdateManyInOneRequest = (indexedTags, newTags) => {\n const items = records.map(pad => {\n const prevTags = pad.tags;\n const resultTags = [\n ...newTags,\n ...prevTags.map(tag => {\n const target = newTags.find(indexedTag => indexedTag.id === tag.id)\n console.log(target)\n const result = target ? target : !intersectionTags.some(intersectioned => intersectioned.id === tag.id) && tag\n return result ? {\n id: result.id,\n } : null;\n }).filter(el => el)\n ];\n return ({\n id: pad.id,\n tags: resultTags\n });\n });\n return updateManyTags({ records: items, resource }).then(result => {\n\n const data = Object.values(result.data).map(el => el.id)\n dispatch(refresh())\n notify('ra.notification.updated', 'info', { smart_count: data.length })\n return { data };\n })\n .catch(error => {\n notify(error)\n });\n }\n\n const handleSubmit = values => {\n\n const indexedTags = values.tags\n const newTags = values.tagsIds.map(id => ({ id }));\n\n dispatch(fetchStart())\n\n // handleUpdateMany(indexedDisablePeriods, newDisablePeriods)\n handleUpdateManyInOneRequest(indexedTags, newTags)\n .finally(() => {\n dispatch(fetchEnd())\n\n });\n\n setOpen(false);\n setRecords([])\n setIntersectionTags([])\n };\n\n return (\n <>\n \n \n \n \n Редактирование меток\n {/* \n \n Метки обновятся обновятся на установленные для выбранных площадок\n \n */}\n tag.id)\n }}\n onSubmit={handleSubmit}\n mutators={{ ...arrayMutators }}\n subscription={defaultSubscription}\n // key={version} // support for refresh button\n keepDirtyOnReinitialize\n render={formProps => (\n
\n \n {intersectionTags && \n \n }\n \n \n \n \n \n
\n )}\n />\n
\n );\n};\n\nexport default BulkUpdateTagsButton;","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\n\nexport default ({records, resource, ...props}) => {\n console.log(records)\n return apolloCoreClient.mutate({\n mutation: gql`\n mutation updateManyTags{\n ${ records.map((record, index) => `data${index}: update${resource}(where: { id: \"${record.id}\"}, tags: [${record.tags && record.tags.length ? record.tags.map(tag => `{ id: \"${tag.id}\" }` ) : ''}]){ id name tags{ id name } }`).join(', ')}\n }\n `,\n variables: { },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import { Ability } from '@casl/ability'\nimport set from 'lodash/set'\nimport { createContext } from 'react'\nimport { createContextualCan } from '@casl/react'\n\n\n\nexport const AbilityContext = createContext();\n\nexport const ability = new Ability([]);\n\nexport const rulesToFields = (action, subject) => {\n const rules = ability.rulesFor(action, subject)\n\n return rules.filter(rule => !rule.inverted && rule.conditions).reduce((values, rule) => Object.keys(rule.conditions).reduce((fields, fieldName) => {\n const value = rule.conditions[fieldName];\n\n set(fields, fieldName, value);\n\n return fields;\n }, values), {});\n}\n\nexport const defineAbilityFor = function (rules) {\n\n rules.filter(r => r.conditions).forEach(r => { for (let key in r.conditions) { if (r.conditions[key] === \"undefined\") { r.conditions[key] = undefined; } } });\n\n return rules;\n};\n\nexport const abilitySubjectConditions = (resource, conditions) => ({ constructor: { name: resource }, ...conditions });\n\n// export const Can = createContextualCan(AbilityContext.Consumer);\n\nexport const can = (action, subject, field, reference) => {\n return reference ? ability.can(action, subject, field) && ability.can(\"getList\", reference) : ability.can(action, subject, field);\n};","import React from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst BalanceRegionBulkActionButtons = props => (\n <>\n {can('update', 'BalanceRegion', 'tags', 'Tag') && }\n {can('getList', 'BalanceRegion') && }\n {can('remove', 'BalanceRegion') && }\n \n)\n\n\n\nexport default BalanceRegionBulkActionButtons;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@material-ui/core/IconButton';\nimport RemoveCircleIcon from '@material-ui/icons/RemoveCircle';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useResourceContext, useTranslate } from 'ra-core';\n\nconst emptyRecord = {};\n\nconst useStyles = makeStyles(\n theme => ({\n body: {\n display: 'flex',\n alignItems: 'flex-end',\n pointerEvents: 'auto',\n position: 'relative'\n },\n spacer: { width: theme.spacing(2) },\n hideButton: {\n height: 24,\n width: 24,\n padding: 0,\n position: 'absolute',\n top: 0,\n right: 0\n },\n hideIcon: {\n height: 16,\n width: 16,\n },\n }),\n { name: 'RaFilterFormInput' }\n);\n\nconst FilterFormInput = props => {\n const { filterElement, handleHide, variant, margin } = props;\n const resource = useResourceContext(props);\n const translate = useTranslate();\n const classes = useStyles(props);\n\n\n return (\n \n {React.cloneElement(filterElement, {\n allowEmpty:\n filterElement.props.allowEmpty === undefined\n ? true\n : filterElement.props.allowEmpty,\n resource,\n record: emptyRecord,\n variant,\n margin,\n helperText: false,\n // ignore defaultValue in Field because it was already set in Form (via mergedInitialValuesWithDefaultValues)\n defaultValue: undefined,\n })}\n {!filterElement.props.alwaysOn &&\n \n \n \n }\n
 
\n \n );\n};\n\nFilterFormInput.propTypes = {\n filterElement: PropTypes.node,\n handleHide: PropTypes.func,\n classes: PropTypes.object,\n resource: PropTypes.string,\n margin: PropTypes.string,\n variant: PropTypes.string,\n};\n\nexport default FilterFormInput;\n","import { Form } from 'react-final-form';\nimport React, { useCallback, useEffect } from 'react';\n// import { FilterFormInput } from 'react-admin';\nimport FilterFormInput from './FilterFormInput';\nimport PropTypes from 'prop-types';\nimport arrayMutators from 'final-form-arrays';\nimport classnames from 'classnames';\nimport lodashGet from 'lodash/get';\nimport lodashSet from 'lodash/set';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n theme => ({\n form: {\n marginTop: -theme.spacing(2),\n paddingTop: 0,\n display: 'flex',\n alignItems: 'flex-end',\n flexWrap: 'wrap',\n minHeight: theme.spacing(10),\n pointerEvents: 'none',\n },\n clearFix: { clear: 'right' },\n }),\n { name: 'ManualSubmitFilterForm' }\n);\n\nconst sanitizeRestProps = ({\n active,\n dirty,\n dirtyFields,\n dirtyFieldsSinceLastSubmit,\n dirtySinceLastSubmit,\n error,\n errors,\n filterValues,\n form,\n handleSubmit,\n hasSubmitErrors,\n hasValidationErrors,\n invalid,\n modified,\n modifiedSinceLastSubmit,\n pristine,\n setFilters,\n submitError,\n submitErrors,\n submitFailed,\n submitSucceeded,\n submitting,\n touched,\n valid,\n validating,\n values,\n visited,\n ...props\n}) => props;\n\n\nexport const ManualSubmitFilterForm = ({\n classes = {},\n className,\n resource,\n margin,\n variant,\n filters,\n displayedFilters = {},\n hideFilter,\n initialValues,\n handleSubmit,\n formRef,\n ...rest\n}) => {\n useEffect(() => {\n filters.forEach((filter) => {\n if (filter.props.alwaysOn && filter.props.defaultValue) {\n throw new Error(\n 'Cannot use alwaysOn and defaultValue on a filter input. Please set the filterDefaultValues props on the element instead.'\n );\n }\n });\n }, [filters]);\n\n const getShownFilters = () =>\n filters.filter(\n (filterElement) =>\n filterElement.props.alwaysOn ||\n displayedFilters[filterElement.props.source] ||\n typeof lodashGet(initialValues, filterElement.props.source) !==\n 'undefined'\n );\n\n const handleHide = useCallback(\n event => hideFilter(event.currentTarget.dataset.key),\n [hideFilter]\n );\n\n return (\n \n\n {getShownFilters().map((filterElement) => (\n \n ))}\n
\n \n \n );\n};\n\n\n\nManualSubmitFilterForm.propTypes = {\n resource: PropTypes.string.isRequired,\n filters: PropTypes.arrayOf(PropTypes.node).isRequired,\n displayedFilters: PropTypes.object,\n hideFilter: PropTypes.func.isRequired,\n initialValues: PropTypes.object,\n classes: PropTypes.object,\n className: PropTypes.string,\n};\n\nexport const mergeInitialValuesWithDefaultValues = ({\n initialValues,\n filters,\n}) => ({\n ...filters\n .filter(\n (filterElement) =>\n filterElement.props.alwaysOn && filterElement.props.defaultValue\n )\n .reduce(\n (acc, filterElement) =>\n lodashSet(\n { ...acc },\n filterElement.props.source,\n filterElement.props.defaultValue\n ),\n {}\n ),\n ...initialValues,\n});\n\nconst EnhancedFilterForm = props => {\n const { classes: classesOverride, initialValues, setFilters, ...rest } = props;\n const classes = useStyles(props);\n\n const mergedInitialValuesWithDefaultValues = mergeInitialValuesWithDefaultValues(props);\n\n\n const handleSubmit = values => {\n setFilters(values)\n }\n\n\n return (\n (\n \n )}\n />\n );\n};\n\nexport default EnhancedFilterForm;\n","import React, { useCallback } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ContentFilter from '@material-ui/icons/FilterList';\nimport classnames from 'classnames';\nimport { Button } from 'react-admin';\n\n\nconst useStyles = makeStyles(\n {\n root: { display: 'inline-block' },\n },\n { name: 'ManualSubmitFilterButton' }\n);\n\nconst ManualSubmitFilterButton = ({\n formRef,\n classes: classesOverride,\n className,\n resource,\n ...props\n}) => {\n\n\n const classes = useStyles(props);\n\n\n const handleFilter = useCallback(event => {\n event.preventDefault();\n (typeof formRef.current.requestSubmit === 'function') ? formRef.current.requestSubmit() : formRef.current.dispatchEvent(new Event('submit', { cancelable: true }));\n }, [formRef]);\n\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport default ManualSubmitFilterButton;\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import { usePreferences } from './usePreferences';\n\nconst useFilterSetsPreferences = (resource, initialValue) => usePreferences(`${resource}.list.filterSets`, initialValue);\n\nexport default useFilterSetsPreferences;","import React, { useState } from 'react';\nimport { useListContext, useTranslate } from 'react-admin';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n} from '@material-ui/core';\nimport useFilterSetsPreferences from '../../../controller/preferences/useFilterSetsPreferences';\n\n\n\nconst AddFilterSetDialog = ({\n open,\n onClose\n}) => {\n const translate = useTranslate();\n const {\n resource,\n filterValues,\n displayedFilters,\n currentSort,\n perPage,\n } = useListContext();\n\n const [filterSets, setFilterSets] = useFilterSetsPreferences(resource, []);\n\n // input state\n const [queryName, setQueryName] = useState('');\n const handleQueryNameChange = (\n event\n ) => {\n setQueryName(event.target.value);\n };\n\n const handleFormSubmit = (e) => {\n e.preventDefault();\n addQuery();\n };\n\n const addQuery = () => {\n setFilterSets(\n filterSets.concat({\n label: queryName,\n value: {\n filter: filterValues,\n sort: currentSort,\n perPage,\n displayedFilters,\n },\n })\n );\n setQueryName('');\n onClose();\n };\n\n return (\n \n \n {translate('ra-preferences.saved_queries.new_dialog_title', {\n _: 'Save current query as',\n })}\n \n \n
\n \n \n
\n \n \n \n \n \n );\n};\n\n\nexport default AddFilterSetDialog;","import React, { useListContext, useTranslate } from 'react-admin';\nimport isEqual from 'lodash/isEqual';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from '@material-ui/core';\nimport useFilterSetsPreferences from '../../../controller/preferences/useFilterSetsPreferences';\n\n\n\nconst RemoveFilterSetDialog = ({\n open,\n onClose,\n\n}) => {\n const translate = useTranslate();\n const {\n resource,\n filterValues,\n currentSort,\n perPage,\n displayedFilters,\n } = useListContext();\n\n const [filterSets, setFilterSets] = useFilterSetsPreferences(resource, []);\n\n const removeQuery = () => {\n const index = filterSets.findIndex(filterSet =>\n isEqual(filterSet.value, {\n filter: filterValues,\n sort: currentSort,\n perPage,\n displayedFilters,\n })\n );\n setFilterSets([\n ...filterSets.slice(0, index),\n ...filterSets.slice(index + 1),\n ]);\n onClose();\n };\n\n return (\n \n \n {translate('ra-preferences.saved_queries.remove_dialog_title', {\n _: 'Remove saved query?',\n })}\n \n \n \n {translate('ra-preferences.saved_queries.remove_message', {\n _:\n 'Are you sure you want to remove that item from your list of saved queries?',\n })}\n \n \n \n \n \n {translate('ra.action.confirm')}\n \n \n \n );\n};\n\n\n\nexport default RemoveFilterSetDialog;","import React, {\n useState,\n useCallback,\n useRef,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ContentFilter from '@material-ui/icons/FilterList';\nimport FilterAddIcon from '../../Icons/FilterAdd';\nimport classnames from 'classnames';\nimport lodashGet from 'lodash/get';\nimport { useHistory } from 'react-router-dom';\nimport { stringify } from 'query-string';\nimport {\n Button,\n FieldTitle,\n useTranslate,\n useListContext,\n} from 'react-admin';\n\n// import { useSavedQueries, AddFilterSetDialog, RemoveFilterSetDialog } from '@react-admin/ra-preferences';\nimport useFilterSetsPreferences from '../../../controller/preferences/useFilterSetsPreferences';\nimport AddFilterSetDialog from './AddFilterSetDialog';\nimport RemoveFilterSetDialog from './RemoveFilterSetDialog';\n\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'inline-block' },\n menu: {\n backgroundColor: theme.palette.background.paper,\n },\n}), { name: 'RaFilterButton' });\n\nexport const FilterButtonWithSave = (props) => {\n const { filters, className, ...rest } = props;\n const {\n filterValues,\n currentSort,\n perPage,\n displayedFilters = {},\n showFilter,\n resource,\n } = useListContext();\n const translate = useTranslate();\n const [open, setOpen] = useState(false);\n const anchorEl = useRef();\n const classes = useStyles(props);\n const [filterSets] = useFilterSetsPreferences(resource, []);\n const history = useHistory();\n\n const hasFilterValues = !isEqual(filterValues, {});\n const hasSavedCurrentFilterSet = filterSets.some(filterSet =>\n isEqual(filterSet.value, {\n filter: filterValues,\n sort: currentSort,\n perPage,\n displayedFilters,\n })\n );\n\n const hiddenFilters = filters.filter(\n (filterElement) =>\n !filterElement.props.alwaysOn &&\n !displayedFilters[filterElement.props.source] &&\n typeof lodashGet(filterValues, filterElement.props.source) ===\n 'undefined'\n );\n\n // menu state\n const handleClickButton = useCallback(\n event => {\n // This prevents ghost click.\n event.preventDefault();\n setOpen(true);\n anchorEl.current = event.currentTarget;\n },\n [anchorEl, setOpen]\n );\n const handleRequestClose = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n const handleShow = useCallback(\n ({ source, defaultValue }) => {\n showFilter(source, defaultValue);\n setOpen(false);\n },\n [showFilter, setOpen]\n );\n\n // add query dialog state\n const [addFilterSetDialogOpen, setAddFilterSetDialogOpen] = useState(\n false\n );\n const hideAddFilterSetDialog = () => {\n setAddFilterSetDialogOpen(false);\n };\n const showAddFilterSetDialog = () => {\n setOpen(false);\n setAddFilterSetDialogOpen(true);\n };\n\n // remove query dialog state\n const [\n removeFilterSetDialogOpen,\n setRemoveFilterSetDialogOpen,\n ] = useState(false);\n const hideRemoveFilterSetDialog = () => {\n setRemoveFilterSetDialogOpen(false);\n };\n const showRemoveFilterSetDialog = () => {\n setOpen(false);\n setRemoveFilterSetDialogOpen(true);\n };\n\n return (\n
\n \n \n \n \n }}\n >\n {translate('ra-preferences.saved_queries.label')}\n {filterSets.map((filterSet, index) =>\n isEqual(filterSet.value, {\n filter: filterValues,\n sort: currentSort,\n perPage,\n displayedFilters,\n }) ? (\n \n {translate(\n 'ra-preferences.saved_queries.remove_label_with_name',\n {\n _: 'Remove query \"%{name}\"',\n name: filterSet.label,\n }\n )}\n \n ) : (\n {\n history.push({\n search: stringify({\n filter: JSON.stringify(\n filterSet.value.filter\n ),\n sort: filterSet.value.sort.field,\n order: filterSet.value.sort.order,\n page: 1,\n perPage: filterSet.value.perPage,\n displayedFilters: JSON.stringify(\n filterSet.value.displayedFilters\n ),\n }),\n });\n setOpen(false);\n }}\n key={index}\n >\n {filterSet.label}\n \n )\n )}\n {hasFilterValues && !hasSavedCurrentFilterSet ? (\n \n {translate('ra-preferences.saved_queries.new_label', {\n _: 'Save current query...',\n })}\n \n ) : null}\n {Boolean(hiddenFilters.length) && Фильтры}\n {hiddenFilters.map((filterElement) => (\n \n ))}\n \n \n \n
\n );\n};\n\nFilterButtonWithSave.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n filters: PropTypes.arrayOf(PropTypes.node).isRequired,\n};\n\n\n// FIXME: remove once react-admin exports FilterButtonMenuItem\n// eslint-disable-next-line react/display-name\nconst FilterButtonMenuItem = forwardRef(\n (props, ref) => {\n const { filter, onShow, resource } = props;\n const handleShow = useCallback(() => {\n onShow({\n source: filter.props.source,\n defaultValue: filter.props.defaultValue,\n });\n }, [filter.props.defaultValue, filter.props.source, onShow]);\n\n return (\n \n \n \n );\n }\n);\n\nFilterButtonMenuItem.propTypes = {\n filter: PropTypes.element.isRequired,\n onShow: PropTypes.func.isRequired,\n resource: PropTypes.string.isRequired,\n};\n\nexport default FilterButtonWithSave","import React from 'react';\nimport { FilterButton, sanitizeListRestProps, useListContext } from 'react-admin';\nimport ManualSubmitFilterForm from './ManualSubmitFilterForm';\nimport ManualSubmitFilterButton from './ManualSubmitFilterButton';\nimport FilterButtonWithSave from './FilterButtonWithSave';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(\n {\n button: {},\n form: {},\n },\n { name: 'ManualSubmitFilter' }\n);\n\n\n\nconst Filter = props => {\n const classes = useStyles(props);\n const {\n resource,\n // showFilter,\n hideFilter,\n setFilters,\n displayedFilters,\n filterValues,\n } = useListContext(props);\n\n\n const renderButton = () => {\n const {\n classes: classesOverride,\n context,\n children,\n variant,\n formRef,\n ...rest\n } = props;\n\n return (\n <>\n \n {/* */}\n \n \n );\n };\n\n const renderForm = () => {\n const { classes: classesOverride, context, children, formRef, ...rest } = props;\n\n return (\n \n );\n };\n\n return props.context === 'button' ? renderButton() : renderForm();\n};\n\nFilter.propTypes = {\n children: PropTypes.node,\n classes: PropTypes.object,\n context: PropTypes.oneOf(['form', 'button']),\n};\n\nexport default Filter;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate, TextInput } from 'react-admin';\n\nconst useStyles = makeStyles(\n {\n input: {\n marginTop: 32,\n },\n },\n { name: 'RaSearchInput' }\n);\n\nconst SearchInput = props => {\n const { classes: classesOverride, ...rest } = props;\n const translate = useTranslate();\n const classes = useStyles(props);\n if (props.label) {\n throw new Error(\n \" isn't designed to be used with a label prop. Use if you need a label.\"\n );\n }\n\n return (\n \n \n \n ),\n }}\n className={classes.input}\n {...rest}\n />\n );\n};\n\nSearchInput.propTypes = {\n classes: PropTypes.object,\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport ScheduleIcon from '@material-ui/icons/Schedule';\nimport TodayIcon from '@material-ui/icons/Today';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport OtherIcon from '@material-ui/icons/Report';\nimport CertificateIcon from '../Icons/Certificate';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst getIcon = status => {\n switch (status) {\n case 'Hourly':\n return ()\n case 'Daily':\n return ()\n case 'Event':\n return ()\n case 'Other':\n return ()\n case 'Summary':\n return ()\n case 'GasQualityCertificate':\n return ()\n default:\n return ()\n }\n};\n\nconst useStyles = makeStyles(theme => ({\n root: { margin: \".125rem\" },\n Hourly: { color: \"#2e7d32\" },\n Daily: { color: \"#1565c0\" },\n Event: { color: \"#ef6c00\" },\n Other: { color: \"#4527a0\" },\n Summary: { color: \"#B71C1C\" },\n GasQualityCertificate: { color: \"#00796b\" },\n}));\n\nconst ReportIcon = ({ className, classes: classesOverride, record, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n\n if (!record) return null;\n const icon = getIcon(record.type)\n\n return React.cloneElement(icon, {\n className: `${className} ${classes[record.type]}`,\n ...props,\n });\n};\n\nexport default ReportIcon;","import React from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport ReportIcon from './ReportIcon';\nimport { useTranslate } from 'ra-core';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n selected: { fontWeight: 500 },\n highlight: {\n fontWeight: 500,\n color: \"#000\"\n },\n suggestionText: {\n flex: '1 1 auto',\n },\n suggestionChip: {\n marginLeft: 8,\n margin: 0,\n },\n}),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nconst Suggestion = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...props\n}) => {\n const translate = useTranslate()\n const classes = useStyles({ classes: classesOverride });\n const suggestionText = getSuggestionText(suggestion);\n if (!suggestion.id) return {suggestionText};\n const isHighlighted = highlightedIndex === index;\n const matches = match(suggestionText, filterValue);\n const parts = parse(suggestionText, matches);\n\n const { name, resource, gasMeterType } = suggestion\n const label = ` ${translate(`resources.${resource}.menu`, { smart_count: 1 })}${gasMeterType ? ` ${translate(`resources.GasMeter.enums.type.${gasMeterType}`)}` : \"\"}`\n\n\n\n return (\n \n \n \n {parts.map((part, index) => ({part.text}))}\n {label}\n \n \n );\n};\n\nexport default Suggestion;\n","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport ReportIcon from './ReportIcon';\nimport { useTranslate } from 'react-admin'\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n}));\n\nconst ReportChip = ({ className, classes: classesOverride, record, onDelete, ...props }) => {\n const translate = useTranslate()\n const classes = useStyles({ classes: classesOverride });\n if (!record) return null;\n const { name, resource, gasMeterType } = record\n const label = `${name} ${translate(`resources.${resource}.menu`, { smart_count: 1 })}${gasMeterType ? ` ${translate(`resources.GasMeter.enums.type.${gasMeterType}`)}` : \"\"}`\n\n return (\n }\n label={label}\n className={className}\n onDelete={onDelete}\n />\n );\n};\n\nexport default ReportChip;","import React from 'react';\nimport { ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from './ReportAutocompleteSuggestionItem';\nimport ReportChip from './ReportChip';\n\n\n\nconst matchTrue = () => true;\n\nconst ReportReferenceArrayInput = props => {\n\n return (\n \n } suggestionItem={} matchSuggestion={matchTrue} />\n \n );\n};\n\nexport default ReportReferenceArrayInput;","import { ReferenceArrayInput, TextInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport React from 'react';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}))\n\nconst BalanceRegionFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'BalanceRegion', 'aisId') && }\n {/* {can('getList', 'BalanceRegion', 'tags', 'Tag') && \n \n }\n {can('getList', 'BalanceRegion', 'tags', 'Tag') && \n \n } */}\n {can('getList', 'BalanceRegion', 'tags', 'Tag') && \n \n }\n {can('getList', 'BalanceRegion', 'tags', 'Tag') && \n \n }\n\n {can('getList', 'BalanceRegion', 'reports', 'Report') && }\n {can('getList', 'BalanceRegion', 'reports', 'Report') && }\n\n \n )\n}\n\n\n\nexport default BalanceRegionFilter","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ContentCreate from '@material-ui/icons/Create';\nimport { Link } from 'react-router-dom';\nimport { linkToRecord, useTranslate } from 'ra-core';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Typography from '@material-ui/core/Typography';\n\n\n\nconst EditButton = ({\n basePath = '',\n label = 'ra.action.edit',\n record,\n icon = defaultIcon,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n \n \n \n \n {translate(label)}\n \n )\n};\n\nconst defaultIcon = ;\n\nconst stopPropagation = e => e.stopPropagation();\n\nEditButton.propTypes = {\n basePath: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.string,\n record: PropTypes.any,\n};\n\nexport default EditButton;\n","import React, { Children, isValidElement } from 'react';\nimport { Tooltip, IconButton, Menu } from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport { useTranslate } from 'react-admin';\n\n\n\nconst MoreButton = ({ label = 'ra.action.more', children, cellClassName, ...props }) => {\n const translate = useTranslate();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n\n const handleClick = (event) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = (event) => {\n event.stopPropagation();\n setAnchorEl(null);\n };\n\n return (\n
\n \n \n \n \n \n \n {Children.map(children, field =>\n field && isValidElement(field)\n ? React.cloneElement(field, { ...props })\n : null\n )}\n \n
\n );\n}\n\nexport default MoreButton;","const sanitizeFieldRestProps = ({\n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n emptyText,\n formClassName,\n fullWidth,\n headerClassName,\n label,\n linkType,\n link,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n sortByOrder,\n source,\n textAlign,\n translateChoice,\n ...props\n}) => props;\n\nexport default sanitizeFieldRestProps;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Link as RRLink } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n theme => ({\n link: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n '&:visited': {\n color: theme.palette.primary.dark,\n },\n },\n }),\n { name: 'RaLink' }\n);\n\nconst Link = props => {\n const {\n to,\n children,\n classes: classesOverride,\n className,\n ...rest\n } = props;\n const classes = useStyles(props);\n return (\n \n {children}\n \n );\n};\n\n\nexport default Link;\n","import React, { memo } from 'react';\nimport get from 'lodash/get';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\nimport { linkToRecord } from 'react-admin';\nimport Link from './Link';\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst ResourceLinkField = memo(props => {\n const { className, emptyText, source, linkTo = 'show', basePath, record, ...rest } = props;\n if (!record) return null;\n const value = get(record, source);\n const link = linkToRecord(basePath, record.id, linkTo)\n\n return (\n \n {value}\n \n );\n});\n\nResourceLinkField.defaultProps = {\n addLabel: true,\n};\n\nResourceLinkField.displayName = 'ResourceLinkField';\n\n\nexport default ResourceLinkField;\n","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNotify, useRedirect, useRefresh, fetchStart, fetchEnd, useTranslate } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport RemoveIcon from '@material-ui/icons/Delete';\nimport removeToTrash from '../../dataProvider/Core/removeToTrash';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Typography from '@material-ui/core/Typography';\n\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n onSave,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n removeButton: {\n color: theme.palette.error.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}));\n\nconst RemoveButton = ({ \n basePath,\n classes: classesOverride,\n className,\n record,\n resource,\n redirect: redirectTo,\n ...rest }) => {\n const dispatch = useDispatch();\n const redirect = useRedirect();\n const refresh = useRefresh();\n const notify = useNotify();\n const translate = useTranslate();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n \n const handleClick = (e) => {\n\n e.stopPropagation();\n setLoading(true);\n dispatch(fetchStart());\n\n removeToTrash({\n resource,\n where: {id: record.id}\n }).then(() => {\n notify( 'ra.notification.moved_to_trash', 'info', { smart_count: 1 } );\n redirect(redirectTo, basePath, record.id);\n refresh();\n })\n .catch((error) => {\n notify( typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning' );\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n \n {translate('ra.action.remove')}\n \n );\n \n};\n\nexport default RemoveButton;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImageEye from '@material-ui/icons/RemoveRedEye';\nimport { Link } from 'react-router-dom';\nimport { linkToRecord, useTranslate } from 'ra-core';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Typography from '@material-ui/core/Typography';\n\n\nconst LinkRef = React.forwardRef((props, ref) => );\n\nconst ShowButton = React.forwardRef(({\n basePath = '',\n label = 'ra.action.show_blank',\n icon = defaultIcon,\n record,\n ...rest\n}, ref) => {\n const translate = useTranslate();\n\n return (\n \n \n {React.cloneElement(icon, {\n fontSize: \"small\"\n })}\n \n {translate(label)}\n \n )\n});\n\nconst defaultIcon = ;\n\nconst stopPropagation = e => e.stopPropagation();\n\nShowButton.propTypes = {\n basePath: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.string,\n record: PropTypes.any,\n};\n\nexport default ShowButton;\n","import React, {cloneElement, Children} from \"react\";\nimport get from 'lodash/get';\n\nconst TagsField = ({children, classes: classesOverride, className, record, source, ...props}) => {\n const tags = get(record, source);\n\n if (!tags || !tags.length) return null;\n\n return (\n
\n {tags.map(tag => {\n return cloneElement(Children.only(children), {\n key: tag.id,\n record: tag,\n });\n })}\n
\n );\n};\n\nexport default TagsField;","import React, { forwardRef } from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { emphasize } from '@material-ui/core/styles/colorManipulator';\nimport { Link } from 'react-router-dom';\nimport { stringify } from 'query-string';\nimport { useSelector } from 'react-redux';\n\n\n\nconst useStyles = makeStyles(theme => ({\n chip: (props) => {\n const backgroundColor = props.color ? props.color : theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700];\n\n return {\n color: theme.palette.getContrastText(backgroundColor),\n backgroundColor: backgroundColor,\n '&:hover, &:focus': {\n backgroundColor: emphasize(backgroundColor, 0.08),\n }\n }\n }\n}));\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst LinkRef = React.forwardRef((props, ref) => );\n\nconst TagChip = forwardRef(({ classes: classesOverride, className, record, ...props }, ref) => {\n const classes = useStyles({ color: record.color, classes: classesOverride });\n const { filter, order, page, perPage, sort } = useSelector(\n (state) => {\n return state.admin.resources[record.resource] ? state.admin.resources[record.resource].list.params : {}\n }\n );\n\n return (\n \n );\n});\n\nexport default TagChip;","\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useListStyles = makeStyles(theme => ({\n row: { height: 40 },\n cellMinWidth: { width: 1 },\n noWrap: { whiteSpace: \"nowrap\" },\n cellButton: {\n width: 24,\n padding: \"0 16px 0 12px\"\n },\n}));\n\nexport default useListStyles","import { cloneElement, useEffect } from 'react';\nimport isEmpty from \"lodash/isEmpty\";\nimport useColumnsPreferences from './useColumnsPreferences';\nimport { useResourceContext } from 'ra-core';\n\n\n\nconst useSelectedColumnsPreferences = (columns) => {\n\n const resource = useResourceContext();\n const [columnsFromPrefs, setColumnsFromPref, loaded] = useColumnsPreferences(resource, Object.keys(columns));\n\n useEffect(() => {\n if (loaded && !isEmpty(columns) && !columnsFromPrefs) {\n setColumnsFromPref(\n Object.keys(columns).filter(name => !columns[name].props.hideDefault)\n );\n }\n }, [loaded, columns, columnsFromPrefs, setColumnsFromPref]); // eslint-disable-line\n\n const columnList = columnsFromPrefs\n ? columnsFromPrefs.filter(name => !!columns[name])\n : Object.keys(columns).filter(name => !columns[name].props.hideDefault);\n\n const selectedColumns = columnList.map(name => {\n const field = columns[name]\n const { alwaysOn, hideDefault, column, ...props } = field.props\n const sanitizedField = { ...field, props }\n return cloneElement(sanitizedField, { key: column || props.source })\n })\n\n return selectedColumns;\n};\n\n\n\nexport default useSelectedColumnsPreferences;\n","import { useMemo } from 'react';\nimport compact from 'lodash/compact';\n\nconst useColumns = (fields) => {\n\n const columns = useMemo(() => {\n return compact(fields).reduce((acc, field) => {\n const column = field.props.column || field.props.source\n\n acc[column] = field;\n return acc\n }, {})\n }, []);\n\n return columns\n}\n\nexport default useColumns","import { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport React from 'react';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'BalanceRegion', 'name') && ,\n can('getList', 'BalanceRegion', 'aisId') && ,\n can('getList', 'BalanceRegion', 'tags', 'Tag') && \n \n ,\n can('getList', 'BalanceRegion', 'createdAt') && ,\n can('getList', 'BalanceRegion', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nconst BalanceRegionDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'BalanceRegion') && }\n {can('update', 'BalanceRegion') && }\n {can('remove', 'BalanceRegion') && }\n \n \n )\n}\n\n\n\nexport default BalanceRegionDatagrid;","import React from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useBalanceRegionExporter from './useBalanceRegionExporter';\nimport BalanceRegionBulkActionButtons from './BalanceRegionBulkActionButtons';\nimport BalanceRegionFilter from './BalanceRegionFilter';\nimport BalanceRegionDatagrid, { useDefaultDatagridColumns } from './BalanceRegionDatagrid';\n\n\n\n\nconst BalanceRegionList = (props) => {\n const exporter = useBalanceRegionExporter()\n const manualSubmitForm = React.useRef(null)\n const columns = useDefaultDatagridColumns()\n\n return (\n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n )\n};\n\nBalanceRegionList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default BalanceRegionList;","import React from 'react';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n }, \n}));\n\nconst AisChip = ({classes: classesOverride, className, ...props}) => { \n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) {return null}\n const aisId = record.aisId;\n const label = aisId ? aisId : \"ИД АИС не назначен\";\n\n return (\n \n );\n};\n\n\n\nexport default AisChip;","import React from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport AisChip from \"../Fields/AisChip\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n selected: { fontWeight: 500 },\n highlight: { \n fontWeight: 500,\n color: \"#000\"\n },\n suggestionText: { \n flex: '1 1 auto',\n },\n suggestionChip: { \n marginLeft: 8,\n margin: 0,\n },\n }),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nconst Suggestion = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n // const suggestionText = getSuggestionText(suggestion);\n const suggestionText = suggestion.name;\n if (!suggestion.id) return Нет;\n const isHighlighted = highlightedIndex === index;\n const matches = match(suggestionText, filterValue);\n const parts = parse(suggestionText, matches);\n \n\n return (\n \n \n {parts.map((part, index) => ({part.text}))}\n \n \n \n );\n};\n\nexport default Suggestion;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\n\n\n\nconst useStyles = makeStyles(theme => ({\n\n}));\n\nconst SelectedItem = ({className, label, record, onDelete, ...props}) => {\n const classes = useStyles();\n if (!record) return null;\n const text = record.aisId ? `${record.name} (${record.aisId})` : record.name\n return (\n \n );\n};\n\nexport default SelectedItem;\n","import React, { useEffect } from 'react';\nimport get from 'lodash/get'\nimport { useForm, useFormState } from 'react-final-form';\nimport { useGetList, ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from './ReportAutocompleteSuggestionItem';\nimport ReportChip from './ReportChip';\n\n\n\nconst matchTrue = () => true;\n\nconst ReportReferenceArrayInput = props => {\n const { source, reference, filter } = props\n const form = useForm();\n const { values } = useFormState({ subscription: { values: true } });\n const value = get(values, source)\n const { ids } = useGetList(\n reference,\n { page: 1, perPage: 100 },\n { field: 'name', order: 'DESC' },\n { ...filter, useDefault: true },\n { enabled: !value }\n );\n\n useEffect(() => {\n if (!value && ids.length > 0) {\n form.change(source, ids)\n }\n }, [ids])\n\n return (\n \n } suggestionItem={} matchSuggestion={matchTrue} />\n \n );\n};\n\nexport default ReportReferenceArrayInput;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport CheckboxBlank from '../Icons/CheckboxBlank';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n selected: { fontWeight: 500 },\n highlight: { \n fontWeight: 500,\n color: \"#000\"\n },\n suggestionText: { \n flex: '1 1 auto',\n },\n suggestionChip: { \n marginLeft: 8,\n margin: 0,\n },\n }),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nconst Suggestion = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const suggestionText = getSuggestionText(suggestion);\n if (!suggestion.id) return {suggestionText};\n const isHighlighted = highlightedIndex === index;\n const matches = match(suggestionText, filterValue);\n const parts = parse(suggestionText, matches);\n const color = suggestion.color;\n\n return (\n \n \n \n {parts.map((part, index) => ({part.text}))}\n \n \n );\n};\n\nexport default Suggestion;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { emphasize } from '@material-ui/core/styles/colorManipulator';\nimport Chip from '@material-ui/core/Chip';\nimport get from 'lodash/get';\n\nconst useStyles = makeStyles(theme => ({\n\n chip: ({ record }) => {\n const color = get(record, \"color\")\n const backgroundColor = color ? color : theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700];\n return {\n color: theme.palette.getContrastText(backgroundColor),\n backgroundColor: backgroundColor,\n '&:hover, &:focus': {\n backgroundColor: emphasize(backgroundColor, 0.08),\n }\n }\n }\n}));\n\nconst SelectedItem = ({ className, classes: classesOverride, label, record, onDelete, ...props }) => {\n const classes = useStyles({ record, classes: classesOverride });\n if (!record) return null;\n const text = record.name;\n\n return (\n \n );\n};\n\nexport default SelectedItem;\n","import React from 'react';\nimport { ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from './TagAutocompleteSuggestionItem';\nimport SelectedItem from './TagAutocompleteSelectedItem';\n\n\n\nconst matchTrue = () => true;\n\nconst TagReferenceArrayInput = props => {\n return (\n \n } suggestionItem={} matchSuggestion={matchTrue} />\n \n );\n};\n\nexport default TagReferenceArrayInput;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// }));\n\nconst BalanceRegionCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'BalanceRegion', 'name') && }\n {can('create', 'BalanceRegion', 'description') && }\n {can('create', 'BalanceRegion', 'aisId') && }\n {can('create', 'BalanceRegion', 'gasDistributorStations', 'GasDistributorStation') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'BalanceRegion', 'reports', 'Report') && }\n {can('create', 'BalanceRegion', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default BalanceRegionCreate;","import React, { Children, cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\n// import Card from '@material-ui/core/Card';\n// import CardContent from '@material-ui/core/CardContent';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useEditContext, ComponentPropType, EditActions as DefaultActions, TitleForRecord } from 'react-admin';\nimport Remove from './Remove';\n\n\nexport const EditView = (props) => {\n const {\n actions,\n aside,\n children,\n classes: classesOverride,\n className,\n component: Content,\n title,\n undoable,\n ...rest\n } = props;\n\n const classes = useStyles(props);\n\n const {\n basePath,\n defaultTitle,\n hasList,\n hasShow,\n record,\n redirect,\n resource,\n save,\n saving,\n version,\n } = useEditContext(props);\n\n if (record && record.deleted) {\n return (\n \n );\n }\n\n const finalActions = typeof actions === 'undefined' && hasShow\n ? ()\n : (actions);\n\n if (!children) { return null; }\n\n return (\n \n \n {finalActions &&\n cloneElement(finalActions, {\n basePath,\n data: record,\n hasShow,\n hasList,\n resource,\n // Ensure we don't override any user provided props\n ...finalActions.props,\n })}\n \n \n {record && Children.map(children, (field, index) => (\n isValidElement(field) ? cloneElement(field, {\n key: index,\n basePath,\n record,\n // redirect:\n // typeof children.props.redirect ===\n // 'undefined'\n // ? redirect\n // : children.props.redirect,\n resource,\n save,\n saving,\n undoable,\n version,\n }) : null\n ))}\n \n {aside &&\n cloneElement(aside, {\n basePath,\n record,\n resource,\n version,\n save,\n saving,\n })}\n
\n \n );\n};\n\n\nEditView.propTypes = {\n actions: PropTypes.element,\n aside: PropTypes.element,\n basePath: PropTypes.string,\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: ComponentPropType,\n defaultTitle: PropTypes.any,\n hasList: PropTypes.bool,\n hasShow: PropTypes.bool,\n record: PropTypes.object,\n redirect: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n resource: PropTypes.string,\n save: PropTypes.func,\n title: PropTypes.node,\n version: PropTypes.number,\n onSuccess: PropTypes.func,\n onFailure: PropTypes.func,\n setOnSuccess: PropTypes.func,\n setOnFailure: PropTypes.func,\n setTransform: PropTypes.func,\n};\n\nEditView.defaultProps = {\n classes: {},\n component: \"div\",\n};\n\nconst useStyles = makeStyles(\n {\n root: {},\n main: {\n display: 'flex',\n },\n noActions: {\n marginTop: '1em',\n },\n card: {\n flex: '1 1 auto',\n },\n },\n { name: 'RaEdit' }\n);\n\nconst sanitizeRestProps = ({\n basePath = null,\n defaultTitle = null,\n hasCreate = null,\n hasEdit = null,\n hasList = null,\n hasShow = null,\n history = null,\n id = null,\n loaded = null,\n loading = null,\n location = null,\n match = null,\n onFailureRef = null,\n onSuccessRef = null,\n options = null,\n permissions = null,\n save = null,\n saving = null,\n setOnFailure = null,\n setOnSuccess = null,\n setTransform = null,\n successMessage = null,\n transformRef = null,\n ...rest\n}) => rest;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { EditContextProvider, useCheckMinimumRequiredProps, useEditController } from 'ra-core';\nimport { EditView } from './EditView';\n\n\nexport const Edit = (props) => {\n useCheckMinimumRequiredProps('Edit', ['children'], props);\n const controllerProps = useEditController(props);\n return (\n \n \n \n );\n};\n\nEdit.propTypes = {\n actions: PropTypes.element,\n aside: PropTypes.element,\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n hasCreate: PropTypes.bool,\n hasEdit: PropTypes.bool,\n hasShow: PropTypes.bool,\n hasList: PropTypes.bool,\n id: PropTypes.any.isRequired,\n resource: PropTypes.string.isRequired,\n title: PropTypes.node,\n successMessage: PropTypes.string,\n onSuccess: PropTypes.func,\n onFailure: PropTypes.func,\n transform: PropTypes.func,\n undoable: PropTypes.bool,\n};\n\nexport default Edit","import React from 'react';\n\n\nconst ToolbarSpacer = () => {\n return (\n
 
\n )\n}\n\nexport default ToolbarSpacer","import React, { cloneElement, Children } from 'react';\nimport Card from '@material-ui/core/Card';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useTranslate} from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n card: {}\n}));\n\nconst CardBlankLayout = ({children, classes: classesOverride, className, label, ...props}) => { \n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n return (\n
\n {label && {translate(label)}}\n \n {cloneElement(Children.only(children), {\n ...props,\n ...children.props,\n })}\n \n
\n \n );\n};\n\n\n\nexport default CardBlankLayout;","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNotify, useRedirect, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport RemoveIcon from '@material-ui/icons/Delete';\nimport removeToTrash from '../../dataProvider/Core/removeToTrash';\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n onSave,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n removeButton: {\n color: theme.palette.error.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}));\n\nconst RemoveButton = ({\n basePath,\n classes: classesOverride,\n className,\n record,\n resource,\n redirect: redirectTo,\n ...rest }) => {\n const dispatch = useDispatch();\n const redirect = useRedirect();\n const refresh = useRefresh();\n const notify = useNotify();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n\n const handleClick = () => {\n\n setLoading(true);\n dispatch(fetchStart());\n\n removeToTrash({\n resource,\n where: { id: record.id }\n }).then(() => {\n notify('ra.notification.moved_to_trash', 'info', { smart_count: 1 });\n redirect(redirectTo, basePath, record.id, record);\n refresh();\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n );\n\n};\n\nexport default RemoveButton;","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { linkToRecord, useTranslate } from 'ra-core';\nimport Button from '@material-ui/core/Button';\n\n\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst CancelButton = ({\n basePath = '',\n label = 'ra.action.cancel',\n record,\n redirect = 'show',\n}) => {\n const translate = useTranslate()\n\n return (\n \n {translate(label)}\n \n );\n};\n\n\n\n\nexport default CancelButton;\n","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst BalanceRegionBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n
\n \n
\n \n \n {can('getOne', 'BalanceRegion', 'name') && {name}}\n {can('getOne', 'BalanceRegion', 'description') && {description}}\n {can('getOne', 'BalanceRegion', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'BalanceRegion', 'aisId') && }\n \n \n
\n
\n
\n\n );\n};\n\n\n\nexport default BalanceRegionBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, ReferenceArrayInput, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport BalanceRegionBanner from './BalanceRegionBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n}));\n\nconst BalanceRegionToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'BalanceRegion') && }\n {can(\"update\", \"BalanceRegion\") && }\n \n {can('remove', 'BalanceRegion') && }\n \n \n );\n}\n\nconst BalanceRegionEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'BalanceRegion', 'name') && }\n {can('update', 'BalanceRegion', 'description') && }\n {can('update', 'BalanceRegion', 'aisId') && }\n {can('update', 'BalanceRegion', 'gasDistributorStations', 'GasDistributorStation') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'BalanceRegion', 'reports', 'Report') && }\n {can('update', 'BalanceRegion', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default BalanceRegionEdit","import React from 'react';\nimport Divider from '@material-ui/core/Divider';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n\n\nconst DividerField = (props) => {\n\n return ();\n}\n\nexport default DividerField;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleShowLayout } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n}));\n\nconst CardShowLayout = ({children, classes: classesOverride, className, ...props}) => { \n const classes = useStyles();\n return (\n \n \n {children}\n \n \n );\n};\n\n\n\nexport default CardShowLayout;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasDistrict', 'name') && ,\n can('getList', 'GasDistrict', 'aisId') && ,\n can('getList', 'GasDistrict', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasDistrict', 'createdAt') && ,\n can('getList', 'GasDistrict', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nexport const GasDistrictReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasDistrict', 'name') && }\n {can('getList', 'GasDistrict', 'aisId') && }\n {can('getList', 'GasDistrict', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistrict', 'createdAt') && }\n {can('getList', 'GasDistrict', 'updatedAt') && }\n \n );\n}\n\nconst GasDistrictDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasDistrict') && }\n {can('update', 'GasDistrict') && }\n {can('remove', 'GasDistrict') && }\n \n \n )\n}\n\n\n\nexport default GasDistrictDatagrid;","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Collapse from '@material-ui/core/Collapse';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate } from 'react-admin';\nimport Portal from '@material-ui/core/Portal';\n\n\n\nconst useStyles = makeStyles(theme => ({\n cardActions: {\n justifyContent: \"center\",\n },\n button: {\n color: theme.palette.text.secondary,\n },\n expandButton: {},\n expandIcon: {\n marginLeft: 4,\n fontSize: 20,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest,\n }),\n },\n expandOpen: {\n transform: 'rotate(180deg)',\n },\n\n}));\n\nconst MoreContent = ({ children, classes: classesOverride, resource, basePath, record, version, label, showMoreButton, ...props }) => {\n const translate = useTranslate();\n const classes = useStyles({ classes: classesOverride });\n const [more, setMore] = useState(false);\n if (!showMoreButton) return null;\n\n const handleMoreClick = () => {\n setMore(!more);\n };\n\n return (\n <>\n \n \n \n \n {React.Children.map(children, field => (\n React.cloneElement(field, {\n record,\n basePath,\n resource,\n version,\n })\n ))}\n \n \n );\n};\n\nMoreContent.propTypes = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element,]),\n};\n\nMoreContent.defaultProps = {\n classes: {},\n label: \"ra.action.more\"\n};\n\n\nexport default MoreContent;\n","import React from 'react';\nimport { Link } from 'react-admin';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport get from 'lodash/get';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n\n\nconst useStyles = makeStyles(theme => ({\n link: {\n color: theme.palette.link.main,\n },\n}));\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst NestedField = ({\n children,\n className,\n classes: classesOverride,\n basePath,\n record,\n reference,\n resource,\n source,\n link,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const referenceRecord = get(record, source);\n if (!referenceRecord) return null;\n const rootPath = basePath.replace(resource, reference);\n const resourceLinkPath = !link ? false : (typeof link === 'function') ? link(record, reference) : `${rootPath}/${encodeURIComponent(referenceRecord.id)}/${link}`;\n\n\n if (resourceLinkPath) {\n return (\n \n {React.cloneElement(children, {\n className: `${children.props.className} ${classes.link}`,\n record: referenceRecord,\n resource: reference,\n basePath,\n ...sanitizeFieldRestProps(props),\n })}\n \n );\n }\n\n return React.cloneElement(children, {\n className: `${className} ${children.props.className}`,\n record: referenceRecord,\n resource: reference,\n basePath,\n ...sanitizeFieldRestProps(props),\n });\n}\n\n\nNestedField.propTypes = {\n addLabel: PropTypes.bool,\n basePath: PropTypes.string,\n children: PropTypes.element.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n cellClassName: PropTypes.string,\n headerClassName: PropTypes.string,\n label: PropTypes.string,\n record: PropTypes.object,\n reference: PropTypes.string.isRequired,\n resource: PropTypes.string,\n sortBy: PropTypes.string,\n source: PropTypes.string.isRequired,\n link: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n ]).isRequired,\n};\n\n\nNestedField.defaultProps = {\n classes: {},\n link: 'show',\n record: {},\n addLabel: true,\n};\n\n\nexport default NestedField;\n","import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useTranslate } from 'ra-core';\n\n\nconst parseGridValue = (theme, value) => {\n return (typeof value === 'string') ? value : theme.spacing(value) + \"px\";\n}\n\nconst parseGridSize = (theme, size) => {\n return (Array.isArray(size))\n ? `minmax(${size.map(value => parseGridValue(theme, value)).join(\", \")})`\n : parseGridValue(theme, size);\n}\n\nconst generateGrid = (theme, breakpoint, props) => {\n const value = props[breakpoint];\n if (!value) return;\n const { count, size } = value;\n return {\n [theme.breakpoints.up('xs')]: {\n gridTemplateColumns: `repeat(${count}, ${parseGridSize(theme, size)})`\n },\n };\n}\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n grid: ({ spacing }) => ({\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(160px, 1fr))\",\n gridGap: theme.spacing(spacing),\n }),\n \"grid-xs\": (props) => generateGrid(theme, \"xs\", props),\n \"grid-sm\": (props) => generateGrid(theme, \"sm\", props),\n \"grid-md\": (props) => generateGrid(theme, \"md\", props),\n \"grid-lg\": (props) => generateGrid(theme, \"lg\", props),\n \"grid-xl\": (props) => generateGrid(theme, \"xl\", props),\n}));\n\n\n\nconst GridLayoutSimple = ({\n children,\n classes: classesOverride,\n className: classNameOverride,\n lg = false,\n md = false,\n sm = false,\n xl = false,\n xs = false,\n spacing = 2,\n label,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride, lg, md, sm, xl, xs, spacing });\n const translate = useTranslate();\n if (!children) return null;\n const gridClassNames = classnames(\n classes.grid,\n {\n [classes[`grid-xs`]]: xs !== false,\n [classes[`grid-sm`]]: sm !== false,\n [classes[`grid-md`]]: md !== false,\n [classes[`grid-lg`]]: lg !== false,\n [classes[`grid-xl`]]: xl !== false,\n },\n classNameOverride,\n );\n\n return (\n
\n {label && {translate(label)}}\n
\n {children}\n
\n
\n );\n};\n\n\n\nexport default GridLayoutSimple;","import React, { Children, cloneElement } from 'react';\nimport get from 'lodash/get';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslate } from 'ra-core';\nimport GridLayoutSimple from '../Layout/GridLayoutSimple';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n gridItem: {\n display: \"flex\",\n },\n}));\n\nconst NestedGridField = ({ children, classes: classesOverride, record, source, resource, basePath, version, className, label, ...props }) => {\n const choices = get(record, source);\n const referenceRecord = record\n if (!record || !choices.length) return null;\n\n return (\n \n {choices.map(choice =>\n cloneElement(Children.only(children), {\n key: choice.id,\n record: choice,\n resource,\n basePath,\n version,\n referenceRecord,\n })\n )}\n \n )\n};\n\n\nexport default NestedGridField;","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport upperFirst from 'lodash/upperFirst';\nimport { SelectInput } from \"react-admin\";\nimport { useDataProvider } from 'react-admin';\n\n\n\nconst EnumInput = ({ name, filter, record, resource, source, translate, useEnum, option, ...props }) => {\n const dataProvider = useDataProvider();\n const [enums, setEnums] = useState([])\n const calcEnumName = name || upperFirst(resource) + upperFirst(source)\n\n useEffect(() => {\n async function fetchData() {\n dataProvider.getEnum(resource, { name: calcEnumName })\n .then(({ data }) => {\n setEnums(data);\n })\n .catch(error => {\n console.log('error: ', error)\n })\n }\n fetchData();\n }, [name])\n\n const selected = enums.filter(choice => choice.name === get(record, source));\n\n const choices = (typeof filter === 'function') ? [...new Set([...selected, ...enums.filter(filter)])] : enums\n\n const getOption = choice => option ? `${option}.${choice.name}` : `resources.${resource}.enums.${source}.${choice.name}`;\n\n\n return (\n \n );\n\n}\n\nEnumInput.defaultProps = {\n};\n\nEnumInput.propTypes = {\n source: PropTypes.string,\n};\n\n\nexport default EnumInput;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\nimport { useTranslate } from 'react-admin';\n\n\nconst EnumField = ({ className, resource, source, record = {}, option, ...props }) => {\n const translate = useTranslate();\n const enumValue = get(record, source);\n if (!enumValue) { return null };\n\n const value = option ? translate(`${option}.${enumValue}`, { _: enumValue }) : translate(`resources.${resource}.enums.${source}.${enumValue}`, { _: enumValue });\n\n return (\n \n {value}\n \n )\n};\n\nEnumField.propTypes = {\n label: PropTypes.string,\n record: PropTypes.object,\n source: PropTypes.string.isRequired,\n};\n\nEnumField.defaultProps = {\n addLabel: true,\n};\n\nexport default EnumField;","import React, { useCallback } from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { AutocompleteInput, Datagrid, SimpleList, DateInput, DateField, ListContextProvider, ListView, TextField, ReferenceInput, useListController, useRecordContext, useTranslate } from 'react-admin';\nimport EnumInput from '../Inputs/EnumInput'\nimport EnumField from '../Fields/EnumField';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport SearchInput from '../Inputs/SearchInput'\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst knownResources = [\n \"GasRegion\",\n \"GasDistrict\",\n \"BalanceRegion\",\n \"GasDistributorOrganization\",\n \"GasDistributorStation\",\n \"GasDistributorStationOutput\",\n \"GasConsumer\",\n \"GasMeterPad\",\n \"GasMeterUnit\",\n \"GasMeterPoint\",\n \"GasQualityCertificate\",\n \"Counterparty\",\n \"User\"\n]\n\n\nconst filterResources = (value) => {\n const resources = knownResources.filter((resource) => can('getList', resource))\n return resources.includes(value.name);\n}\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n row: { height: 40 },\n noWrap: { whiteSpace: \"nowrap\" },\n cellButton: {\n width: 24,\n padding: \"0 16px 0 12px\"\n },\n}));\n\nconst HistoryFilter = (props) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nexport const DefaultDatagrid = (props) => {\n const classes = useStyles();\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport const ReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const translate = useTranslate();\n const classes = useStyles();\n\n return isMobile ? (\n translate(`resources.History.enums.action.${record.action}`)}\n tertiaryText={record => new Date(record.createdAt).toLocaleDateString()}\n linkType=\"show\"\n />\n ) : (\n \n \n \n \n \n \n \n );\n}\n\n\n\n\nexport const ReferenceFieldDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const translate = useTranslate();\n const classes = useStyles();\n const { record: { id } } = useRecordContext()\n\n const historyRowStyle = useCallback((record, index) => {\n if (record.id === id) return { backgroundColor: 'rgba(0, 0, 0, 0.08)' }\n }, [id]);\n\n return isMobile ? (\n translate(`resources.History.enums.action.${record.action}`)}\n tertiaryText={record => new Date(record.createdAt).toLocaleDateString()}\n linkType=\"show\"\n />\n ) : (\n \n \n \n \n \n \n \n );\n}\n\n\n\n\n\nconst HistoryList = props => {\n const filter = { resource_in: knownResources.filter((resource) => can('getList', resource)) };\n const controllerProps = useListController({ ...props, filter });\n const manualSubmitForm = React.useRef(null);\n const classes = useStyles();\n\n return (\n \n }\n exporter={false}\n filter={filter}\n {...props}\n >\n \n \n \n )\n};\n\nHistoryList.defaultProps = {\n perPage: 50,\n sort: { field: 'createdAt', order: 'DESC' },\n bulkActionButtons: false,\n};\n\n\nexport default HistoryList;","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { stringify } from 'query-string';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(theme => ({\n button: {\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const ReferenceListLinkButton = ({ className, basePath, target, reference, record, filterValues, ...props }) => {\n\n const classes = useStyles();\n\n return (\n \n Открыть список\n \n );\n};\n\n\nexport default ReferenceListLinkButton;","import React from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-start',\n },\n}),\n { name: 'RaReferenceManyActions' }\n);\n\nconst ReferenceManyActions = props => {\n const { className, children, ...rest } = props;\n const classes = useStyles(props);\n return (\n
\n {children}\n
\n );\n};\n\n\nexport default ReferenceManyActions;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-end',\n marginTop: theme.spacing(),\n marginBottom: theme.spacing(),\n\n },\n filters: {},\n actions: {},\n}),\n { name: 'RaReferenceToolbar' }\n);\n\nconst ReferenceManyToolbar = ({ classes: classesOverride, filters, actions, setFilter, ...props }) => {\n\n const classes = useStyles(props);\n return (\n
\n {filters &&\n React.cloneElement(filters, {\n ...props,\n setFilter,\n })}\n \n {actions &&\n React.cloneElement(actions, {\n ...props,\n })}\n
\n );\n};\n\nReferenceManyToolbar.propTypes = {\n classes: PropTypes.object,\n filters: PropTypes.element,\n actions: PropTypes.element,\n};\n\nexport default React.memo(ReferenceManyToolbar);\n","import React, { cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { useReferenceManyFieldController, useTranslate, ListContextProvider, ResourceContextProvider } from 'ra-core';\nimport Paper from '@material-ui/core/Paper';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ReferenceManyToolbar from './ReferenceManyToolbar';\nimport sanitizeFieldRestProps from '../sanitizeFieldRestProps';\nimport useEffectShowStorageProps from \"../../../controller/preferences/useEffectShowStorageProps\";\nimport useStateShowStorageProps from \"../../../controller/preferences/useStateShowStorageProps\";\n\n// import ShowPropsPreferences from \"../../Layout/details/ShowPropsPreferences\";\n\n\nexport const ReferenceManyField = props => {\n const {\n basePath,\n children,\n filter,\n page = 1,\n perPage,\n record,\n reference,\n resource,\n sort,\n source,\n target,\n } = props;\n\n if (React.Children.count(children) !== 1) {\n throw new Error(\n ' only accepts a single child (like )'\n );\n }\n\n const storageProps = useStateShowStorageProps(props)\n\n const controllerProps = useReferenceManyFieldController({\n basePath,\n filter,\n page,\n perPage,\n record,\n reference,\n resource,\n sort,\n source,\n target,\n ...storageProps,\n });\n\n useEffectShowStorageProps(props, controllerProps)\n\n\n return (\n \n \n {/* */}\n \n \n \n );\n};\n\nReferenceManyField.propTypes = {\n addLabel: PropTypes.bool,\n basePath: PropTypes.string,\n children: PropTypes.element.isRequired,\n className: PropTypes.string,\n filter: PropTypes.object,\n label: PropTypes.string,\n perPage: PropTypes.number,\n record: PropTypes.any,\n reference: PropTypes.string.isRequired,\n resource: PropTypes.string,\n sortBy: PropTypes.string,\n sortByOrder: PropTypes.oneOf(['ASC', 'DESC']),\n source: PropTypes.string.isRequired,\n sort: PropTypes.exact({\n field: PropTypes.string,\n order: PropTypes.string,\n }),\n target: PropTypes.string.isRequired,\n};\n\nReferenceManyField.defaultProps = {\n filter: {},\n perPage: 25,\n sort: { field: 'id', order: 'DESC' },\n source: 'id',\n addLabel: true,\n};\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n}));\n\nexport const ReferenceManyFieldView = props => {\n\n const classes = useStyles();\n const translate = useTranslate();\n const { basePath, children, pagination, reference, className, label, filters, actions, addLabel, ...rest } = props;\n\n return (\n
\n {label && {translate(label)}}\n {(filters || actions) && (\n \n )}\n \n {cloneElement(Children.only(children), {\n ...sanitizeFieldRestProps(rest),\n basePath,\n resource: reference,\n })}\n {pagination &&\n props.total !== undefined &&\n cloneElement(pagination, rest)}\n \n
\n );\n};\n\nReferenceManyFieldView.propTypes = {\n basePath: PropTypes.string,\n children: PropTypes.element,\n className: PropTypes.string,\n currentSort: PropTypes.exact({\n field: PropTypes.string,\n order: PropTypes.string,\n }),\n data: PropTypes.any,\n ids: PropTypes.array,\n loaded: PropTypes.bool,\n pagination: PropTypes.element,\n reference: PropTypes.string,\n setSort: PropTypes.func,\n};\n\nexport default ReferenceManyField;\n","import get from 'lodash/get';\nimport { LOCAL_STORAGE } from '../../appsettings';\n\n\n\nexport default (props) => {\n const { resource, reference } = props;\n const storageProps = JSON.parse(localStorage.getItem(LOCAL_STORAGE)) || {};\n const storageResourceShowProps = get(storageProps, `${resource}.show.${reference}.props`, {});\n return storageResourceShowProps;\n}\n","import get from 'lodash/get';\nimport set from 'lodash/set';\nimport { LOCAL_STORAGE } from '../../appsettings';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\n\nexport default (props, controllerProps) => {\n\n useDeepCompareEffect(() => {\n const { resource, reference } = props;\n const { filterValues, perPage } = controllerProps;\n const storageProps = JSON.parse(localStorage.getItem(LOCAL_STORAGE)) || {};\n const path = `${resource}.show.${reference}.props`;\n const storageResourceShowProps = get(storageProps, path, {});\n\n set(storageProps, path, { ...storageResourceShowProps, filter: filterValues, perPage });\n\n localStorage.setItem(LOCAL_STORAGE, JSON.stringify(storageProps));\n }, [controllerProps]);\n}","import { Form, FormSpy } from 'react-final-form';\n\nimport { FilterFormInput } from 'react-admin';\nimport React from 'react';\nimport arrayMutators from 'final-form-arrays';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport useDebouncedFunction from '../../../hooks/useDebouncedFunction';\n\nconst sanitizeFieldRestProps = ({\n anyTouched,\n asyncValidate,\n asyncValidating,\n autofill,\n blur,\n change,\n clearAsyncError,\n clearFields,\n clearSubmit,\n clearSubmitErrors,\n destroy,\n dirty,\n dirtyFields,\n dirtyFieldsSinceLastSubmit,\n dirtySinceLastSubmit,\n dispatch,\n displayedFilters,\n errors,\n filters,\n filterValues,\n form,\n handleSubmit,\n hasSubmitErrors,\n hasValidationErrors,\n hideFilter,\n initialize,\n initialized,\n initialValues,\n invalid,\n modified,\n modifiedSinceLastSubmit,\n pristine,\n pure,\n reset,\n resetSection,\n save,\n setFilter,\n setFilters,\n submit,\n submitAsSideEffect,\n submitError,\n submitErrors,\n submitFailed,\n submitSucceeded,\n submitting,\n touch,\n touched,\n triggerSubmit,\n untouch,\n valid,\n validate,\n validating,\n values,\n visited,\n __versions,\n ...props\n}) => props;\n\nconst handleSubmit = event => {\n event.preventDefault();\n return false;\n};\n\nconst handleFinalFormSubmit = () => { };\n\nconst FormSpySubscription = { values: true, pristine: true };\n\n\nconst useStyles = makeStyles(theme => ({\n form: {\n marginTop: -theme.spacing(4),\n paddingTop: 0,\n display: 'flex',\n alignItems: 'flex-end',\n flexWrap: 'wrap',\n minHeight: theme.spacing(10),\n pointerEvents: \"none\",\n },\n clearFix: { clear: 'right' },\n}),\n { name: 'RaReferenceManyFilterForm' }\n);\n\nconst ReferenceManyFilterForm = props => {\n const { className, classes: classesOverride, filters, resource, addLabel, initialValues, ...rest } = props;\n const classes = useStyles(props);\n const { setFilters } = rest;\n\n const debouncedSetFilters = useDebouncedFunction(\n values => setFilters(values),\n 1000,\n true\n );\n\n const handleChange = ({ pristine, values }) => {\n if (pristine) return;\n debouncedSetFilters(values);\n\n };\n\n return (\n (\n <>\n \n \n {filters.map(filterElement => (\n \n ))}\n
\n \n \n )}\n />\n );\n};\n\n\n\nexport default ReferenceManyFilterForm;\n","//https://habr.com/ru/company/domclick/blog/510616/\n\nimport { useEffect, useRef } from \"react\";\n\nexport default function useDebouncedFunction(func, delay, cleanUp = false) {\n const timeoutRef = useRef();\n\n function clearTimer() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }\n\n useEffect(() => (cleanUp ? clearTimer : undefined), [cleanUp]);\n\n return (...args) => {\n clearTimer();\n timeoutRef.current = setTimeout(() => func(...args), delay);\n };\n}","import React from 'react';\nimport ReferenceManyFilterForm from './ReferenceManyFilterForm';\nimport { sanitizeListRestProps, useListContext } from 'ra-core';\n\n\n\nconst ReferenceManyFilter = (props) => {\n\n const { classes: classesOverride, children, ...rest } = props;\n const { resource, setFilters, filterValues } = useListContext(props);\n\n return (\n \n );\n};\n\nexport default ReferenceManyFilter;\n","import React from 'react';\nimport Avatar from '@material-ui/core/Avatar';\nimport ScheduleIcon from '@material-ui/icons/Schedule';\nimport TodayIcon from '@material-ui/icons/Today';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport ReportIcon from '@material-ui/icons/Report';\nimport CertificateIcon from '../Icons/Certificate';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst getIcon = status => {\n switch (status) {\n case 'Hourly':\n return ()\n case 'Daily':\n return ()\n case 'Event':\n return ()\n case 'Other':\n return ()\n case 'Summary':\n return ()\n case 'GasQualityCertificate':\n return ()\n default:\n return ()\n break;\n }\n};\n\nconst useStyles = makeStyles(theme => ({\n root: {\n margin: \".125rem\",\n },\n Hourly: {\n color: \"#2e7d32\",\n backgroundColor: \"#c8e6c9\",\n },\n Daily: {\n color: \"#1565c0\",\n backgroundColor: \"#bbdefb\",\n },\n Event: {\n color: \"#ef6c00\",\n backgroundColor: \"#ffe0b2\",\n },\n Summary: {\n color: \"#B71C1C\",\n backgroundColor: \"#FFCDD2\",\n },\n GasQualityCertificate: {\n color: \"#00796b\",\n backgroundColor: \"#b2dfdb\",\n },\n Other: {\n color: \"#4527a0\",\n backgroundColor: \"#d1c4e9\",\n },\n}));\n\nconst ReportAvatar = ({ className, classes: classesOverride, record, ...props}) => {\n const classes = useStyles({ classes: classesOverride });\n\n if (!record) return null;\n const icon = getIcon(record.type)\n\n return (\n \n {React.cloneElement(icon)}\n \n\n );\n};\n\nexport default ReportAvatar;","import React, { forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment'\nimport 'moment/locale/ru';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport { useTranslate } from 'react-admin'\nimport EnumField from '../Fields/EnumField';\nimport ReportAvatar from './ReportAvatar';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n cardActionArea: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"unset\",\n justifyContent: \"space-between\",\n },\n root: {\n alignItems: \"start\"\n },\n title: {\n fontWeight: 500,\n lineHeight: 1.33,\n },\n ml2: { marginLeft: 8 },\n}));\n\nconst LinkRef = React.forwardRef((props, ref) => );\n\nconst ReportCard = forwardRef(({ className, classes: classesOverride, record, resource, source, linkType, referenceRecord, lastUpdate, ...props }, ref) => {\n const translate = useTranslate()\n const classes = useStyles({ classes: classesOverride });\n if (!record) return null;\n const title = `${record.name} ${translate(`resources.${record.resource}.menu`, { smart_count: 1 })}${record.gasMeterType ? ` ${translate(`resources.GasMeter.enums.type.${record.gasMeterType}`)}` : \"\"}`\n const timestamp = lastUpdate && lastUpdate.data && lastUpdate.data[0] && moment.unix(Number(lastUpdate.data[0].value[1])).format('L')\n\n\n return (\n \n \n }\n title={title}\n titleTypographyProps={{ variant: \"subtitle1\" }}\n classes={{ title: classes.title, root: classes.root }}\n />\n \n \n {can('getOne', 'Report', 'type') && }\n {timestamp && {timestamp}}\n \n \n \n \n );\n});\n\n// FileCard.defaultProps = {\n// resourse: \"File\",\n// linkType: \"show\",\n// };\n\nexport default ReportCard;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n content: {\n maxWidth: theme.spacing(96),\n display: \"flex\", \n flexDirection: \"column\", \n alignItems: \"center\",\n },\n icon: {},\n action: {marginTop: theme.spacing()},\n title: {},\n subheader: {},\n}));\n\n\n\nconst Separator = ({ action, icon, classes: classesOverride, subheader, title, color, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n return (\n
\n
\n { icon && {icon} }\n { title && {title} }\n { subheader && {subheader}}\n {action &&
{action}
}\n
\n
\n );\n \n}\n\nSeparator.propTypes = {\n action: PropTypes.node,\n icon: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n subheader: PropTypes.node,\n title: PropTypes.node,\n};\n\n\n\nexport default Separator;\n","import React, { cloneElement, Children, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\n// import Card from '@material-ui/core/Card';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useResourceDefinition, useShowContext, ShowActions as DefaultActions, TitleForRecord } from 'react-admin';\nimport Remove from './Remove';\n\n\n\nexport const ShowView = (props) => {\n const {\n actions,\n aside,\n breadcrumbs,\n children,\n classes: classesOverride,\n className,\n component: Content,\n title,\n ...rest\n } = props;\n\n const classes = useStyles(props);\n\n const {\n basePath,\n defaultTitle,\n hasList,\n record,\n resource,\n version,\n } = useShowContext(props);\n const { hasEdit } = useResourceDefinition(props);\n\n if (record && record.deleted) {\n return (\n \n );\n };\n\n const finalActions =\n typeof actions === 'undefined' && hasEdit ? (\n \n ) : (\n actions\n );\n\n if (!children) {\n return null;\n }\n return (\n \n \n
\n {breadcrumbs && cloneElement(breadcrumbs, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n })}\n {finalActions && cloneElement(finalActions, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n style: { marginLeft: \"auto\" },\n // Ensure we don't override any user provided props\n ...finalActions.props,\n })}\n
\n \n \n {record && Children.map(children, (field, index) => (\n isValidElement(field) ? cloneElement(field, {\n key: index,\n resource,\n basePath,\n record,\n version,\n }) : null\n ))}\n \n {aside &&\n cloneElement(aside, {\n resource,\n basePath,\n record,\n version,\n })}\n
\n \n );\n};\n\nShowView.propTypes = {\n actions: PropTypes.element,\n aside: PropTypes.element,\n basePath: PropTypes.string,\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n defaultTitle: PropTypes.any,\n hasEdit: PropTypes.bool,\n hasList: PropTypes.bool,\n loading: PropTypes.bool,\n loaded: PropTypes.bool,\n record: PropTypes.object,\n resource: PropTypes.string,\n title: PropTypes.any,\n version: PropTypes.node,\n};\n\nShowView.defaultProps = {\n classes: {},\n component: \"div\",\n};\n\nconst useStyles = makeStyles(theme => (\n {\n root: {},\n main: {\n display: 'flex',\n },\n noActions: {\n marginTop: '1em',\n },\n card: {\n flex: '1 1 auto',\n },\n toolbar: {\n display: 'flex',\n justifyContent: \"space-between\",\n [theme.breakpoints.down('xs')]: {\n backgroundColor: theme.palette.background.paper,\n },\n },\n }\n), { name: 'RaShow' });\n\nconst sanitizeRestProps = ({\n basePath = null,\n defaultTitle = null,\n hasCreate = null,\n hasEdit = null,\n hasList = null,\n hasShow = null,\n history = null,\n id = null,\n loaded = null,\n loading = null,\n location = null,\n match = null,\n options = null,\n permissions = null,\n ...rest\n}) => rest;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ShowContextProvider, useCheckMinimumRequiredProps, useShowController } from 'ra-core';\n\n\nimport { ShowView } from './ShowView';\n\n\nexport const Show = (props) => {\n useCheckMinimumRequiredProps('Show', ['children'], props);\n const controllerProps = useShowController(props);\n return (\n \n \n \n );\n};\n\nShow.propTypes = {\n actions: PropTypes.element,\n aside: PropTypes.element,\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n hasCreate: PropTypes.bool,\n hasEdit: PropTypes.bool,\n hasList: PropTypes.bool,\n hasShow: PropTypes.bool,\n id: PropTypes.any.isRequired,\n resource: PropTypes.string.isRequired,\n title: PropTypes.node,\n};\n\nexport default Show","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport BalanceRegionBanner from './BalanceRegionBanner';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasDistrictReferenceDatagrid } from '../GasDistrict/GasDistrictDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst BalanceRegionShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } {...props} >\n \n\n {can('getOne', 'BalanceRegion', 'reports', 'Report') && \n \n }\n\n {can('getOne', 'BalanceRegion', 'gasDistributorStations', 'GasDistributorStation') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n
}\n\n )} />\n\n \n \n {can('getOne', 'BalanceRegion', 'aisId') && }\n \n {can('getOne', 'BalanceRegion', 'id') && }\n {can('getOne', 'BalanceRegion', 'createdBy', 'User') && \n \n }\n {can('getOne', 'BalanceRegion', 'createdAt') && }\n {can('getOne', 'BalanceRegion', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\n\n\nexport default BalanceRegionShow;","import Icon from '../Icons/ScaleBalance';\nimport BalanceRegionList from './BalanceRegionList';\nimport BalanceRegionCreate from './BalanceRegionCreate';\nimport BalanceRegionEdit from './BalanceRegionEdit';\nimport BalanceRegionShow from './BalanceRegionShow';\n\nconst BalanceRegionIcon = Icon;\n\n\nexport {\n BalanceRegionIcon,\n BalanceRegionList,\n BalanceRegionShow,\n BalanceRegionCreate,\n BalanceRegionEdit,\n};\n","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter, enumFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n type: enumFormatter,\n inn: true,\n kpp: true,\n okpo: true,\n ogrn: true,\n fio: true,\n passport: true,\n passdateissue: true,\n parentId: true,\n addressLegal: true,\n addressActual: true,\n addressPostal: true,\n phone: true,\n phoneMobile: true,\n email: true,\n users: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n access: {\n id: true,\n resource: enumFormatter,\n __resource: \"Access\",\n },\n __resource: \"Counterparty\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport React from 'react';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst CounterpartyBulkActionButtons = props => (\n <>\n {can('getList', 'Counterparty') && }\n {can('remove', 'Counterparty') && }\n \n)\n\n\n\nexport default CounterpartyBulkActionButtons;","import React from 'react';\nimport { useTranslate } from 'react-admin';\nimport { makeStyles, Chip } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n chip: {\n marginBottom: theme.spacing(1),\n },\n}));\n\n\nconst QuickFilter = ({ label }) => {\n const translate = useTranslate();\n const classes = useStyles();\n return ;\n};\n\n\nexport default QuickFilter\n","import { ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport QuickFilter from \"../Layout/filter/QuickFilter\";\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport React from 'react';\nimport SearchInput from '../Inputs/SearchInput';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst CounterpartyFilter = (props) => (\n \n \n {can('getList', 'Counterparty', 'users', 'User') && \n \n }\n {can('getList', 'Counterparty', 'users', 'User') && \n \n }\n {can('getList', 'Counterparty', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'Counterparty', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'Counterparty', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'Counterparty', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'Counterparty', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'Counterparty', 'access') && }\n\n \n)\n\n\n\nexport default CounterpartyFilter;","import React from 'react';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n\nconst regexp = /^(\\+7|7|8)?[\\s\\-]?([489][0-9]{2})?[\\s\\-]?([0-9]{3})[\\s\\-]?([0-9]{4})$/;\n\nconst PhoneField = ({ className, resource, source, record = {}, ...props }) => {\n\n const phone = get(record, source);\n if (!phone) return null;\n const maskedPhone = phone.replace(regexp, '$1 ($2) $3-$4');\n\n return (\n \n {maskedPhone}\n \n )\n};\n\nPhoneField.defaultProps = {\n addLabel: true,\n};\n\nexport default PhoneField;","import { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport PhoneField from '../Fields/PhoneField';\nimport React from 'react';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nconst CounterpartyDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'Counterparty', 'name') && }\n {can('getList', 'Counterparty', 'description') && }\n {can('getList', 'Counterparty', 'phone') && }\n {can('getList', 'Counterparty', 'email') && }\n {can('getList', 'Counterparty', 'createdAt') && }\n {can('getList', 'Counterparty', 'updatedAt') && }\n \n {can('getOne', 'Counterparty') && }\n {can('update', 'Counterparty') && }\n {can('remove', 'Counterparty') && }\n \n \n )\n}\n\n\n\nexport default CounterpartyDatagrid;","import List from '../Layout/list/List';\nimport React from 'react';\nimport useCounterpartyExporter from './useCounterpartyExporter';\nimport CounterpartyBulkActionButtons from './CounterpartyBulkActionButtons';\nimport CounterpartyFilter from './CounterpartyFilter';\nimport CounterpartyDatagrid from './CounterpartyDatagrid';\n\n\n\n\nconst CounterpartyList = (props) => {\n const exporter = useCounterpartyExporter()\n const manualSubmitForm = React.useRef(null);\n\n return (\n }\n filters={}\n exporter={exporter}\n >\n \n
\n )\n};\n\nCounterpartyList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default CounterpartyList;","export default ({ \n addLabel,\n allowEmpty,\n basePath,\n cellClassName,\n className,\n formClassName,\n headerClassName,\n label,\n linkType,\n link,\n locale,\n record,\n resource,\n sortable,\n sortBy,\n source,\n textAlign,\n translateChoice,\n ...rest\n}) => rest;","import React from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport MaskedInput from 'react-text-mask';\nimport { useInput, FieldTitle, InputHelperText, TextInput, regex } from 'react-admin';\nimport sanitizeRestProps from './sanitizeRestProps';\n\n\nconst regexp = /^(\\+7|7|8)?[\\s\\-]?([489][0-9]{2})?[\\s\\-]?([0-9]{3})[\\s\\-]?([0-9]{4})$/;\nconst validatePhone = [regex(regexp, 'ra.validation.phone_invalid')];\nconst phoneParse = value => value.replace(/[^+\\w\\d]/g, '');\n\n\nconst PhoneMaskInput = ({ ...props }) => {\n const { inputRef, ...other } = props;\n\n return (\n { inputRef(ref ? ref.inputElement : null) }}\n mask={['+', '7', ' ', '(', /[489]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\n keepCharPositions={true}\n placeholderChar={'\\u2000'}\n guide={false}\n />\n );\n};\n\n\n\n\nconst PhoneInput = ({\n format,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onFocus,\n onChange,\n options,\n parse = phoneParse,\n validate = validatePhone,\n resource,\n source,\n variant = 'filled',\n inputProps,\n className,\n ...rest\n}) => {\n\n const {\n id,\n input,\n isRequired,\n meta: { error, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n parse,\n resource,\n source,\n validate,\n ...rest,\n });\n\n return (\n \n ) : null\n }\n label={\n \n }\n margin={margin}\n InputProps={{\n ...inputProps,\n inputComponent: PhoneMaskInput,\n }}\n {...options}\n {...sanitizeRestProps(rest)}\n />\n\n )\n};\n\nexport const PhoneFilterInput = (props) => {\n\n\n return ();\n};\n\nexport default PhoneInput;\n","import React from 'react';\nimport { useForm } from 'react-final-form';\nimport EnumInput from '../Inputs/EnumInput';\n\n\nconst AccessResourceInput = (props) => {\n const form = useForm();\n\n const handleChangeType = (value) => {\n form.change('accessIds', [])\n form.change('q', undefined)\n }\n\n return (\n \n );\n};\n\nexport default AccessResourceInput;","import React from 'react';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useChoices } from 'ra-core';\n\nconst useStyles = makeStyles(\n {\n checkbox: {\n height: 32,\n },\n },\n { name: 'RaCheckboxGroupInputItem' }\n);\n\nconst CheckboxGroupInputItem = ({\n id,\n onChange,\n choice = {id: \"check_all\", name: \"ra.action.check_all\"},\n choices,\n value,\n ...rest\n}) => {\n const classes = useStyles({});\n const { getChoiceText, getChoiceValue } = useChoices({\n optionText: \"name\",\n optionValue: \"id\",\n translateChoice: true,\n });\n\n const choiceName = getChoiceText(choice);\n const choiceValue = getChoiceValue(choice);\n\n if (!(choices && choices.length>1)) return null\n\n return (\n\n \n }\n label={choiceName}\n />\n\n );\n};\n\nexport default CheckboxGroupInputItem;\n","import React from 'react';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useChoices } from 'ra-core';\n\nconst useStyles = makeStyles(\n {\n checkbox: {\n height: 32,\n },\n },\n { name: 'RaCheckboxGroupInputItem' }\n);\n\nconst CheckboxGroupInputItem = ({\n id,\n choice,\n onChange,\n optionText,\n optionValue,\n translateChoice,\n value,\n ...rest\n}) => {\n const classes = useStyles({});\n const { getChoiceText, getChoiceValue } = useChoices({\n optionText,\n optionValue,\n translateChoice,\n });\n\n const choiceName = getChoiceText(choice);\n\n return (\n v == getChoiceValue(choice)) !== // eslint-disable-line eqeqeq\n undefined\n : false\n }\n value={String(getChoiceValue(choice))}\n {...rest}\n />\n }\n label={choiceName}\n />\n );\n};\n\nexport default CheckboxGroupInputItem;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { union } from 'lodash/array';\nimport classnames from 'classnames';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { FieldTitle, useInput } from 'ra-core';\nimport { InputHelperText } from 'react-admin';\nimport defaultSanitizeRestProps from './sanitizeRestProps';\nimport CheckboxCheckAllInputItem from './CheckboxCheckAllInputItem';\nimport CheckboxGroupInputItem from './CheckboxGroupInputItem';\n\n\n\nconst sanitizeRestProps = ({\n setFilter,\n setPagination,\n setSort,\n loaded,\n isRequired,\n limitChoicesToValue,\n ...rest\n}) => defaultSanitizeRestProps(rest);\n\nconst useStyles = makeStyles(\n theme => ({\n root: {},\n label: {\n transform: 'translate(0, 8px) scale(0.75)',\n transformOrigin: `top ${theme.direction === 'ltr' ? 'left' : 'right'\n }`,\n },\n }),\n { name: 'RaCheckboxGroupInput' }\n);\n\n\nconst CheckboxGroupInput = ({\n choices = [],\n className,\n classes: classesOverride,\n format,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onChange,\n onFocus,\n optionText,\n optionValue,\n options,\n parse,\n resource,\n row,\n source,\n translate,\n translateChoice,\n validate,\n ...rest\n}) => {\n const classes = useStyles({});\n\n const {\n id,\n input: { onChange: finalFormOnChange, onBlur: finalFormOnBlur, value },\n isRequired,\n meta: { error, submitError, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n parse,\n resource,\n source,\n validate,\n ...rest,\n });\n\n const handleCheckAll = useCallback(\n (event, isChecked) => {\n if (isChecked) {\n finalFormOnChange(union((value || []), choices.map(choice => get(choice, optionValue))));\n } else {\n finalFormOnChange([]);\n }\n finalFormOnBlur();\n },\n [finalFormOnChange, finalFormOnBlur, choices, value, optionValue]\n );\n\n const handleCheck = useCallback(\n (event, isChecked) => {\n let newValue;\n try {\n // try to convert string value to number, e.g. '123'\n newValue = JSON.parse(event.target.value);\n } catch (e) {\n // impossible to convert value, e.g. 'abc'\n newValue = event.target.value;\n }\n if (isChecked) {\n finalFormOnChange([...(value || []), ...[newValue]]);\n } else {\n finalFormOnChange(value.filter(v => v != newValue)); // eslint-disable-line eqeqeq\n }\n finalFormOnBlur(); // HACK: See https://github.com/final-form/react-final-form/issues/365#issuecomment-515045503\n },\n [finalFormOnChange, finalFormOnBlur, value]\n );\n\n choices.sort((a, b) => {\n\n if (value.includes(a.id)) return -1\n return 0\n });\n\n return (\n \n \n \n \n \n \n {choices.map(choice => (\n \n ))}\n \n \n \n \n \n );\n};\n\nCheckboxGroupInput.propTypes = {\n choices: PropTypes.arrayOf(PropTypes.object),\n className: PropTypes.string,\n label: PropTypes.string,\n source: PropTypes.string,\n options: PropTypes.object,\n optionText: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n optionValue: PropTypes.string,\n row: PropTypes.bool,\n resource: PropTypes.string,\n translateChoice: PropTypes.bool,\n};\n\nCheckboxGroupInput.defaultProps = {\n options: {},\n optionText: 'name',\n optionValue: 'id',\n translateChoice: true,\n fullWidth: true,\n row: true,\n};\n\nexport default CheckboxGroupInput;\n","import React from 'react';\nimport { useFormState } from 'react-final-form';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SelectArrayInput, ReferenceArrayInput, SearchInput } from 'react-admin';\nimport CheckboxGroupInput from '../Inputs/CheckboxGroupInput';\n\n\n\nconst useStyles = makeStyles(theme => ({\n referenceArrayInput: {\n marginTop: 8,\n marginBottom: 4,\n },\n}));\n\n\n\n\n\nconst getFilterResource = (resource, accessResource) => {\n\n if (resource === accessResource) return undefined;\n switch (resource) {\n case 'GasRegion':\n return undefined;\n break;\n case 'GasDistrict':\n return { reference: 'GasRegion', filter: \"gasRegion\" };\n break;\n case 'GasConsumer':\n return undefined;\n break;\n case 'GasMeterPad':\n return { reference: 'GasConsumer', filter: \"gasConsumer\" };\n break;\n case 'GasMeterUnit':\n return { reference: 'GasMeterPad', filter: \"gasMeterPad\" };\n break;\n default:\n return undefined;\n };\n}\n\nconst AccessReferenceArrayInput = ({ className, ...props }) => {\n const classes = useStyles();\n const { values } = useFormState();\n let filter = {};\n\n const accessResource = props.record && props.record.accessResource;\n const referenceResource = values && values.accessResource;\n const searchFilter = values && values.q;\n const filterResource = getFilterResource(referenceResource, accessResource);\n const filterValue = filterResource && values[filterResource.filter];\n\n\n if (filterValue && filterValue.length) {\n filter[filterResource.filter] = { id_in: filterValue }\n }\n\n if (searchFilter) {\n filter.q = searchFilter\n }\n\n\n if (!referenceResource) return null;\n\n return (\n <>\n \n {filterResource && \n \n }\n \n \n \n \n\n\n );\n};\n\nexport default AccessReferenceArrayInput;\n\n\n\n","import React, { cloneElement, Children, isValidElement } from 'react';\nimport get from 'lodash/get';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {useTranslate} from 'react-admin';\n\n\nconst sanitizeGridItemProps = ({\n lg,\n md,\n sm,\n xs,\n zeroMinWidth,\n ...props\n}) => props;\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n minWidth: 256,\n }\n}));\n\nconst NestedGridField = ({children, classes: classesOverride, record, source, className, label, ...props}) => { \n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n\n\n return (\n \n {Children.map(children, (field, index) => {\n \n const {\n lg,\n md,\n sm,\n xs,\n zeroMinWidth,\n className,\n ...inputProps\n } = field.props;\n\n const gridItemProps = {\n lg,\n md,\n sm,\n xs,\n zeroMinWidth\n };\n \n return isValidElement(field) ? (\n \n {React.cloneElement(field, {\n ...inputProps,\n className: classes.root,\n fullWidth: true,\n })}\n \n ) : null\n\n }\n \n )}\n \n );\n};\n\nexport default NestedGridField;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, TabbedForm, FormTab, TextInput, DateInput, ReferenceArrayInput, AutocompleteArrayInput, required, FormDataConsumer, email } from 'react-admin';\nimport EnumInput from '../Inputs/EnumInput';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport AccessResourceInput from './AccessResourceInput';\nimport AccessReferenceArrayInput from './AccessReferenceArrayInput';\nimport GridField from '../Fields/GridField';\n\n\n\nconst validateEmail = [email()];\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// }));\n\nconst CounterpartyCreate = props => {\n // const classes = useStyles();\n\n return (\n \n\n \n \n \n \n \n \n \n {({ formData, ...rest }) => (formData.type === \"LEGALENTITY\" || formData.type === \"GOVERNMENTAGENCY\") &&\n \n\n \n \n \n \n }\n \n\n \n {({ formData, ...rest }) => formData.type === \"INDIVIDUAL\" &&\n \n \n \n \n \n }\n \n \n {({ formData, ...rest }) => formData.type === \"SEPARATEDIVISION\" &&\n <>\n \n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n );\n};\n\nexport default CounterpartyCreate;\n\n\n\n","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n \n },\n}));\n\nconst CounterpartyBanner = ({classes: classesOverride, className, ...props}) => { \n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) {return null}\n const name = record.name;\n const description = record.description;\n\n return (\n \n \n \n \n {name}\n {description}\n \n \n \n \n );\n};\n\n\n\nexport default CounterpartyBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { TextInput, Toolbar, TabbedForm, FormTab, SaveButton, DateInput, ReferenceArrayInput, AutocompleteArrayInput, required, FormDataConsumer, email } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport CounterpartyBanner from './CounterpartyBanner';\nimport EnumInput from '../Inputs/EnumInput';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport AccessResourceInput from './AccessResourceInput';\nimport AccessReferenceArrayInput from './AccessReferenceArrayInput';\nimport GridField from '../Fields/GridField';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst validateEmail = [email()];\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n accessReferenceArrayInput: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n\n}));\n\nconst CounterpartyToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'Counterparty') && }\n {can(\"update\", \"Counterparty\") && }\n \n {can('remove', 'Counterparty') && }\n \n \n );\n}\n\nconst CounterpartyEdit = props => {\n const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n \n {can('getOne', 'Counterparty', 'name') && }\n {can('getOne', 'Counterparty', 'description') && }\n {can('getOne', 'Counterparty', 'inn') && }\n {can('getOne', 'Counterparty', 'type') && }\n \n {({ formData, ...rest }) => (formData.type === \"LEGALENTITY\" || formData.type === \"GOVERNMENTAGENCY\") &&\n \n {can('getOne', 'Counterparty', 'kpp') && }\n {can('getOne', 'Counterparty', 'okpo') && }\n {can('getOne', 'Counterparty', 'ogrn') && }\n \n }\n \n\n \n {({ formData, ...rest }) => formData.type === \"INDIVIDUAL\" &&\n \n {can('getOne', 'Counterparty', 'fio') && }\n {can('getOne', 'Counterparty', 'passport') && }\n {can('getOne', 'Counterparty', 'passdateissue') && }\n \n }\n \n \n {({ formData, ...rest }) => formData.type === \"SEPARATEDIVISION\" &&\n <>\n \n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default CounterpartyEdit","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate, SimpleShowLayout as RaSimpleShowLayout } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n content: {}\n}));\n\nconst SimpleShowLayout = ({\n children,\n classes: classesOverride,\n className,\n component: Component,\n label,\n ...props\n}) => {\n\n const classes = useStyles();\n const translate = useTranslate();\n if (!children) return null\n\n return (\n
\n {label && {translate(label, { _: label })}}\n \n \n {children}\n \n \n
\n );\n};\n\nSimpleShowLayout.defaultProps = {\n component: Card,\n};\n\n\n\nexport default SimpleShowLayout;","import React, { cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { linkToRecord } from 'ra-core';\nimport { Link } from 'react-admin';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n}));\n\n// useful to prevent click bubbling in a datagrid with rowClick\nconst stopPropagation = e => e.stopPropagation();\n\n\n\n\nconst handleClick = () => { };\n\nfunction NestedArrayField({\n addLabel,\n classes: classesOverride,\n className,\n record,\n source,\n resource,\n reference,\n basePath,\n children,\n linkType,\n ...rest\n}) {\n const classes = useStyles({ classes: classesOverride });\n const data = get(record, source);\n if (!data) { return null }\n\n\n return (\n \n {data.map((item, index) => {\n const rootPath = basePath.replace(resource, reference);\n const resourceLinkPath = !linkType\n ? false\n : linkToRecord(rootPath, item.id, linkType);\n\n if (resourceLinkPath) {\n return (\n \n {cloneElement(Children.only(children), {\n record: item,\n resource,\n basePath,\n // Workaround to force ChipField to be clickable\n onClick: handleClick,\n })}\n \n );\n }\n\n return cloneElement(Children.only(children), {\n key: index,\n record: item,\n resource,\n basePath,\n });\n })}\n \n );\n}\n\nNestedArrayField.propTypes = {\n basePath: PropTypes.string,\n children: PropTypes.element.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n linkType: PropTypes.oneOfType([PropTypes.string, PropTypes.bool])\n .isRequired,\n resource: PropTypes.string,\n};\n\nNestedArrayField.defaultProps = {\n classes: {},\n linkType: 'edit',\n addLabel: true,\n};\n\nexport default NestedArrayField;\n","import React from 'react';\nimport { useShowController, ShowContextProvider, ChipField, TextField, DateField, ReferenceArrayField, ReferenceManyField as RaReferenceManyField, SingleFieldList, Pagination, TabbedShowLayout, Tab } from 'react-admin';\nimport { ShowView } from '../Layout/ShowView';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport SimpleShowLayout from '../Layout/SimpleShowLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport MoreContent from '../Layout/MoreContent';\nimport Separator from '../Layout/Separator';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport NestedArrayField from '../Fields/NestedArrayField';\nimport PhoneField from '../Fields/PhoneField';\nimport EnumField from '../Fields/EnumField';\nimport NestedField from '../Fields/NestedField';\nimport CounterpartyBanner from './CounterpartyBanner';\nimport CardBlankLayout from \"../Layout/CardBlankLayout\";\nimport { can } from \"../../abilityProvider\";\n// import { makeStyles } from '@material-ui/core/styles';\nimport { dateTimeOptions } from '../../utils';\n\n\n\n// const useStyles = makeStyles(theme => ({\n\n// }));\n\nconst CounterpartyShow = props => {\n // const classes = useStyles();\n const controllerProps = useShowController(props);\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n const type = controllerProps.record && controllerProps.record.type;\n const accessResource = controllerProps.record && controllerProps.record.accessResource;\n\n return (\n \n } {...props} {...controllerProps} >\n \n\n \n {can('getOne', 'Counterparty', 'type') && }\n {can('getOne', 'Counterparty', 'inn') && }\n {can('getOne', 'Counterparty', 'kpp') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && }\n {can('getOne', 'Counterparty', 'okpo') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && }\n {can('getOne', 'Counterparty', 'ogrn') && (type === \"LEGALENTITY\" || type === \"GOVERNMENTAGENCY\") && }\n {can('getOne', 'Counterparty', 'fio') && type === \"INDIVIDUAL\" && }\n {can('getOne', 'Counterparty', 'passport') && type === \"INDIVIDUAL\" && }\n {can('getOne', 'Counterparty', 'passdateissue') && type === \"INDIVIDUAL\" && }\n {can('getOne', 'Counterparty', 'parentId') && type === \"SEPARATEDIVISION\" && }\n {can('getOne', 'Counterparty', 'addressLegal') && }\n {can('getOne', 'Counterparty', 'addressActual') && }\n {can('getOne', 'Counterparty', 'addressPostal') && }\n {can('getOne', 'Counterparty', 'phone') && }\n {can('getOne', 'Counterparty', 'phoneMobile') && }\n {can('getOne', 'Counterparty', 'email') && }\n {can('getOne', 'Counterparty', 'users', 'User') && \n \n }\n \n\n \n {accessResource && \n \n \n \n }\n \n\n )} />\n\n \n \n \n {can('getOne', 'Counterparty', 'createdBy', 'User') && \n \n }\n \n \n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n \n );\n};\n\nexport default CounterpartyShow;","import Icon from '@material-ui/icons/Work';\nimport CounterpartyList from './CounterpartyList';\nimport CounterpartyCreate from './CounterpartyCreate';\nimport CounterpartyEdit from './CounterpartyEdit';\nimport CounterpartyShow from './CounterpartyShow';\n\nconst CounterpartyIcon = Icon;\n\n\nexport {\n CounterpartyIcon,\n CounterpartyList,\n CounterpartyShow,\n CounterpartyCreate,\n CounterpartyEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React, { Fragment } from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasConsumerBulkActionButtons = props => (\n \n {can('update', 'GasConsumer', 'tags', \"Tag\") && }\n {can('getList', 'GasConsumer') && }\n {can('remove', 'GasConsumer') && }\n \n);\n\n\n\nexport default GasConsumerBulkActionButtons;","import React, { useCallback, useEffect, useRef, useState, useMemo, isValidElement } from 'react';\nimport Downshift from 'downshift';\nimport get from 'lodash/get';\nimport { TextField } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useInput, FieldTitle, useSuggestions, warning } from 'ra-core';\nimport { InputHelperText } from 'react-admin';\nimport AutocompleteSuggestionList from './AutocompleteSuggestionList';\nimport AutocompleteSuggestionItem from './AutocompleteSuggestionItem';\n\n\n\nconst AutocompleteInput = props => {\n const {\n allowEmpty,\n className,\n classes: classesOverride,\n choices = [],\n disabled,\n emptyText,\n emptyValue,\n format,\n fullWidth,\n helperText,\n id: idOverride,\n input: inputOverride,\n isRequired: isRequiredOverride,\n label,\n limitChoicesToValue,\n margin = 'dense',\n matchSuggestion,\n meta: metaOverride,\n onBlur,\n onChange,\n onFocus,\n options: {\n suggestionsContainerProps,\n labelProps,\n InputProps,\n ...options\n } = {\n suggestionsContainerProps: undefined,\n labelProps: undefined,\n InputProps: undefined,\n },\n optionText = 'name',\n inputText,\n optionValue = 'id',\n parse,\n resource,\n setFilter,\n shouldRenderSuggestions: shouldRenderSuggestionsOverride,\n source,\n suggestionLimit,\n translateChoice = true,\n validate,\n variant = 'filled',\n suggestionItem = ,\n ...rest\n } = props;\n\n if (isValidElement(optionText) && !inputText) {\n throw new Error(`If the optionText prop is a React element, you must also specify the inputText prop:\n record.title}\n />`);\n }\n\n warning(\n isValidElement(optionText) && !matchSuggestion,\n `If the optionText prop is a React element, you must also specify the matchSuggestion prop:\n true}\n/>\n `\n );\n\n const classes = useStyles(props);\n\n let inputEl = useRef();\n let anchorEl = useRef();\n\n const {\n id,\n input,\n isRequired,\n meta: { touched, error },\n } = useInput({\n format,\n id: idOverride,\n input: inputOverride,\n meta: metaOverride,\n onBlur,\n onChange,\n onFocus,\n parse,\n resource,\n source,\n validate,\n ...rest,\n });\n\n const [filterValue, setFilterValue] = useState('');\n\n const getSuggestionFromValue = useCallback(\n value => choices.find(choice => get(choice, optionValue) === value),\n [choices, optionValue]\n );\n\n const selectedItem = useMemo(\n () => getSuggestionFromValue(input.value) || null,\n [input.value, getSuggestionFromValue]\n );\n\n const { getChoiceText, getChoiceValue, getSuggestions } = useSuggestions({\n allowEmpty,\n choices,\n emptyText,\n emptyValue,\n limitChoicesToValue,\n matchSuggestion,\n optionText,\n optionValue,\n selectedItem,\n suggestionLimit,\n translateChoice,\n });\n\n const handleFilterChange = useCallback(\n (eventOrValue) => {\n const event = eventOrValue;\n const value = event.target\n ? event.target.value\n : (eventOrValue);\n\n if (setFilter) {\n setFilter(value);\n }\n },\n [setFilter]\n );\n\n // We must reset the filter every time the value changes to ensure we\n // display at least some choices even if the input has a value.\n // Otherwise, it would only display the currently selected one and the user\n // would have to first clear the input before seeing any other choices\n useEffect(() => {\n handleFilterChange('');\n\n // If we have a value, set the filter to its text so that\n // Downshift displays it correctly\n setFilterValue(\n typeof input.value === 'undefined' ||\n input.value === null ||\n selectedItem === null\n ? ''\n : inputText\n ? inputText(getChoiceText(selectedItem).props.record)\n : getChoiceText(selectedItem)\n );\n }, [\n input.value,\n handleFilterChange,\n selectedItem,\n getChoiceText,\n inputText,\n ]);\n\n const handleChange = useCallback(\n (item) => {\n input.onChange(getChoiceValue(item));\n },\n [getChoiceValue, input]\n );\n\n // This function ensures that the suggestion list stay aligned to the\n // input element even if it moves (because user scrolled for example)\n const updateAnchorEl = () => {\n if (!inputEl.current) {\n return;\n }\n\n const inputPosition = inputEl.current.getBoundingClientRect();\n\n // It works by implementing a mock element providing the only method used\n // by the PopOver component, getBoundingClientRect, which will return a\n // position based on the input position\n if (!anchorEl.current) {\n anchorEl.current = { getBoundingClientRect: () => inputPosition };\n } else {\n const anchorPosition = anchorEl.current.getBoundingClientRect();\n\n if (\n anchorPosition.x !== inputPosition.x ||\n anchorPosition.y !== inputPosition.y\n ) {\n anchorEl.current = {\n getBoundingClientRect: () => inputPosition,\n };\n }\n }\n };\n\n const storeInputRef = input => {\n inputEl.current = input;\n updateAnchorEl();\n };\n\n const handleBlur = useCallback(\n event => {\n handleFilterChange('');\n\n // If we had a value before, set the filter back to its text so that\n // Downshift displays it correctly\n setFilterValue(\n input.value\n ? inputText\n ? inputText(getChoiceText(selectedItem).props.record)\n : getChoiceText(selectedItem)\n : ''\n );\n input.onBlur(event);\n },\n [getChoiceText, handleFilterChange, input, inputText, selectedItem]\n );\n\n const handleFocus = useCallback(\n openMenu => event => {\n openMenu(event);\n input.onFocus(event);\n },\n [input]\n );\n\n const shouldRenderSuggestions = val => {\n if (\n shouldRenderSuggestionsOverride !== undefined &&\n typeof shouldRenderSuggestionsOverride === 'function'\n ) {\n return shouldRenderSuggestionsOverride(val);\n }\n\n return true;\n };\n\n return (\n getChoiceValue(item)}\n {...rest}\n >\n {({\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n isOpen,\n highlightedIndex,\n openMenu,\n }) => {\n const isMenuOpen =\n isOpen && shouldRenderSuggestions(filterValue);\n const {\n id: downshiftId, // We want to ignore this to correctly link our label and the input\n value,\n onBlur,\n onChange,\n onFocus,\n ref,\n size,\n color,\n ...inputProps\n } = getInputProps({\n onBlur: handleBlur,\n onFocus: handleFocus(openMenu),\n ...InputProps,\n });\n const suggestions = getSuggestions(filterValue);\n\n return (\n
\n {\n handleFilterChange(event);\n setFilterValue(event.target.value);\n },\n onFocus,\n }}\n error={!!(touched && error)}\n label={\n \n }\n InputLabelProps={getLabelProps({\n htmlFor: id,\n })}\n helperText={\n \n }\n disabled={disabled}\n variant={variant}\n margin={margin}\n fullWidth={fullWidth}\n value={filterValue}\n className={className}\n size={size}\n color={color}\n {...inputProps}\n {...options}\n />\n \n {suggestions.map((suggestion, index) => (\n React.cloneElement(suggestionItem, { \n key: getChoiceValue(suggestion),\n suggestion,\n index,\n highlightedIndex,\n isSelected: input.value === getChoiceValue(suggestion),\n filterValue,\n getSuggestionText: getChoiceText,\n ...getItemProps({item: suggestion}),\n })\n ))}\n \n
\n );\n }}\n \n );\n};\n\nconst useStyles = makeStyles(\n {\n container: {\n flexGrow: 1,\n position: 'relative',\n },\n },\n { name: 'RaAutocompleteInput' }\n);\n\nexport default AutocompleteInput;\n","const InputText = choice => {\n\n return choice.aisId ? `${choice.name} (${choice.aisId})` : choice.name;\n};\n\nexport default InputText;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReferenceArrayInput, ReferenceInput, TextInput } from 'react-admin';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport SearchInput from '../Inputs/SearchInput';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}));\n\nconst Filter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasConsumer', 'aisId') && }\n {can('getList', 'GasConsumer', 'gasMeterPads', \"GasMeterPad\") && }\n {can('getList', 'GasConsumer', 'gasMeterPads', \"GasMeterPad\") && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasConsumer', 'gasDistrict', 'GasDistrict') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasConsumer', 'gasDistributorOrganization', \"GasDistributorOrganization\") && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasConsumer', 'gasDistributorStation', \"GasDistributorStation\") && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasConsumer', 'tags', \"Tag\") && \n \n }\n {can('getList', 'GasConsumer', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasConsumer', 'reports', 'Report') && }\n {can('getList', 'GasConsumer', 'reports', 'Report') && }\n \n )\n};\n\n\n\nexport default Filter;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, DateField, SimpleList, TextField } from 'react-admin';\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useColumns from '../../controller/preferences/useColumns';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasConsumer', 'name') && ,\n can('getList', 'GasConsumer', 'aisId') && ,\n can('getList', 'GasConsumer', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasConsumer', 'createdAt') && ,\n can('getList', 'GasConsumer', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nexport const GasConsumerReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasConsumer', 'name') && }\n {can('getList', 'GasConsumer', 'aisId') && }\n {can('getList', 'GasConsumer', 'tags', \"Tag\") && \n \n }\n {can('getList', 'GasConsumer', 'createdAt') && }\n {can('getList', 'GasConsumer', 'updatedAt') && }\n \n );\n};\n\nconst GasConsumerDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasConsumer') && }\n {can('update', 'GasConsumer') && }\n {can('remove', 'GasConsumer') && }\n \n \n )\n};\n\n\n\nexport default GasConsumerDatagrid;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n addrManual: true,\n gasMeterPads: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterPad\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasConsumer\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useTranslate } from 'ra-core';\nimport IconButton from '@material-ui/core/IconButton';\nimport DocumentationIcon from '../Icons/DocumentationIcon';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { shallowEqual, useSelector } from 'react-redux';\n\n\nconst DocumentationLinkButton = (props) => {\n const { to, target } = props\n const translate = useTranslate();\n const documentationApp = useSelector(state => state?.user?.apps.find(app => app.id === \"askug_documentation\"), shallowEqual);\n const url = documentationApp?.url\n const container =\n typeof document !== 'undefined'\n ? document.getElementById('askug-documentation')\n : null;\n if (!container || !to || !url) return null\n\n const href = `${url}${to}`\n\n return createPortal(\n \n \n \n \n , container);\n};\n\n\n\n\n\nexport default DocumentationLinkButton;\n","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport GasConsumerBulkActionButtons from './GasConsumerBulkActionButtons';\nimport GasConsumerFilter from './GasConsumerFilter';\nimport GasConsumerDatagrid, { useDefaultDatagridColumns } from './GasConsumerDatagrid';\nimport useGasConsumerExporter from './useGasConsumerExporter';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst GasConsumerList = props => {\n const exporter = useGasConsumerExporter()\n const manualSubmitForm = React.useRef(null)\n const columns = useDefaultDatagridColumns(props)\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n );\n};\n\nGasConsumerList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\nexport default GasConsumerList;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n referenceArrayInput: {\n marginTop: 8,\n marginBottom: 4,\n },\n}));\n\nconst GasConsumerCreate = props => {\n const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasConsumer', 'name') && }\n {can('create', 'GasConsumer', 'description') && }\n {can('create', 'GasConsumer', 'addrManual') && }\n {can('create', 'GasConsumer', 'aisId') && }\n {can('create', 'GasConsumer', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasConsumer', 'reports', 'Report') && }\n {can('create', 'GasConsumer', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasConsumerCreate;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport Chip from '@material-ui/core/Chip';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasConsumerBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n\n return (\n \n
\n \n \n {can('getOne', 'GasConsumer', 'name') && {name}}\n {can('getOne', 'GasConsumer', 'description') && {description}}\n {can('getOne', 'GasConsumer', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasConsumer', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasConsumerBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, ReferenceArrayInput, required, } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasConsumerBanner from './GasConsumerBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasConsumerToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasConsumer') && }\n {can(\"update\", \"GasConsumer\") && }\n \n {can('remove', 'GasConsumer') && }\n \n \n );\n}\n\nconst GasConsumerEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasConsumer', 'name') && }\n {can('update', 'GasConsumer', 'description') && }\n {can('update', 'GasConsumer', 'addrManual') && }\n {can('update', 'GasConsumer', 'aisId') && }\n {can('update', 'GasConsumer', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasConsumer', 'reports', 'Report') && }\n {can('update', 'GasConsumer', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasConsumerEdit","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport moment from 'moment'\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n}));\n\nconst GasMeterPadDisabledChip = ({ className, classes: classesOverride, record, source, resource, hideWhen, ...props}) => {\n const classes = useChipStyles({ classes: classesOverride });\n\n if (!record) return null;\n\n const disabled = record.disabled\n\n if (disabled === hideWhen) return null;\n\n const label = disabled ? \"Отключена\" : \"Включена\";\n\n return (\n \n );\n};\n\nexport default GasMeterPadDisabledChip;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n}));\n\nconst GasMeterPadProviderChip = ({ className, classes: classesOverride, record, source, resource, hideWhen, ...props}) => {\n const classes = useChipStyles({ classes: classesOverride });\n\n if (!record) return null;\n\n const isProvider = record.isProvider\n\n if (isProvider === hideWhen) return null;\n\n const label = isProvider ? \"Поставщик\" : \"Потребитель\";\n\n return (\n \n );\n};\n\nexport default GasMeterPadProviderChip;","import React, {cloneElement, Children, isValidElement} from \"react\";\nimport get from 'lodash/get';\n\nconst TagArrayEnhancedField = ({children, classes: classesOverride, className, record, resource, source, basePath, ...props}) => {\n const tags = get(record, source, []);\n\n const [tagComponent, ...enhancedComponents] = Children.toArray(children);\n \n if (!tags.length && !enhancedComponents.length ) return null;\n\n return (\n
\n {tags.map(tag => {\n return cloneElement(Children.only(tagComponent), {\n key: tag.id,\n record: tag,\n });\n })}\n { Children.map(enhancedComponents, (field, index) =>\n field && isValidElement(field)\n ? cloneElement(field, {\n key: index,\n basePath,\n record,\n resource,\n source,\n ...field.props,\n })\n : null\n )}\n
\n );\n};\n\nexport default TagArrayEnhancedField;","import React from 'react';\nimport get from 'lodash/get';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n}));\n\nconst GasMeterPadDisabledChip = ({ className, classes: classesOverride, record, source, resource, hideWhen, ...props }) => {\n const classes = useChipStyles({ classes: classesOverride });\n if (!record) return null;\n const writable = get(record, source);\n if (writable === hideWhen) return null;\n\n const label = writable ? \"Запись ПГ\" : \"Нет записи ПГ\";\n\n return (\n \n );\n};\n\nexport default GasMeterPadDisabledChip;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField, } from 'react-admin';\nimport DisabledChip from \"./GasMeterPadDisabledChip\";\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport ProviderChip from \"./GasMeterPadProviderChip\";\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayEnhancedField from \"../Tag/TagArrayEnhancedField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport GasQualityCertificateWritableChip from '../Fields/GasQualityCertificateWritableChip';\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\nexport const useDefaultDatagridColumns = (props) => {\n const classes = useListStyles()\n\n const columns = useColumns([\n can('getList', 'GasMeterPad', 'name') && ,\n can('getList', 'GasMeterPad', 'aisId') && ,\n can('getList', 'GasMeterPad', 'tags', 'Tag') && \n \n \n \n \n ,\n can('getList', 'GasMeterPad', 'createdAt') && ,\n can('getList', 'GasMeterPad', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nexport const GasMeterPadReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasMeterPad', 'name') && }\n {can('getList', 'GasMeterPad', 'aisId') && }\n {can('getList', 'GasMeterPad', 'tags', 'Tag') && \n \n \n \n \n }\n {can('getList', 'GasMeterPad', 'createdAt') && }\n {can('getList', 'GasMeterPad', 'createdAt') && }\n \n );\n};\n\n\nconst GasMeterPadDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasMeterPad') && }\n {can('update', 'GasMeterPad') && }\n {can('remove', 'GasMeterPad') && }\n \n \n )\n};\n\n\n\nexport default GasMeterPadDatagrid;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { ResourceContextProvider, ListContextProvider, useTranslate, Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport TagChip from \"../Tag/TagChip\";\nimport get from 'lodash/get';\nimport keyBy from 'lodash/keyBy';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nconst GasMeterPadsReferenceDatagrid = ({ basePath, resource, source, record, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n const translate = useTranslate();\n const ownership = get(record, source);\n\n if (ownership.length === 0) {\n return (\n \n \n {translate('ra.navigation.no_results')}\n \n \n )\n }\n\n const data = ownership.map(item => ({\n id: item.gasMeterPad.id,\n name: item.gasMeterPad.name,\n description: item.gasMeterPad.description,\n aisId: item.gasMeterPad.aisId,\n dateFrom: item.dateFrom,\n dateTo: item.dateTo,\n }))\n\n\n return (\n \n id),\n total: data.length,\n currentSort: { field: 'name', order: 'ASC' },\n selectedIds: [],\n }}\n >\n {isMobile ? (\n record.name}\n secondaryText={record => `${new Date(record.dateFrom).toLocaleDateString()} - ${new Date(record.dateTo).toLocaleDateString()}`}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default GasMeterPadsReferenceDatagrid;\n","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport GasConsumerBanner from './GasConsumerBanner';\nimport { GasDistrictReferenceDatagrid } from '../GasDistrict/GasDistrictDatagrid';\nimport { GasMeterPadReferenceDatagrid } from '../GasMeterPad/GasMeterPadDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport OwnershipGasMeterPadsDatagrid from './OwnershipGasMeterPadsDatagrid';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n// import Breadcrumbs from '../Layout/Breadcrumbs';\n// import Breadcrumb from '../Layout/Breadcrumb';\n\n\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\n\nconst GasConsumerShow = props => {\n const showOwnershipButton = React.useRef(null);\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } {...props} >\n \n {can('getOne', 'GasConsumer', 'addrManual') && \n \n }\n {can('getOne', 'GasConsumer', 'reports', 'Report') && \n \n }\n {can('getOne', 'GasConsumer', 'gasDistricts', 'GasDistrict') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasConsumer', 'gasMeterPads', 'GasMeterPad') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasConsumer', 'ownershipGasMeterPads') && )} />}\n {can('getOne', 'GasConsumer', 'ownershipGasMeterPads') && \n \n \n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasConsumer', 'aisId') && }\n \n {can('getOne', 'GasConsumer', 'id') && }\n {can('getOne', 'GasConsumer', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasConsumer', 'createdAt') && }\n {can('getOne', 'GasConsumer', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasConsumerShow;","import Icon from '../Icons/Consumer';\nimport GasConsumerList from './GasConsumerList';\nimport GasConsumerCreate from './GasConsumerCreate';\nimport GasConsumerEdit from './GasConsumerEdit';\nimport GasConsumerShow from './GasConsumerShow';\n\nconst GasConsumerIcon = Icon;\n\n\nexport {\n GasConsumerIcon,\n GasConsumerList,\n GasConsumerShow,\n GasConsumerCreate,\n GasConsumerEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n addrManual: true,\n gasMeterPads: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterPad\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasDistributorOrganization\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasDistributorOrganizationBulkActionButtons = props => (\n <>\n {can('update', 'GasDistributorOrganization', 'tags', 'Tag') && }\n {can('getList', 'GasDistributorOrganization') && }\n {can('remove', 'GasDistributorOrganization') && }\n \n)\n\n\n\nexport default GasDistributorOrganizationBulkActionButtons;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReferenceArrayInput, TextInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}));\n\nconst GasDistributorOrganizationFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasDistributorOrganization', 'aisId') && }\n {/* {can('getList', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n } */}\n {can('getList', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorOrganization', 'reports', 'Report') && }\n {can('getList', 'GasDistributorOrganization', 'reports', 'Report') && }\n \n )\n}\n\n\n\nexport default GasDistributorOrganizationFilter;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasDistributorOrganization', 'name') && ,\n can('getList', 'GasDistributorOrganization', 'aisId') && ,\n can('getList', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasDistributorOrganization', 'createdAt') && ,\n can('getList', 'GasDistributorOrganization', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nconst GasDistributorOrganizationDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasDistributorOrganization') && }\n {can('update', 'GasDistributorOrganization') && }\n {can('remove', 'GasDistributorOrganization') && }\n \n \n )\n};\n\n\n\nexport default GasDistributorOrganizationDatagrid;","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasDistributorOrganizationExporter from './useGasDistributorOrganizationExporter';\nimport GasDistributorOrganizationBulkActionButtons from './GasDistributorOrganizationBulkActionButtons';\nimport GasDistributorOrganizationFilter from './GasDistributorOrganizationFilter';\nimport GasDistributorOrganizationDatagrid, { useDefaultDatagridColumns } from './GasDistributorOrganizationDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\n\n\nconst GasDistributorOrganizationList = (props) => {\n const exporter = useGasDistributorOrganizationExporter()\n const manualSubmitForm = React.useRef(null)\n const columns = useDefaultDatagridColumns()\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n )\n};\n\nGasDistributorOrganizationList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasDistributorOrganizationList;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, required, ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport ReportReferenceArrayInputWithDefault from \"../Report/ReportReferenceArrayInputWithDefault\";\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// flexReferenceArrayInput: {\n// display: \"flex\",\n// alignItems: \" flex-end\",\n// },\n// }));\n\nconst GasDistributorOrganizationCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasDistributorOrganization', 'name') && }\n {can('create', 'GasDistributorOrganization', 'description') && }\n {can('create', 'GasDistributorOrganization', 'aisId') && }\n {can('create', 'GasDistributorOrganization', 'addrManual') && }\n {can('create', 'GasDistributorOrganization', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistributorOrganization', 'reports', 'Report') && }\n {can('create', 'GasDistributorOrganization', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasDistributorOrganizationCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasDistributorOrganizationBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n\n return (\n \n
\n \n \n {can('getOne', 'GasDistributorOrganization', 'name') && {name}}\n {can('getOne', 'GasDistributorOrganization', 'description') && {description}}\n {can('getOne', 'GasDistributorOrganization', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasDistributorOrganization', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasDistributorOrganizationBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, required, ReferenceArrayInput } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasDistributorOrganizationBanner from './GasDistributorOrganizationBanner';\nimport ReportReferenceArrayInput from \"../Report/ReportReferenceArrayInput\";\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasDistributorOrganizationToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasDistributorOrganization') && }\n {can(\"update\", \"GasDistributorOrganization\") && }\n \n {can('remove', 'GasDistributorOrganization') && }\n \n \n );\n}\n\nconst GasDistributorOrganizationEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasDistributorOrganization', 'name') && }\n {can('update', 'GasDistributorOrganization', 'description') && }\n {can('update', 'GasDistributorOrganization', 'aisId') && }\n {can('update', 'GasDistributorOrganization', 'addrManual') && }\n {can('update', 'GasDistributorOrganization', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistributorOrganization', 'reports', 'Report') && }\n {can('update', 'GasDistributorOrganization', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasDistributorOrganizationEdit","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport CardBlankLayout from \"../Layout/CardBlankLayout\";\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasConsumerReferenceDatagrid } from '../GasConsumer/GasConsumerDatagrid';\nimport GasDistributorOrganizationBanner from './GasDistributorOrganizationBanner';\nimport { GasMeterPadReferenceDatagrid } from '../GasMeterPad/GasMeterPadDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from \"../Report/ReportCard\";\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasDistributorOrganizationShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } {...props} >\n \n\n \n {can('getOne', 'GasDistributorOrganization', 'addrManual') && }\n \n\n {can('getOne', 'GasDistributorOrganization', 'reports', 'Report') && \n \n }\n {can('getOne', 'GasDistributorOrganization', 'gasConsumers', 'GasConsumer') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n {can('getOne', 'GasDistributorOrganization', 'gasMeterPads', 'GasMeterPad') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasDistributorOrganization', 'aisId') && }\n \n {can('getOne', 'GasDistributorOrganization', 'id') && }\n {can('getOne', 'GasDistributorOrganization', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasDistributorOrganization', 'createdAt') && }\n {can('getOne', 'GasDistributorOrganization', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasDistributorOrganizationShow;","import Icon from '../Icons/GRO';\nimport GasDistributorOrganizationList from './GasDistributorOrganizationList';\nimport GasDistributorOrganizationCreate from './GasDistributorOrganizationCreate';\nimport GasDistributorOrganizationEdit from './GasDistributorOrganizationEdit';\nimport GasDistributorOrganizationShow from './GasDistributorOrganizationShow';\n\nconst GasDistributorOrganizationIcon = Icon;\n\n\nexport {\n GasDistributorOrganizationIcon,\n GasDistributorOrganizationList,\n GasDistributorOrganizationShow,\n GasDistributorOrganizationCreate,\n GasDistributorOrganizationEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasDistributorStationOutputs: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistributorStationOutput\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasDistributorStation\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasDistributorStationBulkActionButtons = props => (\n <>\n {can('update', 'GasDistributorStation', 'tags', 'Tag') && }\n {can('getList', 'GasDistributorStation') && }\n {can('remove', 'GasDistributorStation') && }\n \n)\n\n\n\nexport default GasDistributorStationBulkActionButtons;","import React from 'react';\nimport { ReferenceArrayInput, ReferenceInput, TextField, TextInput, useTranslate } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}))\n\nconst GasDistributorStationFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasDistributorStation', 'aisId') && }\n {can('getList', 'GasDistributorStation', 'balanceRegion', 'BalanceRegion') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasDistributorStation', 'gasQualityCertificate', 'GasQualityCertificate') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasDistributorStation', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorStation', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorStation', 'reports', 'Report') && }\n {can('getList', 'GasDistributorStation', 'reports', 'Report') && }\n \n )\n}\n\n\nexport default GasDistributorStationFilter;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasDistributorStation', 'name') && ,\n can('getList', 'GasDistributorStation', 'aisId') && ,\n can('getList', 'GasDistributorStation', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasDistributorStation', 'createdAt') && ,\n can('getList', 'GasDistributorStation', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nexport const GasDistributorStationReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasDistributorStation', 'name') && }\n {can('getList', 'GasDistributorStation', 'aisId') && }\n {can('getList', 'GasDistributorStation', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorStation', 'createdAt') && }\n {can('getList', 'GasDistributorStation', 'updatedAt') && }\n \n )\n};\n\nconst GasDistributorStationDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasDistributorStation') && }\n {can('update', 'GasDistributorStation') && }\n {can('remove', 'GasDistributorStation') && }\n \n \n )\n};\n\n\n\nexport default GasDistributorStationDatagrid;","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasDistributorStationExporter from './useGasDistributorStationExporter';\nimport GasDistributorStationBulkActionButtons from './GasDistributorStationBulkActionButtons';\nimport GasDistributorStationFilter from './GasDistributorStationFilter';\nimport GasDistributorStationDatagrid, { useDefaultDatagridColumns } from './GasDistributorStationDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst GasDistributorStationList = (props) => {\n const exporter = useGasDistributorStationExporter()\n const manualSubmitForm = React.useRef(null);\n const columns = useDefaultDatagridColumns()\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n )\n};\n\nGasDistributorStationList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' }\n};\n\n\n\nexport default GasDistributorStationList;","import React, { useState, cloneElement } from 'react';\nimport inflection from 'inflection';\nimport { get } from 'lodash';\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Drawer from '@material-ui/core/Drawer';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport IconButton from '@material-ui/core/IconButton';\nimport IconContentAdd from '@material-ui/icons/Add';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { crudGetMatching, useTranslate, Toolbar, useCreate, useNotify } from 'react-admin';\nimport { useForm, useFormState } from \"react-final-form\";\nimport { useDispatch } from 'react-redux';\n\n\n\nconst useStyles = makeStyles({\n button: {\n verticalAlign: \"bottom\",\n position: \"relative\",\n marginTop: 8,\n marginBottom: 4,\n },\n paper: {\n minWidth: \"16rem\",\n },\n\n drawerForm: {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n },\n drawerToolbar: {\n marginTop: \"auto\",\n },\n});\n\nconst QuickCreateButton = ({ resource, source, reference, basePath, children, isArray, ...props }) => {\n\n const classes = useStyles();\n const dispatch = useDispatch();\n const [create] = useCreate(reference);\n const notify = useNotify();\n const translate = useTranslate();\n const form = useForm();\n const { values } = useFormState();\n const [open, setOpen] = useState(false);\n\n const referenceName = translate(`resources.${reference}.name`, {\n smart_count: 1,\n _: inflection.humanize(inflection.singularize(resource)),\n });\n const defaultTitle = translate('ra.page.create', {\n name: `${referenceName}`,\n });\n\n const handleClick = (event) => {\n event.preventDefault();\n setOpen(true);\n };\n\n const handleCloseClick = (event) => {\n event.preventDefault();\n setOpen(false);\n };\n\n const onSave = (data) => {\n const { pagination = { page: 1, perPage: 25 }, sort = { field: \"id\", order: \"DESC\" }, filter = {} } = props;\n dispatch(\n crudGetMatching(\n reference,\n `${resource}@${source}`,\n pagination,\n sort,\n filter,\n )\n );\n\n if (isArray) {\n const value = get(values, source, [])\n form.change(source, [...value, data.id]);\n } else {\n form.change(source, data.id)\n }\n\n setOpen(false);\n }\n\n const handleSave = async values => {\n\n create(\n { payload: { data: values } },\n {\n onSuccess: ({ data }) => {\n setOpen(false);\n onSave(data);\n },\n onFailure: (error) => {\n notify(error.message, 'error');\n }\n })\n };\n\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n }\n />\n {cloneElement(children, {\n basePath: basePath.replace(resource, reference),\n resource: reference,\n save: handleSave,\n redirect: false,\n className: classes.drawerForm,\n toolbar: ,\n })}\n \n \n );\n\n}\n\nexport default QuickCreateButton;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, required, ReferenceInput, ReferenceArrayInput } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport ReportReferenceArrayInputWithDefault from \"../Report/ReportReferenceArrayInputWithDefault\";\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// flexReferenceArrayInput: {\n// display: \"flex\",\n// alignItems: \" flex-end\",\n// },\n// }));\n\nexport const GasDistributorStationOutputQuickCreateForm = props => {\n // const classes = useStyles();\n return (\n \n {can('create', 'GasDistributorStationOutput', 'name') && }\n {can('create', 'GasDistributorStationOutput', 'description') && }\n {can('create', 'GasDistributorStationOutput', 'aisId') && }\n \n )\n};\n\n\nconst GasDistributorStationOutputCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasDistributorStationOutput', 'name') && }\n {can('create', 'GasDistributorStationOutput', 'description') && }\n {can('create', 'GasDistributorStationOutput', 'aisId') && }\n {can('create', 'GasDistributorStationOutput', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistributorStationOutput', 'gasDistributorStation', 'GasDistributorStation') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistributorStationOutput', 'reports', 'Report') && }\n {can('create', 'GasDistributorStationOutput', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasDistributorStationOutputCreate;","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { ReferenceArrayInput } from \"react-admin\";\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport QuickCreateButton from \"../Buttons/QuickCreateButton\";\nimport { GasDistributorStationOutputQuickCreateForm } from \"../GasDistributorStationOutput/GasDistributorStationOutputCreate\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n alignItems: \"center\"\n },\n reference: {\n display: \"inline-block\",\n width: \"90%\"\n }\n});\n\nconst ReferenceArrayGasDistributorStationOutput = props => {\n const classes = useStyles();\n return (\n
\n \n } selectedItem={} matchSuggestion={matchTrue} />\n \n {can('create', 'GasDistributorStationOutput') && \n \n }\n
\n );\n};\n\nexport default ReferenceArrayGasDistributorStationOutput;\n","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, required, ReferenceInput } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport ReportReferenceArrayInputWithDefault from \"../Report/ReportReferenceArrayInputWithDefault\";\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport ReferenceArrayGasDistributorStationOutput from \"./ReferenceArrayGasDistributorStationOutput\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// flexReferenceArrayInput: {\n// display: \"flex\",\n// alignItems: \" flex-end\",\n// },\n// }));\n\nconst GasDistributorStationCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasDistributorStation', 'name') && }\n {can('create', 'GasDistributorStation', 'description') && }\n {can('create', 'GasDistributorStation', 'aisId') && }\n {can('create', 'GasDistributorStation', 'balanceRegion', 'BalanceRegion') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistributorStation', 'gasDistributorStationOutputs', 'GasDistributorStationOutput') && }\n {can('create', 'GasDistributorStation', 'reports', 'Report') && }\n {can('create', 'GasDistributorStation', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasDistributorStationCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasDistributorStationBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n
\n \n \n {can('getOne', 'GasDistributorStation', 'name') && {name}}\n {can('getOne', 'GasDistributorStation', 'description') && {description}}\n {can('getOne', 'GasDistributorStation', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasDistributorStation', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasDistributorStationBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, required, ReferenceInput } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasDistributorStationBanner from './GasDistributorStationBanner';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport ReportReferenceArrayInput from \"../Report/ReportReferenceArrayInput\";\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport ReferenceArrayGasDistributorStationOutput from \"./ReferenceArrayGasDistributorStationOutput\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasDistributorStationToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasDistributorStation') && }\n {can(\"update\", \"GasDistributorStation\") && }\n \n {can('remove', 'GasDistributorStation') && }\n \n \n );\n}\n\nconst GasDistributorStationEdit = props => {\n const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasDistributorStation', 'name') && }\n {can('update', 'GasDistributorStation', 'description') && }\n {can('update', 'GasDistributorStation', 'aisId') && }\n {can('update', 'GasDistributorStation', 'balanceRegion', 'BalanceRegion') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistributorStation', 'gasDistributorStationOutputs', 'GasDistributorStationOutput') && }\n {can('update', 'GasDistributorStation', 'reports', 'Report') && }\n {can('update', 'GasDistributorStation', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasDistributorStationEdit","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nexport const GasDistributorStationOutputReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasDistributorStationOutput', 'name') && }\n {can('getList', 'GasDistributorStationOutput', 'aisId') && }\n {can('getList', 'GasDistributorStationOutput', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistributorStationOutput', 'createdAt') && }\n {can('getList', 'GasDistributorStationOutput', 'updatedAt') && }\n \n )\n}\n\n\n\n","import React from 'react';\nimport get from 'lodash/get'\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { NumberField } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n error: {\n color: theme.palette.error.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n warning: {\n color: theme.palette.warning.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n}));\n\n\nconst checkOutOfRange = (value) => value < 0.1 || value > 3.8\n\nexport const validate = (value, record) => {\n const invalid = checkOutOfRange(value)\n const name = record.name\n const parameter = \"N2\"\n const range = `0.1 < ${parameter} < 3.8`\n return invalid ? { message: 'resources.GasQualityCertificate.validation.out_of_range', args: { value, parameter, range, name } } : undefined\n}\n\nconst N2Field = (props) => {\n const classes = useStyles()\n const { record, source } = props\n const value = get(record, source)\n const warning = checkOutOfRange(value)\n\n return (\n )\n}\n\nN2Field.defaultProps = {\n addLabel: true,\n};\n\nexport default N2Field;\n\n","import React from 'react';\nimport get from 'lodash/get'\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { NumberField } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n error: {\n color: theme.palette.error.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n warning: {\n color: theme.palette.warning.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n}));\n\nconst checkOutOfRange = (value) => value < 0.1 || value > 4.8\n\nexport const validate = (value, record) => {\n const invalid = checkOutOfRange(value)\n const name = record.name\n const parameter = \"CO2\"\n const range = `0.1 < ${parameter} < 4.8`\n return invalid ? { message: 'resources.GasQualityCertificate.validation.out_of_range', args: { value, parameter, range, name } } : undefined\n}\n\nconst CO2Field = (props) => {\n const classes = useStyles()\n const { record, source } = props\n const value = get(record, source)\n const warning = checkOutOfRange(value)\n\n return (\n )\n}\n\nCO2Field.defaultProps = {\n addLabel: true,\n};\n\nexport default CO2Field;\n\n","import React from 'react';\nimport get from 'lodash/get'\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { NumberField } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n error: {\n color: theme.palette.error.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n warning: {\n color: theme.palette.warning.dark,\n fontWeight: theme.typography.fontWeightBold\n },\n}));\n\nconst checkOutOfRange = (value) => value < 0.6 || value > 0.9\n\nexport const validate = (value, record) => {\n const invalid = checkOutOfRange(value)\n const name = record.name\n const parameter = \"P\"\n const range = `0.6 < ${parameter} < 0.9`\n return invalid ? { message: 'resources.GasQualityCertificate.validation.out_of_range', args: { value, parameter, range, name } } : undefined\n}\n\nconst DensityField = (props) => {\n const classes = useStyles()\n const { record, source } = props\n const value = get(record, source)\n const error = checkOutOfRange(value)\n\n return (\n )\n}\n\nDensityField.defaultProps = {\n addLabel: true,\n};\n\nexport default DensityField;\n\n","import { useMemo } from 'react';\nimport compact from 'lodash/compact';\n\nconst useColumns = (fields) => {\n\n const columns = useMemo(() => {\n return compact(fields).reduce((acc, field) => {\n const column = field.props.column || field.props.source\n\n acc[column] = field;\n return acc\n }, {})\n }, []);\n\n return columns\n}\n\nexport default useColumns","import { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport React from 'react';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport N2Field from \"./GasQualityCertificateN2Field\";\nimport CO2Field from \"./GasQualityCertificateCO2Field\";\nimport DensityField from \"./GasQualityCertificateDensityField\";\nimport useColumns from '../Layout/preferences/useColumns';\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasQualityCertificate', 'name') && ,\n can('getList', 'GasQualityCertificate', 'gqsId') && ,\n can('getList', 'GasQualityCertificate', 'n2') && ,\n can('getList', 'GasQualityCertificate', 'co2') && ,\n can('getList', 'GasQualityCertificate', 'density') && ,\n can('getList', 'GasQualityCertificate', 'validFrom') && ,\n can('getList', 'GasQualityCertificate', 'validTo') && ,\n can('getList', 'GasQualityCertificate', 'gasExtractionPoint') && ,\n can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasQualityCertificate', 'writtenAt') && ,\n can('getList', 'GasQualityCertificate', 'createdAt') && ,\n can('getList', 'GasQualityCertificate', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nexport const GasQualityCertificateReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.gqsId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasQualityCertificate', 'name') && }\n {can('getList', 'GasQualityCertificate', 'gqsId') && }\n {can('getList', 'GasQualityCertificate', 'n2') && }\n {can('getList', 'GasQualityCertificate', 'co2') && }\n {can('getList', 'GasQualityCertificate', 'density') && }\n {can('getList', 'GasQualityCertificate', 'validFrom') && }\n {can('getList', 'GasQualityCertificate', 'validTo') && }\n {can('getList', 'GasQualityCertificate', 'gasExtractionPoint') && }\n {can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasQualityCertificate', 'writtenAt') && }\n {can('getList', 'GasQualityCertificate', 'createdAt') && }\n {can('getList', 'GasQualityCertificate', 'updatedAt') && }\n \n )\n};\n\nconst GasQualityCertificateDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.gqsId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasQualityCertificate') && }\n {can('update', 'GasQualityCertificate') && }\n {can('remove', 'GasQualityCertificate') && }\n \n \n )\n}\n\n\n\nexport default GasQualityCertificateDatagrid;","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport CardBlankLayout from \"../Layout/CardBlankLayout\";\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasConsumerReferenceDatagrid } from '../GasConsumer/GasConsumerDatagrid';\nimport GasDistributorStationBanner from './GasDistributorStationBanner';\nimport { GasDistributorStationOutputReferenceDatagrid } from '../GasDistributorStationOutput/GasDistributorStationOutputDatagrid';\nimport { GasMeterPadReferenceDatagrid } from '../GasMeterPad/GasMeterPadDatagrid';\nimport { GasQualityCertificateReferenceDatagrid } from '../GasQualityCertificate/GasQualityCertificateDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from \"../Report/ReportCard\";\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasDistributorStationShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } {...props} >\n \n\n {can('getOne', 'GasDistributorStation', 'reports', 'Report') && \n \n }\n\n {can('getOne', 'GasDistributorStation', 'gasDistributorStationOutputs', 'GasDistributorStationOutput') &&\n }\n // actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={10}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasDistributorStation', 'gasConsumers', 'GasConsumer') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={10}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasDistributorStation', 'gasMeterPads', 'GasMeterPad') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={25}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasDistributorStation', 'gasQualityCertificates', 'GasQualityCertificate') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={25}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasDistributorStation', 'aisId') && }\n {can('getOne', 'GasDistributorStation', 'balanceRegion', 'BalanceRegion') && \n \n }\n \n {can('getOne', 'GasDistributorStation', 'id') && }\n {can('getOne', 'GasDistributorStation', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasDistributorStation', 'createdAt') && }\n {can('getOne', 'GasDistributorStation', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasDistributorStationShow;","import Icon from '../Icons/GRS';\nimport GasDistributorStationList from './GasDistributorStationList';\nimport GasDistributorStationCreate from './GasDistributorStationCreate';\nimport GasDistributorStationEdit from './GasDistributorStationEdit';\nimport GasDistributorStationShow from './GasDistributorStationShow';\n\nconst GasDistributorStationIcon = Icon;\n\n\nexport {\n GasDistributorStationIcon,\n GasDistributorStationList,\n GasDistributorStationShow,\n GasDistributorStationCreate,\n GasDistributorStationEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasDistributorStationOutputBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n
\n \n \n {can('getOne', 'GasDistributorStationOutput', 'name') && {name}}\n {can('getOne', 'GasDistributorStationOutput', 'description') && {description}}\n {can('getOne', 'GasDistributorStationOutput', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasDistributorStationOutput', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasDistributorStationOutputBanner;","import { ReferenceArrayInput, ReferenceInput, SaveButton, SimpleForm, TextInput, Toolbar, required } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport CancelButton from '../Buttons/CancelButton';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport GasDistributorStationOutputBanner from './GasDistributorStationOutputBanner';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport React from 'react';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport ReportReferenceArrayInput from \"../Report/ReportReferenceArrayInput\";\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasDistributorStationOutputToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {/* {can('update', 'GasDistributorStationOutput') && } */}\n {can(\"update\", \"GasDistributorStationOutput\") && }\n \n {can('remove', 'GasDistributorStationOutput') && }\n \n \n );\n}\n\nconst GasDistributorStationOutputEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasDistributorStationOutput', 'name') && }\n {can('update', 'GasDistributorStationOutput', 'description') && }\n {can('update', 'GasDistributorStationOutput', 'aisId') && }\n {can('update', 'GasDistributorStationOutput', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistributorStationOutput', 'gasDistributorStation', 'GasDistributorStation') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistributorStationOutput', 'reports', 'Report') && }\n {can('update', 'GasDistributorStationOutput', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasDistributorStationOutputEdit","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, SimpleShowLayout, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport CardBlankLayout from \"../Layout/CardBlankLayout\";\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport GasDistributorStationOutputBanner from './GasDistributorStationOutputBanner';\nimport { GasMeterPadReferenceDatagrid } from '../GasMeterPad/GasMeterPadDatagrid';\nimport GridField from \"../Fields/GridField\";\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from \"../Report/ReportCard\";\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasDistributorStationOutputBreadcrumbs = (props) => {\n return (\n \n \n \n );\n}\n\nexport const GasDistributorStationOutputQuickShowLayout = props => {\n return (\n \n {can('getOne', 'GasDistributorStationOutput', 'id') && }\n {can('getOne', 'GasDistributorStationOutput', 'aisId') && }\n {can('getOne', 'GasDistributorStationOutput', 'createdAt') && }\n {can('getOne', 'GasDistributorStationOutput', 'createdBy') && \n \n }\n {can('getOne', 'GasDistributorStationOutput', 'updatedAt') && }\n \n );\n};\n\nconst GasDistributorStationOutputShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } title={} {...props}>\n \n\n {can('getOne', 'GasDistributorStationOutput', 'reports', 'Report') && \n \n }\n\n {can('getList', 'GasMeterPad') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={25}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n \n \n \n {can('getOne', 'User', 'name') && \n \n }\n \n \n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasDistributorStationOutputShow;","import Icon from '../Icons/GRSOutput';\nimport GasDistributorStationOutputCreate from './GasDistributorStationOutputCreate';\nimport GasDistributorStationOutputEdit from './GasDistributorStationOutputEdit';\nimport GasDistributorStationOutputShow from './GasDistributorStationOutputShow';\n\nconst GasDistributorStationOutputIcon = Icon;\n\n\nexport {\n GasDistributorStationOutputIcon,\n GasDistributorStationOutputShow,\n GasDistributorStationOutputCreate,\n GasDistributorStationOutputEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasRegion: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasRegion\",\n },\n gasMeterPads: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterPad\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasDistrict\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\n\nconst GasDistrictBulkActionButtons = props => (\n <>\n {can('update', 'GasDistrict', 'tags', 'Tag') && }\n {can('getList', 'GasDistrict') && }\n {can('remove', 'GasDistrict') && }\n \n)\n\n\nexport default GasDistrictBulkActionButtons;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReferenceArrayInput, ReferenceInput, TextInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}))\n\nconst GasDistrictFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasDistrict', 'aisId') && }\n {can('getList', 'GasDistrict', 'gasRegion', 'GasRegion') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasDistrict', 'gasConsumer', 'GasConsumer') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasDistrict', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistrict', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasDistrict', 'reports', 'Report') && }\n {can('getList', 'GasDistrict', 'reports', 'Report') && }\n \n )\n}\n\n\n\nexport default GasDistrictFilter;","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasDistrictExporter from './useGasDistrictExporter';\nimport GasDistrictBulkActionButtons from './GasDistrictBulkActionButtons';\nimport GasDistrictFilter from './GasDistrictFilter';\nimport GasDistrictDatagrid, { useDefaultDatagridColumns } from './GasDistrictDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst GasDistrictList = (props) => {\n const exporter = useGasDistrictExporter()\n const manualSubmitForm = React.useRef(null);\n const columns = useDefaultDatagridColumns()\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n )\n};\n\nGasDistrictList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasDistrictList;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport { useSelector, shallowEqual } from 'react-redux';\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// }));\n\nconst GasDistrictCreate = props => {\n // const classes = useStyles();\n const user = useSelector(state => state.user, shallowEqual);\n const accessRegion = ['GasRegion'].includes(user && user.accessResource || '');\n\n return (\n \n \n {can('create', 'GasDistrict', 'name') && }\n {can('create', 'GasDistrict', 'description') && }\n {can('create', 'GasDistrict', 'aisId') && }\n {can('create', 'GasDistrict', 'gasRegion', 'GasRegion') && accessRegion && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistrict', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasDistrict', 'reports', 'Report') && }\n {can('create', 'GasDistrict', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasDistrictCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasDistrictBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n
\n \n \n {can('getOne', 'GasDistrict', 'name') && {name}}\n {can('getOne', 'GasDistrict', 'description') && {description}}\n {can('getOne', 'GasDistrict', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasDistrict', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasDistrictBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, ReferenceInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasDistrictBanner from './GasDistrictBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasDistrictToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasDistrict') && }\n {can(\"update\", \"GasDistrict\") && }\n \n {can('remove', 'GasDistrict') && }\n \n \n );\n}\n\nconst GasDistrictEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props}>\n \n \n }>\n {can('update', 'GasDistrict', 'name') && }\n {can('update', 'GasDistrict', 'description') && }\n {can('update', 'GasDistrict', 'aisId') && }\n {can('update', 'GasDistrict', 'gasRegion', 'GasRegion') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistrict', 'gasMeterPads', 'GasMeterPad') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasDistrict', 'reports', 'Report') && }\n {can('update', 'GasDistrict', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasDistrictEdit","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasConsumerReferenceDatagrid } from '../GasConsumer/GasConsumerDatagrid';\nimport GasDistrictBanner from './GasDistrictBanner';\nimport { GasMeterPadReferenceDatagrid } from '../GasMeterPad/GasMeterPadDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst GasDistrictBreadcrumbs = (props) => {\n return (\n \n \n \n );\n}\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasDistrictShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } title={} {...props} >\n \n\n {can('getOne', 'GasDistrict', 'reports', 'Report') && \n \n }\n\n {can('getOne', 'GasDistrict', 'gasConsumers', 'GasConsumer') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n {can('getOne', 'GasDistrict', 'gasMeterPads', 'GasMeterPad') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasDistrict', 'aisId') && }\n \n {can('getOne', 'GasDistrict', 'id') && }\n {can('getOne', 'GasDistrict', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasDistrict', 'createdAt') && }\n {can('getOne', 'GasDistrict', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasDistrictShow;","import Icon from '../Icons/District';\nimport GasDistrictList from './GasDistrictList';\nimport GasDistrictCreate from './GasDistrictCreate';\nimport GasDistrictEdit from './GasDistrictEdit';\nimport GasDistrictShow from './GasDistrictShow';\n\nconst GasDistrictIcon = Icon;\n\n\nexport {\n GasDistrictIcon,\n GasDistrictList,\n GasDistrictShow,\n GasDistrictCreate,\n GasDistrictEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { booleanFormatter, dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasConsumer: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasConsumer\",\n },\n gasDistributorOrganization: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistributorOrganization\",\n },\n gasDistributorStationOutput: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistributorStationOutput\",\n },\n gasDistrict: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistrict\",\n },\n gasMeterUnits: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterUnit\",\n },\n addrManual: true,\n disabled: booleanFormatter,\n isProvider: booleanFormatter,\n disabledPeriods: {\n id: true,\n dateFrom: dateFormatter,\n dateTo: dateFormatter,\n description: true,\n __resource: \"DisabledPeriod\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasMeterPad\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport AisChip from \"../Fields/AisChip\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n selected: { fontWeight: 500 },\n highlight: {\n fontWeight: 500,\n color: \"#000\"\n },\n suggestionText: {\n flex: '1 1 auto',\n },\n suggestionChip: {\n marginLeft: 8,\n margin: 0,\n },\n}),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nexport const gasDistributorStationOutputOptionText = choice => {\n const { aisId, name, gasDistributorStation } = choice\n const gdsName = gasDistributorStation?.name\n const gdso = aisId ? `${name} (${aisId})` : name;\n const text = gdsName ? `${gdsName}: ${gdso}` : gdso\n return text;\n};\n\nconst Suggestion = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const gasDistributorStationName = suggestion.gasDistributorStation?.name;\n const suggestionText = `${gasDistributorStationName ? `${gasDistributorStationName}: ` : ''}${suggestion.name}`;\n if (!suggestion.id) return Нет;\n const isHighlighted = highlightedIndex === index;\n const matches = match(suggestionText, filterValue);\n const parts = parse(suggestionText, matches);\n\n\n return (\n \n \n {parts.map((part, index) => ({part.text}))}\n \n \n \n );\n};\n\nexport default Suggestion;\n","import React from 'react';\nimport { NullableBooleanInput, ReferenceArrayInput, ReferenceInput, TextInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport GasDistributorStationOutputSuggestionItem, { gasDistributorStationOutputOptionText } from './GasDistributorStationOutputSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { matchTrue } from '../../utils';\n\n\n\nconst gasDistributorStationOutputFilterToQuery = searchText => ({ searchWithGDS: searchText });\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}));\n\nconst GasMeterPadFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasMeterPad', 'aisId') && }\n {can('getList', 'GasMeterPad', 'gasDistrict', 'GasDistrict') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterPad', 'gasConsumer', 'GasConsumer') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterPad', 'gasDistributorOrganization', 'GasDistributorOrganization') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterPad', 'gasDistributorStation', 'GasDistributorStation') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterPad', 'gasDistributorStationOutput', 'GasDistributorStationOutput') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterPad', 'disabled') && }\n {can('getList', 'GasMeterPad', 'isProvider') && }\n {can('getList', 'GasMeterPad', 'enableWriteGasQualityCertificate', 'GasMeterUnit') && }\n {can('getList', 'GasMeterPad', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasMeterPad', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasMeterPad', 'reports', 'Report') && }\n {can('getList', 'GasMeterPad', 'reports', 'Report') && }\n \n )\n};\n\n\n\nexport default GasMeterPadFilter;","import React from 'react';\nimport moment from 'moment'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useForm, useFormState } from \"react-final-form\";\nimport { ArrayInput, FormDataConsumer, SimpleFormIterator, DateInput, TextInput, required } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n form: {\n display: \"flex\",\n },\n index: {\n width: 24,\n paddingTop: \"1.25em\",\n },\n dateToInput: {\n marginLeft: 16,\n },\n reasonInput: {\n flexGrow: 1,\n marginLeft: 16,\n marginRight: 16,\n minWidth: 256,\n },\n}));\n\n\n\n\nconst GasMeterPadDisabledPeriodsArrayInput = ({ className, ...props }) => {\n const classes = useStyles();\n const { values } = useFormState();\n\n return (\n \n \n \n {({ formData, scopedFormData, getSource, id, ...rest }) => (\n \n )}\n \n \n {({ formData, scopedFormData, getSource, id, ...rest }) => (\n \n )}\n \n \n \n \n );\n}\n\nexport default GasMeterPadDisabledPeriodsArrayInput;","import gql from 'graphql-tag';\n\nexport const EMBEDDED_SIMPLE_TYPE = `{\n id\n name\n description\n}`\n\nexport const EMBEDDED_ASKUG_TYPE = `{\n id\n name\n description\n aisId\n}`\n\nexport const EMBEDDED_USER_TYPE = `{\n id\n name\n email\n phone\n}`\n\nexport const EMBEDDED_DASHBOARD_TYPE = `{\n id\n name\n description\n resource\n executeApp\n uri\n}`\n\nexport const EMBEDDED_REPORT_TYPE = `{\n id\n name\n description\n type\n template\n resource\n gasMeterType\n}`\n\nexport const EMBEDDED_TAG_TYPE = `{\n id\n name\n description\n color\n resource\n}`\n\n\n\n\nconst GAS_REGION_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasDistricts ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n}`\n\nexport const GET_LIST_GAS_REGION = gql`\n query allGasRegions($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasRegionFilter) {\n items: allGasRegions(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_REGION_TEMPLATE}\n total: _allGasRegionsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_REGIONS = gql`\n query allGasRegions($filter: GasRegionFilter) {\n items: allGasRegions(filter: $filter) ${GAS_REGION_TEMPLATE}\n total: _allGasRegionsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_REGION = gql`\n query GasRegion( $where: GasRegionWhereUniqueInput! ) {\n data: GasRegion( where: $where ) ${GAS_REGION_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_REGION = gql`\n mutation updateGasRegion( $where: GasRegionWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasDistricts: [GasDistrictWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasRegion( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasDistricts: $gasDistricts, reports: $reports ) ${GAS_REGION_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_REGION = gql`\n mutation deleteGasRegion( $where: GasRegionWhereUniqueInput! ) {\n data: deleteGasRegion( where: $where ) { id }\n }\n`\n\nconst GAS_DISTRICT_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasRegion ${EMBEDDED_ASKUG_TYPE}\n gasMeterPads ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n}`\n\nexport const GET_LIST_GAS_DISTRICT = gql`\n query allGasDistricts($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasDistrictFilter) {\n items: allGasDistricts(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_DISTRICT_TEMPLATE}\n total: _allGasDistrictsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_DISTRICTS = gql`\n query allGasDistricts($filter: GasDistrictFilter) {\n items: allGasDistricts(filter: $filter) ${GAS_DISTRICT_TEMPLATE}\n total: _allGasDistrictsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_DISTRICT = gql`\n query GasDistrict( $where: GasDistrictWhereUniqueInput! ) {\n data: GasDistrict( where: $where ) ${GAS_DISTRICT_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_DISTRICT = gql`\n mutation updateGasDistrict( $where: GasDistrictWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasRegion: GasRegionWhereUniqueInput, $gasMeterPads: [GasMeterPadWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasDistrict( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasRegion: $gasRegion, gasMeterPads: $gasMeterPads, reports: $reports ) ${GAS_DISTRICT_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_DISTRICT = gql`\n mutation deleteGasDistrict( $where: GasDistrictWhereUniqueInput! ) {\n data: deleteGasDistrict( where: $where ) { id }\n }\n`\n\nconst BALANCE_REGION_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasDistributorStations ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n}`\n\nexport const GET_LIST_BALANCE_REGION = gql`\n query allBalanceRegions($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: BalanceRegionFilter) {\n items: allBalanceRegions(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${BALANCE_REGION_TEMPLATE}\n total: _allBalanceRegionsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_BALANCE_REGIONS = gql`\n query allBalanceRegions($filter: BalanceRegionFilter) {\n items: allBalanceRegions(filter: $filter) ${BALANCE_REGION_TEMPLATE}\n total: _allBalanceRegionsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_BALANCE_REGION = gql`\n query BalanceRegion( $where: BalanceRegionWhereUniqueInput! ) {\n data: BalanceRegion( where: $where ) ${BALANCE_REGION_TEMPLATE}\n }\n`\n\nexport const UPDATE_BALANCE_REGION = gql`\n mutation updateBalanceRegion( $where: BalanceRegionWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasDistributorStations: [GasDistributorStationWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateBalanceRegion( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasDistributorStations: $gasDistributorStations, reports: $reports ) ${BALANCE_REGION_TEMPLATE}\n }\n`\n\nexport const DELETE_BALANCE_REGION = gql`\n mutation deleteBalanceRegion( $where: BalanceRegionWhereUniqueInput! ) {\n data: deleteBalanceRegion( where: $where ) { id }\n }\n`\n\nconst GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasMeterPads ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n addrManual\n}`\n\nexport const GET_LIST_GAS_DISTRIBUTOR_ORGANIZATION = gql`\n query allGasDistributorOrganizations($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasDistributorOrganizationFilter) {\n items: allGasDistributorOrganizations(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE}\n total: _allGasDistributorOrganizationsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_DISTRIBUTOR_ORGANIZATIONS = gql`\n query allGasDistributorOrganizations($filter: GasDistributorOrganizationFilter) {\n items: allGasDistributorOrganizations(filter: $filter) ${GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE}\n total: _allGasDistributorOrganizationsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_DISTRIBUTOR_ORGANIZATION = gql`\n query GasDistributorOrganization( $where: GasDistributorOrganizationWhereUniqueInput! ) {\n data: GasDistributorOrganization( where: $where ) ${GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_DISTRIBUTOR_ORGANIZATION = gql`\n mutation updateGasDistributorOrganization( $where: GasDistributorOrganizationWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasMeterPads: [GasMeterPadWhereUniqueInput!], $reports: [ReportWhereUniqueInput!], $addrManual: String ) {\n data: updateGasDistributorOrganization( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasMeterPads: $gasMeterPads, reports: $reports, addrManual: $addrManual ) ${GAS_DISTRIBUTOR_ORGANIZATION_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_DISTRIBUTOR_ORGANIZATION = gql`\n mutation deleteGasDistributorOrganization( $where: GasDistributorOrganizationWhereUniqueInput! ) {\n data: deleteGasDistributorOrganization( where: $where ) { id }\n }\n`\n\nconst GAS_DISTRIBUTOR_STATION_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n balanceRegion ${EMBEDDED_ASKUG_TYPE}\n gasDistributorStationOutputs ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n}`\n\nexport const GET_LIST_GAS_DISTRIBUTOR_STATION = gql`\n query allGasDistributorStations($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasDistributorStationFilter) {\n items: allGasDistributorStations(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_DISTRIBUTOR_STATION_TEMPLATE}\n total: _allGasDistributorStationsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_DISTRIBUTOR_STATIONS = gql`\n query allGasDistributorStations($filter: GasDistributorStationFilter) {\n items: allGasDistributorStations(filter: $filter) ${GAS_DISTRIBUTOR_STATION_TEMPLATE}\n total: _allGasDistributorStationsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_DISTRIBUTOR_STATION = gql`\n query GasDistributorStation( $where: GasDistributorStationWhereUniqueInput! ) {\n data: GasDistributorStation( where: $where ) ${GAS_DISTRIBUTOR_STATION_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_DISTRIBUTOR_STATION = gql`\n mutation updateGasDistributorStation( $where: GasDistributorStationWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $balanceRegion: BalanceRegionWhereUniqueInput, $gasDistributorStationOutputs: [GasDistributorStationOutputWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasDistributorStation( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, balanceRegion: $balanceRegion, gasDistributorStationOutputs: $gasDistributorStationOutputs, reports: $reports ) ${GAS_DISTRIBUTOR_STATION_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_DISTRIBUTOR_STATION = gql`\n mutation deleteGasDistributorStation( $where: GasDistributorStationWhereUniqueInput! ) {\n data: deleteGasDistributorStation( where: $where ) { id }\n }\n`\n\nconst GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasDistributorStation ${EMBEDDED_ASKUG_TYPE}\n gasMeterPads ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n}`\n\nexport const GET_LIST_GAS_DISTRIBUTOR_STATION_OUTPUT = gql`\n query allGasDistributorStationOutputs($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasDistributorStationOutputFilter) {\n items: allGasDistributorStationOutputs(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE}\n total: _allGasDistributorStationOutputsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_DISTRIBUTOR_STATION_OUTPUTS = gql`\n query allGasDistributorStationOutputs($filter: GasDistributorStationOutputFilter) {\n items: allGasDistributorStationOutputs(filter: $filter) ${GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE}\n total: _allGasDistributorStationOutputsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_DISTRIBUTOR_STATION_OUTPUT = gql`\n query GasDistributorStationOutput( $where: GasDistributorStationOutputWhereUniqueInput! ) {\n data: GasDistributorStationOutput( where: $where ) ${GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_DISTRIBUTOR_STATION_OUTPUT = gql`\n mutation updateGasDistributorStationOutput( $where: GasDistributorStationOutputWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasDistributorStation: GasDistributorStationWhereUniqueInput, $gasMeterPads: [GasMeterPadWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasDistributorStationOutput( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasDistributorStation: $gasDistributorStation, gasMeterPads: $gasMeterPads, reports: $reports ) ${GAS_DISTRIBUTOR_STATION_OUTPUT_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_DISTRIBUTOR_STATION_OUTPUT = gql`\n mutation deleteGasDistributorStationOutput( $where: GasDistributorStationOutputWhereUniqueInput! ) {\n data: deleteGasDistributorStationOutput( where: $where ) { id }\n }\n`\n\nconst GAS_CONSUMER_TEMPLATE_LIST = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasMeterPads ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n addrManual\n}`\n\nconst GAS_CONSUMER_TEMPLATE_ONE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasMeterPads ${EMBEDDED_ASKUG_TYPE}\n ownershipGasMeterPads {gasMeterPad {id name description aisId tags ${EMBEDDED_TAG_TYPE}} dateFrom dateTo}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n addrManual\n}`\n\nexport const GET_LIST_GAS_CONSUMER = gql`\n query allGasConsumers($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasConsumerFilter) {\n items: allGasConsumers(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_CONSUMER_TEMPLATE_LIST}\n total: _allGasConsumersMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_CONSUMERS = gql`\n query allGasConsumers($filter: GasConsumerFilter) {\n items: allGasConsumers(filter: $filter) ${GAS_CONSUMER_TEMPLATE_LIST}\n total: _allGasConsumersMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_CONSUMER = gql`\n query GasConsumer( $where: GasConsumerWhereUniqueInput! ) {\n data: GasConsumer( where: $where ) ${GAS_CONSUMER_TEMPLATE_ONE}\n }\n`\n\nexport const UPDATE_GAS_CONSUMER = gql`\n mutation updateGasConsumer( $where: GasConsumerWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasMeterPads: [GasMeterPadWhereUniqueInput!], $addrManual: String, $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasConsumer( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasMeterPads: $gasMeterPads, addrManual: $addrManual, reports: $reports ) ${GAS_CONSUMER_TEMPLATE_ONE}\n }\n`\n\nexport const DELETE_GAS_CONSUMER = gql`\n mutation deleteGasConsumer( $where: GasConsumerWhereUniqueInput! ) {\n data: deleteGasConsumer( where: $where ) { id }\n }\n`\n\nexport const GAS_METER_PAD_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasDistrict ${EMBEDDED_ASKUG_TYPE}\n gasConsumer ${EMBEDDED_ASKUG_TYPE}\n gasDistributorOrganization ${EMBEDDED_ASKUG_TYPE}\n gasDistributorStationOutput ${EMBEDDED_ASKUG_TYPE}\n gasMeterUnits ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n addrManual\n disabled\n isProvider\n isGasQualityCertificateWritable\n disabledPeriods {\n id\n dateFrom\n dateTo\n description\n }\n}`\n\nexport const GET_LIST_GAS_METER_PAD = gql`\n query allGasMeterPads($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasMeterPadFilter) {\n items: allGasMeterPads(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_METER_PAD_TEMPLATE}\n total: _allGasMeterPadsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_METER_PADS = gql`\n query allGasMeterPads($filter: GasMeterPadFilter) {\n items: allGasMeterPads(filter: $filter) ${GAS_METER_PAD_TEMPLATE}\n total: _allGasMeterPadsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_METER_PAD = gql`\n query GasMeterPad( $where: GasMeterPadWhereUniqueInput! ) {\n data: GasMeterPad( where: $where ) {\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gasDistrict ${EMBEDDED_ASKUG_TYPE}\n gasConsumer ${EMBEDDED_ASKUG_TYPE}\n gasDistributorOrganization ${EMBEDDED_ASKUG_TYPE}\n gasDistributorStationOutput {\n id\n name\n description\n aisId\n gasDistributorStation ${EMBEDDED_ASKUG_TYPE}\n }\n gasMeterUnits ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n addrManual\n disabled\n isProvider\n isGasQualityCertificateWritable\n disabledPeriods {\n id\n dateFrom\n dateTo\n description\n }\n }\n }\n`\n\nexport const UPDATE_GAS_METER_PAD = gql`\n mutation updateGasMeterPad( $where: GasMeterPadWhereUniqueInput!, $name: String, $description: String, $aisId: String, $tags: [TagWhereUniqueInput!], $gasConsumer: GasConsumerWhereUniqueInput, $gasDistrict: GasDistrictWhereUniqueInput, $gasDistributorOrganization: GasDistributorOrganizationWhereUniqueInput, $gasDistributorStationOutput: GasDistributorStationOutputWhereUniqueInput, $gasMeterUnits: [GasMeterUnitWhereUniqueInput!], $addrManual: String, $reports: [ReportWhereUniqueInput!], $disabledPeriods: [DisabledPeriodInput!], $disabled: Boolean, $isProvider: Boolean ) {\n data: updateGasMeterPad( where: $where, name: $name, description: $description, aisId: $aisId, tags: $tags, gasConsumer: $gasConsumer, gasDistrict: $gasDistrict, gasDistributorOrganization: $gasDistributorOrganization, gasDistributorStationOutput: $gasDistributorStationOutput, gasMeterUnits: $gasMeterUnits, addrManual: $addrManual, reports: $reports, disabledPeriods: $disabledPeriods, disabled: $disabled, isProvider: $isProvider ) ${GAS_METER_PAD_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_METER_PAD = gql`\n mutation deleteGasMeterPad( $where: GasMeterPadWhereUniqueInput! ) {\n data: deleteGasMeterPad( where: $where ) { id }\n }\n`\n\nconst GAS_METER_UNIT_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n tags ${EMBEDDED_TAG_TYPE}\n inventoryNumber\n aisId\n gasMeterPad ${EMBEDDED_ASKUG_TYPE}\n gasMeterPoints ${EMBEDDED_ASKUG_TYPE}\n dashboards ${EMBEDDED_DASHBOARD_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n gasMeter { \n id \n dbId\n port\n serialNumber\n type\n commercialHour\n }\n controller {\n id\n url\n serialNumber\n type\n phoneNumber\n }\n enableWriteGasQualityCertificate\n fixedAsset\n linkToir\n}`\n\nexport const GET_LIST_GAS_METER_UNIT = gql`\n query allGasMeterUnits($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasMeterUnitFilter) {\n items: allGasMeterUnits(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_METER_UNIT_TEMPLATE}\n total: _allGasMeterUnitsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_METER_UNITS = gql`\n query allGasMeterUnits($filter: GasMeterUnitFilter) {\n items: allGasMeterUnits(filter: $filter) ${GAS_METER_UNIT_TEMPLATE}\n total: _allGasMeterUnitsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_METER_UNIT = gql`\n query GasMeterUnit( $where: GasMeterUnitWhereUniqueInput! ) {\n data: GasMeterUnit( where: $where ) {\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n tags ${EMBEDDED_TAG_TYPE}\n inventoryNumber\n aisId\n gasMeterPad ${EMBEDDED_ASKUG_TYPE}\n gasMeterPoints ${EMBEDDED_ASKUG_TYPE}\n dashboards ${EMBEDDED_DASHBOARD_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n gasMeter { \n id \n dbId\n port\n type\n commercialHour\n configuration {\n id\n ns \n scadaSet\n }\n }\n controller {\n id\n url\n type\n phoneNumber\n }\n enableWriteGasQualityCertificate\n fixedAsset\n linkToir\n }\n }\n`\n\nexport const UPDATE_GAS_METER_UNIT = gql`\n mutation updateGasMeterUnit( $where: GasMeterUnitWhereUniqueInput!, $name: String, $description: String, $inventoryNumber: String, $tags: [TagWhereUniqueInput!], $aisId: String, $gasMeterPad: GasMeterPadWhereUniqueInput, $gasMeterPoints: [GasMeterPointWhereUniqueInput!], $dashboards: [DashboardWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] $enableWriteGasQualityCertificate: Boolean, $fixedAsset: String, $linkToir: String ) {\n data: updateGasMeterUnit( where: $where, name: $name, description: $description, inventoryNumber: $inventoryNumber tags: $tags, aisId: $aisId, gasMeterPad: $gasMeterPad, gasMeterPoints: $gasMeterPoints, dashboards: $dashboards, reports: $reports, enableWriteGasQualityCertificate: $enableWriteGasQualityCertificate, fixedAsset: $fixedAsset, linkToir: $linkToir ) ${GAS_METER_UNIT_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_METER_UNIT = gql`\n mutation deleteGasMeterUnit( $where: GasMeterUnitWhereUniqueInput! ) {\n data: deleteGasMeterUnit( where: $where ) { id }\n }\n`\n\nconst GAS_METER_POINT_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n tags ${EMBEDDED_TAG_TYPE}\n aisId\n gasMeterUnit ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n number\n disabled\n}`\n\nexport const GET_ONE_GAS_METER_POINT = gql`\n query GasMeterPoint( $where: GasMeterPointWhereUniqueInput! ) {\n data: GasMeterPoint( where: $where ) ${GAS_METER_POINT_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_METER_POINT = gql`\n mutation updateGasMeterPoint( $where: GasMeterPointWhereUniqueInput!, $name: String, $description: String, $aisId: String, $number: Int, $disabled: Boolean, $gasMeterUnit: GasMeterUnitWhereUniqueInput, $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasMeterPoint( where: $where, name: $name, description: $description, number: $number, disabled: $disabled, aisId: $aisId gasMeterUnit: $gasMeterUnit, reports: $reports ) ${GAS_METER_POINT_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_METER_POINT = gql`\n mutation deleteGasMeterPoint( $where: GasMeterPointWhereUniqueInput! ) {\n data: deleteGasMeterPoint( where: $where ) { id }\n }\n`\n\nconst GAS_METER_TEMPLATE = `{\n id\n name\n description\n}`\n\nexport const GET_LIST_GAS_METER = gql`\n query allGasMeters($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasMeterFilter) {\n items: allGasMeters(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_METER_TEMPLATE}\n total: _allGasMetersMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_METERS = gql`\n query allGasMeters($filter: GasMeterFilter) {\n items: allGasMeters(filter: $filter) ${GAS_METER_TEMPLATE}\n total: _allGasMetersMeta(filter: $filter) { count }\n }\n`\n\nconst GAS_QUALITY_SERTIFICATE_TEMPLATE = `{\n id\n name \n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n gqsId\n n2\n co2\n density\n validFrom\n validTo\n gasExtractionPoint\n gasDistributorStations ${EMBEDDED_ASKUG_TYPE}\n reports ${EMBEDDED_REPORT_TYPE}\n tags ${EMBEDDED_TAG_TYPE}\n writtenAt\n}`\n\nexport const GET_LIST_GAS_QUALITY_SERTIFICATE = gql`\n query allGasQualityCertificates($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasQualityCertificateFilter) {\n items: allGasQualityCertificates(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_QUALITY_SERTIFICATE_TEMPLATE}\n total: _allGasQualityCertificatesMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_QUALITY_SERTIFICATES = gql`\n query allGasQualityCertificates($filter: GasQualityCertificateFilter) {\n items: allGasQualityCertificates(filter: $filter) ${GAS_QUALITY_SERTIFICATE_TEMPLATE}\n total: _allGasQualityCertificatesMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_GAS_QUALITY_SERTIFICATE = gql`\n query GasQualityCertificate( $where: GasQualityCertificateWhereUniqueInput! ) {\n data: GasQualityCertificate( where: $where ) ${GAS_QUALITY_SERTIFICATE_TEMPLATE}\n }\n`\n\nexport const UPDATE_GAS_QUALITY_SERTIFICATE = gql`\n mutation updateGasQualityCertificate( $where: GasQualityCertificateWhereUniqueInput!, $name: String, $description: String, $gqsId: String, $n2: Float, $co2: Float, $density: Float, $validFrom: DateTime, $validTo: DateTime, $gasExtractionPoint: String, $gasDistributorStations: [GasDistributorStationWhereUniqueInput!], $tags: [TagWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] ) {\n data: updateGasQualityCertificate( where: $where, name: $name, description: $description, gqsId: $gqsId, n2: $n2, co2: $co2, density: $density, validFrom: $validFrom, validTo: $validTo, gasExtractionPoint: $gasExtractionPoint, gasDistributorStations: $gasDistributorStations, tags: $tags, reports: $reports ) ${GAS_QUALITY_SERTIFICATE_TEMPLATE}\n }\n`\n\nexport const DELETE_GAS_QUALITY_SERTIFICATE = gql`\n mutation deleteGasQualityCertificate( $where: GasQualityCertificateWhereUniqueInput! ) {\n data: deleteGasQualityCertificate( where: $where ) { id }\n }\n`\n\nconst COUNTERPARTY_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n type\n inn\n kpp\n okpo\n ogrn\n fio\n passport\n passdateissue\n parentId\n addressLegal\n addressActual\n addressPostal\n phone\n phoneMobile\n email\n users ${EMBEDDED_USER_TYPE}\n accessResource\n access {id resource}\n}`\n\nexport const GET_LIST_COUNTERPARTY = gql`\n query allCounterparties($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: CounterpartyFilter) {\n items: allCounterparties(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${COUNTERPARTY_TEMPLATE}\n total: _allCounterpartiesMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_COUNTERPARTIES = gql`\n query allCounterparties($filter: CounterpartyFilter) {\n items: allCounterparties(filter: $filter) ${COUNTERPARTY_TEMPLATE}\n total: _allCounterpartiesMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_COUNTERPARTY = gql`\n query Counterparty( $where: CounterpartyWhereUniqueInput! ) {\n data: Counterparty( where: $where ) ${COUNTERPARTY_TEMPLATE}\n }\n`\n\nexport const UPDATE_COUNTERPARTY = gql`\n mutation updateCounterparty( $where: CounterpartyWhereUniqueInput!, $name: String, $description: String, $inn: String, $type: CounterpartyType, $kpp: String, $okpo: String, $ogrn: String, $fio: String, $passport: String, $passdateissue: DateTime, $parentId: ID, $addressLegal: String, $addressActual: String, $addressPostal: String, $phone: String, $phoneMobile: String, $email: String, $users: [UserWhereUniqueInput!], $accessResource: AccessResource, $access: [AccessInput!] ) {\n data: updateCounterparty( where: $where, name: $name, description: $description, inn: $inn, type: $type, kpp: $kpp, okpo: $okpo, ogrn: $ogrn, fio: $fio, passport: $passport, passdateissue: $passdateissue, parentId: $parentId, addressLegal: $addressLegal, addressActual: $addressActual, addressPostal: $addressPostal, phone: $phone, phoneMobile: $phoneMobile, email: $email, users: $users, accessResource: $accessResource, access: $access ) ${COUNTERPARTY_TEMPLATE}\n }\n`\n\nexport const DELETE_COUNTERPARTY = gql`\n mutation deleteCounterparty( $where: CounterpartyWhereUniqueInput! ) {\n data: deleteCounterparty( where: $where ) { id }\n }\n`\n\nconst USER_TEMPLATE = `{\n id\n name\n description\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n updatedAt\n deleted\n authId\n banned\n login\n lastLogin\n email\n phone\n phoneContact\n role\n online\n counterparty ${EMBEDDED_SIMPLE_TYPE}\n position\n accessResource\n access {id resource}\n}`\n\nexport const GET_LIST_USER = gql`\n query allUsers($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: UserFilter) {\n items: allUsers(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${USER_TEMPLATE}\n total: _allUsersMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_USERS = gql`\n query allUsers($filter: UserFilter) {\n items: allUsers(filter: $filter) ${USER_TEMPLATE}\n total: _allUsersMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_USER = gql`\n query User( $where: UserWhereUniqueInput! ) {\n data: User( where: $where ) ${USER_TEMPLATE}\n }\n`\n\nexport const UPDATE_USER = gql`\n mutation updateUser( $where: UserWhereUniqueInput!, $name: String, $description: String, $authId: ID, $banned: Boolean, $login: String, $email: String, $phone: String, $phoneContact: String, $role: UserRole, $counterparty: CounterpartyWhereUniqueInput, $position: String, $accessResource: AccessResource, $access: [AccessInput!] ) {\n data: updateUser( where: $where, name: $name, description: $description, authId: $authId, banned: $banned, login: $login, email: $email, phone: $phone, phoneContact: $phoneContact, role: $role, counterparty: $counterparty, position: $position, accessResource: $accessResource, access: $access) ${USER_TEMPLATE}\n }\n`\n\nexport const DELETE_USER = gql`\n mutation deleteUser( $where: UserWhereUniqueInput! ) {\n data: deleteUser( where: $where ) { id }\n }\n`\n\nexport const UPDATE_PROFILE = gql`\n mutation updateProfile( $where: UserWhereUniqueInput!, $name: String, $description: String, $authId: ID, $login: String, $email: String, $phone: String, $phoneContact: String, $role: UserRole, $position: String) {\n data: updateProfile( where: $where, name: $name, description: $description, authId: $authId, login: $login, email: $email, phone: $phone, phoneContact: $phoneContact, role: $role, position: $position) ${USER_TEMPLATE}\n }\n`\n\nconst HISTORY_TEMPLATE = `{\n id\n resource\n item\n name\n description\n action\n data\n createdAt\n createdBy ${EMBEDDED_USER_TYPE}\n}`\n\nexport const GET_LIST_HISTORY = gql`\n query allHistories($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: HistoryFilter) {\n items: allHistories(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${HISTORY_TEMPLATE}\n total: _allHistoriesMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_HISTORIES = gql`\n query allHistories($filter: HistoryFilter) {\n items: allHistories(filter: $filter) ${HISTORY_TEMPLATE}\n total: _allHistoriesMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_HISTORY = gql`\n query History( $id: ID! ) {\n data: History( id: $id ) ${HISTORY_TEMPLATE}\n }\n`\n\nconst TRASHITEM_TEMPLATE = `{\n id\n resource\n item\n name\n description\n deletedAt\n deletedBy ${EMBEDDED_USER_TYPE}\n}`\n\nexport const GET_LIST_TRASHITEM = gql`\n query allTrashItems($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: TrashItemFilter) {\n items: allTrashItems(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${TRASHITEM_TEMPLATE}\n total: _allTrashItemsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_TRASHITEMS = gql`\n query allTrashItems($filter: TrashItemFilter) {\n items: allTrashItems(filter: $filter) ${TRASHITEM_TEMPLATE}\n total: _allTrashItemsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_ONE_TRASHITEM = gql`\n query TrashItem( $id: ID! ) {\n data: TrashItem( id: $id ) ${TRASHITEM_TEMPLATE}\n }\n`\n\nconst CONTROLLER_CONFIGURATION_TEMPLATE = `{\n id\n name\n description\n type\n mode\n status\n metaTemplate\n}`\n\nexport const GET_LIST_CONTROLLER_CONFIGURATION = gql`\n query allControllerConfigurations($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: ControllerConfigurationFilter) {\n items: allControllerConfigurations(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${CONTROLLER_CONFIGURATION_TEMPLATE}\n total: _allControllerConfigurationsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_CONTROLLER_CONFIGURATIONS = gql`\n query allControllerConfigurations($filter: ControllerConfigurationFilter) {\n items: allControllerConfigurations(filter: $filter) ${CONTROLLER_CONFIGURATION_TEMPLATE}\n total: _allControllerConfigurationsMeta(filter: $filter) { count }\n }\n`\n\nconst GAS_METER_CONFIGURATION_TEMPLATE = `{\n id\n name\n description\n type\n status\n metaTemplate\n}`\n\nexport const GET_LIST_GAS_METER_CONFIGURATION = gql`\n query allGasMeterConfigurations($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: GasMeterConfigurationFilter) {\n items: allGasMeterConfigurations(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) ${GAS_METER_CONFIGURATION_TEMPLATE}\n total: _allGasMeterConfigurationsMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n`\n\nexport const GET_MANY_GAS_METER_CONFIGURATIONS = gql`\n query allGasMeterConfigurations($filter: GasMeterConfigurationFilter) {\n items: allGasMeterConfigurations(filter: $filter) ${GAS_METER_CONFIGURATION_TEMPLATE}\n total: _allGasMeterConfigurationsMeta(filter: $filter) { count }\n }\n`\n\nexport const GET_PREFERENCES = gql`\n query getPreferences($key: String!) {\n preferences: getPreferences(key: $key) {\n id\n key\n value\n }\n }\n`\n\nexport const SET_PREFERENCES = gql`\n mutation setPreferences($key: String!, $value: Json) {\n preferences: setPreferences(key: $key, value: $value) {\n id\n key\n value\n }\n }\n`\n\nexport const GET_ENUMS = gql`\n query getEnums($name: String!) {\n data: __type(name: $name) {\n name\n enumValues{\n name\n description\n } \n }\n }\n`","import React, { useState, useEffect, useCallback } from 'react';\nimport moment from 'moment'\nimport gql from 'graphql-tag';\nimport { useDispatch } from 'react-redux';\nimport { Form } from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Typography from '@material-ui/core/Typography';\nimport SaveIcon from '@material-ui/icons/Save';\nimport { useDataProvider, useNotify, useRefresh, Button as RaButton, useUnselectAll, sanitizeEmptyValues, fetchStart, fetchEnd, } from 'react-admin';\nimport DisabledPeriodsArrayInput from './GasMeterPadDisabledPeriodsArrayInput';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\nimport intersectionBy from 'lodash/intersectionBy'\nimport { groupBy } from 'lodash';\nimport updateManyDisabledPeriods from \"../../dataProvider/Core/updateManyDisabledPeriods\";\n\n\nconst GAS_METER_PAD_TEMPLATE = `{\n id\n disabled\n disabledPeriods {\n id\n dateFrom\n dateTo\n description\n }\n}`\n\nexport const GET_MANY_GAS_METER_PADS = gql`\n query allGasMeterPads($filter: GasMeterPadFilter) {\n items: allGasMeterPads(filter: $filter) ${GAS_METER_PAD_TEMPLATE}\n }\n`\n\n\n\nconst useStyles = makeStyles(theme => ({\n mt3: { marginTop: 16 },\n}));\n\nconst defaultSubscription = {\n submitting: true,\n pristine: true,\n valid: true,\n invalid: true,\n};\n\nconst GasMeterPadBulkUpdateDisabledPeriodsButton = ({ selectedIds, basePath, record, resource, className, redirect: redirectTo, ...props }) => {\n const refresh = useRefresh();\n const notify = useNotify();\n const unselectAll = useUnselectAll();\n const dispatch = useDispatch(); \n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const [gasMeterPads, setGasMeterPads] = useState([]);\n const [intersectionDisabledPeriods, setIntersectionDisabledPeriods] = useState([]);\n const dataProvider = useDataProvider();\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n dispatch(fetchStart());\n apolloCoreClient.query({\n query: GET_MANY_GAS_METER_PADS,\n variables: { \n filter: {\n id_in: selectedIds\n }\n }\n })\n .then(result => { \n\n const gasMeterPads = result.data.items;\n const gasMeterPadsWithIndexedDisabledPeriods = gasMeterPads.map(gasMeterPad => {\n const indexedDisabledPeriods = gasMeterPad.disabledPeriods.map(period => {\n\n return {\n ...period,\n index: `${period.dateFrom}-${period.dateTo}`\n }\n }) \n\n return {\n ...gasMeterPad,\n disabledPeriods: indexedDisabledPeriods,\n }\n\n });\n\n const gasMeterPadsDisabledPeriods = gasMeterPadsWithIndexedDisabledPeriods.map(gasMeterPad => gasMeterPad.disabledPeriods)\n const intersectionDisabledPeriods = intersectionBy.apply(null, [...gasMeterPadsDisabledPeriods, \"index\"])\n \n setIntersectionDisabledPeriods(intersectionDisabledPeriods);\n setGasMeterPads(gasMeterPadsWithIndexedDisabledPeriods);\n })\n .catch((error) => {\n notify( typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning' );\n })\n .finally(() => {\n dispatch(fetchEnd());\n });\n },\n [selectedIds, dispatch]\n );\n\n\n const handleClose = () => {\n setOpen(false);\n setGasMeterPads([])\n setIntersectionDisabledPeriods([])\n };\n\n const handleUpdateMany = (indexedDisablePeriods, newDisablePeriods) => Promise.all(gasMeterPads.map( pad => {\n const prevDisablePeriods = pad.disabledPeriods;\n const resultDisabledPeriods = [\n ...newDisablePeriods,\n ...prevDisablePeriods.map( period => {\n const target = indexedDisablePeriods.find(indexedPeriod => indexedPeriod.index === `${period.dateFrom}-${period.dateTo}`)\n const result = target ? target : !intersectionDisabledPeriods.some( intersectioned => intersectioned.index === `${period.dateFrom}-${period.dateTo}`) && period\n return result ? {\n dateFrom: result.dateFrom,\n dateTo: result.dateTo,\n description: result.description,\n id: result.id\n } : null;\n }).filter(el => el)\n ];\n return dataProvider.update('GasMeterPad', {\n id: pad.id,\n data: {\n disabledPeriods: resultDisabledPeriods\n },\n });\n }))\n\n\n .then( result => {\n const data = result.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n notify('ra.notification.updated', 'info', { smart_count: data.length})\n return { data };\n })\n .catch( error => {\n notify(error)\n });\n\n const handleUpdateManyInOneRequest = (indexedDisablePeriods, newDisablePeriods) => {\n const pads = gasMeterPads.map(pad => {\n const prevDisablePeriods = pad.disabledPeriods;\n const resultDisabledPeriods = [\n ...newDisablePeriods,\n ...prevDisablePeriods.map(period => {\n const target = indexedDisablePeriods.find(indexedPeriod => indexedPeriod.index === `${period.dateFrom}-${period.dateTo}`)\n const result = target ? target : !intersectionDisabledPeriods.some(intersectioned => intersectioned.index === `${period.dateFrom}-${period.dateTo}`) && period\n return result ? {\n dateFrom: result.dateFrom,\n dateTo: result.dateTo,\n description: result.description,\n id: result.id\n } : null;\n }).filter(el => el)\n ];\n return ({\n id: pad.id,\n data: {\n disabledPeriods: resultDisabledPeriods\n }\n });\n });\n return updateManyDisabledPeriods(pads).then( result => {\n\n const data = Object.values(result.data).map(el => el.id)\n notify('ra.notification.updated', 'info', { smart_count: data.length})\n return { data };\n })\n .catch( error => {\n notify(error)\n });\n }\n \n const handleSubmit = values => {\n\n\n const indexedDisablePeriods = values.disabledPeriods.filter(p => p.index)\n const newDisablePeriods = values.disabledPeriods.filter(p => !p.index)\n\n dispatch(fetchStart())\n\n // handleUpdateMany(indexedDisablePeriods, newDisablePeriods)\n handleUpdateManyInOneRequest(indexedDisablePeriods, newDisablePeriods)\n .finally(()=> dispatch(fetchEnd()));\n\n setOpen(false);\n setGasMeterPads([])\n setIntersectionDisabledPeriods([])\n };\n\n\n \n \n\n\n\n\n return (\n <>\n \n \n \n \n Обновление периодов отключения площадок\n \n \n Текущие периоды отключения обновятся на установленные для выбранных площадок\n \n \n ({\n dateFrom: period.dateFrom,\n dateTo: period.dateTo,\n description: \"\",\n index: period.index,\n })) }}\n onSubmit={handleSubmit}\n mutators={{ ...arrayMutators }}\n subscription={defaultSubscription}\n // key={version} // support for refresh button\n keepDirtyOnReinitialize\n render={formProps => (\n
\n \n \n \n \n \n \n \n
\n )}\n />\n
\n );\n};\n\nexport default GasMeterPadBulkUpdateDisabledPeriodsButton;","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\nimport {GAS_METER_PAD_TEMPLATE} from \"./typeDefs\";\n\n\n\nexport default (pads) => {\n\n return apolloCoreClient.mutate({\n mutation: gql`\n mutation updateManyDisabledPeriods{\n ${ pads.map((pad, index) => {\n return `\n data${index}: updateGasMeterPad(where: { id: \"${pad.id}\"}, disabledPeriods: [${pad.data.disabledPeriods.map(period => {\n return `{ dateFrom: \"${period.dateFrom}\", dateTo: ${period.dateTo ? '\"' + period.dateTo + '\"' : null}, description: ${period.description ? '\"' + period.description + '\"' : null} }`})}]) ${GAS_METER_PAD_TEMPLATE}`\n }).join(', ')}\n }\n `,\n variables: { },\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import React, { Fragment } from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateDisabledPeriodsButton from './GasMeterPadBulkUpdateDisabledPeriodsButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasMeterPadBulkActionButtons = props => (\n \n \n {can('update', 'GasMeterPad', 'tags', 'Tag') && }\n {can('getList', 'GasMeterPad') && }\n {can('remove', 'GasMeterPad') && }\n \n);\n\n\n\nexport default GasMeterPadBulkActionButtons;","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasMeterPadExporter from './useGasMeterPadExporter';\nimport GasMeterPadFilter from './GasMeterPadFilter';\nimport GasMeterPadBulkActionButtons from './GasMeterPadBulkActionButtons';\nimport GasMeterPadDatagrid, { useDefaultDatagridColumns } from './GasMeterPadDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst GasMeterPadList = (props) => {\n const exporter = useGasMeterPadExporter()\n const manualSubmitForm = React.useRef(null)\n const columns = useDefaultDatagridColumns(props)\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n );\n};\n\nGasMeterPadList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasMeterPadList;","import React from 'react';\nimport { FunctionComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport TextField, { TextFieldProps } from '@material-ui/core/TextField';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useInput, useTranslate, FieldTitle, InputProps } from 'ra-core';\n\nimport sanitizeRestProps from './sanitizeRestProps';\nimport { InputHelperText } from 'react-admin';\n\nconst useStyles = makeStyles(theme => ({\n input: {},\n}),\n { name: 'RaNullableBooleanInput' }\n);\n\nconst getBooleanFromString = (value) => {\n if (value === 'true') return true;\n if (value === 'false') return false;\n return null;\n};\n\nconst getStringFromBoolean = (value) => {\n if (value === true) return 'true';\n if (value === false) return 'false';\n return '';\n};\n\nconst NullableBooleanInput = props => {\n const {\n className,\n classes: classesOverride,\n format = getStringFromBoolean,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onChange,\n onFocus,\n options,\n displayNull,\n parse = getBooleanFromString,\n resource,\n source,\n validate,\n variant = 'filled',\n defaultValue,\n ...rest\n } = props;\n const classes = useStyles(props);\n const translate = useTranslate();\n\n const {\n id,\n input,\n isRequired,\n meta: { error, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n parse,\n resource,\n source,\n validate,\n initialValue: defaultValue,\n });\n\n const enhancedOptions = displayNull\n ? {\n ...options,\n SelectProps: {\n displayEmpty: true,\n ...(options && options.SelectProps),\n },\n InputLabelProps: {\n shrink: true,\n ...(options && options.InputLabelProps),\n },\n }\n : options;\n\n return (\n \n }\n error={!!(touched && error)}\n helperText={\n \n }\n className={classnames(classes.input, className)}\n variant={variant}\n {...enhancedOptions}\n {...sanitizeRestProps(rest)}\n >\n {displayNull && {translate('ra.boolean.null')}}\n {translate('ra.boolean.false')}\n {translate('ra.boolean.true')}\n
\n );\n};\n\nNullableBooleanInput.propTypes = {\n label: PropTypes.string,\n options: PropTypes.object,\n resource: PropTypes.string,\n source: PropTypes.string,\n};\n\nexport default NullableBooleanInput;\n","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport BooleanInput from '../Inputs/BooleanInput';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport DisabledPeriodsArrayInput from './GasMeterPadDisabledPeriodsArrayInput';\nimport GasDistributorStationOutputSuggestionItem, { gasDistributorStationOutputOptionText } from './GasDistributorStationOutputSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst gasDistributorStationOutputFilterToQuery = searchText => ({ searchWithGDS: searchText });\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// }));\n\nconst GasMeterPadCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasMeterPad', 'name') && }\n {can('create', 'GasMeterPad', 'description') && }\n {can('create', 'GasMeterPad', 'addrManual') && }\n {can('create', 'GasMeterPad', 'aisId') && }\n {can('create', 'GasMeterPad', 'gasDistrict', 'GasDistrict') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterPad', 'gasConsumer', 'GasConsumer') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterPad', 'gasDistributorOrganization', 'GasDistributorOrganization') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterPad', 'gasDistributorStationOutput', 'GasDistributorStationOutput') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterPad', 'gasMeterUnits', 'GasMeterUnit') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterPad', 'disabled') && }\n {can('create', 'GasMeterPad', 'isProvider') && }\n {can('create', 'GasMeterPad', 'disabledPeriods') && }\n {can('create', 'GasMeterPad', 'reports', 'Report') && }\n {can('create', 'GasMeterPad', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasMeterPadCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Chip from '@material-ui/core/Chip';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayEnhancedField from \"../Tag/TagArrayEnhancedField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport GasQualityCertificateWritableChip from '../Fields/GasQualityCertificateWritableChip';\nimport DisabledChip from \"./GasMeterPadDisabledChip\";\nimport ProviderChip from \"./GasMeterPadProviderChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasMeterPadBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n\n return (\n \n
\n \n \n {can('getOne', 'GasMeterPad', 'name') && {name}}\n {can('getOne', 'GasMeterPad', 'description') && {description}}\n {can('getOne', 'GasMeterPad', 'tags', 'Tag') && \n \n \n \n \n }\n \n \n {can('getOne', 'GasMeterPad', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasMeterPadBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, ReferenceInput, ReferenceArrayInput, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport BooleanInput from '../Inputs/BooleanInput';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasMeterPadBanner from './GasMeterPadBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport DisabledPeriodsArrayInput from './GasMeterPadDisabledPeriodsArrayInput';\nimport GasDistributorStationOutputSuggestionItem, { gasDistributorStationOutputOptionText } from './GasDistributorStationOutputSuggestionItem';\nimport { matchTrue } from '../../utils';\n\n\n\nconst gasDistributorStationOutputFilterToQuery = searchText => ({ searchWithGDS: searchText });\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasMeterPadToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasMeterPad') && }\n {can(\"update\", \"GasMeterPad\") && }\n \n {can('remove', 'GasMeterPad') && }\n \n \n );\n}\n\nconst GasMeterPadEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasMeterPad', 'name') && }\n {can('update', 'GasMeterPad', 'description') && }\n {can('update', 'GasMeterPad', 'addrManual') && }\n {can('update', 'GasMeterPad', 'aisId') && }\n {can('update', 'GasMeterPad', 'gasDistrict', 'GasDistrict') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPad', 'gasConsumer', 'GasConsumer') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPad', 'gasDistributorOrganization', 'GasDistributorOrganization') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPad', 'gasDistributorStationOutput', 'GasDistributorStationOutput') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPad', 'gasMeterUnits', 'GasMeterUnit') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPad', 'disabled') && }\n {can('update', 'GasMeterPad', 'isProvider') && }\n {can('update', 'GasMeterPad', 'disabledPeriods') && }\n {can('update', 'GasMeterPad', 'reports', 'Report') && }\n {can('update', 'GasMeterPad', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasMeterPadEdit","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport moment from 'moment'\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n}));\n\nconst GasMeterPadDisabledPeriodChip = ({ className, classes: classesOverride, record, source, resource, ...props}) => {\n const classes = useChipStyles({ classes: classesOverride });\n const label = `${moment(record.dateFrom).format('L')}${record.dateTo ? ` - ${moment(record.dateTo).format('L')}`: ' - не указано'}${record.description ? ` | ${record.description}`: ''}`\n\n return (\n \n );\n};\n\n\n\nexport default GasMeterPadDisabledPeriodChip;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport moment from 'moment'\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n}));\n\nconst GasMeterUnitEnabledWriteChip = ({ className, classes: classesOverride, record, source, resource, onlyDisabled, ...props}) => {\n const classes = useChipStyles({ classes: classesOverride });\n\n if (!record) return null;\n\n const enable = record.enableWriteGasQualityCertificate\n\n if (enable === true && onlyDisabled) return null;\n\n const label = enable ? \"Запись ПГ включена\" : \"Запись ПГ отключена\";\n\n return (\n \n );\n};\n\nexport default GasMeterUnitEnabledWriteChip;","import React, { memo } from \"react\";\nimport get from 'lodash/get';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { red, orange, yellow, green, grey } from '@material-ui/core/colors';\nimport LensIcon from '@material-ui/icons/Lens';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslate } from 'react-admin';\n\n\nexport const statusColors = {\n CRITICAL: {\n light: red[200],\n main: red[600],\n dark: red[900],\n },\n ERROR: {\n light: orange[200],\n main: orange[600],\n dark: orange[900],\n },\n WARNING: {\n light: yellow[200],\n main: yellow[600],\n dark: yellow[900],\n },\n OK: {\n light: green[200],\n main: green[300],\n dark: green[900],\n },\n NOTCHECKED: {\n light: grey[200],\n main: grey[300],\n dark: grey[900],\n }\n}\n\n\n\nconst useStyles = makeStyles(theme => ({\n dot: (props) => ({\n color: get(statusColors, [props.record.status, 'main']),\n })\n}), { name: 'DeviceStatusField' });\n\nconst DeviceStatusField = memo((props) => {\n const { className, resource, source, record = {}, emptyText, labeled, ...rest } = props\n const classes = useStyles(props);\n const translate = useTranslate();\n const status = get(record, source);\n if (!status) return null;\n const label = translate(`resources.${resource}.enums.${source}.${status}`, { _: status })\n\n return labeled\n ? ( {label})\n : (\n \n \n \n );\n});\n\nDeviceStatusField.displayName = 'DeviceStatusField';\n\nDeviceStatusField.defaultProps = {\n addLabel: true,\n};\n\nexport default DeviceStatusField;\n","import React from 'react';\nimport get from 'lodash/get';\nimport moment from 'moment'\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport red from '@material-ui/core/colors/red';\n\n\n\nconst useStyles = makeStyles(theme => ({\n chip: {\n backgroundColor: \"transparent\",\n fontSize: theme.typography.body2.fontSize,\n },\n deprecated: {\n backgroundColor: red[200],\n },\n}));\n\nconst MetricGasMeterDateField = ({ className, emptyText, locales, options, record, showTime = false, source, ...props }) => {\n const classes = useStyles();\n if (!record) return null;\n const value = get(record, source);\n const lastTimeUpdatedAt = moment(value).format('L')\n const isDeprecated = moment().subtract(2, 'days').isAfter(moment(value))\n\n return (\n \n );\n};\n\nexport default MetricGasMeterDateField;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, ReferenceField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport EnabledWriteChip from \"./GasMeterUnitEnabledWriteChip\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport EnumField from '../Fields/EnumField';\nimport DeviceStatusField from './analitics/DeviceStatusField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayEnhancedField from \"../Tag/TagArrayEnhancedField\";\nimport MetricGasMeterDateField from \"./MetricGasMeterDateField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useColumns from '../../controller/preferences/useColumns';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\n\n\n\nexport const useDefaultDatagridColumns = (props) => {\n const classes = useListStyles()\n\n const columns = useColumns([\n \n \n ,\n can('getList', 'GasMeterUnit', 'name') && ,\n can('getList', 'GasMeterUnit', 'aisId') && ,\n can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n \n ,\n \n \n ,\n can('getList', 'GasMeterUnit', 'controller.type') && ,\n can('getList', 'GasMeterUnit', 'gasMeter.type') && ,\n can('getList', 'GasMeterUnit', 'createdAt') && ,\n can('getList', 'GasMeterUnit', 'createdAt') && ,\n ])\n\n return columns\n}\n\nexport const GasMeterUnitReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n \n \n ,\n {can('getList', 'GasMeterUnit', 'name') && }\n {can('getList', 'GasMeterUnit', 'aisId') && }\n {can('getList', 'GasMeterUnit', 'gasMeter.type') && }\n {can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n \n }\n {can('getList', 'GasMeterUnit', 'createdAt') && }\n {can('getList', 'GasMeterUnit', 'createdAt') && }\n \n )\n};\n\nconst GasMeterUnitDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasMeterUnit') && }\n {can('update', 'GasMeterUnit') && }\n {can('remove', 'GasMeterUnit') && }\n \n \n )\n};\n\n\n\nexport default GasMeterUnitDatagrid;","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport GasMeterPadBanner from './GasMeterPadBanner';\nimport GasMeterPadDisabledPeriodChip from './GasMeterPadDisabledPeriodChip';\nimport { GasMeterUnitReferenceDatagrid } from '../GasMeterUnit/GasMeterUnitDatagrid';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedArrayField from '../Fields/NestedArrayField';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst GasMeterPadBreadcrumbs = (props) => {\n return (\n \n \n \n \n \n );\n}\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasMeterPadShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } title={} {...props} >\n \n\n \n {can('getOne', 'GasMeterPad', 'addrManual') && }\n {can('getOne', 'GasMeterPad', 'gasConsumer', 'GasConsumer') && \n \n }\n {can('getOne', 'GasMeterPad', 'gasDistributorOrganization', 'GasDistributorOrganization') && \n \n }\n {can('getOne', 'GasMeterPad', 'gasDistributorStation', 'GasDistributorStation') && \n \n }\n {can('getOne', 'GasMeterPad', 'gasDistributorStationOutput', 'GasDistributorStationOutput') && \n \n }\n {can('getOne', 'GasMeterPad', 'disabledPeriods') && \n \n }\n \n\n {can('getOne', 'GasMeterPad', 'reports', 'Report') && \n \n }\n\n {can('getOne', 'GasMeterPad', 'gasMeterUnits', 'GasMeterUnit') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={25}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasMeterPad', 'aisId') && }\n \n {can('getOne', 'GasMeterPad', 'id') && }\n {can('getOne', 'GasMeterPad', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasMeterPad', 'createdAt') && }\n {can('getOne', 'GasMeterPad', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasMeterPadShow;","import Icon from '../Icons/ValvePad';\nimport GasMeterPadList from './GasMeterPadList';\nimport GasMeterPadCreate from './GasMeterPadCreate';\nimport GasMeterPadEdit from './GasMeterPadEdit';\nimport GasMeterPadShow from './GasMeterPadShow';\n\nconst GasMeterPadIcon = Icon;\n\n\nexport {\n GasMeterPadIcon,\n GasMeterPadList,\n GasMeterPadShow,\n GasMeterPadCreate,\n GasMeterPadEdit,\n};\n","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasMeterPointBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n
\n \n \n {can('getOne', 'GasMeterPoint', 'name') && {name}}\n {can('getOne', 'GasMeterPoint', 'description') && {description}}\n {can('getOne', 'GasMeterPoint', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasMeterPoint', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasMeterPointBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, NumberInput, BooleanInput, ReferenceInput } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport GasMeterPointBanner from './GasMeterPointBanner';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport { can } from \"../../abilityProvider\";\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\n\nconst redirectAfterDelete = (basePath, id, data) => {\n const gasMeterUnitId = data?.gasMeterUnit?.id\n return gasMeterUnitId ? `/GasMeterUnit/${gasMeterUnitId}/show` : '/GasMeterUnit'\n}\n\nconst GasMeterPointToolbar = ({ hasEdit, hasList, ...props }) => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasMeterPoint') && }\n {can(\"update\", \"GasMeterPoint\") && }\n \n {can('remove', 'GasMeterPoint') && }\n \n \n );\n}\n\nconst GasMeterPointEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasMeterPoint', 'name') && }\n {can('update', 'GasMeterPoint', 'description') && }\n {can('update', 'GasMeterPoint', 'aisId') && }\n {can('update', 'GasMeterPoint', 'gasMeterUnit', 'GasMeterUnit') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterPoint', 'number') && }\n {can('update', 'GasMeterPoint', 'disabled') && }\n {can('update', 'GasMeterPoint', 'reports', 'Report') && }\n {can('update', 'GasMeterPoint', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasMeterPointEdit","import React, { memo } from 'react';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslate } from 'ra-core';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n\n\n\nexport const BooleanField = ({ className, classes: classesOverride, emptyText, source, record, valueLabelTrue, valueLabelFalse, ...props }) => {\n const translate = useTranslate();\n if (!record) return null;\n const value = get(record, source);\n const valueText = (value === true)\n ? valueLabelTrue\n : (value === false)\n ? valueLabelFalse\n : emptyText;\n\n return (\n \n {translate(valueText, { _: valueText })}\n \n );\n};\n\nBooleanField.defaultProps = {\n addLabel: true,\n valueLabelTrue: 'ra.boolean.true',\n valueLabelFalse: 'ra.boolean.false',\n};\n\n\nconst Memorized = memo(BooleanField)\n\nMemorized.defaultProps = {\n addLabel: true\n};\n\nexport default Memorized;\n","import React from 'react';\nimport { TextField, DateField, Pagination, ReferenceManyField as RaReferenceManyField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport { Show } from '../Layout/Show';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport NestedGridField from '../Fields/NestedGridField';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport GasMeterPointBanner from './GasMeterPointBanner';\nimport BooleanField from '../Fields/BooleanField';\nimport ReportCard from '../Report/ReportCard';\nimport CardBlankLayout from \"../Layout/CardBlankLayout\";\nimport { can } from \"../../abilityProvider\";\nimport MoreContent from '../Layout/MoreContent';\nimport Separator from '../Layout/Separator';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport NestedField from '../Fields/NestedField';\nimport { dateTimeOptions } from '../../utils';\n\n\n\nconst GasMeterPointBreadcrumbs = (props) => {\n return (\n \n \n \n \n \n \n \n );\n}\n\nconst GasMeterPointShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } title={} {...props} >\n \n\n \n {can('getOne', 'GasMeterPoint', 'number') && }\n {can('getOne', 'GasMeterPoint', 'disabled') && }\n \n\n {can('getOne', 'GasMeterPoint', 'reports', 'Report') && \n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasMeterPoint', 'aisId') && }\n \n {can('getOne') && }\n {can('getOne', 'GasMeterPoint', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasMeterPoint', 'createdAt') && }\n {can('getOne', 'GasMeterPoint', 'createdAt') && }\n \n \n\n { can('getList', 'History') && )} />}\n { can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasMeterPointShow;","import Icon from '@material-ui/icons/History';\nimport GasMeterPointEdit from './GasMeterPointEdit';\nimport GasMeterPointShow from './GasMeterPointShow';\n\nconst GasMeterPointIcon = Icon;\n\n\nexport {\n GasMeterPointIcon,\n GasMeterPointShow,\n GasMeterPointEdit,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import get from 'lodash/get';\nimport jsonExport from 'jsonexport/dist';\nimport { downloadCSV } from 'react-admin';\nimport { useTranslate, useResourceContext } from 'react-admin';\nimport { booleanFormatter, dateFormatter, enumFormatter, parseHeaders, parseHeadesTitles, parseRecord } from '../../exporter';\n\n\nconst getRelatedIds = (records, field) => {\n return Array.from(new Set(records.reduce((acc, record) => {\n const id = get(record, field)\n return id ? [...acc, id] : acc\n }, [])));\n};\n\n\nconst customExporter = (title, model, { translate, ...options }) => (records, fetchRelatedRecords, dataProvider, resource) => {\n\n const headers = parseHeaders(model)\n const rename = parseHeadesTitles(model, translate)\n\n dataProvider\n .getMany('MetricGasMeter', { ids: getRelatedIds(records, \"gasMeter.dbId\") })\n .then(({ data }) => {\n return data.reduce((acc, item) => {\n acc[item.id] = item;\n return acc;\n }, {});\n })\n .then(metricsMap => {\n const data = records.map(record => parseRecord(model, {\n ...record,\n metrics: metricsMap[get(record, \"gasMeter.dbId\")],\n }, translate));\n const BOM = \"\\uFEFF\";\n\n jsonExport(data, {\n rowDelimiter: \";\",\n headers,\n rename,\n ...options,\n }, (err, csv) => {\n downloadCSV(BOM + csv, title);\n });\n });\n\n\n\n};\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n inventoryNumber: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasMeterPad: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterPad\",\n },\n gasMeterPoints: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasMeterPoint\",\n },\n controller: {\n id: true,\n serialNumber: true,\n phoneNumber: true,\n type: enumFormatter,\n url: true,\n __resource: \"Controller\"\n },\n gasMeter: {\n id: true,\n serialNumber: true,\n dbId: true,\n type: enumFormatter,\n __resource: \"GasMeter\"\n },\n metrics: {\n updatedAt: dateFormatter,\n __resource: \"MetricGasMeter\"\n },\n enableWriteGasQualityCertificate: booleanFormatter,\n fixedAsset: true,\n linkToir: true,\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasMeterUnit\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport MaskedInput from 'react-text-mask';\nimport { regex, TextInput } from 'react-admin';\n\n\nconst validateIP = [regex(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/, 'ra.validation.ip_invalid')];\n\nconst IPMaskInput = ({ ...props }) => {\n const { inputRef, ...other } = props;\n const mask = value => Array(value.length).fill(/[\\d.]/);\n const pipe = value => {\n if (value === '.' || value.endsWith('..')) return false;\n\n const parts = value.split('.');\n\n if (\n parts.length > 4 ||\n parts.some(part => part === '00' || part < 0 || part > 255)\n ) {\n return false;\n }\n\n return value;\n };\n\n return (\n { inputRef(ref ? ref.inputElement : null) }}\n // mask={[/[0-2]/,/\\d/, /\\d/, '.', /[0-2]/, /\\d/, /\\d/, '.', /[0-2]/, /\\d/, /\\d/, '.', /[0-2]/, /\\d/, /\\d/]}\n mask={mask}\n pipe={pipe}\n keepCharPositions={true}\n placeholderChar={'\\u2000'}\n guide={false}\n />\n );\n};\n\n\nconst IPInput = (props) => {\n return (\n \n )\n};\n\nexport default IPInput;\n","import { ApolloClient, InMemoryCache, createHttpLink, split } from '@apollo/client';\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { setContext } from '@apollo/client/link/context';\nimport { getMainDefinition } from '@apollo/client/utilities'\nimport { getAccessToken } from '../../authPrivider/getAccessToken';\nimport { URI_ANALITICS, WS_ANALITICS } from '../../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_ANALITICS\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n\n const token = await getAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_ANALITICS,\n options: {\n lazy: true,\n reconnect: true,\n reconnectionAttempts: 3,\n connectionParams: async () => {\n const token = await getAccessToken();\n\n return {\n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nexport default new ApolloClient({\n link,\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n },\n query: {\n fetchPolicy: 'network-only',\n },\n },\n});\n","import React, { cloneElement, useCallback } from 'react';\nimport { useDataProvider, useNotify, useListContext } from 'react-admin';\nimport { Form, FormSpy } from 'react-final-form';\nimport { useField } from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\n\nconst sanitizeInputRestProps = ({\n afterSubmit,\n allowEmpty,\n allowNull,\n alwaysOn,\n basePath,\n beforeSubmit,\n component,\n data,\n defaultValue,\n format,\n formatOnBlur,\n formClassName,\n initialValue,\n initializeForm,\n input,\n isEqual,\n isRequired,\n label,\n limitChoicesToValue,\n locale,\n meta,\n multiple,\n name,\n options,\n optionText,\n optionValue,\n parse,\n record,\n ref,\n render,\n resource,\n source,\n subscription,\n textAlign,\n translate,\n translateChoice,\n type,\n validate,\n validateFields,\n value,\n ...rest\n}) => rest;\n\nconst sanitizeRestProps = ({\n dataStatus = null,\n filter = null,\n filterToQuery = null,\n onChange = null,\n perPage = null,\n reference = null,\n referenceRecord = null,\n referenceSource = null,\n sort = null,\n validation = null,\n ...rest\n}) => sanitizeInputRestProps(rest);\n\nconst handleSubmit = event => {\n event.preventDefault();\n return false;\n};\n\nconst handleFinalFormSubmit = () => { };\n\nconst FormSpySubscription = { values: true };\n\n\nconst DeviceStatusBackReferenceInput = ({\n children,\n source,\n reference,\n target = \"id\",\n ...rest\n}) => {\n const dataProvider = useDataProvider();\n const notify = useNotify();\n const { input: { value } } = useField();\n const { filterValues, setFilters } = useListContext();\n\n\n const handleChange = useCallback(({ values }) => {\n const filterField = children.props.source\n const filterValue = get(values, filterField)\n const referenceFilter = filterValue ? { [filterField]: filterValue } : undefined\n\n const setBackFilter = (referenceFilter) => {\n dataProvider.getManyReference(reference, {\n filter: referenceFilter,\n perPage: 1000\n })\n .then(({ data, total }) => {\n const sourceFilter = set({}, source, data.length ? data.map(item => item[target]) : [0])\n setFilters({\n ...filterValues,\n ...sourceFilter\n })\n\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n }\n\n if (referenceFilter) {\n setBackFilter(referenceFilter)\n }\n\n }, [filterValues]);\n\n return (\n (\n <>\n \n {/* https://www.gitmemory.com/issue/jaredpalmer/formik/826/494517126 */}\n
\n {cloneElement(children, {\n resource: reference,\n ...sanitizeRestProps(rest),\n })}\n
\n \n )}\n />\n );\n};\n\nexport default DeviceStatusBackReferenceInput","import { useEffect, useState } from 'react'\nimport gql from 'graphql-tag'\nimport apolloClient from './apolloClient';\n\nconst GET_ENUMS = gql`\nquery getEnums($name: String!) {\n __type(name: $name) {\n name\n enumValues{\n name\n description\n } \n }\n}\n`\n\nexport default function (enumName) {\n const [enums, updateEnums] = useState([])\n\n useEffect(() => {\n\n async function fetchData() {\n try {\n const enumData = await apolloClient.query({\n query: GET_ENUMS,\n variables: { name: enumName },\n onError: (error) => {\n alert(error)\n }\n });\n\n updateEnums(enumData.data.__type.enumValues)\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n\n }, [])\n return enums;\n}","import React from 'react';\nimport { NullableBooleanInput, ReferenceArrayInput, ReferenceInput, TextInput } from 'react-admin';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport EnumInput from '../Inputs/EnumInput'\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport IPInput from '../Inputs/IPInput';\nimport { PhoneFilterInput } from '../Inputs/PhoneInput';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport QuickFilter from \"../Layout/filter/QuickFilter\";\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport useAnaliticsEnum from '../../dataProvider/Analitics/useEnum';\nimport DeviceStatusBackReferenceInput from './analitics/DeviceStatusBackReferenceInput';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}));\n\nconst matchTrue = () => true;\n\nconst GasMeterUnitFilter = (props) => {\n const classes = useStyles()\n\n return (\n \n \n {can('getList', 'GasMeterUnit', 'aisId') && }\n {can('getList', 'GasMeterUnit', 'controller.ip') && }\n {can('getList', 'GasMeterUnit', 'gasMeter.dbId') && }\n {can('getList', 'GasMeterUnit', 'enableWriteGasQualityCertificate') && }\n {can('getList', 'GasMeterUnit', 'gasMeterPad', 'GasMeterPad') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasMeterUnit', 'gasMeterPoints', 'GasMeterPoint') && }\n {/* {can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n } */}\n {can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasMeterUnit', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasMeterUnit', 'dashboards', 'Dashboard') && \n \n }\n {can('getList', 'GasMeterUnit', 'dashboards', 'Dashboard') && \n \n }\n {can('getList', 'GasMeterUnit', 'reports', 'Report') && }\n {can('getList', 'GasMeterUnit', 'reports', 'Report') && }\n {can('getList', 'GasMeterUnit', 'inventoryNumber') && }\n {can('getList', 'GasMeterUnit', 'controller.phoneNumber') && }\n {can('getList', 'GasMeterUnit', 'controller.phoneNumber') && }\n {can('getList', 'GasMeterUnit', 'controller.ip') && }\n {can('getList', 'GasMeterUnit', 'controller.type') && }\n {can('getList', 'GasMeterUnit', 'gasMeter.type') && }\n {can('getList', 'GasMeterUnit', 'fixedAsset') && }\n \n \n \n \n )\n}\n\n\nexport default GasMeterUnitFilter;","import React, { Fragment } from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasMeterUnitBulkActionButtons = props => (\n \n {can('update', 'GasMeterUnit', 'tags', 'Tag') && }\n {can('getList', 'GasMeterUnit') && }\n {can('remove', 'GasMeterUnit') && }\n \n);\n\n\nexport default GasMeterUnitBulkActionButtons;","import React, { Fragment } from 'react'\nimport List from '../Layout/list/List';\nimport ListActions from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasMeterUnitExporter from './useGasMeterUnitExporter';\nimport GasMeterUnitFilter from './GasMeterUnitFilter';\nimport GasMeterUnitBulkActionButtons from './GasMeterUnitBulkActionButtons';\nimport GasMeterUnitDatagrid, { useDefaultDatagridColumns } from './GasMeterUnitDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst GasMeterUnitList = (props) => {\n const exporter = useGasMeterUnitExporter()\n const manualSubmitForm = React.useRef(null)\n const columns = useDefaultDatagridColumns()\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n )\n};\n\nGasMeterUnitList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasMeterUnitList;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { BooleanInput, NumberInput, SimpleForm, TextInput, required } from 'react-admin';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n referenceArrayInput: {\n marginTop: 8,\n marginBottom: 4,\n },\n}));\n\nexport const GasMeterPointQuickCreateForm = props => {\n return (\n \n {can('create', 'GasMeterPoint', 'name') && }\n {can('create', 'GasMeterPoint', 'description') && }\n {can('create', 'GasMeterPoint', 'aisId') && }\n {can('create', 'GasMeterPoint', 'number') && }\n {can('create', 'GasMeterPoint', 'disabled') && }\n \n )\n};\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { ReferenceArrayInput } from \"react-admin\";\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport QuickCreateButton from \"../Buttons/QuickCreateButton\";\nimport { GasMeterPointQuickCreateForm } from '../GasMeterPoint/GasMeterPointCreate';\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles({\n container: {\n display: \"inline-block\",\n marginTop: 8,\n marginBottom: 4,\n }\n});\n\nconst ReferenceArrayGasMeterPointInput = props => {\n const classes = useStyles();\n\n return (\n <>\n \n } selectedItem={} matchSuggestion={matchTrue}/>\n \n \n \n \n \n );\n};\n\nexport default ReferenceArrayGasMeterPointInput;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceInput, required } from 'react-admin';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport ReferenceArrayGasMeterPointInput from './ReferenceArrayGasMeterPointInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport BooleanInput from '../Inputs/BooleanInput';\nimport { can } from \"../../abilityProvider\";\nimport TextField from '@material-ui/core/TextField';\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n flexReferenceArrayInput: {\n display: \"flex\",\n alignItems: \"flex-end\",\n },\n textField: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}));\n\nconst GasMeterUnitCreate = props => {\n const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasMeterUnit', 'name') && }\n {can('create', 'GasMeterUnit', 'description') && }\n {can('create', 'GasMeterUnit', 'inventoryNumber') && }\n {can('create', 'GasMeterUnit', 'aisId') && }\n {can('create', 'GasMeterUnit', 'enableWriteGasQualityCertificate') && }\n {can('create', 'GasMeterUnit', 'gasMeterPad', 'GasMeterPad') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterUnit', 'gasMeterPoints', 'GasMeterPoint') && }\n {can('create', 'GasMeterUnit', 'reports', 'Report') && }\n {can('create', 'GasMeterUnit', 'dashboards', 'Dashboard') && }\n {can('create', 'GasMeterUnit', 'tags', 'Tag') && }\n {can('create', 'GasMeterUnit', 'fixedAsset') && }\n {can('create', 'GasMeterUnit', 'linkToir') && }\n \n \n );\n};\n\nexport default GasMeterUnitCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Chip from '@material-ui/core/Chip';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayEnhancedField from \"../Tag/TagArrayEnhancedField\";\nimport EnabledWriteChip from \"./GasMeterUnitEnabledWriteChip\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasMeterUnitBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n
\n \n \n {can('getOne', 'GasMeterUnit', 'name') && {name}}\n {can('getOne', 'GasMeterUnit', 'description') && {description}}\n {can('getOne', 'GasMeterUnit', 'tags', 'Tag') && \n \n \n }\n \n \n {can('getOne', 'GasMeterUnit', 'aisId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasMeterUnitBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { EditContextProvider, useEditController, SimpleForm, TextInput, Toolbar, SaveButton, ReferenceInput, required } from 'react-admin';\nimport { EditView } from '../Layout/EditView';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasMeterUnitBanner from './GasMeterUnitBanner';\nimport DashboardReferenceArrayInput from '../Dashboard/DashboardReferenceArrayInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport ReferenceArrayGasMeterPointInput from './ReferenceArrayGasMeterPointInput';\nimport BooleanInput from '../Inputs/BooleanInput';\nimport { can } from \"../../abilityProvider\";\nimport TextField from '@material-ui/core/TextField';\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n flexReferenceArrayInput: {\n display: \"flex\",\n alignItems: \"flex-end\",\n },\n textField: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}));\n\nconst GasMeterUnitToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasMeterUnit') && }\n {can(\"update\", \"GasMeterUnit\") && }\n \n {can('remove', 'GasMeterUnit') && }\n \n \n );\n}\n\n\n\nconst GasMeterUnitEdit = props => {\n const classes = useStyles();\n const controllerProps = useEditController(props);\n const gasMeterType = controllerProps.record?.gasMeter?.type;\n\n return (\n \n } {...props} {...controllerProps} >\n \n \n }>\n {can('update', 'GasMeterUnit', 'name') && }\n {can('update', 'GasMeterUnit', 'description') && }\n {can('update', 'GasMeterUnit', 'inventoryNumber') && }\n {can('update', 'GasMeterUnit', 'aisId') && }\n {can('update', 'GasMeterUnit', 'enableWriteGasQualityCertificate') && }\n {can('update', 'GasMeterUnit', 'gasMeterPad', 'GasMeterPad') && \n } matchSuggestion={matchTrue} />\n }\n {can('update', 'GasMeterUnit', 'gasMeterPoints', 'GasMeterPoint') && }\n {can('update', 'GasMeterUnit', 'reports', 'Report') && (Boolean(gasMeterType)\n ? \n : \n )}\n {can('update', 'GasMeterUnit', 'dashboards', 'Dashboard') && (Boolean(gasMeterType)\n ? \n : \n )}\n {can('update', 'GasMeterUnit', 'tags', 'Tag') && }\n {can('update', 'GasMeterUnit', 'fixedAsset') && }\n {can('update', 'GasMeterUnit', 'linkToir') && }\n \n \n \n \n );\n};\n\nexport default GasMeterUnitEdit","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport BooleanField from '../Fields/BooleanField';\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nexport const ReferenceDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {can('getList', 'GasMeterPoint', 'name') && }\n {can('getList', 'GasMeterPoint', 'aisId') && }\n {can('getList', 'GasMeterPoint', 'number') && }\n {can('getList', 'GasMeterPoint', 'disabled') && }\n {can('getList', 'GasMeterPoint', 'createdAt') && }\n {can('getList', 'GasMeterPoint', 'updatedAt') && }\n \n )\n}","import React, { Children, cloneElement } from 'react';\nimport get from 'lodash/get';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslate } from 'ra-core';\nimport useLastupdateGasMeter from '../../dataProvider/Prometheus/useLastupdateGasMeter';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n}));\n\nconst ReportNestedGridField = ({children, classes: classesOverride, record, source, resource, basePath, version, className, label, ...props}) => { \n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n const lastUpdate = useLastupdateGasMeter(props)\n const choices = get(record, source);\n const referenceRecord = record\n if (!record || !choices.length) return null;\n\n return (\n
\n {label && {translate(label)}}\n
\n \n {choices.map(choice => (\n \n {cloneElement(Children.only(children), { \n record: choice,\n resource,\n basePath,\n version,\n referenceRecord,\n lastUpdate,\n })}\n \n ))}\n \n\n
\n \n \n
\n );\n};\n\nexport default ReportNestedGridField;","import { useEffect, useState } from 'react'\nimport moment from 'moment'\nimport { orderBy } from 'lodash';\nimport { URI_PROMETHEUS } from '../../appsettings';\nimport useDeepCompareEffect from 'use-deep-compare-effect'\n\n\nexport default function({filter, version}) {\n\n const [state, setState] = useState({\n data: undefined,\n error: undefined,\n loading: true,\n })\n\n useDeepCompareEffect(() => {\n\n if (!(filter && filter.dbIds && filter.dbIds.length)) return;\n \n const filterPrometheus = `{dbid=~\"${filter.dbIds.join('|')}\"}`\n const start = moment().subtract(30, \"days\").unix();\n const end = moment().unix();\n\n fetch(\n //`${URI_PROMETHEUS}/api/v1/query?query=askug_convertItem_convert_lastupdate${filterPrometheus}`,\n `${URI_PROMETHEUS}/api/v1/query_range?query=askug_convertItem_convert_lastupdate${filterPrometheus}&start=${start}&end=${end}&step=4838`,\n {\n method: \"GET\",\n credentials: \"omit\",\n headers: {\n 'Content-Type': 'application/json',\n },\n referrerPolicy: \"no-referrer-when-downgrade\",\n mode: \"cors\"\n }\n )\n .then(response => {\n if (!response.ok) { throw response };\n return response.json();\n })\n .then(({data: {result}}) => {\n \n setState({\n data: result.map(r => ({ metric : r.metric, value: orderBy(r.values, [0], \"desc\")[0] || [] })),\n loading: false,\n error: undefined,\n });\n })\n .catch( error => {\n setState({\n data: undefined,\n loading: false,\n error,\n });\n })\n\n }, [filter, version])\n\n return state;\n}\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nexport const GET_ONE_DEVICE = gql`\n query Device( $where: DeviceWhereUniqueInput! ) {\n data: Device( where: $where ) {id}\n }\n`\n\nexport default (args) => {\n\n return apolloCoreClient.query({\n query: GET_ONE_DEVICE,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import React, { memo, useEffect, useState } from 'react';\nimport { Link } from '@material-ui/core';\nimport sanitizeFieldRestProps from '../Fields/sanitizeFieldRestProps'\nimport { shallowEqual, useSelector } from 'react-redux';\nimport getOneDevice from '../../dataProvider/Core/getOneDevice';\n\n\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst GasMeterUnitDeviceLinkField = memo(({ className, source, record, ...props }) => {\n\n const [device, setDevice] = useState()\n const serviceApp = useSelector(state => state.user.apps.find(app => app.id === \"askug_service\"), shallowEqual);\n useEffect(() => {\n if (!record) return\n getOneDevice({ where: { id: record.id } })\n .then(responce => {\n const device = responce.data?.data\n setDevice(device)\n })\n\n return () => {\n setDevice(undefined)\n }\n }, [record])\n\n const url = serviceApp && serviceApp.url\n if (!record || !device || !url) return null\n // const device = getOneDevice({ where: { id: record.id } })\n const href = `${url}/#/Device/${device.id}/show`\n\n return (\n \n {href}\n \n );\n}\n);\n\n// what? TypeScript looses the displayName if we don't set it explicitly\nGasMeterUnitDeviceLinkField.displayName = 'DeviceLinkField';\n\nGasMeterUnitDeviceLinkField.defaultProps = {\n addLabel: true,\n};\n\nexport default GasMeterUnitDeviceLinkField;","import React, { cloneElement, isValidElement, Children } from 'react';\nimport Card from '@material-ui/core/Card';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate, useQueryWithStore } from 'react-admin';\nimport Error from '../../Layout/Error';\nimport Loading from '../../Layout/Loading';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n card: {}\n}));\n\nconst DeviceStatusLayout = ({ children, classes: classesOverride, className, label, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n const resource = 'DeviceStatus'\n const { loading, loaded, error, data } = useQueryWithStore({\n type: 'getOne',\n resource,\n payload: { id: props.record?.gasMeter?.dbId }\n });\n\n if (loading) { return ; }\n if (error) { return ; }\n\n return (\n
\n {label && {translate(label)}}\n \n\n {Children.map(children, field =>\n field && isValidElement(field)\n ? cloneElement(field, {\n ...props,\n record: data,\n resource,\n referenceRecord: props.record\n })\n : null\n )}\n {/* {cloneElement(Children.only(children), {\n ...props,\n ...children.props,\n record: data,\n referenceRecord: props.record\n })} */}\n \n
\n\n );\n};\n\n\n\nexport default DeviceStatusLayout;","import React, { memo, Fragment } from \"react\";\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\nimport List from '@material-ui/core/List';\nimport DeviceStatusField from './DeviceStatusField';\n\n\n\nconst DeviceStatusDatailsField = memo((props) => {\n const { className, resource, source, record = {}, emptyText, ...rest } = props\n const {\n date,\n dbId,\n id,\n status,\n __typename,\n ...other\n } = record\n\n const metrics = Object.keys(other).filter(key => {\n const metric = other[key]\n return metric.name && metric.status\n }).map(key => {\n const metric = other[key]\n const orderMap = {\n CRITICAL: 4,\n ERROR: 3,\n WARNING: 2,\n OK: 1,\n NOTCHECKED: 0\n }\n return {\n ...metric,\n order: orderMap[metric.status]\n }\n }).sort((a, b) => {\n return b.order - a.order\n })\n\n\n return (\n \n {metrics.map((metric, index) => (\n \n \n \n \n \n {metric.name}\n \n {metric.flowResults && metric.flowResults.length > 0 && metric.flowResults.map((flowResult, index2) => (\n \n \n \n \n
\n {`Линия ${flowResult.flow}: ${flowResult.diagnostics}`}\n {`Результат: ${flowResult.result} `}\n {`Совет: ${flowResult.shortAction} `}\n
\n
\n ))\n }\n
\n ))}\n
\n );\n});\n\nDeviceStatusDatailsField.displayName = 'DeviceStatusDatailsField';\n\nDeviceStatusDatailsField.defaultProps = {\n addLabel: true,\n};\n\nexport default DeviceStatusDatailsField;","import { gql } from '@apollo/client';\n\n\n\nexport const FLOWRESULT_FRAGMENT = gql`\n fragment FlowResultFragment on FlowResult {\n flow\n status\n diagnostics\n result\n shortAction\n }\n`\n\nexport const GENERALRESULT_FRAGMENT = gql`\n fragment GeneralResultFragment on GeneralResult {\n name\n status\n flowResults {\n ...FlowResultFragment\n }\n }\n ${FLOWRESULT_FRAGMENT}\n`\n\n\n\nexport const GET_MANY_DEVICESTATUSES = gql`\n query getManyDeviceStatuses($page: Int, $perPage: Int, $sort: DeviceStatusSort, $filter: DeviceStatusFilter) {\n data: listDeviceStatuses(page: $page, perPage: $perPage, sort: $sort, filter: $filter) {\n items {\n id\n dbId\n status\n date\n }\n pageInfo{\n totalItems\n }\n }\n }\n`;\n\nexport const GET_ONE_DEVICESTATUS = gql`\n query getOneDeviceStatus($where: DeviceStatusWhereUniqueInput!) {\n data: deviceStatus(where: $where) {\n item {\n id\n dbId\n status\n date\n checkHasGaps {\n ...GeneralResultFragment\n }\n checkHasGapsLastFiveDays {\n ...GeneralResultFragment\n }\n checkHasConfigurationProblems {\n ...GeneralResultFragment\n }\n checkCorrectorWithGapsStatus {\n ...GeneralResultFragment\n }\n checkRequiresManualDataReget {\n ...GeneralResultFragment\n }\n checkHasLoadDataInterruptions {\n ...GeneralResultFragment\n }\n }\n }\n }\n ${GENERALRESULT_FRAGMENT}\n`;\n\nexport const REFRESH_DEVICESTATUS = gql`\n mutation updateDevicesStatus($dbIds: [Int]!) {\n data: updateDevicesStatus(dbIds: $dbIds) {\n items {\n id\n dbId\n status\n date\n }\n }\n }\n`;\n\nexport const GET_ENUMS = gql`\n query getEnums($name: String!) {\n data: __type(name: $name) {\n name\n enumValues{\n name\n description\n } \n }\n }\n`","import React, { useState, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNotify, useRedirect, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport refreshDeviceStatus from '../../../dataProvider/Analitics/refreshDeviceStatus';\n\n\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n onSave,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n}));\n\nconst DeviceStatusRefreshButton = ({\n basePath,\n classes: classesOverride,\n className,\n record,\n resource,\n redirect: redirectTo,\n ...rest }) => {\n const dispatch = useDispatch();\n const redirect = useRedirect();\n const refresh = useRefresh();\n const notify = useNotify();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n const dbId = record.dbId;\n\n\n const handleClick = useCallback(() => {\n setLoading(true);\n dispatch(fetchStart());\n\n refreshDeviceStatus({\n dbId,\n }).then((response) => {\n notify('ra.notification.status_refreshed', 'info', { smart_count: 1 });\n redirect(redirectTo, basePath, record.id, record);\n refresh();\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n },\n [dbId, dispatch]\n );\n\n\n return (\n \n \n \n );\n\n};\n\nexport default DeviceStatusRefreshButton;","import get from 'lodash/get';\nimport apolloClient from './apolloClient';\nimport { REFRESH_DEVICESTATUS } from './typeDefs';\n\n\n\nexport default ({ dbId }) => {\n return apolloClient.mutate({\n mutation: REFRESH_DEVICESTATUS,\n variables: { dbIds: [dbId] },\n onError: (error) => {\n alert(error)\n }\n }).then(response => {\n const item = get(response, [\"data\", \"data\", \"items\", 0])\n return {\n data: item\n }\n });\n};","import { DateField, Pagination, ReferenceField, ReferenceManyField as RaReferenceManyField, SearchInput, TextField, UrlField, useShowController, ShowContextProvider, SimpleShowLayout } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport DashboardNestedGridField from '../Dashboard/DashboardNestedGridField';\nimport DashboardPreview from '../Dashboard/DashboardCard';\nimport EnumField from '../Fields/EnumField';\nimport { ReferenceDatagrid as GasMeterPointReferenceDatagrid } from '../GasMeterPoint/GasMeterPointList';\nimport { GasQualityCertificateReferenceDatagrid } from '../GasQualityCertificate/GasQualityCertificateDatagrid';\nimport GasMeterUnitBanner from './GasMeterUnitBanner';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport PhoneField from '../Fields/PhoneField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReportCard from '../Report/ReportCard';\nimport ReportNestedGridField from '../Report/ReportNestedGridField';\nimport DeviceLinkField from './GasMeterUnitDeviceLinkField';\nimport DeviceStatusLayout from './analitics/DeviceStatusLayout';\nimport DeviceStatusField from './analitics/DeviceStatusField';\nimport DeviceStatusDatailsField from './analitics/DeviceStatusDatailsField';\nimport DeviceStatusRefreshButton from './analitics/DeviceStatusRefreshButton'\nimport Separator from '../Layout/Separator';\nimport { ShowView } from '../Layout/ShowView';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst GasMeterUnitBreadcrumbs = (props) => {\n return (\n \n \n \n \n \n \n );\n}\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasMeterUnitShow = props => {\n const controllerProps = useShowController(props);\n const showMoreButton = React.useRef(null);\n const showAnaliticsButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n const dbId = controllerProps.record?.gasMeter?.dbId;\n const enableWriteGasQualityCertificate = controllerProps.record?.enableWriteGasQualityCertificate;\n\n\n return (\n \n } title={} {...props} {...controllerProps} >\n \n {can('getOne', 'GasMeterUnit', 'reports', 'Report') && \n \n }\n {can('getOne', 'GasMeterUnit', 'dashboards', 'Dashboard') && \n \n }\n {can('getOne', 'GasMeterUnit', 'gasMeterPoints', 'GasMeterPoint') &&\n }\n sort={{ field: 'name', order: 'ASC' }} perPage={100}\n perPage={25}\n pagination={}\n >\n \n }\n\n {can('getList', 'GasQualityCertificate') && enableWriteGasQualityCertificate === true &&\n }\n actions={}\n sort={{ field: 'validTo', order: 'DESC' }}\n perPage={1}\n pagination={}\n >\n \n }\n\n )} />\n \n \n {can('getOne', 'GasMeterUnit', 'aisId') && }\n {can('getOne', 'GasMeterUnit', 'inventoryNumber') && }\n {can('getOne', 'GasMeterUnit', 'controller.serialNumber') && }\n {can('getOne', 'GasMeterUnit', 'controller.type') && }\n {can('getOne', 'GasMeterUnit', 'controller.url') && }\n {can('getOne', 'GasMeterUnit', 'controller.phoneNumber') && }\n {can('getOne', 'GasMeterUnit', 'gasMeter.serialNumber') && }\n {can('getOne', 'GasMeterUnit', 'gasMeter.dbId') && }\n {can('getOne', 'GasMeterUnit', 'gasMeter.type') && }\n {can('getOne', 'GasMeterUnit', 'gasMeter.port') && }\n {can('getOne', 'GasMeterUnit', 'gasMeter.commercialHour') && }\n {can('getOne', 'gasMeterPad', 'gasMeterPad.aisId', 'GasMeterPad') && }\n {can('getOne', 'GasMeterUnit', 'fixedAsset') && }\n {can('getOne', 'GasMeterUnit', 'linkToir') && }\n {can('getOne', 'Device') && }\n\n\n \n {can('getOne', 'GasMeterUnit', 'id') && }\n {can('getOne', 'GasMeterUnit', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasMeterUnit', 'createdAt') && }\n {can('getOne', 'GasMeterUnit', 'updatedAt') && }\n \n \n\n )} />\n \n \n \n \n \n \n \n \n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n \n\n );\n};\n\nexport default GasMeterUnitShow;","import Icon from '../Icons/Valve';\nimport GasMeterUnitList from './GasMeterUnitList';\nimport GasMeterUnitCreate from './GasMeterUnitCreate';\nimport GasMeterUnitEdit from './GasMeterUnitEdit';\nimport GasMeterUnitShow from './GasMeterUnitShow';\n\nconst GasMeterUnitIcon = Icon;\n\n\nexport {\n GasMeterUnitIcon,\n GasMeterUnitList,\n GasMeterUnitShow,\n GasMeterUnitCreate,\n GasMeterUnitEdit,\n};\n","import React from 'react';\nimport { useDropzone } from 'react-dropzone'\nimport { useTranslate } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n dropZone: ({isDragAccept, isDragReject}) => ({\n backgroundColor: isDragAccept ? \"#c8e6c9\" : isDragReject ? \"#ffcdd2\" : theme.palette.background.default,\n borderRadius: theme.spacing(1),\n cursor: 'pointer',\n padding: theme.spacing(1),\n textAlign: 'center',\n color: theme.palette.text.primary,\n transition: \"background-color .24s ease-in-out\",\n }),\n}));\n\nconst Dropzone = ({ onDrop }) => {\n \n const translate = useTranslate();\n\n const {getRootProps, getInputProps, isDragAccept, isDragReject} = useDropzone({\n accept: '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel',\n disabled: false,\n multiple: false,\n onDrop,\n })\n\n const classes = useStyles({isDragAccept, isDragReject});\n\n return (\n
\n \n

{translate('ra.input.file.upload_single')}

\n
\n )\n};\n\nexport default Dropzone\n\n","import React from 'react';\nimport { ChipField } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n chipError: {\n backgroundColor: \"#ef9a9a\",\n color: \"#c62828\"\n },\n \n}));\n\nconst GasDistributorStationChipField = (props) => {\n const classes = useStyles()\n return (\n \n );\n}\n\nexport default GasDistributorStationChipField","import React from 'react';\nimport keyBy from 'lodash/keyBy'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Datagrid, DateField, NumberField, TextField, ListContextProvider } from 'react-admin';\nimport NestedArrayField from '../Fields/NestedArrayField'\nimport ChipField from './GasDistributorStationChipField'\nimport { dateTimeOptions } from '../../utils';\nimport N2Field from './GasQualityCertificateN2Field'\nimport CO2Field from './GasQualityCertificateCO2Field'\nimport DensityField from './GasQualityCertificateDensityField'\n\n\n\nconst useStyles = makeStyles(theme => ({\n row: { height: 40 },\n cellMinWidth: { width: 1 },\n noWrap: { whiteSpace: \"nowrap\" },\n paddingCell: {\n '&:first-child': {\n paddingLeft: 24,\n },\n '&:last-child': {\n paddingRight: 24,\n },\n },\n fullWidth: { width: \"100%\" },\n}));\n\nconst GasQualityCertificateImportDatagrid = (props) => {\n\n const classes = useStyles();\n const { data = [] } = props;\n\n return (\n gqsId),\n total: data.length,\n currentSort: { field: 'name', order: 'ASC' },\n selectedIds: [],\n classes: { row: classes.row, headerCell: classes.paddingCell, rowCell: classes.paddingCell },\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default GasQualityCertificateImportDatagrid;\n\n","import React, { useState, useCallback } from 'react';\nimport { LinearProgress, useTranslate } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport Alert from '@material-ui/lab/Alert';\nimport AlertTitle from '@material-ui/lab/AlertTitle';\nimport Typography from '@material-ui/core/Typography';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Dropzone from '../Layout/Dropzone';\nimport GasQualityCertificateImportDatagrid from './GasQualityCertificateImportDatagrid';\n\n\n\nconst useStyles = makeStyles(theme => ({\n fullWidth: { width: \"100%\" },\n}));\n\nconst GasQualityCertificateImportDialog = ({\n open,\n errors,\n warnings,\n data,\n loading,\n loaded,\n onImport,\n onDrop,\n onClose,\n onExited,\n ...props }) => {\n const classes = useStyles();\n const translate = useTranslate();\n const [confirm, setConfirm] = useState(false);\n\n\n const handleConfirm = useCallback((event) => {\n setConfirm(event.target.checked)\n }, [setConfirm])\n\n const handleClose = useCallback(() => {\n onClose()\n }, [onClose])\n\n const handleExited = useCallback(() => {\n onExited()\n }, [onExited])\n\n const handleImport = useCallback(() => {\n onImport()\n }, [onImport])\n\n\n const handleDrop = useCallback(acceptedFiles => {\n onDrop(acceptedFiles)\n }, [onDrop])\n\n\n return (\n \n {translate('resources.GasQualityCertificate.import.title')}\n \n {translate('resources.GasQualityCertificate.import.content')}\n \n \n {loading && ()}\n {errors && (\n \n } severity=\"error\">\n {translate('resources.GasQualityCertificate.import.errors')}\n {errors.map(({ message, args }, index) => (\n {translate(message, args)}\n ))}\n \n \n )}\n {warnings && (\n \n } severity=\"warning\">\n {translate('resources.GasQualityCertificate.import.warnings')}\n {warnings.map(({ message, args }, index) => (\n {translate(message, args)}\n ))}\n \n \n )}\n {data && (\n \n )}\n \n 0)}\n name=\"checkedConfirm\"\n color=\"primary\"\n />\n }\n label={translate(\"ra.input.confirm.label\")}\n />\n \n \n \n \n {translate(`ra.action.import`)}\n \n \n \n );\n};\n\nexport default GasQualityCertificateImportDialog;\n\n","import React, { useState, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useNotify, useRefresh, fetchStart, fetchEnd, Button, useTranslate } from 'react-admin';\nimport keyBy from 'lodash/keyBy'\nimport groupBy from 'lodash/groupBy';\nimport PublishIcon from '@material-ui/icons/Publish';\nimport XLSX from 'xlsx';\nimport moment from 'moment';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient'\nimport importGasQualityCertificates from '../../dataProvider/Core/importGasQualityCertificates'\nimport { GET_LIST_GAS_DISTRIBUTOR_STATION } from '../../dataProvider/Core/typeDefs'\nimport GasQualityCertificateImportDialog from './GasQualityCertificateImportDialog';\nimport { validate as validateN2 } from './GasQualityCertificateN2Field';\nimport { validate as validateCO2 } from './GasQualityCertificateCO2Field';\nimport { validate as validateDensity } from './GasQualityCertificateDensityField';\n\n\n\nconst GasQualityCertificateImportButton = ({ basePath, className, record, resource, ...props }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const refresh = useRefresh();\n const notify = useNotify();\n const [open, setOpen] = React.useState(false);\n const [warnings, setWarnings] = useState();\n const [errors, setErrors] = useState()\n const [state, setState] = useState({\n data: undefined,\n error: undefined,\n loading: false,\n loaded: false,\n })\n\n const checkN2 = useCallback((value, record) => {\n const warning = validateN2(value, record)\n if (warning) setWarnings((prev = []) => [...prev, warning])\n }, [setWarnings])\n\n const checkCO2 = useCallback((value, record) => {\n const warning = validateCO2(value, record)\n if (warning) setWarnings((prev = []) => [...prev, warning])\n }, [setWarnings])\n\n const checkDensity = useCallback((value, record) => {\n const error = validateDensity(value, record)\n if (error) setErrors((prev = []) => [...prev, error])\n }, [setErrors])\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, [setOpen])\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, [setOpen])\n\n const handleExited = useCallback(() => {\n setState({\n data: undefined,\n error: null,\n loading: false,\n loaded: false,\n });\n setWarnings(undefined)\n setErrors(undefined)\n }, [setState])\n\n const handleImport = useCallback(() => {\n if (!state.data) return\n\n dispatch(fetchStart());\n\n const gasQualityCertificates = state.data.map(gqs => ({\n gqsId: gqs.gqsId,\n validFrom: gqs.validFrom,\n validTo: gqs.validTo,\n name: gqs.name,\n description: gqs.description,\n n2: gqs.n2,\n co2: gqs.co2,\n density: gqs.density,\n gasExtractionPoint: gqs.gasSelectionPoint_name,\n gasDistributorStationsIds: gqs.gasDistributorStationsIds,\n }))\n\n importGasQualityCertificates(gasQualityCertificates)\n .then((result) => {\n notify('ra.notification.gas_quality_certificate_imported', 'info', { smart_count: result.data.data.count });\n refresh();\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setOpen(false);\n dispatch(fetchEnd());\n });\n\n }, [state.data]);\n\n const handleDrop = useCallback(acceptedFiles => {\n acceptedFiles.forEach((file) => {\n const reader = new FileReader()\n reader.onabort = () => console.log('file reading was aborted')\n reader.onerror = () => console.log('file reading has failed')\n reader.onload = (e) => {\n\n setState({\n loading: true,\n loaded: false,\n });\n\n const data = new Uint8Array(e.target.result);\n const workbook = XLSX.read(data, { type: 'array' });\n const sheetPasportPoint = workbook.Sheets[\"Паспорт-Точка\"];\n const sheetPointGrs = workbook.Sheets[\"Точка-ГРС\"];\n const dataPasportPoint = XLSX.utils.sheet_to_json(sheetPasportPoint, { range: 1, raw: false, defval: null });\n const dataPointGrs = XLSX.utils.sheet_to_json(sheetPointGrs, { range: 1, raw: false, defval: null });\n const gasSelectionPointGroup = groupBy(dataPointGrs, 'gasSelectionPoint_aisId');\n const allGasDistributorStations = keyBy(dataPointGrs, 'gasDistributorStation_aisId');\n const allGasDistributorStationsAisIds = Object.keys(allGasDistributorStations)\n\n apolloCoreClient.query({\n query: GET_LIST_GAS_DISTRIBUTOR_STATION,\n variables: {\n perPage: allGasDistributorStationsAisIds.length,\n filter: {\n aisId_in: allGasDistributorStationsAisIds\n }\n },\n fetchPolicy: 'network-only',\n })\n .then(({ data }) => {\n\n const coreGasDistributorStations = data.items\n\n const gasQualityCertificates = dataPasportPoint.map((item, index) => {\n\n const gasDistributorStationsAisIds = (gasSelectionPointGroup[item.gasSelectionPoint_aisId] || []).map(grs => grs.gasDistributorStation_aisId)\n const gasDistributorStations = gasDistributorStationsAisIds.map(aisId => {\n const findGasDistributorStation = coreGasDistributorStations.find(item => item.aisId === aisId)\n if (findGasDistributorStation) {\n return {\n id: findGasDistributorStation.id,\n aisId: findGasDistributorStation.aisId,\n name: findGasDistributorStation.name,\n }\n } else {\n const find = allGasDistributorStations[aisId]\n return {\n id: undefined,\n aisId: find.gasDistributorStation_aisId,\n name: find.gasDistributorStation_name,\n }\n }\n })\n const gasDistributorStationsIds = gasDistributorStations.filter(item => item.id).map(item => item.id)\n\n const gasQualityCertificate = {\n index: index + 1,\n number: item.num,\n gqsId: item.gqsId,\n validFrom: moment(item.validFrom).toISOString(),\n validTo: moment(item.validTo).toISOString(),\n name: item.name,\n description: item.description,\n n2: parseFloat(item.n2),\n co2: parseFloat(item.co2),\n density: parseFloat(item.density),\n gasSelectionPoint_name: item.gasSelectionPoint_name,\n gasDistributorStations,\n gasDistributorStationsIds,\n }\n\n checkN2(gasQualityCertificate.n2, gasQualityCertificate)\n checkCO2(gasQualityCertificate.co2, gasQualityCertificate)\n checkDensity(gasQualityCertificate.density, gasQualityCertificate)\n\n return gasQualityCertificate\n })\n\n setState({\n data: gasQualityCertificates,\n loading: false,\n loaded: true,\n });\n })\n .catch(error => {\n setState({\n error,\n loading: false,\n loaded: false,\n });\n });\n }\n reader.readAsArrayBuffer(file)\n })\n }, [])\n\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default GasQualityCertificateImportButton;\n\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\n\nexport default (gasQualityCertificates) => {\n\n return apolloCoreClient.mutate({\n mutation: gql`\n mutation importGasQualityCertificates($gasQualityCertificates: [ManyGasQualityCertificateCreateInput!]!) {\n data: importGasQualityCertificates(gasQualityCertificates: $gasQualityCertificates) { count }\n }`,\n variables: {\n gasQualityCertificates\n },\n onError: (error) => {\n alert(error)\n }\n });\n};","import React from 'react';\nimport Inbox from '@material-ui/icons/Inbox';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/styles';\nimport { useTranslate, CreateButton } from 'react-admin';\nimport inflection from 'inflection';\nimport { can } from \"../../abilityProvider\";\nimport ImportButton from \"./GasQualityCertificateImportButton\";\n\nconst useStyles = makeStyles(theme => ({\n message: {\n textAlign: 'center',\n opacity: theme.palette.type === 'light' ? 0.5 : 0.8,\n margin: '0 1em',\n color:\n theme.palette.type === 'light'\n ? 'inherit'\n : theme.palette.text.primary,\n },\n icon: {\n width: '9em',\n height: '9em',\n },\n toolbar: {\n textAlign: 'center',\n marginTop: '2em',\n '& > *:not(:first-child)': {\n marginLeft: 8,\n },\n },\n}),\n { name: 'RaEmpty' }\n);\n\nconst Empty = props => {\n const { resource, basePath } = props;\n const classes = useStyles(props);\n const translate = useTranslate();\n\n const resourceName = inflection.humanize(\n translate(`resources.${resource}.name`, {\n smart_count: 0,\n _: inflection.pluralize(resource),\n }),\n true\n );\n\n const emptyMessage = translate('ra.page.empty', { name: resourceName });\n const inviteMessage = translate('ra.page.invite');\n\n return (\n <>\n
\n \n \n {translate(`resources.${resource}.empty`, {\n _: emptyMessage,\n })}\n \n \n {translate(`resources.${resource}.invite`, {\n _: inviteMessage,\n })}\n \n
\n
\n {can('create', 'GasQualityCertificate') && }\n {can('import', 'GasQualityCertificate') && }\n
\n \n );\n};\n\nexport default Empty;\n","import React, { cloneElement, useMemo } from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { can } from \"../../abilityProvider\";\nimport { sanitizeListRestProps, useListContext, useResourceContext, useResourceDefinition } from 'ra-core';\nimport { CreateButton, ExportButton, TopToolbar, useTranslate } from 'react-admin';\nimport SelectColumnsButton from '../Layout/preferences/SelectColumnsButton';\nimport ImportButton from \"./GasQualityCertificateImportButton\";\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuList from '@material-ui/core/MenuList';\nimport Divider from '@material-ui/core/Divider';\nimport ListActionsMoreButton from '../Layout/list/ListActionsMoreButton';\nimport SelectColumnsMenu from '../Layout/preferences/SelectColumnsMenu';\nimport ExportButtonAsMenuItem from '../Layout/list/ExportButtonAsMenuItem';\n\n\nconst ListActions = (props) => {\n const { className, exporter, filters, columns, ...rest } = props;\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const {\n currentSort,\n displayedFilters,\n filterValues,\n basePath,\n selectedIds,\n showFilter,\n total,\n } = useListContext(props);\n const resource = useResourceContext(rest);\n const { hasCreate } = useResourceDefinition(rest);\n const translate = useTranslate()\n\n // return useMemo(\n // () => (\n // \n // {filters &&\n // cloneElement(filters, {\n // resource,\n // showFilter,\n // displayedFilters,\n // filterValues,\n // context: 'button',\n // })}\n // \n // {hasCreate && }\n // {can('import', 'GasQualityCertificate') && }\n // {exporter !== false && (\n // \n // )}\n // \n // ),\n // [resource, displayedFilters, filterValues, selectedIds, filters, total] // eslint-disable-line react-hooks/exhaustive-deps\n // );\n\n return useMemo(\n () => isMobile ? (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n {hasCreate && }\n {can('import', 'GasQualityCertificate') && }\n {exporter !== false && (\n \n )}\n \n ) : (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n {hasCreate && }\n {can('import', 'GasQualityCertificate') && }\n \n {translate('ra-preferences.action.choose_columns', {\n _: 'Choose columns',\n })}\n \n \n \n {exporter !== false && (\n \n )}\n \n \n \n ),\n [resource, displayedFilters, filterValues, selectedIds, filters, total, isMobile] // eslint-disable-line react-hooks/exhaustive-deps\n );\n};\n\nListActions.propTypes = {\n basePath: PropTypes.string,\n className: PropTypes.string,\n currentSort: PropTypes.any,\n displayedFilters: PropTypes.object,\n exporter: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n filters: PropTypes.element,\n filterValues: PropTypes.object,\n hasCreate: PropTypes.bool,\n resource: PropTypes.string,\n onUnselectItems: PropTypes.func.isRequired,\n selectedIds: PropTypes.arrayOf(PropTypes.any),\n showFilter: PropTypes.func,\n total: PropTypes.number,\n selectedColumns: PropTypes.exact({\n columns: PropTypes.objectOf(PropTypes.node),\n preferences: PropTypes.string\n }),\n};\n\nListActions.defaultProps = {\n selectedIds: [],\n onUnselectItems: () => null,\n};\n\n\nexport default ListActions;","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter, numberFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gqsId: true,\n n2: numberFormatter,\n co2: numberFormatter,\n density: numberFormatter,\n validFrom: dateFormatter,\n validTo: dateFormatter,\n gasExtractionPoint: true,\n gasDistributorStations: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistributorStation\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasQualityCertificate\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import gql from 'graphql-tag';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient'\n\n\n\nconst GET_MANY_GAS_DISTRIBUTOR_STATIONS = gql`\n query allGasDistributorStations($page: Int, $perPage: Int, $filter: GasDistributorStationFilter) {\n items: allGasDistributorStations(page: $page, perPage: $perPage, filter: $filter) {\n id\n gasDistributorStationOutputs {\n gasMeterPads {\n gasMeterUnits{\n enableWriteGasQualityCertificate\n gasMeter {\n dbId\n configuration{\n ns\n scadaSet\n }\n }\n }\n }\n }\n }\n}`\n\nconst flatArrayOfObjects = (array, path) => {\n\n const parts = path.split(\".\")\n const [part, ...otherParts] = parts\n return (Array.isArray(array) && otherParts.length > 0) ? [].concat(...array.map((item, i) => {\n const select = item[part]\n return flatArrayOfObjects(select, otherParts.join(\".\"))\n })) : Array.isArray(array)\n ? array.flatMap(item => item[part])\n : array;\n};\n\nconst getGasMeters = async (_gasDistributorStations) => {\n const gasDistributorStationsIds = _gasDistributorStations.map(gasDistributorStation => gasDistributorStation.id)\n\n const result = await apolloCoreClient.query({\n query: GET_MANY_GAS_DISTRIBUTOR_STATIONS,\n variables: {\n perPage: gasDistributorStationsIds.length,\n filter: {\n id_in: gasDistributorStationsIds\n }\n },\n onError: (error) => {\n alert(error)\n }\n })\n\n const gasDistributorStations = result.data.items;\n\n const gasMeters = gasDistributorStations.flatMap(_gasDistributorStation => {\n const findGasDistributorStation = _gasDistributorStations.find(item => item.id === _gasDistributorStation.id);\n const gasDistributorStationGasMeterUnits = flatArrayOfObjects(_gasDistributorStation.gasDistributorStationOutputs, \"gasMeterPads.gasMeterUnits\");\n const gms = gasDistributorStationGasMeterUnits.filter(gmu => gmu.enableWriteGasQualityCertificate).map(gmu => ({ ...gmu.gasMeter, gasQualityCertificateId: findGasDistributorStation.gasQualityCertificateId }))\n\n return gms;\n });\n\n return gasMeters\n};\n\n\n\nconst getWriteValues = async (_gasQualityCertificates) => {\n\n const writeTags = [];\n const gasQualityCertificates = Array.isArray(_gasQualityCertificates) ? _gasQualityCertificates.map(gqs => ({ ...gqs })) : [{ ..._gasQualityCertificates }];\n const gasDistributorStations = gasQualityCertificates.flatMap(gasQualityCertificate => {\n const gds = gasQualityCertificate.gasDistributorStations.map(gasDistributorStation => ({\n gasQualityCertificateId: gasQualityCertificate.id,\n ...gasDistributorStation\n }))\n return gds;\n });\n const gasMeters = await getGasMeters(gasDistributorStations);\n\n gasMeters.forEach(gasMeter => {\n const dbId = gasMeter.dbId\n const ns = gasMeter.configuration && gasMeter.configuration.ns\n const scadaSet = gasMeter.configuration && gasMeter.configuration.scadaSet\n const findGasQualityCertificateTags = scadaSet && scadaSet.children && scadaSet.children.find(item => item.id === \"gasQualityCertificate\")\n const findGasQualityCertificate = gasQualityCertificates.find(gasQualityCertificate => gasQualityCertificate.id === gasMeter.gasQualityCertificateId)\n const tags = findGasQualityCertificateTags && findGasQualityCertificateTags.items\n const values = findGasQualityCertificate && {\n co2: findGasQualityCertificate.co2,\n density: findGasQualityCertificate.density,\n n2: findGasQualityCertificate.n2,\n validFrom: findGasQualityCertificate.validFrom,\n }\n\n if (dbId && ns && tags) {\n Object.keys(values).forEach(key => {\n const tag = tags.find(item => item.id.toString() === key)\n const value = values[key]\n if (tag && value !== undefined) {\n writeTags.push({\n id: { ns: ns, serial: dbId, id: tag.idRef_wr },\n value: value.toString(),\n })\n\n if (!findGasQualityCertificate.writeTags) findGasQualityCertificate.writeTags = []\n\n findGasQualityCertificate.writeTags.push({\n id: { ns: ns, serialid: dbId, id: tag.idRef_wr },\n value: value.toString(),\n })\n\n }\n })\n }\n });\n\n return {\n writeTags,\n gasQualityCertificates,\n }\n\n};\n\nexport default getWriteValues;","import gql from 'graphql-tag'\nimport apolloDatabusClient from './apolloDatabusClient';\n\n\n\nexport const WRITE_GAS_QUALITY_CERTIFICATE = gql`\n mutation writeGasQualityCertificate( $input: WriteManyTagsInput! ) {\n data: writeManyTags( input: $input ) {\n id { ns serial id}\n value\n quality\n timestamp\n timestampSrv\n utcOffset\n }\n }\n`;\n\nexport default ({ writeTags, ...args}) => {\n \n return apolloDatabusClient.mutate({\n mutation: WRITE_GAS_QUALITY_CERTIFICATE,\n variables: {\n input: {\n writeTags\n }\n },\n onError: (error) => {\n alert(error)\n }\n })\n \n\n};","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\n\nconst ADD_HISTORY_MUTATION = gql`\n mutation addHistory( $resource: ResourceType!, $item: ID!, $name: String!, $description: String, $action: HistoryAction, $data: Json) {\n addHistory( resource: $resource, item: $item, name: $name, description: $description, action: $action, data: $data) {\n id\n }\n }\n`;\n\nexport default (args) => {\n return apolloCoreClient.mutate({\n mutation: ADD_HISTORY_MUTATION,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};","import React from 'react';\nimport gql from 'graphql-tag';\nimport { useDispatch } from 'react-redux';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useNotify, useTranslate, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient'\nimport getWriteValues from './getGasQualityCertificateWriteValues'\nimport writeGasQualityCertificate from '../../dataProvider/Databus/writeGasQualityCertificate'\nimport addHistory from '../../dataProvider/Core/addHistory';\nimport MButton from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\n\nconst GAS_QUALITY_SERTIFICATE_TEMPLATE = `{\n id\n name\n description\n gqsId\n n2\n co2\n density\n validFrom\n validTo\n gasDistributorStations {\n id\n }\n}`\n\nconst GET_MANY_GAS_QUALITY_SERTIFICATES = gql`\n query allGasQualityCertificates($page: Int, $perPage: Int, $filter: GasQualityCertificateFilter) {\n items: allGasQualityCertificates(page: $page, perPage: $perPage, filter: $filter) ${GAS_QUALITY_SERTIFICATE_TEMPLATE}\n }\n`\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n\n}));\n\n\n\nconst GasQualityCertificateWriteBulkActionsButton = ({ selectedIds, basePath, className, record, resource, filterValues, ...props }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const notify = useNotify();\n const classes = useStyles();\n\n // if (!record) return null;\n\n const [open, setOpen] = React.useState(false);\n\n const handleClickOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n\n const handleWrite = async () => {\n setOpen(false);\n dispatch(fetchStart());\n\n\n const allGasQualityCertificates = await apolloCoreClient.query({\n query: GET_MANY_GAS_QUALITY_SERTIFICATES,\n variables: {\n perPage: selectedIds.length,\n filter: {\n id_in: selectedIds\n }\n },\n onError: (error) => {\n alert(error)\n }\n })\n\n const gasQualityCertificateItems = allGasQualityCertificates.data && allGasQualityCertificates.data.items || [];\n\n const { writeTags, gasQualityCertificates } = await getWriteValues(gasQualityCertificateItems);\n\n if (writeTags && Array.isArray(writeTags) && Boolean(writeTags.length)) {\n writeGasQualityCertificate({ writeTags })\n .then(({ data }) => {\n\n notify('ra.notification.gas_quality_certificate_written', 'info', { smart_count: selectedIds.length });\n gasQualityCertificates.forEach(record => {\n addHistory({\n resource: resource,\n item: record.id,\n name: record.name,\n description: record.description,\n action: \"WRITTEN\",\n data: {\n data: {\n writeValues: record.writeTags\n },\n }\n });\n })\n\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n dispatch(fetchEnd());\n });\n } else {\n notify('ra.notification.gas_quality_certificate_write_error', 'warning', { smart_count: 2 })\n dispatch(fetchEnd())\n }\n\n\n };\n\n return (\n <>\n \n \n \n \n \n {translate(\"resources.GasQualityCertificate.writeDialogTitle\", { smart_count: selectedIds.length })}\n \n \n \n {translate(\"resources.GasQualityCertificate.writeDialogContent\", { smart_count: selectedIds.length })}\n \n \n \n {translate('ra.action.cancel')}\n {translate('ra.action.write')}\n \n \n \n );\n};\n\nexport default GasQualityCertificateWriteBulkActionsButton;\n\n","import { BulkExportButton } from 'react-admin';\nimport React from 'react';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport BulkWriteButton from './GasQualityCertificateWriteBulkActionsButton';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasQualityCertificateBulkActionButtons = props => (\n <>\n {can('update', 'GasQualityCertificate', 'tags', 'Tag') && }\n {can('write', 'GasQualityCertificate') && }\n {can('getList', 'GasQualityCertificate') && }\n {can('remove', 'GasQualityCertificate') && }\n \n)\n\n\nexport default GasQualityCertificateBulkActionButtons;","import { ReferenceArrayInput, ReferenceInput, TextInput } from 'react-admin';\nimport React from 'react';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst GasQualityCertificateFilter = (props) => (\n \n \n {can('getList', 'GasQualityCertificate', 'gqsId') && }\n {can('getList', 'GasQualityCertificate', 'gasDistributorStation') && \n } matchSuggestion={matchTrue} />\n }\n {can('getList', 'GasQualityCertificate', 'gasMeterUnit') && \n } matchSuggestion={matchTrue} />\n }\n {/* {can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n } */}\n {can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasQualityCertificate', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasQualityCertificate', 'reports', 'Report') && }\n {can('getList', 'GasQualityCertificate', 'reports', 'Report') && }\n \n)\n\n\n\nexport default GasQualityCertificateFilter;","import React from 'react';\nimport GasQualityCertificateEmpty from \"./GasQualityCertificateEmpty\"\nimport List from '../Layout/list/List';\nimport ListActions from './GasQualityCertificateListActions';\nimport useGasQualityCertificateExporter from './useGasQualityCertificateExporter';\nimport GasQualityCertificateBulkActionButtons from './GasQualityCertificateBulkActionButtons';\nimport GasQualityCertificateFilter from './GasQualityCertificateFilter';\nimport GasQualityCertificateDatagrid, { useDefaultDatagridColumns } from './GasQualityCertificateDatagrid';\n\n\n\nconst GasQualityCertificateList = (props) => {\n const exporter = useGasQualityCertificateExporter()\n const manualSubmitForm = React.useRef(null);\n const columns = useDefaultDatagridColumns()\n\n return (\n }\n bulkActionButtons={}\n empty={}\n exporter={exporter}\n filters={}\n >\n \n \n )\n};\n\nGasQualityCertificateList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasQualityCertificateList;","import React from 'react';\nimport moment from 'moment'\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, DateTimeInput, FormDataConsumer, NumberInput, SimpleForm, TextInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// }));\n\nconst GasQualityCertificateCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasQualityCertificate', 'name') && }\n {can('create', 'GasQualityCertificate', 'description') && }\n {can('create', 'GasQualityCertificate', 'gqsId') && }\n {can('create', 'GasQualityCertificate', 'n2') && }\n {can('create', 'GasQualityCertificate', 'co2') && }\n {can('create', 'GasQualityCertificate', 'density') && }\n {can('create', 'GasQualityCertificate', 'validFrom') && \n {({ formData, ...rest }) => (\n \n )}\n }\n {can('create', 'GasQualityCertificate', 'validTo') && \n {({ formData, ...rest }) => (\n \n )}\n }\n {can('create', 'GasQualityCertificate', 'gasExtractionPoint') && }\n {can('create', 'GasQualityCertificate', 'gasDistributorStations', 'GasDistributorStation') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasQualityCertificate', 'reports', 'Report') && }\n {can('create', 'GasQualityCertificate', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasQualityCertificateCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Chip from '@material-ui/core/Chip';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasQualityCertificateBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n const gqsId = record.gqsId;\n\n return (\n \n
\n \n \n {can('getOne', 'GasQualityCertificate', 'name') && {name}}\n {can('getOne', 'GasQualityCertificate', 'description') && {description}}\n {can('getOne', 'GasQualityCertificate', 'tags', 'Tag') && \n \n }\n \n \n {can('getOne', 'GasQualityCertificate', 'gqsId') && }\n \n \n
\n
\n );\n};\n\n\n\nexport default GasQualityCertificateBanner;","import React from 'react';\nimport moment from 'moment'\nimport { makeStyles } from '@material-ui/core/styles';\nimport { DateTimeInput, FormDataConsumer, SimpleForm, TextInput, Toolbar, SaveButton, NumberInput, ReferenceArrayInput, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasQualityCertificateBanner from './GasQualityCertificateBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst GasQualityCertificateToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasQualityCertificate') && }\n {can(\"update\", \"GasQualityCertificate\") && }\n \n {can('remove', 'GasQualityCertificate') && }\n \n \n );\n}\n\n\n\nconst GasQualityCertificateEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasQualityCertificate', 'name') && }\n {can('update', 'GasQualityCertificate', 'description') && }\n {can('update', 'GasQualityCertificate', 'gqsId') && }\n {can('update', 'GasQualityCertificate', 'n2') && }\n {can('update', 'GasQualityCertificate', 'co2') && }\n {can('update', 'GasQualityCertificate', 'density') && }\n {can('update', 'GasQualityCertificate', 'validFrom') && \n {({ formData, ...rest }) => (\n \n )}\n }\n {can('update', 'GasQualityCertificate', 'validTo') && \n {({ formData, ...rest }) => (\n \n )}\n }\n {can('update', 'GasQualityCertificate', 'gasExtractionPoint') && }\n {can('update', 'GasQualityCertificate', 'gasDistributorStations', 'GasDistributorStation') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasQualityCertificate', 'reports', 'Report') && }\n {can('update', 'GasQualityCertificate', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasQualityCertificateEdit","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SendIcon from '@material-ui/icons/Send';\nimport { useNotify, useTranslate, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport getWriteValues from './getGasQualityCertificateWriteValues';\nimport writeGasQualityCertificate from '../../dataProvider/Databus/writeGasQualityCertificate';\nimport addHistory from '../../dataProvider/Core/addHistory';\nimport MButton from '@material-ui/core/Button';\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Dialog from \"@material-ui/core/Dialog\";\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n}));\n\n\n\nconst GasQualityCertificateWriteButton = ({ basePath, className, record, resource, ...props }) => {\n const dispatch = useDispatch();\n const translate = useTranslate();\n const notify = useNotify();\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n if (!record) return null;\n\n\n const handleClickOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleWrite = async () => {\n setOpen(false);\n // dispatch(fetchStart());\n\n const { writeTags } = await getWriteValues(record)\n\n if (writeTags && Array.isArray(writeTags) && Boolean(writeTags.length)) {\n writeGasQualityCertificate({ writeTags })\n .then(({ data }) => {\n\n notify('ra.notification.gas_quality_certificate_written', 'info', { smart_count: 1 });\n addHistory({\n resource: resource,\n item: record.id,\n name: record.name,\n description: record.description,\n action: \"WRITTEN\",\n data: {\n data: {\n writeTags: data.data\n },\n }\n });\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n dispatch(fetchEnd());\n });\n } else {\n notify('ra.notification.gas_quality_certificate_write_error', 'warning', { smart_count: 1 });\n dispatch(fetchEnd());\n }\n\n };\n\n return (\n <>\n \n \n \n \n \n {translate(\"resources.GasQualityCertificate.writeDialogTitle\", { smart_count: 1 })}\n \n \n \n {translate(\"resources.GasQualityCertificate.writeDialogContent\", { smart_count: 1 })}\n \n \n \n {translate('ra.action.cancel')}\n {translate('ra.action.write')}\n \n \n \n );\n};\n\nexport default GasQualityCertificateWriteButton;\n\n","import { DateField, EditButton, NumberField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField, TopToolbar } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasDistributorStationReferenceDatagrid } from '../GasDistributorStation/GasDistributorStationDatagrid';\nimport GasQualityCertificateBanner from './GasQualityCertificateBanner';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport WriteButton from './GasQualityCertificateWriteButton';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\nimport N2Field from \"./GasQualityCertificateN2Field\";\nimport CO2Field from \"./GasQualityCertificateCO2Field\";\nimport DensityField from \"./GasQualityCertificateDensityField\";\n\n\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasQualityCertificateActions = ({ basePath, className, data, hasEdit, hasList, resource, ...props }) => {\n\n return (\n \n {/* {can('writeGasQualityCertificate', 'GasQualityCertificate') && } */}\n {can('write', 'GasQualityCertificate') && }\n {can('update', 'GasQualityCertificate') && }\n \n )\n};\n\nconst GasQualityCertificateShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } actions={} {...props} >\n \n \n {can('getOne', 'GasQualityCertificate', 'n2') && }\n {can('getOne', 'GasQualityCertificate', 'co2') && }\n {can('getOne', 'GasQualityCertificate', 'density') && }\n {can('getOne', 'GasQualityCertificate', 'validFrom') && }\n {can('getOne', 'GasQualityCertificate', 'validTo') && }\n {can('getOne', 'GasQualityCertificate', 'writtenAt') && }\n {can('getOne', 'GasQualityCertificate', 'gasExtractionPoint') && }\n \n {can('getOne', 'GasQualityCertificate', 'reports', 'Report') && \n \n }\n {can('getOne', 'GasQualityCertificate', 'gasDistributorStations', 'GasDistributorStation') &&\n }\n actions={}\n perPage={25}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasQualityCertificate', 'gqsId') && }\n \n {can('getOne', 'GasQualityCertificate', 'id') && }\n {can('getOne', 'GasQualityCertificate', 'createdBy', \"User\") && \n \n }\n {can('getOne', 'GasQualityCertificate', 'createdAt') && }\n {can('getOne', 'GasQualityCertificate', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\nexport default GasQualityCertificateShow;","import Icon from '../Icons/Certificate';\nimport GasQualityCertificateList from './GasQualityCertificateList';\nimport GasQualityCertificateCreate from './GasQualityCertificateCreate';\nimport GasQualityCertificateEdit from './GasQualityCertificateEdit';\nimport GasQualityCertificateShow from './GasQualityCertificateShow';\n\nconst GasQualityCertificateIcon = Icon;\n\n\nexport {\n GasQualityCertificateIcon,\n GasQualityCertificateList,\n GasQualityCertificateShow,\n GasQualityCertificateCreate,\n GasQualityCertificateEdit,\n};\n","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n aisId: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n gasDistricts: {\n id: true,\n name: true,\n aisId: true,\n __resource: \"GasDistrict\",\n },\n reports: {\n id: true,\n name: true,\n __resource: \"Report\",\n },\n tags: {\n id: true,\n name: true,\n __resource: \"Tag\",\n },\n __resource: \"GasRegion\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import React from 'react';\nimport { BulkExportButton } from 'react-admin';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport BulkUpdateTagsButton from \"../Buttons/BulkUpdateTagsButton\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst GasRegionBulkActionButtons = props => (\n <>\n {can('update', 'GasRegion', 'tags', 'Tag') && }\n {can('getList', 'GasRegion') && }\n {can('remove', 'GasRegion') && }\n \n)\n\n\n\nexport default GasRegionBulkActionButtons;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReferenceArrayInput, TextInput } from 'react-admin';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport SearchInput from '../Inputs/SearchInput';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\nimport { matchTrue } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => ({\n mediumWidth: { width: theme.spacing(19) },\n}));\n\nconst GasRegionFilter = (props) => {\n const classes = useStyles()\n return (\n \n \n {can('getList', 'GasRegion', 'aisId') && }\n {can('getList', 'GasRegion', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasRegion', 'tags', 'Tag') && \n \n }\n {can('getList', 'GasRegion', 'reports', 'Report') && }\n {can('getList', 'GasRegion', 'reports', 'Report') && }\n \n )\n};\n\n\n\nexport default GasRegionFilter;","import React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\nimport useSelectedColumnsPreferences from '../../controller/preferences/useSelectedColumnsPreferences';\nimport useColumns from '../../controller/preferences/useColumns';\n\n\n\nexport const useDefaultDatagridColumns = () => {\n const classes = useListStyles()\n const columns = useColumns([\n can('getList', 'GasRegion', 'name') && ,\n can('getList', 'GasRegion', 'aisId') && ,\n can('getList', 'GasRegion', 'tags', 'Tag') && \n \n ,\n can('getList', 'GasRegion', 'createdAt') && ,\n can('getList', 'GasRegion', 'updatedAt') && ,\n ])\n\n return columns\n}\n\nconst GasRegionDatagrid = ({ columns, ...props }) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles()\n const SelectedColumns = useSelectedColumnsPreferences(columns);\n\n return isMobile ? (\n record.name}\n tertiaryText={record => record.aisId}\n linkType=\"show\"\n />\n ) : (\n \n {SelectedColumns}\n \n {can('getOne', 'GasRegion') && }\n {can('update', 'GasRegion') && }\n {can('remove', 'GasRegion') && }\n \n \n )\n};\n\n\n\nexport default GasRegionDatagrid;","import React, { Fragment } from 'react';\nimport List from '../Layout/list/List';\nimport ListAction from '../Layout/list/ListActionsWithSelectColumnsButton';\nimport useGasRegionExporter from './useGasRegionExporter';\nimport GasRegionBulkActionButtons from './GasRegionBulkActionButtons';\nimport GasRegionFilter from './GasRegionFilter';\nimport GasRegionDatagrid, { useDefaultDatagridColumns } from './GasRegionDatagrid';\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\n\nconst GasRegionList = (props) => {\n const exporter = useGasRegionExporter()\n const manualSubmitForm = React.useRef(null);\n const columns = useDefaultDatagridColumns()\n\n return (\n \n \n }\n bulkActionButtons={}\n exporter={exporter}\n filters={}\n >\n \n \n \n )\n};\n\nGasRegionList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default GasRegionList;","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, ReferenceArrayInput, required } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// flexReferenceArrayInput: {\n// display: \"flex\",\n// alignItems: \" flex-end\",\n// },\n// }));\n\nconst GasRegionCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'GasRegion', 'name') && }\n {can('create', 'GasRegion', 'description') && }\n {can('create', 'GasRegion', 'aisId') && }\n {can('create', 'GasRegion', 'gasDistricts', 'GasDistrict') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('create', 'GasRegion', 'reports', 'Report') && }\n {can('create', 'GasRegion', 'tags', 'Tag') && }\n \n \n );\n};\n\nexport default GasRegionCreate;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport TagArrayField from \"../Tag/TagArrayField\";\nimport TagChip from \"../Tag/TagChip\";\nimport AisChip from \"../Fields/AisChip\";\nimport { can } from \"../../abilityProvider\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n chipWarning: {\n backgroundColor: \"#ffecb3\",\n },\n}));\n\nconst GasRegionBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n
\n \n
\n \n \n {can('getOne', 'GasRegion', 'name') && {name}}\n {can('getOne', 'GasRegion', 'description') && {description}}\n {can('getOne', 'GasRegion', 'tags', 'Tag') && \n \n }\n \n \n {can('getList', 'GasRegion', 'aisId') && }\n \n \n
\n
\n
\n\n );\n};\n\n\n\nexport default GasRegionBanner;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, ReferenceArrayInput, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport GasRegionBanner from './GasRegionBanner';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport TagReferenceArrayInput from '../Tag/TagReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n referenceArrayInput: {\n marginTop: 8,\n marginBottom: 4,\n },\n}));\n\nconst GasRegionToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can('update', 'GasRegion') && }\n {can(\"update\", \"GasRegion\") && }\n \n {can('remove', 'GasRegion') && }\n \n \n );\n}\n\nconst GasRegionEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n }>\n {can('update', 'GasRegion', 'name') && }\n {can('update', 'GasRegion', 'description') && }\n {can('update', 'GasRegion', 'aisId') && }\n {can('create', 'GasRegion', 'gasDistricts', 'GasDistrict') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('update', 'GasRegion', 'reports', 'Report') && }\n {can('update', 'GasRegion', 'tags', 'Tag') && }\n \n \n \n );\n};\n\nexport default GasRegionEdit","import { DateField, Pagination, ReferenceManyField as RaReferenceManyField, SearchInput, TextField } from 'react-admin';\nimport DividerField from '../Fields/DividerField';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport { GasDistrictReferenceDatagrid } from '../GasDistrict/GasDistrictDatagrid';\nimport GasRegionBanner from './GasRegionBanner';\nimport MoreContent from '../Layout/MoreContent';\nimport NestedField from '../Fields/NestedField';\nimport NestedGridField from '../Fields/NestedGridField';\nimport React from 'react';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport ReferenceListLinkButton from '../Buttons/ReferenceListLinkButton';\nimport ReferenceManyActions from '../Fields/referenceManyField/ReferenceManyActions';\nimport ReferenceManyField from '../Fields/referenceManyField/ReferenceManyField';\nimport ReferenceManyFilter from '../Fields/referenceManyField/ReferenceManyFilter';\nimport ReportCard from '../Report/ReportCard';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\n\nconst ReferenceManyFilters = (props) => {\n return (\n \n \n \n )\n}\n\nconst ReferenceManyActionButtons = (props) => {\n return (\n \n \n \n )\n}\n\nconst GasRegionShow = props => {\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n\n return (\n } >\n \n\n {can('getOne', 'GasRegion', 'reports', 'Report') && \n \n }\n\n {can('getOne', 'GasRegion', 'gasDistricts', 'GasDistrict') &&\n }\n actions={}\n sort={{ field: 'name', order: 'ASC' }}\n perPage={100}\n pagination={}\n >\n \n }\n\n )} />\n\n \n \n {can('getOne', 'GasRegion', 'aisId') && }\n \n {can('getOne', 'GasRegion', 'id') && }\n {can('getOne', 'GasRegion', 'createdBy', 'User') && \n \n }\n {can('getOne', 'GasRegion', 'createdAt') && }\n {can('getOne', 'GasRegion', 'updatedAt') && }\n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n );\n};\n\n\n\nexport default GasRegionShow;","import Icon from '@material-ui/icons/Public';\nimport GasRegionList from './GasRegionList';\nimport GasRegionCreate from './GasRegionCreate';\nimport GasRegionEdit from './GasRegionEdit';\nimport GasRegionShow from './GasRegionShow';\n\nconst GasRegionIcon = Icon;\n\n\nexport {\n GasRegionIcon,\n GasRegionList,\n GasRegionShow,\n GasRegionCreate,\n GasRegionEdit,\n};\n","import React, { cloneElement, Children } from 'react';\nimport Card from '@material-ui/core/Card';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate } from 'react-admin';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n content: {}\n}));\n\nconst BlankShowLayout = ({\n children,\n classes: classesOverride,\n className,\n label,\n component: Content,\n ...props\n}) => {\n\n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n return (\n
\n {label && {translate(label, { _: label })}}\n \n {cloneElement(Children.only(children), {\n ...props,\n ...children.props\n })}\n \n
\n\n );\n};\n\nBlankShowLayout.defaultProps = {\n component: \"div\",\n};\n\n\nexport default BlankShowLayout;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport { FormControl, InputLabel, FormHelperText } from '@material-ui/core';\nimport get from 'lodash/get';\nimport JSONInput from 'react-json-editor-ajrm';\nimport locale from 'react-json-editor-ajrm/locale/ru';\n\nimport { useInput, FieldTitle, InputProps } from 'ra-core';\n\nimport { InputHelperText } from 'react-admin';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\n// import { Field } from 'react-final-form';\n// import { Labeled } from 'react-admin';\n\nconst useStyles = makeStyles(theme => {\n const light = theme.palette.type === 'light';\n const backgroundColor = light ? 'rgba(0, 0, 0, 0.04)' : 'rgba(255, 255, 255, 0.09)';\n\n return {\n root: {\n position: 'relative',\n backgroundColor,\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut,\n }),\n '&:hover': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)',\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor,\n },\n },\n '&$focused': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)',\n },\n '&$disabled': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)',\n },\n },\n label: {\n paddingLeft: 12,\n }\n };\n});\n\n\n\n\n\nconst githubTheme = {\n default: 'rgba(0, 0, 0, 0.87)',\n background: 'rgba(0, 0, 0, 0.04)',\n background_warning: '#fdd',\n string: '#d14',\n number: '#008080',\n colon: '#49B8F7',\n keys: 'rgba(0, 0, 0, 0.87)',\n keys_whiteSpace: '#835FB6',\n primitive: '#386FA4',\n error: \"#e45649\"\n};\n\n\nconst JsonField = ({ record, source, theme, ...props }) => {\n const json = get(record, source);\n if (!json) return null;\n const jsObject = (typeof json === 'string') ? JSON.parse(json) : json;\n\n return (\n\n \n\n\n )\n}\n\nJsonField.defaultProps = {\n theme: githubTheme,\n addLabel: true,\n};\n\nexport default JsonField;\n","import React from 'react';\nimport { Link } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport get from 'lodash/get';\nimport sanitizeFieldRestProps from '../Fields/sanitizeFieldRestProps';\n\n\nconst useStyles = makeStyles(theme => ({\n link: {\n color: theme.palette.link.main,\n },\n}));\n\nconst stopPropagation = e => e.stopPropagation();\n\nconst LinkField = ({\n className,\n classes: classesOverride,\n basePath,\n record,\n resource,\n source,\n link,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n\n const reference = get(record, \"resource\");\n const referenceId = get(record, \"item\");\n const title = get(record, source);\n const rootPath = basePath.replace(resource, reference);\n const resourceLinkPath = `${rootPath}/${encodeURIComponent(referenceId)}/${link}`;\n\n return (\n \n {title}\n \n );\n}\n\nLinkField.defaultProps = {\n classes: {},\n link: 'show',\n addLabel: true,\n};\n\nexport default LinkField;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\n\nconst useStyles = makeStyles(\n theme => ({\n root: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n paddingBottom: theme.spacing(1),\n minHeight: \"unset\",\n [theme.breakpoints.up('xs')]: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n [theme.breakpoints.down('sm')]: {\n paddingRight: theme.spacing(2),\n },\n [theme.breakpoints.down('xs')]: {\n padding: theme.spacing(1),\n backgroundColor: theme.palette.background.paper,\n },\n },\n actions: {\n paddingTop: theme.spacing(3),\n minHeight: theme.spacing(5),\n [theme.breakpoints.down('xs')]: {\n padding: theme.spacing(1),\n backgroundColor: theme.palette.background.paper,\n },\n },\n }),\n { name: 'RaListFieldToolbar' }\n);\n\nconst ListToolbar = props => {\n const { classes: classesOverride, filters, actions, ...rest } = props;\n const classes = useStyles(props);\n return (\n \n {filters &&\n React.cloneElement(filters, {\n ...rest,\n context: 'form',\n })}\n \n {actions &&\n React.cloneElement(actions, {\n ...rest,\n className: classes.actions,\n filters,\n ...actions.props,\n })}\n \n );\n};\n\nListToolbar.propTypes = {\n classes: PropTypes.object,\n filters: PropTypes.element,\n // @ts-ignore\n actions: PropTypes.oneOfType([PropTypes.bool, PropTypes.element]),\n // @ts-ignore\n exporter: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n};\n\nexport default React.memo(ListToolbar);\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { stringify } from 'query-string';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useListContext } from 'react-admin';\n\n\nconst useStyles = makeStyles(theme => ({\n button: {\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const ReferenceListLinkButton = ({ className, target, reference, record, ...props }) => {\n\n const classes = useStyles();\n const { basePath, filter, filterValues, ...fgsdf } = useListContext();\n\n return (\n \n Открыть список\n \n );\n};\n\n\nexport default ReferenceListLinkButton;","import React, { cloneElement, useMemo } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n sanitizeListRestProps,\n Identifier,\n SortPayload,\n Exporter,\n useListContext,\n useResourceContext,\n useResourceDefinition,\n TopToolbar,\n} from 'react-admin';\nimport ReferenceListLinkButton2 from '../Buttons/ReferenceListLinkButton2';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingTop: 0,\n paddingBottom: 0,\n minHeight: 0,\n },\n}));\n\nconst ListFieldActions = props => {\n const { className, exporter, filters, ...rest } = props;\n const classes = useStyles();\n const {\n currentSort,\n displayedFilters,\n filterValues,\n basePath,\n selectedIds,\n showFilter,\n total,\n } = useListContext(props);\n const resource = useResourceContext(rest);\n\n return useMemo(\n () => (\n \n {filters &&\n cloneElement(filters, {\n resource,\n showFilter,\n displayedFilters,\n filterValues,\n context: 'button',\n })}\n\n \n \n ),\n [resource, displayedFilters, filterValues, selectedIds, filters, total] // eslint-disable-line react-hooks/exhaustive-deps\n );\n};\n\n\n\nListFieldActions.defaultProps = {\n selectedIds: [],\n onUnselectItems: () => null,\n};\n\nexport default ListFieldActions;\n","import React, { cloneElement, Children } from 'react';\nimport { ListBase, ListToolbar, Pagination, ResourceContextProvider } from 'react-admin';\nimport Paper from '@material-ui/core/Paper';\nimport ListFieldToolbar from './ListFieldToolbar';\nimport DefaultListFieldActions from './ListFieldActions';\n\n\n\nconst ListField = ({\n children,\n actions,\n filters,\n component: Content,\n resource,\n ...props\n}) => {\n\n\n return (\n \n \n {(filters || actions) && (\n \n )}\n \n {cloneElement(Children.only(children), {\n ...sanitizeRestProps(props),\n })}\n \n \n \n \n\n\n\n\n );\n};\n\nListField.defaultProps = {\n actions: ,\n // classes: {},\n component: Paper,\n // bulkActionButtons: ,\n // pagination: ,\n // empty: ,\n addLabel: true,\n};\n\n\nconst sanitizeRestProps = (props) => ({\n basePath = null,\n currentSort = null,\n data = null,\n defaultTitle = null,\n displayedFilters = null,\n filterDefaultValues = null,\n filterValues = null,\n hasCreate = null,\n hasEdit = null,\n hasList = null,\n hasShow = null,\n hideFilter = null,\n history = null,\n ids = null,\n loading = null,\n loaded = null,\n location = null,\n match = null,\n onSelect = null,\n onToggleItem = null,\n onUnselectItems = null,\n options = null,\n page = null,\n permissions = null,\n perPage = null,\n resource = null,\n selectedIds = null,\n setFilters = null,\n setPage = null,\n setPerPage = null,\n setSort = null,\n showFilter = null,\n syncWithLocation = null,\n sort = null,\n total = null,\n ...rest\n}) => rest;\n\nexport default ListField;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Labeled } from 'react-admin';\nimport JsonField from '../Fields/JsonField';\n\n\n\nconst useStyles = makeStyles(theme => {\n return {\n root: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n [theme.breakpoints.down('xs')]: {\n gridTemplateColumns: \"1fr\",\n\n },\n },\n labeled: {\n width: \"100%\"\n },\n jsonField: {\n display: \"grid\",\n }\n }\n});\n\n\nconst HistoryField = props => {\n\n const classes = useStyles()\n\n return (\n
\n \n \n \n \n \n \n
\n );\n};\n\nexport default HistoryField;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { TextField, DateField, Filter, ShowContextProvider, useShowController } from 'react-admin';\nimport { ShowView } from '../Layout/ShowView';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport BlankShowLayout from '../Layout/BlankShowLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport MoreContent from '../Layout/MoreContent';\nimport Separator from '../Layout/Separator';\nimport EnumInput from '../Inputs/EnumInput'\nimport EnumField from '../Fields/EnumField';\nimport JsonField from '../Fields/JsonField';\nimport LinkField from './LinkField';\nimport NestedField from '../Fields/NestedField';\nimport ListField from '../Fields/ListField';\nimport { ReferenceFieldDatagrid as ReferenceHistoryDatagrid } from './HistoryList';\nimport HistoryField from './HistoryField';\nimport { dateTimeOptions } from '../../utils';\n\n\n\nconst useStyles = makeStyles(theme => {\n return {\n jsonField: {\n display: \"grid\",\n }\n }\n});\n\nconst HistoryFilter = (props) => (\n \n \n \n);\n\n\nconst HistoryShow = props => {\n const controllerProps = useShowController(props);\n const classes = useStyles()\n const showMoreButton = React.useRef(null);\n\n if (!controllerProps.record) return null\n\n const { item, name } = controllerProps.record\n\n return (\n \n }\n >\n \n \n \n \n {/* \n */}\n \n \n \n\n \n }\n filter={{\n item,\n }}\n sort={{ field: 'createdAt', order: 'DESC' }}\n perPage={10}\n >\n \n \n \n\n\n )} />\n\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default HistoryShow;","import Icon from '@material-ui/icons/History';\nimport HistoryList from './HistoryList';\nimport HistoryShow from './HistoryShow';\n\nconst HistoryIcon = Icon;\n\n\nexport {\n HistoryIcon,\n HistoryList,\n HistoryShow,\n};\n\n\n","import { Datagrid, ListContextProvider, ListView, SearchInput, TextField, useListController } from 'react-admin';\n\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport React from 'react';\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nconst ReportFilter = (props) => (\n \n \n \n);\n\nconst ReportList = props => {\n const classes = useListStyles();\n const controllerProps = useListController(props);\n const manualSubmitForm = React.useRef(null);\n\n return (\n \n }\n {...props}\n >\n \n {can('getList', 'Report', 'name') && }\n {can('getList', 'Report', 'description') && }\n \n \n \n )\n};\n\nReportList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default ReportList;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { TitleForRecord } from 'react-admin';\n\n\nconst useStyles = makeStyles({\n root: {},\n main: {\n display: 'flex',\n },\n content: {\n flex: '1 1 auto',\n },\n toolbar: {\n display: 'flex',\n justifyContent: \"space-between\",\n },\n});\n\nconst sanitizeRestProps = ({\n breadcrumbs,\n actions,\n aside,\n title,\n children,\n className,\n id,\n data,\n loading,\n loaded,\n resource,\n hasCreate,\n hasEdit,\n hasList,\n hasShow,\n version,\n match,\n location,\n history,\n options,\n locale,\n permissions,\n ...rest\n}) => rest;\n\nexport const ReportView = ({\n breadcrumbs,\n actions,\n aside,\n basePath,\n children,\n classes: classesOverride,\n className,\n defaultTitle,\n hasEdit,\n hasList,\n record,\n resource,\n title,\n version,\n ...rest\n}) => {\n const classes = useStyles({ classes: classesOverride });\n if (!children) {\n return null;\n }\n return (\n \n \n
\n {breadcrumbs && React.cloneElement(breadcrumbs, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n })}\n {actions && React.cloneElement(actions, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n style:{marginLeft: \"auto\"},\n ...actions.props,\n })}\n
\n \n \n
\n {record && React.Children.map(children, (field, index) => (\n React.isValidElement(field) ? React.cloneElement(field, {\n key: index,\n resource,\n basePath,\n record,\n version,\n }) : null\n ))}\n
\n {aside &&\n React.cloneElement(aside, {\n resource,\n basePath,\n record,\n version,\n })}\n \n \n );\n};\n\nReportView.propTypes = {\n breadcrumbs: PropTypes.element,\n actions: PropTypes.element,\n aside: PropTypes.element,\n basePath: PropTypes.string,\n classes: PropTypes.object,\n className: PropTypes.string,\n defaultTitle: PropTypes.any,\n hasEdit: PropTypes.bool,\n hasList: PropTypes.bool,\n loading: PropTypes.bool,\n loaded: PropTypes.bool,\n record: PropTypes.object,\n resource: PropTypes.string,\n title: PropTypes.any,\n version: PropTypes.node,\n};\n\nReportView.defaultProps = {\n classes: {},\n};\n","import React, { useState, useEffect } from 'react';\nimport { useNotify } from 'react-admin';\n\nimport Snackbar from '@material-ui/core/Snackbar'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nfunction ReactReport(props) {\n \n const notify = useNotify();\n\n const [open, setOpen] = useState(false);\n const [statusloader, setStatusloader] = useState('');\n const [module, setModule] = useState(null);\n\n const handleUpdateStatusProcess = (open, message, notifyStatus) => {\n \n if(message) {\n if(!notifyStatus) { \n setStatusloader(message);\n } else {\n notify(message, notifyStatus);\n }\n } \n\n if(open != null) { \n setOpen(open)\n }\n }\n\n useEffect(() => {\n if(!module) {\n import(`./Templates/${props.record.template}`).then(module => {\n setModule({ def: module.default }); \n });\n } \n return () => {};\n }, [module]);\n\n const { def: Component } = module || {};\n\n \n\n return (\n
\n {Component && }\n \n \n
Подготовка документа. Ожидайте
\n {(!Array.isArray(statusloader) ? [statusloader] : statusloader).map((x,i) => (
{x}
))} \n
\n }\n /> \n \n )\n}\n\n/*\nclass ReactReport extends omponent { \n \n constructor(props){\n super(props) \n this.state = {\n open: false,\n statusloader: ''\n }\n } \n\n componentDidMount() {\n import(`./Templates/${this.props.record.template}`).then(module => this.setState({ module: module.default })); \n }\n\n handleUpdateStatusProcess(open, message, notifyStatus) {\n if(open != null) { \n this.setState({ open });\n }\n \n if(message) {\n if(!notifyStatus) { \n this.setState({ statusloader: message });\n } else {\n //showNotification(message, notifyStatus);\n }\n } \n }\n\n render() {\n const { module: Component } = this.state \n //key={this.props.record.template}\n return(\n
\n {Component && }\n \n \n
Подготовка документа. Ожидайте
\n {(!Array.isArray(this.state.statusloader) ? [this.state.statusloader] : this.state.statusloader).map((x,i) => (
{x}
))} \n
\n }\n /> \n \n )\n }\n}\n*/\n\nexport default ReactReport\n","import React from 'react';\nimport url from 'url';\nimport { useShowController } from 'react-admin';\nimport { ReportView } from '../Layout/Report';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport Breadcrumb from '../Layout/Breadcrumb';\nimport ReactReport from './ReactReport';\n\n\n\nconst ReportBreadcrumbs = ({target, ...props}) => {\n return (\n \n \n \n \n \n \n \n );\n}\n\nconst ReportShow = props => {\n const controllerProps = useShowController(props);\n const target = url.parse(props.location.search, true).query;\n\n return (\n }\n title={} \n {...props}\n {...controllerProps}> \n \n \n );\n};\n\nexport default ReportShow;","import Icon from '@material-ui/icons/History';\nimport ReportList from './ReportList';\nimport ReportShow from './ReportShow';\n\nconst ReportIcon = Icon;\n\n\nexport {\n ReportIcon,\n ReportList,\n ReportShow,\n};\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React from 'react';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\nimport cronstrue from 'cronstrue/i18n';\n\n\nconst CronField = ({ className, resource, source, record = {}, ...props }) => {\n\n const cron = get(record, source);\n if (!cron) return null;\n const cronHumanize = cronstrue.toString(cron, {\n use24HourTimeFormat: true,\n verbose: true,\n locale: \"ru\",\n });\n\n return (\n \n {cronHumanize}\n \n )\n};\n\nCronField.defaultProps = {\n addLabel: true,\n};\n\nexport default CronField;","import React, { Fragment } from 'react';\nimport { Datagrid, TextField } from 'react-admin';\nimport List from '../Layout/list/List';\nimport BooleanField from '../Fields/BooleanField';\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport EnumField from '../Fields/EnumField';\nimport CronField from '../Fields/CronField';\nimport useListStyles from '../Layout/list/useListStyles';\nimport { can } from \"../../abilityProvider\";\nimport DocumentationLinkButton from '../Layout/DocumentationLinkButton';\n\n\n\nconst ReportDespatchList = ({ modelExport, ...props }) => {\n const classes = useListStyles();\n\n return (\n \n \n \n \n {can('getList', 'ReportDespatch', 'name') && }\n {can('getList', 'ReportDespatch', 'description') && }\n {can('getList', 'ReportDespatch', 'rangeOption') && }\n {can('getList', 'ReportDespatch', 'cron') && }\n {can('getList', 'ReportDespatch', 'enabled') && }\n \n \n \n )\n};\n\nReportDespatchList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default ReportDespatchList;","import React, { useCallback } from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\nimport { useInput, FieldTitle, InputHelperText, regex } from 'react-admin';\nimport cronstrue from 'cronstrue/i18n';\n\n\n\nconst croneValidation = (value, allValues) => {\n if (!value) return undefined;\n try {\n cronstrue.toString(value);\n } catch (error) {\n return error.replace(\"Error: \", \"\");\n }\n return undefined;\n};\n\nconst getCronHumanizeLabel = (value) => {\n if (!value) return undefined\n try {\n\n const cronHumanize = cronstrue.toString(value, {\n // throwExceptionOnParseError: false,\n use24HourTimeFormat: true,\n verbose: true,\n locale: \"ru\",\n });\n\n return cronHumanize\n\n } catch (err) {\n\n const a = err\n }\n};\n\nconst filter = createFilterOptions();\n\nconst CronInput = ({\n format,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onFocus,\n onChange,\n resource,\n source,\n validate = [],\n variant = 'filled',\n inputProps,\n className,\n optionValue = \"id\",\n optionText = \"name\",\n options = [],\n ...rest\n}) => {\n\n const {\n id,\n input,\n isRequired,\n meta: { error, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n resource,\n source,\n validate: [...validate, croneValidation],\n ...rest,\n });\n\n // let cronHumanize;\n // let cronError;\n\n // try {\n\n // cronHumanize = cronstrue.toString(input.value, {\n // // throwExceptionOnParseError: false,\n // use24HourTimeFormat: true,\n // verbose: true,\n // locale: \"ru\",\n // });\n\n // } catch (err) {\n\n // const a = err\n // }\n\n\n const handleChange = useCallback((event, newValue) => {\n if (typeof newValue === 'string') {\n input.onChange(newValue)\n } else {\n input.onChange(newValue ? newValue[optionValue] : newValue)\n }\n }, [])\n\n const filterOptions = useCallback((options, params) => {\n const filtered = filter(options, params);\n\n // Suggest the creation of a new value\n if (params.inputValue !== '') {\n filtered.push({\n id: \"OTHER\",\n name: params.inputValue,\n cron: params.inputValue\n });\n }\n\n return filtered;\n }, [])\n\n const getOptionLabel = useCallback((option) => {\n // Value selected with enter, right from the input\n if (typeof option === 'string') {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option[optionText];\n }, [])\n\n const renderOption = useCallback((option) => option[optionText], [])\n\n return (\n {\n\n const cronHumanize = getCronHumanizeLabel(params.inputProps.value)\n\n return (\n \n ) : null\n }\n label={\n \n }\n margin={margin}\n\n />\n )\n }}\n />\n );\n};\n\n\nexport default CronInput;\n","import React from 'react';\nimport CronInput2 from '../Inputs/CronInput2';\n\n\n\nconst choices = [\n { id: 'HOURLY', name: 'Ежечасно', cron: \"10 * * * *\" },\n { id: 'DAYLY', name: 'Ежедневно', cron: \"10 10 * * *\" },\n { id: 'WEEKLY', name: 'Еженедельно', cron: \"10 10 * * 1\" },\n { id: 'MONTHLY', name: 'Ежемесячно', cron: \"10 10 1 * *\" },\n { id: 'QUATERLY', name: 'Ежеквартально', cron: \"10 10 1 */3 *\" },\n { id: 'YEARLY', name: 'Ежегодно', cron: \"10 10 1 1 *\" },\n]\n\n\nconst ReportDespatchSchedulerInput = (props) => {\n\n\n\n return (\n \n );\n}\n\nexport default ReportDespatchSchedulerInput;","import React, { useCallback } from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useForm } from \"react-final-form\";\nimport { ReferenceInput, AutocompleteInput } from 'react-admin';\n\n\n\n\n\n\nconst ContactUserReferenceInput = (props) => {\n const form = useForm();\n const users = useSelector(state => state.admin.resources.User.data, shallowEqual);\n\n const handleChangeUser = useCallback((id) => {\n const user = users[id]\n form.change(\"name\", user.name)\n form.change(\"email\", user.email)\n }, [users]);\n\n\n\n return (\n \n \n \n );\n}\n\nexport default ContactUserReferenceInput;","import React, { useMemo } from 'react';\nimport get from 'lodash/get'\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { useFormState } from \"react-final-form\";\nimport { TextInput } from 'react-admin';\n\n\n\n\n\nconst ContactEmailInput = (props) => {\n\n const { values } = useFormState();\n const users = useSelector(state => state.admin.resources.User.data, shallowEqual);\n\n const helperText = useMemo(() => {\n const userId = get(values, [\"userId\"])\n const userEmail = get(users, [userId, \"email\"])\n const email = get(values, [\"email\"])\n\n return (userEmail && (userEmail !== email)) ? \"Не совпадает с email пользователя\" : null\n }, [users, values]);\n\n return (\n \n );\n}\n\nexport default ContactEmailInput;","import React from 'react';\nimport { SimpleForm, required, email } from 'react-admin';\nimport ContactUserReferenceInput from './ContactUserReferenceInput';\nimport ContactEmailInput from './ContactEmailInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst validateUser = [required()];\nconst validateEmail = [required(), email()];\n\n\nexport const ContactQuickCreateForm = props => {\n // const classes = useStyles();\n return (\n \n {can('create', 'Contact', 'userId') && }\n {can('create', 'Contact', 'email') && }\n \n )\n};","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { ReferenceArrayInput, AutocompleteArrayInput } from \"react-admin\";\n// import AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport QuickCreateButton from \"../Buttons/QuickCreateButton\";\nimport { ContactQuickCreateForm } from \"./ContactCreate\";\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles({\n container: {\n display: \"flex\",\n alignItems: \"flex-start\"\n },\n reference: {\n display: \"inline-block\",\n width: \"90%\"\n }\n});\n\nconst optionRenderer = choice => choice ? `${choice.name} <${choice.email}>` : choice;\n\nconst ContactReferenceArrayInput = props => {\n const classes = useStyles();\n return (\n
\n \n \n \n {can('create', 'Contact') && \n \n }\n
\n );\n};\n\nexport default ContactReferenceArrayInput;\n","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, BooleanInput, required } from 'react-admin';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport ReportDespatchSchedulerInput from './ReportDespatchSchedulerInput';\nimport CronInput2 from '../Inputs/CronInput2';\nimport EnumInput from '../Inputs/EnumInput'\nimport ContactReferenceArrayInput from '../Contact/ContactReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\nconst validateName = [required()]\nconst validateTo = [required()]\nconst validateReportsIds = [required()]\nconst validateCron = [required()]\n\n\nconst ReportDespatchCreate = props => {\n\n return (\n \n \n {can('create', 'ReportDespatch', 'name') && }\n {can('create', 'ReportDespatch', 'description') && }\n {can('create', 'ReportDespatch', 'to') && }\n {can('create', 'ReportDespatch', 'cc') && }\n {can('create', 'ReportDespatch', 'bcc') && }\n {can('create', 'ReportDespatch', 'reportsIds', 'Report') && }\n {can('update', 'ReportDespatch', 'rangeOption') && }\n {can('create', 'ReportDespatch', 'cron') && }\n {can('create', 'ReportDespatch', 'enabled') && }\n \n \n );\n};\n\nexport default ReportDespatchCreate;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, BooleanInput, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport EnumInput from '../Inputs/EnumInput'\nimport CancelButton from '../Buttons/CancelButton';\nimport ReportReferenceArrayInput from '../Report/ReportReferenceArrayInput';\nimport ReportDespatchSchedulerInput from './ReportDespatchSchedulerInput';\nimport ContactReferenceArrayInput from '../Contact/ContactReferenceArrayInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst validateName = [required()]\nconst validateTo = [required()]\nconst validateReportsIds = [required()]\nconst validateCron = [required()]\n\nconst ReportDespatchEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n \n {can('update', 'ReportDespatch', 'name') && }\n {can('update', 'ReportDespatch', 'description') && }\n {can('update', 'ReportDespatch', 'to') && }\n {can('update', 'ReportDespatch', 'cc') && }\n {can('update', 'ReportDespatch', 'bcc') && }\n {can('update', 'ReportDespatch', 'reportsIds', 'Report') && }\n {can('update', 'ReportDespatch', 'rangeOption') && }\n {can('update', 'ReportDespatch', 'cron') && }\n {can('update', 'ReportDespatch', 'enabled') && }\n \n \n\n \n );\n};\n\nexport default ReportDespatchEdit","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\n\n\n\nconst ContactChip = ({ className, classes: classesOverride, record, basePath, ...props }) => {\n\n if (!record) return null\n\n const label = `${record.name} <${record.email}>`\n\n return (\n \n\n );\n};\n\nexport default ContactChip;","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import differenceBy from 'lodash/differenceBy';\nimport difference from 'lodash/difference';\n\n\nexport const buildNestedArrayInput = (current = [], previous = []) => {\n\n const connect = current.filter(item => item.id).map(({ id }) => ({ id }))\n const create = current.filter(item => !item.id).map(({ id, ...input }) => ({ ...input }))\n const disconnect = differenceBy(previous, current, 'id').map(({ id }) => ({ id }))\n\n return {\n connect: connect.length > 0 ? connect : undefined,\n create: create.length > 0 ? create : undefined,\n disconnect: disconnect.length > 0 ? disconnect : undefined,\n }\n\n}\n\nexport const buildArrayInput = (current = [], previous = []) => {\n\n const connect = difference(current, previous).map(id => ({ id }))\n const disconnect = difference(previous, current).map(id => ({ id }))\n\n return {\n connect: connect.length > 0 ? connect : undefined,\n disconnect: disconnect.length > 0 ? disconnect : undefined,\n }\n\n}\n\nexport const sanitizeResource = data => {\n const result = Object.keys(data).reduce((acc, key) => {\n if (key.startsWith('_')) {\n return acc;\n }\n\n const dataKey = data[key];\n\n if (dataKey === null || dataKey === undefined) {\n return acc;\n }\n\n if (Array.isArray(dataKey)) {\n if (typeof dataKey[0] === 'object' && dataKey[0] !== null) {\n return {\n ...acc,\n [key]: dataKey.map(sanitizeResource),\n [`${key}Ids`]: dataKey.map(d => d.id),\n };\n } else {\n return { ...acc, [key]: dataKey };\n }\n }\n\n if (typeof dataKey === 'object' && dataKey !== null) {\n return {\n ...acc,\n ...(dataKey &&\n dataKey.id && {\n [`${key}.id`]: dataKey.id,\n }),\n [key]: sanitizeResource(dataKey),\n };\n }\n\n return { ...acc, [key]: dataKey };\n }, {});\n\n return result;\n};\n\nexport const omitDeepArrayWalk = (arr, key) => {\n return arr.map(val => {\n if (Array.isArray(val)) return omitDeepArrayWalk(val, key);\n else if (typeof val === \"object\") return omitDeep(val, key);\n return val;\n });\n};\n\nexport const omitDeep = (obj, key) => {\n const keys = Object.keys(obj);\n const newObj = {};\n keys.forEach(i => {\n if (i !== key) {\n const val = obj[i];\n if (val instanceof Date) newObj[i] = val;\n else if (Array.isArray(val)) newObj[i] = omitDeepArrayWalk(val, key);\n else if (typeof val === \"object\" && val !== null)\n newObj[i] = omitDeep(val, key);\n else newObj[i] = val;\n }\n });\n return newObj;\n};","import { ApolloClient, ApolloLink, InMemoryCache, createHttpLink, from } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { getAccessToken } from '../../authPrivider/getAccessToken';\nimport { URI_REPORT_DESPATCH } from '../../appsettings';\nimport { omitDeep } from './utils';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_REPORT_DESPATCH\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n\n const token = await getAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst cleanTypenameLink = new ApolloLink((operation, forward) => {\n if (operation.variables && !operation.variables.file) {\n // eslint-disable-next-line\n operation.variables = omitDeep(operation.variables, \"__typename\");\n }\n\n return forward(operation);\n});\n\nexport default new ApolloClient({\n link: from([\n authLink,\n cleanTypenameLink,\n httpLink\n ]),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n },\n query: {\n fetchPolicy: 'network-only',\n },\n },\n});\n","import { gql } from '@apollo/client';\n\nexport const CONTACT_FRAGMENT = gql`\n fragment ContactFragment on Contact {\n id\n name\n email\n userId\n }\n`\n\nexport const REPORT_DESPATCH_FRAGMENT = gql`\n fragment ReportDespatchFragment on ReportDespatch {\n id\n name\n description\n createdAt\n createdById\n updatedAt\n to {...ContactFragment}\n cc {...ContactFragment}\n bcc {...ContactFragment}\n reportsIds\n enabled\n cron\n rangeOption\n lastExecutionAt\n nextExecutionAt\n }\n ${CONTACT_FRAGMENT}\n`\n\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const RUN_REPORT_DESPATCH = gql`\n mutation runReportDespatch($where: ReportDespatchWhereUniqueInput!) {\n data: runReportDespatch(where: $where) {\n item {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.mutate({\n mutation: RUN_REPORT_DESPATCH,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import React, { useState, useCallback, Fragment } from 'react';\nimport { useDispatch } from 'react-redux';\nimport SendEmailNow from '../Icons/SendEmailNow';\nimport {\n useNotify,\n Button,\n fetchStart,\n fetchEnd,\n useRefresh,\n} from 'react-admin';\nimport runNow from \"../../dataProvider/ReportDespatch/ReportDespatch/runNow\";\n\n\n\n\n\n\n\n\n\nconst RunNowReportDespatchButton = ({\n basePath,\n classes: classesOverride,\n className,\n record,\n resource,\n ...rest }) => {\n\n const dispatch = useDispatch();\n const refresh = useRefresh();\n const notify = useNotify();\n const [loading, setLoading] = useState(false);\n\n const handleRunNow = useCallback(() => {\n\n setLoading(true);\n dispatch(fetchStart());\n\n runNow({\n where: { id: record.id }\n }).then(() => {\n notify('ra.notification.despatch_runned', 'info', { smart_count: 1 });\n refresh();\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n }, [setLoading, notify, refresh, fetchStart, fetchEnd, record])\n\n\n return (\n \n \n \n );\n};\n\nexport default RunNowReportDespatchButton;","import { DateField, ArrayField, SingleFieldList, ChipField, ReferenceField, ReferenceArrayField, TextField, TopToolbar, EditButton } from 'react-admin';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport MoreContent from '../Layout/MoreContent';\nimport BooleanField from '../Fields/BooleanField';\nimport CronField from '../Fields/CronField';\nimport EnumField from '../Fields/EnumField';\nimport React from 'react';\nimport Separator from '../Layout/Separator';\nimport { Show } from '../Layout/Show';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport { can } from \"../../abilityProvider\";\nimport { dateTimeOptions } from '../../utils';\nimport ContactChip from '../Contact/ContactChip';\nimport ReportChip from '../Report/ReportChip';\nimport RunNowReportDespatchButton from '../Buttons/RunNowReportDespatchButton';\n\n\n\n\nconst ReportDespatchShowActions = ({ basePath, className, data, hasEdit, hasList, resource, ...props }) => {\n\n\n return (\n \n {can('update', 'ReportDespatch') && }\n {can('update', 'ReportDespatch') && }\n \n )\n};\n\nconst ReportDespatchShow = props => {\n const showMoreButton = React.useRef(null);\n\n return (\n }\n title={}\n {...props}\n >\n \n {can('getOne', 'ReportDespatch', 'name') && }\n {can('getOne', 'ReportDespatch', 'description') && }\n {can('getOne', 'ReportDespatch', 'to') && \n \n \n \n }\n {can('getOne', 'ReportDespatch', 'cc') && \n \n \n \n }\n {can('getOne', 'ReportDespatch', 'bcc') && \n \n \n \n }\n {can('getOne', 'ReportDespatch', 'reportsIds', \"Report\") && \n \n \n \n }\n {can('getOne', 'ReportDespatch', 'rangeOption') && }\n {can('getOne', 'ReportDespatch', 'cron') && }\n {can('getOne', 'ReportDespatch', 'lastExecutionAt') && }\n {can('getOne', 'ReportDespatch', 'nextExecutionAt') && }\n {can('getOne', 'ReportDespatch', 'enabled') && }\n \n\n )} />\n\n \n \n {can('getOne', 'ReportDespatch', 'id') && }\n {can('getOne', 'ReportDespatch', 'createdById', 'User') && \n \n }\n {can('getOne', 'ReportDespatch', 'createdAt') && }\n {can('getOne', 'ReportDespatch', 'updatedAt') && }\n \n \n \n );\n};\n\n\n\nexport default ReportDespatchShow;","import Icon from '../Icons/Despatch';\nimport ReportDespatchList from './ReportDespatchList';\nimport ReportDespatchCreate from './ReportDespatchCreate';\nimport ReportDespatchEdit from './ReportDespatchEdit';\nimport ReportDespatchShow from './ReportDespatchShow';\n\nconst ReportDespatchIcon = Icon;\n\n\nexport {\n ReportDespatchIcon,\n ReportDespatchList,\n ReportDespatchShow,\n ReportDespatchCreate,\n ReportDespatchEdit,\n};\n","import React from 'react';\nimport { SelectInput } from 'react-admin';\n\n\n\nconst resources = [\n { id: 'GasRegion', name: 'resources.Tag.enums.resource.GasRegion' },\n { id: 'GasDistrict', name: 'resources.Tag.enums.resource.GasDistrict' },\n { id: 'GasDistributorOrganization', name: 'resources.Tag.enums.resource.GasDistributorOrganization' },\n { id: 'GasDistributorStation', name: 'resources.Tag.enums.resource.GasDistributorStation' },\n { id: 'GasDistributorStationOutput', name: 'resources.Tag.enums.resource.GasDistributorStationOutput' },\n { id: 'GasConsumer', name: 'resources.Tag.enums.resource.GasConsumer' },\n { id: 'GasMeterPad', name: 'resources.Tag.enums.resource.GasMeterPad' },\n { id: 'GasMeterUnit', name: 'resources.Tag.enums.resource.GasMeterUnit' },\n { id: 'GasQualityCertificate', name: 'resources.Tag.enums.resource.GasQualityCertificate' },\n];\n\nconst TagResourceInput = props => {\n return ();\n};\n\nexport default TagResourceInput","import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport Typography from '@material-ui/core/Typography';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps';\nimport CheckboxBlank from '../Icons/CheckboxBlank';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n alignItems: \"center\"\n }\n}));\n\nconst ColorField = ({ className, record, source, hex, ...props }) => {\n\n const classes = useStyles();\n const color = get(record, source);\n if (!color) { return null };\n\n\n return (\n
\n \n {hex && {color}}\n
\n\n )\n};\n\nColorField.propTypes = {\n label: PropTypes.string,\n record: PropTypes.object,\n source: PropTypes.string.isRequired,\n};\n\nColorField.defaultProps = {\n addLabel: true,\n};\n\nexport default ColorField;","import { BulkDeleteButton, BulkExportButton, Datagrid, DateField, ListContextProvider, ListView, TextField, useListController, useTranslate } from 'react-admin';\nimport customExporter, { dateFormatter, enumFormatter } from '../../exporter';\n\nimport ResourceInput from './TagResourceInput';\nimport EnumInput from '../Inputs/EnumInput';\nimport ColorField from '../Fields/ColorField';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport EnumField from '../Fields/EnumField';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport React from 'react';\nimport SearchInput from '../Inputs/SearchInput'\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport { can } from \"../../abilityProvider\";\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\nconst TagBulkActionButtons = props => (\n <>\n {can('remove', 'Tag',) && }\n {can('getList', 'Tag',) && }\n \n);\n\nconst TagFilter = (props) => (\n \n \n \n \n \n);\n\nconst modelExport = {\n id: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n color: true,\n type: enumFormatter,\n resource: true,\n __resource: \"Tag\",\n};\n\nconst TagList = props => {\n const classes = useListStyles();\n const translate = useTranslate();\n const controllerProps = useListController(props);\n const exporter = customExporter(controllerProps.defaultTitle, modelExport, { translate })\n const manualSubmitForm = React.useRef(null);\n\n return (\n \n }\n filters={}\n >\n \n \n \n {can('getList', 'Tag', 'type') && }\n {can('getList', 'Tag', 'resource') && }\n {can('getList', 'Tag', 'color') && }\n \n \n \n {can('getOne', 'Tag') && }\n {can('update', 'Tag') && }\n \n \n \n \n )\n};\n\nTagList.defaultProps = {\n filter: { resource_in: ['GasRegion', 'GasDistrict', 'GasDistributorOrganization', 'GasDistributorStation', 'GasDistributorStationOutput', 'GasConsumer', 'GasMeterPad', 'GasMeterUnit', 'GasQualityCertificate'] },\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\n\nexport default TagList;","import React, { useState } from 'react'\nimport { red, pink, purple, deepPurple, indigo, blue, lightBlue, cyan, teal, green, lightGreen, lime, yellow, amber, orange, deepOrange, brown, blueGrey, grey } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\n// import { InputBase } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport CardContent from '@material-ui/core/CardContent';\nimport map from 'lodash/map'\nimport Swatch from './Swatch'\nimport { ColorWrap } from \"react-color/lib/components/common\";\nimport { isValidHex } from \"react-color/lib/helpers/color\"\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n // position: \"relative\"\n },\n grid: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(9, 24px)\",\n gridTemplateRows: 24,\n gridGap: 4,\n },\n swatch: {\n width: 30,\n height: 30,\n float: 'left',\n borderRadius: 4,\n margin: '0 6px 6px 0',\n },\n input: {\n width: 136\n }\n}));\n\nexport const ColorPicker = ({\n onChange,\n onSwatchHover,\n colors,\n className,\n hex\n}) => {\n const classes = useStyles()\n // const [value, setValue] = useState(hex)\n\n const handleSwatch = (hexcode, event) => {\n if (isValidHex(hexcode)) {\n onChange({\n hex: hexcode,\n source: 'hex',\n }, event)\n // setValue(hexcode)\n }\n }\n\n // const handleChange = (event) => {\n\n // const hexcode = event.target.value\n // setValue(hexcode)\n // if (isValidHex(hexcode)) {\n // onChange({\n // hex: hexcode,\n // source: 'hex',\n // }, event)\n\n // }\n // }\n\n return (\n \n \n {map(colors, (c, i) => {\n return (\n \n )\n })}\n \n {/* \n \n\n */}\n \n )\n}\n\nconst colorsGenerator = (colors) => {\n const colorsArray = colors.reduce((acc, color) => {\n const colorArray = [color['900'], color['800'], color['700'], color['600'], color['500'], color['400'], color['300'], color['200'], color['100']]\n\n return [...acc, ...colorArray]\n }, [])\n\n return colorsArray\n}\n\nColorPicker.defaultProps = {\n colors: colorsGenerator([red, pink, purple, deepPurple, indigo, blue, lightBlue, cyan, teal, green, lightGreen, lime, yellow, amber, orange, deepOrange, brown, blueGrey, grey]),\n // colors: [\n // red['900'], red['700'], red['500'], red['300'], red['100'],\n // pink['900'], pink['700'], pink['500'], pink['300'], pink['100'],\n // purple['900'], purple['700'], purple['500'], purple['300'], purple['100'],\n // deepPurple['900'], deepPurple['700'], deepPurple['500'], deepPurple['300'], deepPurple['100'],\n // indigo['900'], indigo['700'], indigo['500'], indigo['300'], indigo['100'],\n // blue['900'], blue['700'], blue['500'], blue['300'], blue['100'],\n // lightBlue['900'], lightBlue['700'], lightBlue['500'], lightBlue['300'], lightBlue['100'],\n // cyan['900'], cyan['700'], cyan['500'], cyan['300'], cyan['100'],\n // teal['900'], teal['700'], teal['500'], teal['300'], teal['100'],\n // '#194D33', green['700'], green['500'], green['300'], green['100'],\n // lightGreen['900'], lightGreen['700'], lightGreen['500'], lightGreen['300'], lightGreen['100'],\n // lime['900'], lime['700'], lime['500'], lime['300'], lime['100'],\n // yellow['900'], yellow['700'], yellow['500'], yellow['300'], yellow['100'],\n // amber['900'], amber['700'], amber['500'], amber['300'], amber['100'],\n // orange['900'], orange['700'], orange['500'], orange['300'], orange['100'],\n // deepOrange['900'], deepOrange['700'], deepOrange['500'], deepOrange['300'], deepOrange['100'],\n // brown['900'], brown['700'], brown['500'], brown['300'], brown['100'],\n // blueGrey['900'], blueGrey['700'], blueGrey['500'], blueGrey['300'], blueGrey['100'],\n // '#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF'\n // ]\n}\n\nexport default ColorWrap(ColorPicker)","import React from 'react'\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { handleFocus } from 'react-color/lib//helpers/interaction'\n\n\nconst useStyles = makeStyles(theme => ({\n root: ({ color }) => ({\n background: color,\n width: 24,\n height: 24,\n borderRadius: 4,\n cursor: 'pointer',\n outline: 'none',\n }),\n focus: ({ color }) => ({\n boxShadow: `0 0 4px ${color}`,\n })\n}));\n\n\nconst ENTER = 13\n\nexport const Swatch = ({\n color,\n onClick = () => { },\n onHover,\n title = color,\n focus, }) => {\n\n const classes = useStyles({ color })\n const handleClick = e => onClick(color, e)\n const handleKeyDown = e => e.keyCode === ENTER && onClick(color, e)\n const handleHover = e => onHover(color, e)\n\n const optionalEvents = {}\n if (onHover) {\n optionalEvents.onMouseOver = handleHover\n }\n\n return (\n \n )\n}\n\nexport default handleFocus(Swatch)","import ColorInput from \"./ColorInput\";\n\nexport default ColorInput","import React, { useState } from 'react';\nimport Popover from '@material-ui/core/Popover';\nimport TextField from '@material-ui/core/TextField';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport CheckboxBlank from '../../Icons/CheckboxBlank';\nimport { useInput, FieldTitle, InputHelperText } from 'react-admin';\nimport sanitizeRestProps from '../sanitizeRestProps';\nimport ColorPicker from './ColorPicker';\n\n\n\nconst ColorInput = ({\n format,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onFocus,\n onChange,\n options,\n resource,\n source,\n validate,\n variant = 'filled',\n inputProps,\n className,\n ...rest\n}) => {\n\n const {\n id,\n input,\n isRequired,\n meta: { error, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n resource,\n source,\n validate,\n ...rest,\n });\n\n const [anchorEl, setAnchorEl] = useState(null);\n\n const handleFocus = (event) => {\n if (!Boolean(event.relatedTarget?.parentElement?.id === \"color-input-popover\")) {\n setAnchorEl(event.currentTarget);\n }\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = ({ hex }) => {\n input.onChange(hex)\n };\n\n return (\n <>\n \n ) : null\n }\n label={\n \n }\n margin={margin}\n onFocus={handleFocus}\n InputProps={{\n ...inputProps,\n startAdornment: (\n \n \n \n ),\n }}\n {...options}\n {...sanitizeRestProps(rest)}\n />\n \n \n \n \n );\n\n};\n\n\nexport default ColorInput;\n","import React from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, SimpleForm, TextInput, required } from 'react-admin';\n// import EnumInput from '../Inputs/EnumInput';\nimport ColorInput from '../Inputs/ColorInput';\nimport ResourceInput from './TagResourceInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\n// const useStyles = makeStyles(theme => ({\n\n// }));\n\nconst TagCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n {can('create', 'Tag', 'name') && }\n {can('create', 'Tag', 'description') && }\n {/* {can('create', 'Tag', 'type') && } */}\n {can('create', 'Tag', 'resource') && }\n {can('create', 'Tag', 'color') && }\n \n \n );\n};\n\nexport default TagCreate;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport { SimpleForm, TextInput, Toolbar, SaveButton, DeleteButton, required } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport ResourceInput from './TagResourceInput';\n// import EnumInput from '../Inputs/EnumInput';\nimport ColorInput from '../Inputs/ColorInput';\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n\n}));\n\nconst TagToolbar = props => {\n const classes = useStyles();\n const isSystem = props.record.type === \"SYSTEM\"\n\n return (\n \n {can('update', 'Tag') && }\n \n {can('delete', 'Tag') && !isSystem && } />}\n \n );\n}\n\nconst TagEdit = props => {\n // const classes = useStyles();\n\n return (\n } {...props} >\n \n }>\n {can('update', 'Tag', 'name') && }\n {can('update', 'Tag', 'description') && }\n {/* {can('create', 'Tag', 'type') && } */}\n {can('update', 'Tag', 'resource') && }\n {can('update', 'Tag', 'color') && }\n \n \n \n );\n};\n\nexport default TagEdit","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport { can } from \"../../abilityProvider\";\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n\n },\n}));\n\nconst TagBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n\n return (\n \n \n \n \n {can('getOne', 'Tag', 'name') && {name}}\n {can('getOne', 'Tag', 'description') && {description}}\n \n \n \n \n );\n};\n\n\n\nexport default TagBanner;","import React from 'react';\nimport { TextField, DateField } from 'react-admin';\nimport { Show } from '../Layout/Show';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport MoreContent from '../Layout/MoreContent';\nimport Separator from '../Layout/Separator';\nimport TagBanner from './TagBanner';\n// import { can } from \"../../abilityProvider\";\nimport NestedField from '../Fields/NestedField';\nimport EnumField from '../Fields/EnumField';\nimport ColorField from '../Fields/ColorField';\nimport { dateTimeOptions } from '../../utils';\n\n\n\nconst TagShow = props => {\n const showMoreButton = React.useRef(null);\n\n return (\n } {...props} >\n \n\n \n \n \n \n \n\n )} />\n\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TagShow;","import Icon from '@material-ui/icons/Label';\nimport TagList from './TagList';\nimport TagCreate from './TagCreate';\nimport TagEdit from './TagEdit';\nimport TagShow from './TagShow';\n\nconst TagIcon = Icon;\n\n\nexport {\n TagIcon,\n TagList,\n TagShow,\n TagCreate,\n TagEdit,\n};\n","import React from \"react\";\nimport { Children, cloneElement } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\n\nconst useStyles = makeStyles({\n toolbar: {\n alignItems: \"center\",\n display: \"flex\",\n marginTop: -1,\n marginBottom: -1\n }\n});\n\nconst RowToolbar = ({ children, ...props }) => {\n const classes = useStyles();\n return (\n
\n {Children.map(children, (button) => cloneElement(button, props))}\n
\n );\n};\n\n\nexport default RowToolbar","import deleteFromTrash from \"./deleteFromTrash\";\n\n\nexport default ({ resource, items, ids }) => {\n return Promise.all(\n ids.map(id =>\n deleteFromTrash((items) ? { resource: items[id].resource , where: {id: items[id].item}} : {resource, where: {id}})\n )\n ).then(results => {\n const data = results.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n return { data };\n });\n};","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\nexport default ({resource, where}) => {\n return apolloCoreClient.mutate({\n mutation: gql`mutation delete${resource}($where: ${resource}WhereUniqueInput!) {\n data: delete${resource}(where: $where) {\n id\n }\n }`,\n variables: { where },\n onError: (error) => {\n alert(error)\n }\n });\n};","import React, { useState } from 'react';\nimport { useSelector, useDispatch, shallowEqual } from 'react-redux';\nimport { useNotify, useUnselectAll, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport deleteManyFromTrash from \"../../dataProvider/Core/deleteManyFromTrash\";\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n deleteButton: {\n color: theme.palette.error.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n // Reset on mouse devices\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n}));\n\nconst BulkDeleteButton = ({\n basePath,\n resource,\n classes: classesOverride,\n className,\n filterValues,\n selectedIds,\n ...rest }) => {\n\n const trashItems = useSelector(state => state.admin.resources.TrashItem.data, shallowEqual);\n const dispatch = useDispatch();\n const refresh = useRefresh();\n const notify = useNotify();\n const unselectAll = useUnselectAll();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n\n const handleClick = () => {\n\n setLoading(true);\n dispatch(fetchStart());\n\n deleteManyFromTrash({\n resource,\n items: trashItems,\n ids: selectedIds,\n }).then(() => {\n refresh();\n notify('ra.notification.deleted_from_trash', 'info', { smart_count: selectedIds.length });\n unselectAll(resource)\n\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n );\n\n};\n\nexport default BulkDeleteButton;","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\nexport default ({resource, where}) => {\n return apolloCoreClient.mutate({\n mutation: gql`mutation restore${resource}($where: ${resource}WhereUniqueInput!) {\n data: restore${resource}(where: $where) {\n id\n }\n }`,\n variables: { where },\n onError: (error) => {\n alert(error)\n }\n });\n};","import React, { useState } from 'react';\nimport { useSelector, useDispatch, shallowEqual } from 'react-redux';\nimport { useNotify, useUnselectAll, useRefresh, fetchStart, fetchEnd, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport RestoreIcon from '@material-ui/icons/RestoreFromTrash';\nimport restoreManyFromTrash from '../../dataProvider/Core/restoreManyFromTrash';\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n restoreButton: {},\n}));\n\nconst BulkRestoreButton = ({ \n basePath,\n resource,\n classes: classesOverride,\n className,\n filterValues,\n selectedIds,\n ...rest }) => {\n\n const trashItems = useSelector(state => state.admin.resources.TrashItem.data, shallowEqual);\n const dispatch = useDispatch();\n const refresh = useRefresh();\n const notify = useNotify();\n const unselectAll = useUnselectAll();\n const classes = useStyles({ classes: classesOverride });\n const [loading, setLoading] = useState(false);\n \n const handleClick = () => {\n\n setLoading(true);\n dispatch(fetchStart());\n\n restoreManyFromTrash({\n resource,\n items: trashItems,\n ids: selectedIds,\n }).then(() => {\n refresh();\n notify('ra.notification.restored_from_trash', 'info', { smart_count: selectedIds.length });\n unselectAll(resource)\n \n })\n .catch((error) => {\n notify( typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning' );\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n );\n \n};\n\nexport default BulkRestoreButton;","import restoreFromTrash from './restoreFromTrash';\n\n\nexport default ({ resource, items, ids }) => {\n return Promise.all(\n ids.map(id =>\n restoreFromTrash((items) ? { resource: items[id].resource , where: {id: items[id].item}} : {resource, where: {id}})\n )\n ).then(results => {\n const data = results.reduce(\n (acc, { data }) => [...acc, data.id],\n []\n );\n return { data };\n });\n};","import React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useDispatch } from 'react-redux';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport RestoreIcon from '@material-ui/icons/RestoreFromTrash';\nimport { useRefresh, useNotify, useRedirect, fetchStart, fetchEnd, Button } from 'react-admin';\nimport restoreFromTrash from '../../dataProvider/Core/restoreFromTrash';\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n ...rest\n}) => rest;\n\nconst useStyles = makeStyles(theme => ({\n restoreButton: {},\n}));\n\nconst RestoreButton = ({\n classes: classesOverride,\n className,\n onClick,\n resource,\n record,\n basePath,\n redirect: redirectTo,\n ...rest\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const dispatch = useDispatch();\n const redirect = useRedirect();\n const refresh = useRefresh();\n const notify = useNotify();\n const [loading, setLoading] = useState(false);\n \n const handleRestore = () => {\n setLoading(true);\n dispatch(fetchStart()); // start the global loading indicator \n \n restoreFromTrash({\n resource,\n where: {id: record.id}\n })\n .then(() => {\n notify('ra.notification.restored_from_trash', 'info', { smart_count: 1 });\n redirect(redirectTo, basePath);\n refresh();\n })\n .catch((error) => {\n notify(\n typeof error === 'string' ? error : error.message || 'ra.notification.http_error',\n 'warning'\n )\n })\n .finally(() => {\n setLoading(false);\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n };\n\n return (\n \n \n \n );\n};\n\nRestoreButton.propTypes = {\n basePath: PropTypes.string,\n classes: PropTypes.object,\n className: PropTypes.string,\n record: PropTypes.object,\n redirect: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n ]),\n resource: PropTypes.string,\n};\n\nRestoreButton.defaultProps = {\n redirect: false,\n};\n\nexport default RestoreButton;\n","import { ResourceContextProvider, AutocompleteInput, Datagrid, DateInput, DateField, ListContextProvider, ListView, TextField, ReferenceInput, useListController } from 'react-admin';\nimport { can, abilitySubjectConditions as asc, rulesToFields } from '../../abilityProvider';\nimport RowToolbar from \"../Layout/RowToolbar\";\nimport BulkDeleteButton from \"../Buttons/BulkDeleteButton\";\nimport BulkRestoreButton from '../Buttons/BulkRestoreButton';\nimport { DeleteButton } from 'react-admin';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport EnumField from '../Fields/EnumField';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport React from 'react';\nimport RestoreButton from '../Buttons/RestoreButton';\nimport SearchInput from '../Inputs/SearchInput'\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport { dateTimeOptions } from '../../utils';\nimport useListStyles from '../Layout/list/useListStyles';\n\n\nconst matchTrue = () => true;\n\nconst TrashItemBulkActionButtons = props => (\n <>\n {/**/}\n {can(\"restore\", \"TrashItem\") && }\n {can(\"delete\", \"TrashItem\") && } />}\n\n \n);\n\nconst TrashItemFilter = (props) => (\n \n \n \n \n \n \n \n \n);\n\n// const redirectToItem = (id, basePath, record) => {\n\n// return `/${record.resource}/${record.item}/show`\n// };\n\n\nconst EmbededRestoreButton = (props) => {\n return (\n \n \n \n );\n};\n\nconst EmbededDeleteButton = (props) => {\n return (\n \n } variant=\"text\" />\n \n );\n};\n\n\nconst TrashItemList = props => {\n const filter = { resource_in: [\"GasRegion\", \"GasDistrict\", \"BalanceRegion\", \"GasDistributorOrganization\", \"GasDistributorStation\", \"GasDistributorStationOutput\", \"GasConsumer\", \"GasMeterPad\", \"GasMeterUnit\", \"GasMeterPoint\", \"GasQualityCertificate\", \"Counterparty\", \"User\"].filter((resource) => can('getList', resource)) };\n const controllerProps = useListController({ ...props, filter });\n const classes = useListStyles();\n const manualSubmitForm = React.useRef(null);\n\n return (\n \n }\n bulkActionButtons={}\n exporter={false}\n filter={filter}\n {...props}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n};\n\nTrashItemList.defaultProps = {\n perPage: 50,\n sort: { field: 'deletedAt', order: 'DESC' },\n};\n\nexport default TrashItemList;","import Icon from '@material-ui/icons/Delete';\nimport TrashItemList from './TrashItemList';\nimport TrashItemShow from './TrashItemShow';\n\nconst TrashItemIcon = Icon;\n\n\nexport {\n TrashItemIcon,\n TrashItemList,\n TrashItemShow,\n};\n\n\n","import { useTranslate, useResourceContext } from 'react-admin';\nimport customExporter, { dateFormatter, enumFormatter } from '../../exporter';\n\n\n\nconst useExporter = () => {\n const translate = useTranslate()\n const resource = useResourceContext()\n const fileName = translate(`resources.${resource}.name`, { smart_count: 2 })\n const modelExport = {\n id: true,\n name: true,\n description: true,\n createdBy: {\n id: true,\n name: true,\n __resource: \"User\",\n },\n createdAt: dateFormatter,\n updatedAt: dateFormatter,\n email: true,\n login: true,\n phone: true,\n phoneContact: true,\n position: true,\n role: enumFormatter,\n access: {\n id: true,\n resource: enumFormatter,\n __resource: \"Access\",\n },\n counterparty: {\n id: true,\n name: true,\n __resource: \"Counterparty\",\n },\n __resource: \"User\",\n }\n const exporter = customExporter(fileName, modelExport, { translate })\n\n return exporter\n}\n\n\n\nexport default useExporter;","import { BulkExportButton } from 'react-admin';\nimport { can } from '../../abilityProvider';\nimport BulkRemoveButton from '../Buttons/BulkRemoveButton';\nimport React from 'react';\n\n\n\nconst UserBulkActionButtons = props => (\n <>\n {can('getList', 'User') && }\n {can('remove', 'User') && }\n \n)\n\n\n\nexport default UserBulkActionButtons;","import { ReferenceInput, ReferenceArrayInput, AutocompleteInput } from 'react-admin';\nimport { can, rulesToFields } from '../../abilityProvider';\nimport AutocompleteArrayInput from \"../Inputs/AutocompleteArrayInput\";\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport SelectedItem from '../Inputs/ResourceAutocompleteSelectedItem';\nimport QuickFilter from \"../Layout/filter/QuickFilter\";\nimport EnumInput from '../Inputs/EnumInput';\nimport ManualSubmitFilter from '../Layout/filter/ManualSubmitFilter';\nimport NullableBooleanInput from \"../Inputs/BooleanInput\";\nimport React from 'react';\nimport SearchInput from '../Inputs/SearchInput';\nimport { matchTrue } from '../../utils';\n\n\n\n\nconst filterRoles = (value) => {\n const { role_in, role } = rulesToFields(\"getList\", \"User\");\n return role_in ? role_in.includes(value.name) : true;\n}\n\nconst UserFilter = (props) => (\n \n \n \n \n {can('getList', 'User', 'counterparty', 'Counterparty') && \n \n }\n {can('getList', 'User', 'access') && \n \n }\n {can('getList', 'User', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'User', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'User', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'User', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'User', 'access') && \n } selectedItem={} matchSuggestion={matchTrue} />\n }\n {can('getList', 'User', 'access') && }\n \n)\n\n\n\nexport default UserFilter;","import Avatar from '@material-ui/core/Avatar';\nimport React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport sanitizeFieldRestProps from './sanitizeFieldRestProps'\n\nconst getInitials = name => {\n var initials = name.split(\" \") || [];\n var first = initials.shift()\n var second = initials.pop()\n initials = (first.charAt(0) + (second ? second.charAt(0) : first.charAt(1))).toUpperCase();\n return initials;\n}\n\nconst useStyles = makeStyles(theme => ({\n small: {\n width: theme.spacing(4),\n height: theme.spacing(4),\n fontSize: \"1rem\",\n },\n large: {\n width: theme.spacing(7),\n height: theme.spacing(7),\n }\n}));\n\n\nconst AvatarField = ({ className, record, size, ...props }) => {\n const classes = useStyles();\n if (!record) return null;\n const { name, fullname, avatar } = record;\n const text = fullname || name;\n\n return ({getInitials(text)});\n};\n\nexport default AvatarField;","import React from 'react';\nimport Badge from '@material-ui/core/Badge';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useSelector, shallowEqual } from 'react-redux';\n\n\n\nconst useStyles = makeStyles(theme => ({\n badge: ({banned, online}) => ({\n backgroundColor: banned ? theme.palette.error.main : theme.palette.success.main,\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\n }),\n dot: {\n height: 8,\n padding: 0,\n minWidth: 8,\n },\n}));\n\n\nconst OnlineBadge = ({children, record, ...props}) => {\n const onlineUsers = useSelector(state => state.onlineUsers, shallowEqual);\n const online = onlineUsers.includes(record.id);\n const banned = record.banned;\n const classes = useStyles({banned, online});\n \n if (!record) return null;\n \n \n return (\n \n { React.cloneElement(children, {\n record,\n ...props,\n })}\n \n \n );\n}\n\nOnlineBadge.defaultProps = {\n addLabel: false,\n};\n\nexport default OnlineBadge;","import { useMediaQuery } from '@material-ui/core';\nimport { Datagrid, SimpleList, DateField, TextField } from 'react-admin';\nimport { can } from '../../abilityProvider';\nimport AvatarField from '../Fields/AvatarField';\nimport EditMenuItem from \"../Buttons/EditButtonAsMenuItem\";\nimport EnumField from '../Fields/EnumField';\nimport MoreButton from \"../Buttons/MoreButton\";\nimport ResourceLinkField from '../Fields/ResourceLinkField';\nimport OnlineBadge from '../Fields/OnlineBadge';\nimport PhoneField from '../Fields/PhoneField';\nimport React from 'react';\nimport RemoveMenuItem from \"../Buttons/RemoveButtonAsMenuItem\";\nimport ShowBlankItem from \"../Buttons/ShowBlankButtonAsMenuItem\";\nimport { dateTimeOptions } from '../../utils';\nimport useListStyles from '../Layout/list/useListStyles';\n\n\n\n\nconst UserDatagrid = (props) => {\n const isMobile = useMediaQuery(theme => theme.breakpoints.down('sm'))\n const classes = useListStyles();\n\n return isMobile ? (\n record.name}\n linkType=\"show\"\n />\n ) : (\n \n \n \n \n \n \n {can('getList', 'User', 'role') && }\n {can('getList', 'User', 'login') && }\n {can('getList', 'User', 'phone') && }\n {can('getList', 'User', 'email') && }\n \n \n \n \n {can('getOne', 'User') && }\n {can('update', 'User') && }\n {can('remove', 'User') && }\n \n \n )\n}\n\n\n\nexport default UserDatagrid;","import List from '../Layout/list/List';\nimport React from 'react';\nimport useUserExporter from './useUserExporter';\nimport UserBulkActionButtons from './UserBulkActionButtons';\nimport UserFilter from './UserFilter';\nimport UserDatagrid from './UserDatagrid';\n\n\n\nconst UserList = (props) => {\n const exporter = useUserExporter()\n const manualSubmitForm = React.useRef(null)\n\n return (\n }\n filters={}\n exporter={exporter}\n >\n \n \n )\n};\n\nUserList.defaultProps = {\n perPage: 50,\n sort: { field: 'name', order: 'ASC' },\n};\n\n\nexport default UserList;","import React, { useState } from 'react';\nimport { useTranslate } from 'ra-core';\nimport { InputAdornment, IconButton } from '@material-ui/core';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { TextInput } from 'react-admin';\nimport TextField from '@material-ui/core/TextField';\nimport { useInput, FieldTitle, InputProps } from 'ra-core';\n\n\n\nconst passwordValidation = (value, allValues, props) => {\n if (!value) return undefined\n \n const checkLength = value.length >= 8;\n const checkLowerCase = /[a-z]/u.test(value);\n const checkUpperCase = /[A-Z]/u.test(value);\n const checkSymbol = /[!@#$%^&*()_+}{":;'?/>.<,]/u.test(value);\n const checkNumber = /[0-9]/.test(value);\n const isValid = checkLength && checkLowerCase && checkUpperCase && checkSymbol && checkNumber\n\n return isValid ? undefined : \"ra.validation.password_invalid\";\n};\n\nconst PasswordInput = ({\n initiallyVisible = false,\n validate=[],\n inputProps={},\n ...props\n}) => {\n const [visible, setVisible] = useState(initiallyVisible);\n const translate = useTranslate();\n\n const handleClick = () => {\n setVisible(!visible);\n };\n\n return (\n \n \n {visible ? : }\n \n \n ),\n }}\n \n />\n );\n};\n\nexport default PasswordInput;\n","import React from 'react';\nimport { useForm } from 'react-final-form';\nimport EnumInput from '../Inputs/EnumInput';\n\n\nconst AccessResourceInput = (props) => {\n const form = useForm();\n\n const handleChangeType = (value) => {\n form.change('accessIds', [])\n form.change('q', undefined)\n }\n\n return (\n \n );\n};\n\nexport default AccessResourceInput;","import React from 'react';\nimport { useFormState } from 'react-final-form';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { AutocompleteArrayInput, ReferenceArrayInput, SearchInput } from 'react-admin';\nimport CheckboxGroupInput from '../Inputs/CheckboxGroupInput';\n\n\n\nconst useStyles = makeStyles(theme => ({\n referenceArrayInput: {\n marginTop: 8,\n marginBottom: 4,\n },\n}));\n\n\n\n\n\nconst getFilterResource = (resource, accessResource) => {\n\n if (resource === accessResource) return undefined;\n switch (resource) {\n case 'GasRegion':\n return undefined;\n break;\n case 'GasDistrict':\n return { reference: 'GasRegion', filter: \"gasRegion\" };\n break;\n case 'GasConsumer':\n return undefined;\n break;\n case 'GasMeterPad':\n return { reference: 'GasConsumer', filter: \"gasConsumer\" };\n break;\n case 'GasMeterUnit':\n return { reference: 'GasMeterPad', filter: \"gasMeterPad\" };\n break;\n default:\n return undefined;\n };\n}\n\nconst AccessReferenceArrayInput = ({ className, ...props }) => {\n const classes = useStyles();\n const { values } = useFormState();\n let filter = {};\n\n const accessResource = props.record && props.record.accessResource;\n const referenceResource = values && values.accessResource;\n const searchFilter = values && values.q;\n const filterResource = getFilterResource(referenceResource, accessResource);\n const filterValue = filterResource && values[filterResource.filter];\n\n\n if (filterValue && filterValue.length) {\n filter[filterResource.filter] = { id_in: filterValue }\n }\n\n if (searchFilter) {\n filter.q = searchFilter\n }\n\n\n if (!referenceResource) return null;\n\n return (\n <>\n \n {filterResource && \n \n }\n \n \n \n \n\n\n );\n};\n\nexport default AccessReferenceArrayInput;\n\n\n\n","import React from 'react';\nimport { can, abilitySubjectConditions as asc, rulesToFields } from '../../abilityProvider';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Create, TextInput, ReferenceInput, AutocompleteInput, required, minLength, TabbedForm, FormTab } from 'react-admin';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport EnumInput from '../Inputs/EnumInput';\nimport PasswordInput from '../Inputs/PasswordInput';\nimport AccessResourceInput from './AccessResourceInput';\nimport AccessReferenceArrayInput from './AccessReferenceArrayInput';\n\n\n\nconst matchTrue = () => true;\n\nconst filterRoles = (value) => {\n const conditions = rulesToFields(\"create\", \"User\")\n const role_in = (conditions.role && conditions.role.$in) || [];\n return role_in.includes(value.name);\n}\n\n\nconst logined = (value, values) => {\n if (!values.email && !values.phone && !values.login) {\n return 'ra.action.one_of_fields_is_required';\n }\n};\nconst validateLogin = [logined];\nconst validateName = [required(), minLength(2)];\nconst validateRole = [required()];\nconst validatePassword = [required()];\n\nconst UserCreate = props => {\n // const classes = useStyles();\n\n return (\n \n \n \n {can(\"create\", \"User\", \"name\") && }\n {can(\"create\", \"User\", \"description\") && }\n {can(\"create\", \"User\", \"position\") && }\n {can(\"create\", \"User\", \"role\") && }\n {can(\"create\", \"User\", \"login\") && }\n {can(\"create\", \"User\", \"email\") && }\n {can(\"create\", \"User\", \"phone\") && }\n {can(\"create\", \"User\", \"phoneContact\") && }\n {can(\"create\", \"User\", \"password\") && }\n \n \n {can('create', 'User', 'counterparty') && \n \n }\n \n \n \n \n \n );\n};\n\nexport default UserCreate","import React from 'react';\nimport BanIcon from '@material-ui/icons/Report';\nimport UnbanIcon from '@material-ui/icons/ReportOff';\nimport { useNotify, useRedirect, useUpdate, Button } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\n\n\n\nconst useStyles = makeStyles(theme => ({\n banButton: {\n color: theme.palette.error.main,\n borderColor: fade(theme.palette.error.main, 0.5),\n '&:hover': {\n backgroundColor: fade(theme.palette.error.main, 0.12),\n borderColor: theme.palette.error.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n\n },\n unbanButton: {\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.light,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n borderColor: theme.palette.primary.main,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n\n },\n}));\n\nconst BanButton = ({ basePath, record, redirect: redirectTo, className }) => {\n const classes = useStyles();\n const notify = useNotify();\n // const redirect = useRedirect();\n\n const [handleBan, { loading: banLoading }] = useUpdate(\n \"User\",\n record.id,\n { ...record, banned: true },\n record,\n {\n undoable: true,\n onSuccess: ({ data }) => {\n // redirect(`${basePath}/${record.id}/show`);\n notify('ra.notification.user_banned', 'info', {}, true);\n },\n onFailure: (error) => notify(`Error: ${error.message}`, \"warning\")\n }\n );\n const [handleUnban, { loading: unbanLoading }] = useUpdate(\n 'User',\n record.id,\n { ...record, banned: false },\n record,\n {\n undoable: true,\n onSuccess: ({ data }) => {\n // redirect(`${basePath}/${record.id}/show`);\n notify('ra.notification.user_unbanned', 'info', {}, true);\n },\n onFailure: (error) => notify(`Error: ${error.message}`, 'warning'),\n }\n );\n\n return record.banned\n ? \n \n \n : \n \n ;\n};\n\nexport default BanButton;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport get from 'lodash/get';\nimport { useTranslate } from 'react-admin';\n\n\nconst useChipStyles = makeStyles(theme => ({\n\n label: {\n display: \"block\",\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n}));\n\nconst EnumChip = ({ className, classes: classesOverride, record, source, resource, ...props}) => {\n const classes = useChipStyles({ classes: classesOverride });\n const translate = useTranslate();\n\n const enumValue = get(record, source);\n if (!enumValue) {return null};\n \n const label = translate(`resources.${resource}.enums.${source}.${enumValue}`, {_: enumValue})\n\n return (\n \n );\n};\n\n\nEnumChip.defaultProps = {\n addLabel: true,\n};\n\n\n\nexport default EnumChip;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport moment from 'moment';\n\n\nconst useStyles = makeStyles(theme => ({\n\n online: {\n backgroundColor: theme.palette.success.main,\n color: theme.palette.getContrastText(theme.palette.success.main),\n },\n}));\n\n\nconst OnlineChip = ({record, ...props}) => {\n const classes = useStyles();\n const onlineUsers = useSelector(state => state.onlineUsers, shallowEqual);\n if (!record) return null;\n const isOnline = onlineUsers.includes(record.id);\n const label = isOnline ? \"Онлайн\" : `Оффлайн${record.lastLogin ? `, был в сети ${moment(record.lastLogin).format('L LT')}` : ''}`\n\n return ;\n}\n\nOnlineChip.defaultProps = {\n addLabel: false,\n};\n\nexport default OnlineChip;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport PriorityHighIcon from '@material-ui/icons/PriorityHigh';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(theme => ({\n\n icon: {\n color: \"inherit\",\n },\n info: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.getContrastText(theme.palette.info.main),\n },\n warning: {\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.getContrastText(theme.palette.warning.main),\n },\n}));\n\n\nconst AccessChip = ({record, ...props}) => {\n const classes = useStyles();\n\n if (!record) return null;\n\n const isUserAccess = record && record.accessResource;\n const isUserCounterpartyAccess = record && record.counterparty;\n const label = isUserAccess ? \"Доступ по пользователю\" : isUserCounterpartyAccess ? \"Доступ по контрагенту\" : \"Нет доступа\";\n const icon = (!isUserAccess && !isUserCounterpartyAccess) ? () : null;\n const isWarning = (!isUserAccess && !isUserCounterpartyAccess);\n\n\n return ;\n}\n\nAccessChip.defaultProps = {\n addLabel: false,\n};\n\nexport default AccessChip;","import React from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Grid from '@material-ui/core/Grid';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography'\nimport EnumChip from '../Fields/EnumChip';\nimport OnlineChip from '../Fields/OnlineChip';\nimport AccessChip from './AccessChip';\nimport { can } from \"../../abilityProvider\";\nimport { DateField, ChipField } from 'react-admin';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n\n },\n\n chipBanned: {\n color: theme.palette.getContrastText(theme.palette.error.main),\n backgroundColor: theme.palette.error.main,\n },\n}));\n\nconst UserBanner = ({ classes: classesOverride, className, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const { record, resource } = props;\n if (!record) { return null }\n const name = record.name;\n const description = record.description;\n const id = record.id;\n const banned = record.banned;\n\n\n return (\n \n
\n \n \n {can('getOne', 'User', 'name') && {name}}\n {can('getOne', 'User', 'description') && {description}}\n {can('getOne', 'User', 'online') && }\n \n {banned && }\n \n \n {/*
*/}\n \n {/*Был в сети в*/}\n {/**/}\n {/*
*/}\n
\n
\n
\n
\n );\n};\n\n\n\nexport default UserBanner;","import { AutocompleteInput, FormTab, ReferenceInput, SaveButton, TabbedForm, TextInput, Toolbar, minLength, required, EditContextProvider, useEditController } from 'react-admin';\nimport { can, rulesToFields } from '../../abilityProvider';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport get from 'lodash/get';\nimport AccessReferenceArrayInput from './AccessReferenceArrayInput';\nimport AccessResourceInput from './AccessResourceInput';\nimport BanButton from '../Buttons/BanButton';\nimport CancelButton from '../Buttons/CancelButton';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport { EditView } from '../Layout/EditView';\nimport ToolbarSpacer from '../Layout/ToolbarSpacer';\nimport EnumInput from '../Inputs/EnumInput';\nimport PasswordInput from '../Inputs/PasswordInput';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport React from 'react';\nimport RemoveButton from '../Buttons/RemoveButton';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport UserBanner from '../User/UserBanner';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst matchTrue = () => true;\n\nconst filterRoles = (value) => {\n const conditions = rulesToFields(\"update\", \"User\")\n const role_in = (conditions.role && conditions.role.$in) || [];\n return role_in.includes(value.name);\n}\n\nconst logined = (value, values) => {\n if (!values.email && !values.phone && !values.login) {\n return 'ra.action.one_of_fields_is_required';\n }\n};\nconst validateLogin = [logined];\nconst validateName = [required(), minLength(2)];\nconst validateRole = [required()];\n\nconst useStyles = makeStyles(theme => ({\n toolbar: {\n display: 'flex',\n '& > *:not(:last-child)': {\n marginRight: theme.spacing(1),\n },\n },\n accessReferenceArrayInput: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n}));\n\n\n\nconst UserToolbar = props => {\n const classes = useStyles();\n\n return (\n \n {can(\"update\", \"User\") && }\n {can(\"update\", \"User\") && }\n \n {can(\"ban\", \"User\") && }\n {can(\"remove\", \"User\") && }\n \n \n );\n}\n\nconst UserEdit = props => {\n const controllerProps = useEditController(props);\n const classes = useStyles();\n const user = useSelector(state => state.user, shallowEqual);\n const itsMe = get(controllerProps, [\"record\", \"id\"]) === get(user, [\"id\"])\n\n return (\n \n }\n {...props}\n {...controllerProps}\n >\n \n \n }>\n \n {can(\"update\", \"User\", \"name\") && }\n {can(\"update\", \"User\", \"description\") && }\n {can(\"update\", \"User\", \"position\") && }\n {can(\"update\", \"User\", \"role\") && !itsMe && }\n {can(\"update\", \"User\", \"login\") && }\n {can(\"update\", \"User\", \"email\") && }\n {can(\"update\", \"User\", \"phone\") && }\n {can(\"update\", \"User\", \"phoneContact\") && }\n {can(\"update\", \"User\", \"password\") && }\n \n \n {can('update', 'User', 'counterparty') && \n \n }\n \n \n \n \n \n \n \n\n );\n};\n\nexport default UserEdit","import React from 'react';\nimport { ShowContextProvider, useShowController, ChipField, TabbedShowLayout, Tab, TextField, DateField, Pagination, ReferenceManyField as RaReferenceManyField, ReferenceArrayField, SingleFieldList } from 'react-admin';\nimport { ShowView } from '../Layout/ShowView';\nimport CardShowLayout from '../Layout/CardShowLayout';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport SimpleShowLayout from '../Layout/SimpleShowLayout';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport NestedField from '../Fields/NestedField';\nimport EnumField from '../Fields/EnumField';\nimport PhoneField from '../Fields/PhoneField';\nimport MoreContent from '../Layout/MoreContent';\nimport Separator from '../Layout/Separator';\nimport { ReferenceDatagrid as ReferenceHistoryDatagrid } from '../History/HistoryList';\nimport UserBanner from './UserBanner';\nimport { can } from \"../../abilityProvider\";\n// import { makeStyles } from '@material-ui/core/styles';\nimport { dateTimeOptions } from '../../utils';\n\n\n\n// const useStyles = makeStyles(theme => ({\n\n// }));\n\nconst UserShow = props => {\n const controllerProps = useShowController(props);\n const showMoreButton = React.useRef(null);\n const showHistoryButton = React.useRef(null);\n const accessResource = controllerProps.record && controllerProps.record.accessResource;\n\n return (\n \n } {...props} {...controllerProps} >\n \n\n \n {can('getOne', 'User', 'name') && }\n {can('getOne', 'User', 'description') && }\n {can('getOne', 'User', 'position') && }\n {can('getOne', 'User', 'role') && }\n {can('getOne', 'User', 'login') && }\n {can('getOne', 'User', 'email') && }\n {can('getOne', 'User', 'phone') && }\n {can('getOne', 'User', 'phone') && }\n {can('getOne', 'User', 'counterparty') && \n \n }\n \n\n \n {can('getOne', 'User', 'access') && accessResource && \n \n \n \n }\n \n\n )} />\n\n \n \n \n {can('getOne', 'User', 'name') && \n \n }\n \n \n \n \n\n {can('getList', 'History') && )} />}\n {can('getList', 'History') && \n \n } >\n \n \n \n }\n \n \n );\n};\n\nexport default UserShow;","import Icon from '@material-ui/icons/People';\nimport UserList from './UserList';\nimport UserCreate from './UserCreate';\nimport UserEdit from './UserEdit';\nimport UserShow from './UserShow';\n\nconst UserIcon = Icon;\n\n\nexport {\n UserIcon,\n UserList,\n UserShow,\n UserCreate,\n UserEdit,\n};\n\n\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n \n );\n}\n\nexport default Icon;","import { createMuiTheme } from '@material-ui/core/styles';\n\nexport const theme = createMuiTheme({\n palette: {\n // type: \"dark\",\n primary: {\n main: '#316FC4',\n },\n background: {\n default: \"#f4f6f9\"\n },\n link: {\n main: \"#673ab7\",\n }\n },\n sidebar: {\n width: 256,\n closedWidth: 72,\n },\n menu: {\n width: 240,\n closedWidth: 72,\n },\n overrides: {\n MuiFilledInput: {\n root: {\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n '&$disabled': {\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n },\n },\n },\n MuiButtonBase: {\n root: {\n '&:hover:active::after': {\n // recreate a static ripple color\n // use the currentColor to make it work both for outlined and contained buttons\n // but to dim the background without dimming the text,\n // put another element on top with a limited opacity\n content: '\"\"',\n display: 'block',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n right: 0,\n backgroundColor: 'currentColor',\n opacity: 0.3,\n borderRadius: 'inherit',\n },\n },\n },\n MuiAvatar: {\n rounded: {\n borderRadius: 8,\n }\n },\n MuiPaper: {\n elevation1: {\n boxShadow: \"0px 3px 5px -1px rgba(49, 111, 196, 0.06), 0px 6px 10px 0px rgba(49, 111, 196, 0.042), 0px 1px 18px 0px rgba(49, 111, 196, 0.036)\",\n }\n },\n MuiTableCell: {\n sizeSmall: {\n padding: '6px 8px',\n '&:first-child': {\n paddingLeft: 16,\n },\n '&:last-child': {\n paddingRight: 16,\n },\n },\n },\n MuiListItemIcon: {\n root: {\n minWidth: \"unset\",\n marginRight: 12,\n },\n },\n MuiChip: {\n root: {\n margin: 2,\n borderRadius: 8,\n },\n },\n MuiFormHelperText: {\n root: {\n whiteSpace: \"break-spaces\",\n },\n },\n RaLayout: {\n content: {\n backgroundColor: \"#f4f6f9\",\n zIndex: 2,\n }\n },\n },\n props: {\n MuiButtonBase: {\n disableRipple: true,\n },\n },\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Field, Form } from 'react-final-form';\nimport CardActions from '@material-ui/core/CardActions';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport Link from '@material-ui/core/Link';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport { useTranslate, useLogin, useNotify, useSafeSetState } from 'ra-core';\n\n\n\nconst preventDefault = (event) => event.preventDefault();\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n padding: '0 1em 1em 1em',\n },\n input: {\n marginTop: '1em',\n },\n button: {\n width: '100%',\n marginBottom: 8,\n },\n icon: {\n marginRight: theme.spacing(1),\n },\n actions: {\n display: 'flex',\n flexDirection: \"column\",\n padding: '0 1em 1em 1em',\n },\n }),\n { name: 'RaLoginForm' }\n);\n\nconst Input = ({\n meta: { touched, error }, // eslint-disable-line react/prop-types\n input: inputProps, // eslint-disable-line react/prop-types\n ...props\n}) => (\n \n);\n\nconst LoginForm = props => {\n const { redirectTo } = props;\n const [loading, setLoading] = useSafeSetState(false);\n const login = useLogin();\n const translate = useTranslate();\n const notify = useNotify();\n const classes = useStyles(props);\n\n const validate = (values) => {\n const errors = { username: undefined, password: undefined };\n\n if (!values.username) {\n errors.username = translate('ra.validation.required');\n }\n if (!values.password) {\n errors.password = translate('ra.validation.required');\n }\n return errors;\n };\n\n const submit = values => {\n setLoading(true);\n login(values, redirectTo)\n .then(() => {\n setLoading(false);\n })\n .catch(error => {\n setLoading(false);\n\n const graphQLError = error && error.graphQLErrors && error.graphQLErrors[0] && error.graphQLErrors[0]\n const extensions = graphQLError && graphQLError.extensions\n const code = extensions && extensions.code\n const countAttempt = extensions && extensions.countAttempt\n const message = (graphQLError && graphQLError.message) || error.message || 'sign_in_error'\n\n switch (code) {\n case \"NOT_AUTHORIZED_USER\": {\n notify('ra.auth.not_authorized_user', 'warning', { smart_count: countAttempt });\n } break;\n case \"BANNED_USER\": {\n notify('ra.auth.banned_user', 'warning');\n } break;\n default: {\n notify( message, 'warning');\n }\n }\n });\n };\n\n return (\n (\n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n {loading && (\n \n )}\n {translate('ra.auth.sign_in')}\n \n {/**/}\n {/* Нет аккаунта? Зарегистрируйтесь*/}\n {/**/}\n \n
\n )}\n />\n );\n};\n\nLoginForm.propTypes = {\n redirectTo: PropTypes.string,\n};\n\nexport default LoginForm;\n","import React, { useRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardActions from '@material-ui/core/CardActions';\nimport Avatar from '@material-ui/core/Avatar';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport LockIcon from '@material-ui/icons/Lock';\nimport GoogleIcon from '../Icons/Google';\nimport LogoIcon from '../Icons/Logo'\nimport { createMuiTheme, makeStyles } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\nimport { useHistory } from 'react-router-dom';\nimport { useCheckAuth } from 'ra-core';\nimport { Notification } from 'react-admin';\nimport { theme as defaultTheme } from '../../defaultTheme';\nimport LoginForm from './LoginForm';\n\n\n\nconst preventDefault = (event) => event.preventDefault();\n\nconst useStyles = makeStyles((theme) => ({\n main: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100vh',\n height: '1px',\n alignItems: 'center',\n justifyContent: 'flex-start',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundColor: \"#316FC4\",\n // backgroundImage:\n // 'radial-gradient(circle at 50% 14em, #313264 0%, #00023b 60%, #00023b 100%)',\n //backgroundImage: 'url(https://source.unsplash.com/random/1600x900)',\n },\n content: {\n marginTop: '6em',\n minWidth: 300,\n },\n welcome: {\n display: 'flex',\n flexDirection: \"column\",\n alignItems: 'center',\n },\n logo: {\n //filter: `drop-shadow(${theme.shadows[4]})`,\n boxShadow: theme.shadows[4],\n borderRadius: \"0.5rem\",\n fontSize: 56,\n marginBottom: 16\n },\n welcomeText: {\n color: theme.palette.getContrastText(theme.palette.text.primary),\n maxWidth: 300,\n textAlign: \"center\",\n\n },\n card: {\n marginTop: '3em',\n borderRadius: 10,\n },\n avatar: {\n margin: '1em',\n display: 'flex',\n justifyContent: 'center',\n },\n icon: {\n backgroundColor: theme.palette.secondary[500],\n },\n block: {\n display: 'flex',\n justifyContent: 'center',\n padding: '0 1em 1em 1em',\n\n },\n actions: {\n display: 'flex',\n padding: '0 1em 1em 1em',\n },\n button: {\n width: '100%',\n },\n\n}),\n { name: 'RaLogin' }\n);\n\n\nconst Login = props => {\n const {\n theme,\n classes: classesOverride,\n className,\n children,\n staticContext,\n backgroundImage,\n title,\n ...rest\n } = props;\n\n const classes = useStyles(props);\n const muiTheme = useMemo(() => createMuiTheme(theme), [theme]);\n const checkAuth = useCheckAuth();\n const history = useHistory();\n useEffect(() => {\n checkAuth({}, false)\n .then(() => {\n // already authenticated, redirect to the home page\n history.push('/');\n })\n .catch(() => {\n // not authenticated, stay on the login page\n });\n }, [checkAuth, history]);\n\n return (\n \n \n
\n
\n \n Добро пожаловать на портал АСКУГ Показатели\n
\n \n
\n \n \n \n
\n {children}\n {/**/}\n\n {/* */}\n {/* ИЛИ*/}\n {/* */}\n {/**/}\n {/**/}\n {/* }*/}\n {/* className={classes.button}*/}\n {/* >Google*/}\n {/* */}\n {/* }*/}\n {/* disabled*/}\n {/* disableElevation*/}\n {/* className={classes.button}*/}\n {/* >Apple*/}\n {/* */}\n\n {/**/}\n
\n
\n\n\n \n \n
\n );\n};\n\nLogin.propTypes = {\n backgroundImage: PropTypes.string,\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n theme: PropTypes.object,\n staticContext: PropTypes.object,\n};\n\nLogin.defaultProps = {\n theme: defaultTheme,\n children: ,\n};\n\nexport default Login;\n","export default __webpack_public_path__ + \"static/media/MainBanner.059b2295.svg\";","import React, { forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Grid from '@material-ui/core/Grid';\nimport Button from '@material-ui/core/Button';\nimport backgroundImage from \"../../files/MainBanner.svg\";\nimport { can } from \"../../abilityProvider\";\n\n\n\n\nconst useStyles = makeStyles(theme => ({\n banner: {\n height: 460,\n position: \"relative\",\n overflow: \"unset\",\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"baseline\",\n flexGrow: 1,\n zIndex: 1,\n },\n title: {\n // fontWeight: 500,\n },\n container: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 16,\n },\n}));\n\nconst LinkRef = React.forwardRef((props, ref) => );\n\nconst WidgetBanner = forwardRef(({ ...props }, ref) => {\n const classes = useStyles();\n\n return (\n\n \n \n {can('getOne', 'Main')\n ? (
\n Хочешь узнать посуточный объем газопотребления в регионе?\n Портал позволяет построить отчет любой сложности в два клика\n \n Открыть Регионы\n \n
)\n : (
\n Добро пожаловать на портал АСКУГ Показатели!\n
)}\n
\n \n \"lorem\"\n \n
\n\n )\n\n});\n\n\nexport default WidgetBanner;\n\n\n","import React, { forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport WhatshotIcon from '@material-ui/icons/Whatshot';\nimport Avatar from '@material-ui/core/Avatar';\nimport { deepOrange } from '@material-ui/core/colors';\nimport { getCookie } from '../../utils';\nimport { PACKAGE_VERSION, PACKAGE_VERSION_COOKIE } from '../../appsettings';\n\n\n\nconst useStyles = makeStyles(theme => ({\n cardActionArea: {\n height: \"100%\"\n },\n avatar: {\n color: deepOrange[500],\n backgroundColor: deepOrange[100],\n },\n title: {\n fontWeight: 500,\n lineHeight: 1.33,\n },\n}));\n\nconst LinkRef = React.forwardRef((props, ref) => );\n\nconst NewReleaseCard = forwardRef((props, ref) => {\n const classes = useStyles();\n const version = getCookie(PACKAGE_VERSION_COOKIE);\n\n if (version === PACKAGE_VERSION) return null\n\n return (\n \n \n \n \n }\n title=\"Портал обновился!\"\n titleTypographyProps={{ variant: \"subtitle1\" }}\n classes={{ title: classes.title }}\n />\n \n \n Новая версия уже здесь! Узнайте что нового в Журнале изменений.\n \n \n \n \n );\n});\n\nexport default NewReleaseCard;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ArrayInput, FormDataConsumer, SimpleFormIterator, NumberInput, TextInput, required } from 'react-admin';\nimport BooleanInput from '../../Inputs/BooleanInput';\n\n\nconst useStyles = makeStyles(theme => ({\n form: {\n display: \"flex\",\n alignItems: \"center\"\n },\n index: {\n width: 24,\n paddingTop: \"1.25em\",\n },\n flexInput: {\n paddingLeft: 8,\n paddingRight: 8,\n '&:first-child': {\n paddingLeft: 0,\n },\n '&:last-child': {\n paddingRight: 0,\n },\n },\n flexGrow: {\n flexGrow: 1,\n },\n width128: {\n width: 128\n },\n}));\n\nconst getIndex = (id) => {\n const regexp = /\\[(\\d+)\\]/;\n const index = id.match(regexp)[1]\n return Number(index)\n}\n\nconst DeviceGasMeterPointArrayInput = ({ className, ...props }) => {\n const classes = useStyles();\n\n return (\n \n \n \n {({ formData, scopedFormData, getSource, id, ...rest }) => (\n \n )}\n \n \n \n \n {({ formData, scopedFormData, getSource, id, className, ...rest }) => (\n \n )}\n \n \n \n \n );\n}\n\nexport default DeviceGasMeterPointArrayInput;","import React from 'react';\nimport { useForm } from 'react-final-form';\nimport EnumInput from '../../Inputs/EnumInput'\n\n\nconst TypeInput = (props) => {\n const form = useForm();\n\n const handleChangeType = (event) => {\n const value = event.target.value\n form.change('controller.configuration', null)\n form.change('controller.meta', null)\n }\n\n return (\n \n );\n};\n\nexport default TypeInput;","import React from 'react';\nimport { useForm } from 'react-final-form';\nimport EnumInput from '../../Inputs/EnumInput'\n\n\nconst TypeInput = (props) => {\n const form = useForm();\n\n const handleChangeType = (event) => {\n const value = event.target.value\n form.change('gasMeter.configuration', null)\n form.change('gasMeter.meta', null)\n form.change('gasMeterUnit.reportsIds', null)\n form.change('gasMeterUnit.reportsIds', null)\n }\n\n return (\n \n );\n};\n\nexport default TypeInput;","import React from 'react';\nimport { useForm } from 'react-final-form';\nimport EnumInput from '../../Inputs/EnumInput'\n\n\nconst StatusInput = (props) => {\n const form = useForm();\n\n const handleChangeStatus = (event) => {\n const value = event.target.value\n form.change('gasMeter.status', value)\n }\n\n return (\n \n );\n};\n\nexport default StatusInput;","import React from 'react';\nimport Chip from '@material-ui/core/Chip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport get from 'lodash/get';\nimport { useTranslate } from 'react-admin';\n\n\nconst getStatusColor = (status) => {\n switch (status) {\n case 'DRAFT':\n return \"#eeeeee\"\n break;\n case 'TEST':\n return \"#ffcc80\"\n break;\n case 'RELEASE':\n return \"#80cbc4\"\n break;\n default:\n return \"#eeeeee\"\n break;\n }\n}\n\nconst useChipStyles = makeStyles(theme => ({\n chip: ({ status }) => {\n const backgroundColor = getStatusColor(status);\n return {\n color: theme.palette.getContrastText(backgroundColor),\n backgroundColor: backgroundColor,\n }\n },\n}));\n\nconst StatusChip = ({ className, classes: classesOverride, record, source, resource, ...props }) => {\n const status = get(record, source);\n const classes = useChipStyles({ status, classes: classesOverride });\n const translate = useTranslate();\n if (!status) { return null };\n const label = translate(`resources.${resource}.enums.${source}.${status}`, { _: status })\n\n return (\n \n );\n};\n\n\nStatusChip.defaultProps = {\n addLabel: true,\n resource: \"ControllerConfiguration\",\n source: \"status\",\n};\n\n\n\nexport default StatusChip;","import React from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport { makeStyles, MenuItem, ListItemText } from '@material-ui/core';\nimport classnames from 'classnames';\nimport StatusChip from \"./ControllerConfigurationStatusChip\";\n\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n icon: {\n marginRight: 16\n },\n selected: { fontWeight: 500 },\n highlight: {\n fontWeight: 500,\n color: \"#000\"\n },\n title: {},\n ml1: { marginLeft: 8 },\n}),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nconst Suggestion = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...props\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const suggestionText = getSuggestionText(suggestion);\n if (!suggestion.id) return {suggestionText};\n const isHighlighted = highlightedIndex === index;\n const matches = match(suggestionText, filterValue);\n const parts = parse(suggestionText, matches);\n\n\n return (\n \n \n {parts.map((part, index) => ({part.text}))}\n \n \n \n );\n};\n\nSuggestion.defaultProps = {\n resource: \"ControllerConfiguration\"\n}\n\nexport default Suggestion;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useForm, useFormState } from 'react-final-form';\nimport get from 'lodash/get';\nimport { ReferenceInput } from 'react-admin';\nimport AutocompleteInput from '../../Inputs/AutoompleteInput'\nimport Suggestion from './ControllerConfigurationSuggestion'\n\n\n\nconst ReferenceConfigurationInput = (props) => {\n const form = useForm();\n const { values } = useFormState();\n const selectConfigurationsObject = useSelector(state => get(state, `admin.resources.ControllerConfiguration.data`));\n\n const handleChangeConfiguration = (value) => {\n const metaTemplate = get(selectConfigurationsObject, `${value}.metaTemplate`)\n form.change('controller.meta', metaTemplate || {})\n };\n\n return (\n \n } options={{ disabled: !values.controller?.type }} />\n \n );\n};\n\nexport default ReferenceConfigurationInput;","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useForm, useFormState } from 'react-final-form';\nimport get from 'lodash/get';\nimport { ReferenceInput } from 'react-admin';\nimport AutocompleteInput from '../../Inputs/AutoompleteInput'\nimport Suggestion from './ControllerConfigurationSuggestion'\n\n\n\nconst ReferenceConfigurationInput = (props) => {\n const form = useForm();\n const { values } = useFormState();\n const selectConfigurationsObject = useSelector(state => get(state, `admin.resources.GasMeterConfiguration.data`));\n\n const handleChangeConfiguration = (value) => {\n const metaTemplate = get(selectConfigurationsObject, `${value}.metaTemplate`)\n form.change('gasMeter.meta', metaTemplate || {})\n };\n\n return (\n \n } options={{ disabled: !values.gasMeter.type }} />\n \n );\n};\n\nexport default ReferenceConfigurationInput;","\n import React, { cloneElement, Children } from 'react';\n import get from 'lodash/get';\n import { useForm, useFormState } from \"react-final-form\";\n import { makeStyles } from '@material-ui/core/styles';\n\n const useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: \"column\",\n },\n }));\n\nconst JsonVariableInputs = ({children, record, source, ...props}) => {\n const classes = useStyles();\n const { values } = useFormState();\n const jsonVariables = get(values, source)\n\n\n return jsonVariables && Array.isArray(jsonVariables) && jsonVariables.length > 0 ? (\n
\n {jsonVariables.map((item, index) => {\n \n return cloneElement(Children.only(children), {\n ...props,\n key: `${source}[${index}]`,\n id: `${source}[${index}]`,\n record,\n source: `${source}[${index}]`,\n });\n })}\n
\n ) : null;\n}\n \n \n export default JsonVariableInputs;\n ","import React from 'react';\nimport get from 'lodash/get';\nimport TextField from '@material-ui/core/TextField';\nimport { useForm, useFormState } from \"react-final-form\";\nimport { useInput, InputHelperText } from 'react-admin';\nimport sanitizeRestProps from './sanitizeRestProps';\n\n\n\nconst JsonVariableInput = ({\n format,\n helperText,\n label,\n margin = 'dense',\n onBlur,\n onFocus,\n onChange,\n options,\n record,\n resource,\n source,\n validate,\n variant = 'filled',\n inputProps,\n className,\n ...rest\n}) => {\n\n const { values } = useFormState();\n const jsonVariable = get(values, source)\n\n\n const {\n id,\n input,\n isRequired,\n meta: { error, touched },\n } = useInput({\n format,\n onBlur,\n onChange,\n onFocus,\n defaultValue: jsonVariable ? jsonVariable.value : undefined,\n resource,\n source: `${source}.value`,\n validate,\n ...rest,\n });\n\n return jsonVariable && jsonVariable.name ? (\n \n ) : null\n }\n required={isRequired}\n label={jsonVariable.name}\n margin={margin}\n inputProps={inputProps}\n {...options}\n {...sanitizeRestProps(rest)}\n />\n ) : null\n};\n\n\nexport default JsonVariableInput;\n","import React from 'react';\nimport Alert from '@material-ui/lab/Alert';\nimport AlertTitle from '@material-ui/lab/AlertTitle';\nimport WarningIcon from '@material-ui/icons/Warning';\n\n\n\nconst ControllerWarning = props => {\n return (\n } style={{ marginBottom: 24 }} >\n Внимание\n
После сохранения будет создана системная запись в журнал УУГ \"Владение Контроллерами\". Удаление навсегда созданного УУГ или Контроллера станет невозможно.
\n
\n );\n};\n\nexport default ControllerWarning","import React from 'react';\nimport Alert from '@material-ui/lab/Alert';\nimport AlertTitle from '@material-ui/lab/AlertTitle';\nimport WarningIcon from '@material-ui/icons/Warning';\n\n\n\nconst GasMeterWarning = props => {\n return (\n } style={{ marginBottom: 24 }} >\n Внимание\n
После сохранения будет создана системная запись в журнал УУГ \"Владение Корректорами\". Удаление навсегда созданного УУГ или Корректора станет невозможно.
\n\n
\n );\n};\n\nexport default GasMeterWarning","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\n\nconst CREATE_GAS_METER_UNIT = gql`\n mutation createGasMeterUnit( $name: String!, $description: String, $inventoryNumber: String, $aisId: String, $gasMeterPad: GasMeterPadWhereUniqueInput, $dashboards: [DashboardWhereUniqueInput!], $reports: [ReportWhereUniqueInput!] $enableWriteGasQualityCertificate: Boolean ) {\n data: createGasMeterUnit( name: $name, description: $description, inventoryNumber: $inventoryNumber, aisId: $aisId, gasMeterPad: $gasMeterPad, dashboards: $dashboards, reports: $reports, enableWriteGasQualityCertificate: $enableWriteGasQualityCertificate ) {\n id\n }\n }\n`\n\nconst CREATE_GAS_METER_POINT = gql`\n mutation createGasMeterPoint( $name: String!, $description: String, $aisId: String, $number: Int!, $disabled: Boolean, $gasMeterUnit: GasMeterUnitWhereUniqueInput ) {\n data: createGasMeterPoint( name: $name, description: $description, number: $number, disabled: $disabled, aisId: $aisId gasMeterUnit: $gasMeterUnit ) {\n id\n }\n }\n`\n\nconst CREATE_CONTROLLER = gql`\n mutation createController( $name: String!, $description: String, $status: ControllerStatus, $type: ControllerType!, $serialNumber: String, $phoneNumber: String, $url: String, $configuration: ControllerConfigurationWhereUniqueInput, $meta: Json ) {\n data: createController( name: $name, description: $description, status: $status, type: $type, serialNumber: $serialNumber, phoneNumber: $phoneNumber, url: $url, configuration: $configuration, meta: $meta ) {\n id\n }\n }\n`\n\nconst CREATE_GAS_METER = gql`\n mutation createGasMeter( $name: String!, $description: String, $dbId: Int, $serialNumber: String, $port: Int, $meta: Json, $type: GasMeterType!, $status: GasMeterStatus, $configuration: GasMeterConfigurationWhereUniqueInput, $timeZone: Int, $commercialHour: Int, $dst: Boolean ) {\n data: createGasMeter( name: $name, description: $description, dbId: $dbId, serialNumber: $serialNumber, port: $port, meta: $meta, type: $type, status: $status, configuration: $configuration, timeZone: $timeZone, commercialHour: $commercialHour, dst: $dst ) {\n id\n }\n }\n`\n\nconst CREATE_DEVICE = gql`\n mutation createDevice( $id: ID!, $gasMeterId: ID!, $controllerId: ID! ) {\n data: createDevice(id: $id, gasMeterId: $gasMeterId, controllerId: $controllerId) { \n id\n }\n }\n`\n\n\nexport const createGasMeterUnit = (data) => {\n\n if (data.gasMeterPad) { data.gasMeterPad = (data.gasMeterPad.id) ? { id: data.gasMeterPad.id } : null }\n if (data.gasMeterPointsIds) { data.gasMeterPoints = data.gasMeterPointsIds.map(id => ({ id })) }\n if (data.dashboardsIds) { data.dashboards = data.dashboardsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n\n return apolloCoreClient.mutate({\n mutation: CREATE_GAS_METER_UNIT,\n variables: { ...data },\n onError: (error) => {\n alert(error)\n }\n }).then(response => response.data?.data);\n};\n\nexport const createGasMeterPoints = (gasMeterPoints, gasMeterUnitId) => {\n\n const requests = gasMeterPoints.map(gasMeterPoint => {\n return apolloCoreClient.mutate({\n mutation: CREATE_GAS_METER_POINT,\n variables: {\n ...gasMeterPoint,\n gasMeterUnit: { id: gasMeterUnitId }\n },\n onError: (error) => {\n alert(error)\n }\n }).then(response => response.data?.data);\n })\n\n return Promise.all(requests)\n .then(responses => {\n return responses.length\n });\n\n};\n\nexport const createController = (args) => {\n\n return apolloCoreClient.mutate({\n mutation: CREATE_CONTROLLER,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n }).then(response => response.data?.data);\n};\n\nexport const createGasMeter = (args) => {\n\n return apolloCoreClient.mutate({\n mutation: CREATE_GAS_METER,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n }).then(response => response.data?.data);\n};\n\nexport const createDevice = ({ gasMeterUnitId, controllerId, gasMeterId }) => {\n\n return apolloCoreClient.mutate({\n mutation: CREATE_DEVICE,\n variables: {\n id: gasMeterUnitId,\n controllerId,\n gasMeterId,\n },\n onError: (error) => {\n alert(error)\n }\n }).then(response => {\n\n\n return response.data?.data\n });\n};","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nexport const GET_ONE_GAS_METER = gql`\n query GasMeter( $where: GasMeterWhereUniqueInput! ) {\n data: GasMeter( where: $where ) {id dbId}\n }\n`\n\nexport default (args) => {\n return apolloCoreClient.query({\n query: GET_ONE_GAS_METER,\n variables: { ...args },\n // fetchPolicy: 'cache-first', установлен для пропуска дополнительных запросов при асинхронной валидации dbId в Мастере создания Устройства\n fetchPolicy: 'cache-first',\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import { useRef, useEffect } from 'react';\nimport lodashMemoize from 'lodash/memoize';\nimport dataProvider from '../../dataProvider';\nimport getOneGasMeter from '../../dataProvider/Core/getOneGasMeter';\n\nconst memoize = (fn) =>\n lodashMemoize(fn, (...args) => JSON.stringify(args));\n\nconst usePrevious = (value) => {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n\nexport const asyncUnique = memoize((resource) => async (value, values, props) => {\n if (value === undefined) return undefined;\n const { data } = await dataProvider(\"getOne\", resource, { [props.name]: value })\n return (data === null) ? undefined : { message: 'ra.validation.unique', args: { value } }\n});\n\n\nexport const asyncUniqueGasMeter = memoize((resource, source) => async (value, values, props) => {\n if (value === undefined) return undefined;\n const { data: { data } } = await getOneGasMeter({ where: { [source]: value } })\n return (data === null) ? undefined : { message: 'ra.validation.unique', args: { value } }\n});\n","import React, { useCallback, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\nimport IconButton from '@material-ui/core/IconButton';\nimport Button from '@material-ui/core/Button';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { useNotify, fetchStart, fetchEnd, useTranslate, TextInput, ReferenceInput, NumberInput, required, FormDataConsumer, linkToRecord } from 'react-admin';\nimport { WizardForm, WizardFormStep } from '@react-admin/ra-form-layout';\nimport AutocompleteInput from '../Inputs/AutoompleteInput';\nimport SuggestionItem from '../Inputs/ResourceAutocompleteSuggestionItem';\nimport InputText from '../Inputs/ResourceAutocompleteInputText';\nimport BooleanInput from '../Inputs/BooleanInput';\nimport ReportReferenceArrayInputWithDefault from '../Report/ReportReferenceArrayInputWithDefault';\nimport DashboardReferenceArrayInputWithDefault from '../Dashboard/DashboardReferenceArrayInputWithDefault';\nimport DeviceGasMeterPointArrayInput from \"./inputs/DeviceGasMeterPointArrayInput\";\nimport ControllerTypeInput from \"./inputs/ControllerTypeInput\";\nimport GasMeterTypeInput from \"./inputs/GasMeterTypeInput\";\nimport StatusInput from \"./inputs/StatusInput\";\nimport ReferenceControllerConfigurationInput from \"./inputs/ReferenceControllerConfigurationInput\";\nimport ReferenceGasMeterConfigurationInput from \"./inputs/ReferenceGasMeterConfigurationInput\";\nimport PhoneInput from \"../Inputs/PhoneInput\";\nimport JsonVariableInputs from \"../Inputs/JsonVariableInputs\";\nimport JsonVariableInput from \"../Inputs/JsonVariableInput\";\nimport ControllerWarning from \"./ControllerWarning\";\nimport GasMeterWarning from \"./GasMeterWarning\";\nimport { can } from \"../../abilityProvider\";\nimport { createGasMeterUnit, createGasMeterPoints, createController, createGasMeter, createDevice } from '../../dataProvider/Core/createDeviceWizard'\nimport { asyncUniqueGasMeter } from '../Form/validate'\n\n\n\nconst dbIdValidation = [asyncUniqueGasMeter('GasMeter', 'dbId')]\n\nconst matchTrue = () => true;\n\nconst useStyles = makeStyles(theme => ({\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.grey[500],\n },\n}));\n\nconst defaultValues = {\n gasMeterUnit: {\n enableWriteGasQualityCertificate: false,\n },\n gasMeterPoints: [{ name: \"Линия 1\", number: 1, disabled: false }],\n controller: {\n status: 'ACTIVE',\n },\n gasMeter: {\n status: 'ACTIVE',\n timeZone: 3,\n commercialHour: 10,\n }\n}\n\nconst CreateDialog = ({\n children,\n open,\n onClose,\n ...props\n}) => {\n const dispatch = useDispatch();\n const notify = useNotify();\n const classes = useStyles(props);\n const translate = useTranslate();\n const [loading, setLoading] = useState(false)\n\n const handleSave = useCallback((values) => {\n\n const { gasMeterUnit, gasMeterPoints, controller, gasMeter } = values\n\n dispatch(fetchStart());\n setLoading(true)\n\n /// Создание УУГ\n createGasMeterUnit(gasMeterUnit)\n .then(result => {\n const gasMeterUnitId = result.id\n\n /// Создание Линий\n createGasMeterPoints(gasMeterPoints, gasMeterUnitId)\n .then(result => {\n console.log(result)\n })\n\n return { gasMeterUnitId }\n })\n .then(({ gasMeterUnitId }) => {\n /// Создание Контроллера\n\n return createController(controller)\n .then(result => {\n const controllerId = result.id\n return { gasMeterUnitId, controllerId }\n })\n })\n .then(({ gasMeterUnitId, controllerId }) => {\n /// Создание Корректора\n\n return createGasMeter(gasMeter)\n .then(result => {\n const gasMeterId = result.id\n return { gasMeterUnitId, controllerId, gasMeterId }\n })\n })\n .then(({ gasMeterUnitId, controllerId, gasMeterId }) => {\n\n return createDevice({ gasMeterUnitId, controllerId, gasMeterId })\n })\n .then((result) => {\n\n const deviceId = result.id\n notify('ra.notification.device_wizard_created', 'info', {\n action: \n {translate('ra.action.show')}\n \n });\n })\n .catch((error) => {\n notify(typeof error === 'string' ? error : error.message || 'ra.notification.http_error', 'warning');\n })\n .finally(() => {\n setLoading(false)\n dispatch(fetchEnd());\n onClose()\n });\n }, []);\n\n\n\n\n return (\n \n Мастер создания Устройства\n \n \n \n \n \n \n {can('create', 'GasMeterUnit', 'name') && }\n {can('create', 'GasMeterUnit', 'description') && }\n {can('create', 'GasMeterUnit', 'aisId') && }\n {can('create', 'GasMeterUnit', 'enableWriteGasQualityCertificate') && }\n {can('create', 'GasMeterUnit', 'gasMeterPad', 'GasMeterPad') && \n } matchSuggestion={matchTrue} />\n }\n {can('create', 'GasMeterUnit', 'gasMeterPoints', 'GasMeterPoint') && }\n \n \n \n {can('create', 'Controller', 'name') && \n {({ formData, id, ...rest }) => (\n \n )}\n }\n {can('create', 'Controller', 'description') && }\n {can('create', 'Controller', 'type') && }\n {can('create', 'Controller', 'configuration', 'ControllerConfiguration') && }\n {can('create', 'Controller', 'serialNumber') && }\n {can('create', 'Controller', 'url') && }\n {can('create', 'Controller', 'phoneNumber') && }\n {can('create', 'Controller', 'meta') && \n \n }\n \n \n \n {can('create', 'GasMeter', 'name') && \n {({ formData, id, ...rest }) => (\n \n )}\n }\n {can('create', 'GasMeter', 'description') && }\n {can('create', 'GasMeter', 'type') && }\n {can('create', 'GasMeter', 'configuration', 'GasMeterConfiguration') && }\n {can('create', 'GasMeter', 'dbId') && }\n {can('create', 'GasMeter', 'serialNumber') && }\n {can('create', 'GasMeter', 'port') && }\n {can('create', 'GasMeter', 'timeZone') && }\n {can('create', 'GasMeter', 'commercialHour') && }\n {can('create', 'GasMeter', 'meta') && \n \n }\n \n \n {can('update', 'Controller', 'status') && }\n {can('create', 'GasMeterUnit', 'reports', 'Report') && \n {({ formData, id, ...rest }) => (\n \n )}\n }\n {can('create', 'GasMeterUnit', 'dashboards', 'Dashboard') && }\n \n \n \n );\n};\n\n\nconst sanitizeRestProps = ({\n basePath = null,\n hasCreate = null,\n hasEdit = null,\n hasList = null,\n hasShow = null,\n history = null,\n loaded = null,\n loading = null,\n location = null,\n match = null,\n onFailure = null,\n onSuccess = null,\n options = null,\n permissions = null,\n transform = null,\n ...rest\n}) => rest;\n\n\nexport default CreateDialog;\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n \n \n \n );\n}\n\nexport default Icon;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Avatar from '@material-ui/core/Avatar';\nimport MagicWand from '../Icons/MagicWand';\n\n\n\nconst useStyles = makeStyles(theme => ({\n cardActionArea: {\n height: \"100%\"\n },\n title: {\n fontWeight: 500,\n lineHeight: 1.33,\n },\n avatar: {\n color: theme.palette.text.primary,\n backgroundColor: \"#ffcd38\",\n },\n}));\n\nconst DeviceCreateWizardCard = ({ className, classes: classesOverride, onClick, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n\n return (\n \n \n \n \n }\n title=\"Мастер создания Устройства\"\n titleTypographyProps={{ variant: \"subtitle1\" }}\n classes={{ title: classes.title }}\n />\n \n \n Создайте УУГ, Контроллер, Корректор и связи между ними в одном месте!\n \n \n \n \n );\n};\n\nexport default DeviceCreateWizardCard;","import React, { useState, useCallback } from 'react';\nimport DeviceCreateWizardDialog from './DeviceCreateWizardDialog';\nimport DeviceCreateWizardCard from './DeviceCreateWizardCard';\n\n\n\nconst DeviceCreateWizardCardButton = ({ className, classes: classesOverride, ...props }) => {\n const [open, setOpen] = useState(false);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n <>\n \n \n \n\n );\n};\n\nexport default DeviceCreateWizardCardButton;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Title } from 'react-admin';\nimport { TITLE_APP } from '../../appsettings'\nimport WidgetBanner from './WidgetBanner';\nimport GridLayoutSimple from '../Layout/GridLayoutSimple';\nimport NewReleaseCard from \"./NewReleaseCard\";\nimport DeviceCreateWizardCardButton from \"../Device/DeviceCreateWizardCardButton\";\nimport { can } from \"../../abilityProvider\";\n\nconst useStyles = makeStyles(theme => ({\n container: {\n paddingTop: 16,\n },\n}));\n\nconst MainScreen = () => {\n const classes = useStyles();\n\n return (\n
\n \n <WidgetBanner />\n <GridLayoutSimple xs={{ count: \"auto-fill\", size: [32, \"1fr\"] }} label=\"resources.Main.fields.scope\" style={{ padding: 16 }}>\n <NewReleaseCard />\n {can('create', 'GasMeterUnit') && can('create', 'GasMeterPoint') && can('create', 'Controller') && can('create', 'GasMeter') && (\n <DeviceCreateWizardCardButton />\n )}\n\n </GridLayoutSimple>\n </div>\n\n );\n};\n\nexport default MainScreen;","import gql from 'graphql-tag'\n\nexport const SUBSCRIBE_ONLINE_USERS = gql`\n subscription onlineUsers{\n onlineUsers {\n node { \n id\n authId\n online\n }\n previousValues {\n id\n }\n }\n }\n \n`","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nconst ONLINE_USERS = gql`\n query OnlineUsers {\n onlineUsers: allUsers(\n filter: {\n online: true\n }\n ){\n id\n authId\n online\n },\n }\n`;\n\nexport default () => {\n return apolloCoreClient.query({\n query: ONLINE_USERS,\n onError: (error) => {\n alert(error)\n }\n });\n};\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\nconst USER_TEMPLATE = `{\n id\n name\n description\n createdAt\n updatedAt\n deleted\n authId\n banned\n email\n phone\n role\n online\n accessResource\n access { id resource }\n counterparty {\n id \n accessResource\n }\n apps {\n id \n name \n url \n avatar\n }\n}`\n\nexport const GET_ONE_USER = gql`\n query User( $where: UserWhereUniqueInput! ) {\n data: User( where: $where ) ${USER_TEMPLATE}\n }\n`\n\nexport default (args) => {\n \n return apolloCoreClient.query({\n query: GET_ONE_USER,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};\n","export const SET_ACCESS = 'SET_ACCESS';\n\nexport const setAccess = (user) => ({\n type: SET_ACCESS,\n payload: user,\n});","export const ONLINE_USERS = 'ONLINE_USERS';\n\nexport const setOnlineUsers = (onlineUsers) => ({\n type: ONLINE_USERS,\n payload: { onlineUsers },\n});","export const SET_USER = 'SET_USER';\n\nexport const setUser = (user) => ({\n type: SET_USER,\n payload: { user },\n});","import { MenuItemLink, UserMenu, useTranslate } from 'react-admin';\nimport React, { useEffect } from 'react';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport { AUTH_TOKEN_COOKIE } from '../../appsettings';\nimport AvatarField from '../Fields/AvatarField';\nimport { SUBSCRIBE_ONLINE_USERS } from '../../dataProvider/Core/onlineUsersSubscription';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport Typography from '@material-ui/core/Typography';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\nimport decodeJwt from 'jwt-decode'\nimport { getCookie } from '../../utils';\nimport getOnlineUsers from '../../dataProvider/Core/getOnlineUsers';\nimport getProfile from '../../dataProvider/Core/getProfile';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { setAccess } from '../../redux/access/actions';\nimport { setOnlineUsers } from '../../redux/onlineUsers/actions';\nimport { setUser } from '../../redux/user/actions';\nimport { useSubscription } from '@apollo/client';\n\nconst useStyles = makeStyles(theme => ({\n userPreview: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n textAlign: \"center\",\n padding: theme.spacing(2),\n minWidth: 256,\n },\n headerAvatar: {\n margin: -theme.spacing(0.5),\n color: theme.palette.secondary.contrastText,\n backgroundColor: theme.palette.primary.light,\n },\n}));\n\nconst ConfigurationMenu = (props) => {\n const translate = useTranslate();\n return (\n <MenuItemLink\n to=\"/Profile\"\n primaryText={translate('ra.auth.user_menu')}\n leftIcon={<SettingsIcon />}\n onClick={props.onClick}\n />\n );\n};\n\n\n\n\nconst MyUserMenu = ({ ...props }) => {\n const user = useSelector(state => state.user, shallowEqual);\n const onlineUsers = useSelector(state => state.onlineUsers, shallowEqual);\n const dispatch = useDispatch();\n const classes = useStyles();\n const translate = useTranslate();\n const onSubscriptionData = ({ client, subscriptionData: { data: { onlineUsers: { node, previousValues } } } }) => {\n if (node && node.online) {\n\n if (!onlineUsers.includes(node.id)) { dispatch(setOnlineUsers([...onlineUsers, node.id])) };\n } else {\n\n const filterArray = onlineUsers.filter(id => {\n const userId = node ? node.id : previousValues.id\n return id !== userId\n });\n dispatch(setOnlineUsers(filterArray));\n };\n };\n\n useSubscription(SUBSCRIBE_ONLINE_USERS, {\n client: apolloCoreClient,\n onSubscriptionData,\n });\n\n useEffect(() => {\n async function fetchData() {\n try {\n const { data: { onlineUsers: _onlineUsers } } = await getOnlineUsers();\n const onlineUsersIds = _onlineUsers.map(user => user.id)\n dispatch(setOnlineUsers(onlineUsersIds));\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n return () => {\n dispatch(setOnlineUsers([]));\n };\n\n }, [dispatch]);\n\n useEffect(() => {\n\n async function fetchData() {\n try {\n const { userId } = decodeJwt(getCookie(AUTH_TOKEN_COOKIE));\n const { data: { data: profile } } = await getProfile({ where: { authId: userId } });\n\n dispatch(setUser(profile));\n dispatch(setAccess(profile));\n\n\n\n } catch (error) {\n console.log('error: ', error)\n }\n }\n fetchData();\n\n return () => {\n dispatch(setUser(null));\n dispatch(setAccess(null));\n };\n\n }, [dispatch, setUser, setAccess]);\n\n return (\n <UserMenu icon={<AvatarField record={user} size=\"small\" className={classes.headerAvatar} />} {...props}>\n {user && (\n <div className={classes.userPreview}>\n <AvatarField record={user} size=\"large\" />\n <Typography variant=\"body1\" style={{ marginTop: 8 }}>{user.name}</Typography>\n <Typography variant=\"body2\" color=\"textSecondary\" gutterBottom>{translate(`resources.User.enums.role.${user.role}`, { _: user.role })}</Typography>\n </div>)}\n {user && (<ConfigurationMenu record={user} />)}\n </UserMenu>\n );\n}\n\n\nexport default MyUserMenu;\n\n\n\n","import React, { forwardRef } from 'react';\n//import { Link } from 'react-router-dom';\nimport Link from '@material-ui/core/Link';\nimport { makeStyles } from '@material-ui/core/styles';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport Avatar from '@material-ui/core/Avatar';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nconst useStyles = makeStyles(theme => ({\n menuItem: {\n minWidth: 256,\n },\n avatar: {\n \n },\n}));\n\nconst LinkRef = React.forwardRef((props, ref) => <Link innerRef={ref} underline=\"none\" {...props} />);\n\nconst UserApp = forwardRef(({ name, description, url, avatar, ...props}, ref) => {\n const classes = useStyles();\n return (\n <MenuItem\n component={LinkRef}\n ref={ref}\n href={url}\n target=\"_blank\"\n rel=\"noopener\"\n color=\"inherit\"\n classes={{root: classes.menuItem}}\n {...props}\n \n >\n <ListItemAvatar>\n <Avatar variant=\"rounded\" alt={name} src={avatar}>\n {name.charAt(0).toUpperCase()}\n </Avatar>\n </ListItemAvatar>\n <ListItemText primary={name} />\n </MenuItem>\n )\n});\n\n\nexport default UserApp;\n\n\n","import React, { useState } from 'react';\nimport { gql, useQuery } from '@apollo/client';\nimport sortBy from 'lodash/sortBy';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\nimport decodeJwt from 'jwt-decode'\nimport { AUTH_TOKEN_COOKIE } from '../../appsettings';\nimport { getCookie } from '../../utils';\nimport { useTranslate } from 'react-admin';\nimport { makeStyles } from '@material-ui/core/styles';\nimport IconButton from '@material-ui/core/IconButton';\nimport AppsIcon from '@material-ui/icons/Apps';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Menu from '@material-ui/core/Menu';\nimport UserApp from './UserApp';\n\n\n\nconst USER_APPS = gql`\n query getUser($authId: ID) {\n data: User(\n where: {\n authId: $authId\n }\n ){id apps {id name description url avatar}}\n }\n`;\n\nconst UserApps = (props) => {\n const translate = useTranslate();\n const [anchorEl, setAnchorEl] = useState(null);\n\n const handleClick = event => {\n setAnchorEl(event.currentTarget);\n \n };\n\n const handleClose = event => {\n setAnchorEl(null);\n \n };\n\n const { userId } = decodeJwt(getCookie(AUTH_TOKEN_COOKIE));\n\n const { data } = useQuery(USER_APPS, {\n client: apolloCoreClient,\n variables: { authId: userId },\n });\n\n const apps = data && data.data && data.data.apps.length > 0 && sortBy(data.data.apps, (app) => app.name)\n\n if (!apps) return null;\n\n return (\n <>\n <Tooltip title={translate('ra.navigation.user_apps', { _: 'Apps' })} >\n <IconButton aria-controls=\"user_apps\" color=\"inherit\" onClick={handleClick}>\n <AppsIcon />\n </IconButton>\n </Tooltip>\n <Menu\n id=\"user_apps\"\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n {apps.map(app => (\n <UserApp\n key={app.id}\n onClick={handleClose}\n {...app}\n />\n ))}\n </Menu>\n </>\n )\n};\n\nexport default UserApps;\n\n\n","import React from 'react';\nimport { AppBar } from 'react-admin';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core';\nimport UserMenu from './UserMenu';\nimport UserApps from './UserApps';\n\n\nconst useStyles = makeStyles(theme => ({\n appbar: {\n boxShadow: \"0px 3px 5px -1px rgba(0, 0, 0, 0.06), 0px 6px 10px 0px rgba(0, 0, 0, 0.042), 0px 1px 18px 0px rgba(0, 0, 0, 0.036)\",\n },\n title: {\n flex: 1,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n spacer: {\n flex: 1,\n },\n}));\n\n\nconst MyAppBar = ({ ...props }) => {\n const classes = useStyles();\n\n return (\n <AppBar color=\"primary\" {...props} userMenu={<UserMenu />} className={classes.appbar}>\n <Typography\n variant=\"h6\"\n color=\"inherit\"\n className={classes.title}\n id=\"react-admin-title\"\n />\n <div id=\"askug-documentation\"></div>\n <UserApps />\n </AppBar>\n );\n\n}\n\nexport default MyAppBar;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Drawer, useMediaQuery } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport lodashGet from 'lodash/get';\nimport { setSidebarVisibility, useLocale } from 'ra-core';\n\nexport const DRAWER_WIDTH = 240;\nexport const CLOSED_DRAWER_WIDTH = 55;\n\nconst Sidebar = (props) => {\n const {\n children,\n closedSize,\n size,\n classes: classesOverride,\n ...rest\n } = props;\n const dispatch = useDispatch();\n const isXSmall = useMediaQuery(theme =>\n theme.breakpoints.down('xs')\n );\n const isSmall = useMediaQuery(theme => theme.breakpoints.down('sm'));\n const open = useSelector(\n state => state.admin.ui.sidebarOpen\n );\n useLocale(); // force redraw on locale change\n const toggleSidebar = () => dispatch(setSidebarVisibility(!open));\n const { drawerPaper, fixed, ...classes } = useStyles({\n ...props,\n open,\n });\n\n return isXSmall ? (\n <Drawer\n variant=\"temporary\"\n open={open}\n PaperProps={{\n className: drawerPaper,\n }}\n onClose={toggleSidebar}\n classes={classes}\n {...rest}\n >\n {children}\n </Drawer>\n ) : isSmall ? (\n <Drawer\n variant=\"permanent\"\n open={open}\n PaperProps={{\n className: drawerPaper,\n }}\n onClose={toggleSidebar}\n classes={classes}\n {...rest}\n >\n <div className={fixed}>{children}</div>\n </Drawer>\n ) : (\n <Drawer\n variant=\"permanent\"\n open={open}\n PaperProps={{\n className: drawerPaper,\n }}\n onClose={toggleSidebar}\n classes={classes}\n {...rest}\n >\n <div className={fixed}>{children}</div>\n </Drawer>\n );\n};\n\nSidebar.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nconst useStyles = makeStyles(\n theme => ({\n root: {\n height: 'calc(100vh - 3em)',\n },\n docked: {},\n paper: {},\n paperAnchorLeft: {},\n paperAnchorRight: {},\n paperAnchorTop: {},\n paperAnchorBottom: {},\n paperAnchorDockedLeft: {},\n paperAnchorDockedTop: {},\n paperAnchorDockedRight: {},\n paperAnchorDockedBottom: {},\n modal: {},\n fixed: {\n position: 'fixed',\n height: 'calc(100vh - 3em)',\n overflowX: 'hidden',\n // hide scrollbar\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n drawerPaper: {\n position: 'relative',\n width: (props) =>\n props.open\n ? lodashGet(theme, 'sidebar.width', DRAWER_WIDTH)\n : lodashGet(\n theme,\n 'sidebar.closedWidth',\n CLOSED_DRAWER_WIDTH\n ),\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n backgroundColor: 'transparent',\n borderRight: 'none',\n [theme.breakpoints.only('xs')]: {\n marginTop: 0,\n height: '100vh',\n position: 'inherit',\n backgroundColor: theme.palette.background.default,\n },\n [theme.breakpoints.up('md')]: {\n border: 'none',\n },\n zIndex: 'inherit',\n },\n }),\n { name: 'RaSidebar' }\n);\n\nexport default Sidebar;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport Typography from '@material-ui/core/Typography';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginBottom: 4,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n menuGroupTitle: {\n paddingTop: theme.spacing(),\n paddingLeft: theme.spacing(3),\n },\n\n}));\n\nconst MenuGroup = ({ title, children, ...props }) => {\n const classes = useStyles();\n if (children.length === 0) return null;\n\n return (\n <div className={classes.root}>\n {(!!title) && <Typography variant=\"subtitle2\" color=\"textSecondary\" gutterBottom noWrap className={classes.menuGroupTitle} >{title}</Typography>}\n {children}\n </div>\n )\n\n};\n\n\nexport default MenuGroup;","import React, { cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { Title } from 'react-admin';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { useAuthenticated } from 'react-admin';\n\n\nconst styles = theme => ({\n root: {},\n main: {\n display: 'flex',\n },\n card: {\n flex: '1 1 auto',\n },\n cardWrapper: {\n flex: '1 1 auto',\n },\n});\n\n\nexport const ShowView = withStyles(styles)(({\n title,\n aside,\n children,\n classes,\n className,\n ...props\n}) => {\n useAuthenticated();\n if (!children) { return null; }\n\n return (\n <div className={classnames('about-page', classes.root, className)}>\n <Title title={title} />\n <div className={`${classes.main}`} >\n <div className={`${classes.cardWrapper}`} >\n { cloneElement(Children.only(children), {}) }\n </div>\n {aside && cloneElement(aside, {})}\n </div>\n </div>\n );\n});\n\n\nconst Show = props => (\n <ShowView {...props} />\n);\n\nShow.propTypes = {\n aside: PropTypes.node,\n children: PropTypes.element,\n classes: PropTypes.object,\n className: PropTypes.string,\n title: PropTypes.any,\n};\n\nexport default Show;","const getDocumentationPath = (path, baseUrl) => `${baseUrl}${path}`;\n\nexport default getDocumentationPath;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\n\n\nconst useStyles = makeStyles(theme => ({\n \n}));\n\nconst MenuItemIcon = ({\n icon,\n ...props\n}) => {\n return (<ListItemIcon {...props}>{icon}</ListItemIcon>)\n}\n\n\nexport default MenuItemIcon;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Collapse from '@material-ui/core/Collapse';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport { useRouteMatch, useLocation, Link } from 'react-router-dom'\nimport getDocumentationPath from './getDocumentationPath';\nimport MenuItemIcon from './MenuItemIcon';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n borderRadius: theme.shape.borderRadius,\n marginBottom: 4,\n '&:last-child': {\n marginBottom: 0,\n },\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n },\n '&$focusVisible': {\n backgroundColor: fade(theme.palette.primary.main, 0.08),\n },\n '&.Mui-selected': {\n color: theme.palette.primary.main,\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n },\n '&.Mui-selected:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.20),\n },\n },\n expandIcon: {\n fontSize: 20,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest,\n }),\n },\n expandOpen: {\n transform: 'rotate(180deg)',\n },\n listItemText: {\n margin: 0,\n },\n nested: ({depth}) => ({\n paddingLeft: theme.spacing(2) + theme.spacing(2*depth),\n }),\n}));\n\nconst MenuItem = ({\n item,\n depth,\n ...props\n}) => {\n const classes = useStyles({depth});\n const location = useLocation();\n const match = useRouteMatch();\n const { id, name, icon, route, open=false, children } = item;\n const [expand, setExpand] = React.useState(open);\n const selected = route && route.path === location.pathname.replace(match.path, \"\") \n\n const handleClick = () => {\n setExpand(!expand);\n };\n \n const resultProps = {}\n if (route) {\n resultProps.component = Link;\n resultProps.to = getDocumentationPath(route.path, match.url);\n }\n if (children) {\n resultProps.onClick = handleClick;\n }\n\n\n\n return (id && name) ? \n <>\n <ListItem \n dense \n button \n selected={selected}\n classes={{root: classes.root}} \n className={classes.nested}\n {...resultProps}\n >\n {icon && <MenuItemIcon icon={icon} {...icon.props.menuItemIconProps}/>} \n <ListItemText primary={name} classes={{root: classes.listItemText}} />\n {Array.isArray(children)\n ? <ExpandMore className={`${classes.expandIcon} ${expand ? classes.expandOpen : \"\"}`}/>\n : null\n }\n </ListItem>\n {Array.isArray(children) && (\n <Collapse in={expand} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding >\n {children.map(child => (<MenuItem item={child} key={child.id} depth={depth+1}/>))}\n </List>\n </Collapse>\n )}\n </> : null;\n}\n\n\nexport default MenuItem;","import React, { cloneElement } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport List from '@material-ui/core/List';\nimport DefaultMenuItem from './MenuItem';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingLeft: theme.spacing(),\n paddingRight: theme.spacing(),\n },\n}));\n\nconst Menu = ({\n className,\n menu,\n menuItem: ComponentMenuItem,\n ...props\n}) => {\n const classes = useStyles();\n const depth = 0;\n\n return (\n <List component=\"nav\" className={className} classes={{root: classes.root}}>\n {menu.map(menuItem => cloneElement(ComponentMenuItem, {\n key: menuItem.id,\n item: menuItem,\n depth,\n }))}\n </List>\n );\n}\n\nMenu.defaultProps = {\n menuItem: <DefaultMenuItem />,\n}\n\n\n\nexport default Menu;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Menu from './Menu';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: { \n width: 240\n },\n nested: {\n paddingLeft: theme.spacing(4),\n },\n}));\n\nconst Sidebar = ({\n routes,\n sidebar,\n ...props\n}) => {\n const classes = useStyles();\n\n return (\n <Menu menu={sidebar} className={classes.root} />\n );\n}\n\n\nexport default Sidebar;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: { \n width: 240\n },\n}));\n\nconst Aside = (props) => {\n\n const classes = useStyles();\n\n return (\n <div className={classes.root}>\n </div>\n );\n}\n\n\nexport default Aside;","import React, { cloneElement } from 'react';\nimport { useRouteMatch, Route, Redirect } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport DefaultAside from './Aside';\nimport getDocumentationPath from './getDocumentationPath';\n\n\nconst useStyles = makeStyles(theme => ({\n root: { \n display: \"flex\",\n flexGrow: 1,\n flexBasis: 0,\n },\n content: { \n padding: theme.spacing(4, 6),\n flexGrow: 1,\n flexBasis: 0,\n },\n}));\n\nconst Content = ({\n aside,\n routes,\n ...props\n}) => {\n\n const classes = useStyles();\n const match = useRouteMatch();\n\n return (\n <div className={classes.root}>\n <Paper className={classes.content}>\n {routes.reduce((result, { id, path, component }, index) => {\n\n if (index === 0) {\n result.push(\n <Route exact path={match.url} key={`Redirect_to_${id}`}>\n <Redirect to={getDocumentationPath(path, match.url)} />\n </Route>\n );\n };\n result.push(\n <Route exact path={getDocumentationPath(path, match.url)} key={id}>\n {cloneElement(component, {})}\n \n </Route>\n );\n\n return result;\n }, [])}\n </Paper>\n {cloneElement(aside, {})}\n </div>\n );\n}\n\nContent.defaultProps = {\n aside: <DefaultAside />,\n}\n\n\nexport default Content;","import React, { cloneElement } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport DefaultSidebar from './Sidebar';\nimport DefaultContent from './Content';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexGrow: 1,\n marginTop: theme.spacing(2),\n },\n}));\n\nconst Layout = ({\n sidebar: SidebarComponent,\n content: ContentComponent,\n configuration,\n ...props\n}) => {\n const classes = useStyles();\n const { routes, sidebar } = configuration;\n\n return (\n <div className={classes.root}>\n {cloneElement(SidebarComponent, {\n sidebar,\n })}\n {cloneElement(ContentComponent, {\n routes,\n })}\n </div>\n );\n}\n\nLayout.defaultProps = {\n sidebar: <DefaultSidebar />,\n content: <DefaultContent />,\n}\n\n\nexport default Layout;","import Layout from './lib/Layout';\n\nexport {\n Layout,\n};\n\nexport default Layout;\n","import React, { useState, useEffect } from 'react';\nimport url from 'url';\nimport PropTypes from 'prop-types';\nimport Markdown from 'react-markdown';\nimport { useRouteMatch, Link } from \"react-router-dom\";\nimport { HashLink } from 'react-router-hash-link';\nimport getDocumentationPath from './getDocumentationPath';\nimport 'github-markdown-css'\n\n\n\n// const importAll = (r, cache) => r.keys().forEach(key => cache[key] = r(key));\n\n// const imageFiles = {};\n\n// importAll(require.context('../docs/media', false, /\\.(png|jpe?g|svg)$/), imageFiles);\n\n// const transformImageUri = (uri) => {\n// return uri.startsWith(\"http\") ? uri : imageFiles[uri.replace('media', '.')];\n// }\n\n\nfunction RouterLink(props) {\n const match = useRouteMatch();\n\n const f = props.href.match(/^\\//)\n return (<Link to={getDocumentationPath(props.href, match.url)} >{props.children}</Link>);\n return (\n props.href.match(/^\\//)\n ? <Link to={getDocumentationPath(props.href, match.url)} >{props.children}</Link>\n : <a href={props.href}>{props.children}</a>\n );\n }\n\n function RouterHashLink(props) {\n const match = useRouteMatch();\n\n const f = props.href.match(/^\\//)\n return (<HashLink to={getDocumentationPath(props.href, match.url)} >{props.children}</HashLink>);\n return (\n props.href.match(/^\\//)\n ? <Link to={getDocumentationPath(props.href, match.url)} >{props.children}</Link>\n : <a href={props.href}>{props.children}</a>\n );\n }\n\n function Heading(props) {\n const uniqueSlug = \"fff\";\n\n // eslint-disable-next-line react/no-children-prop\n return React.createElement(`h${props.level}`, {\n id: uniqueSlug,\n className: 'headline-primary',\n children: <a href={ `#${uniqueSlug}` }>\n { props.children }\n </a>\n });\n }\n\nconst MarkdownView = ({ path, ...props }) => {\n const [markdownText, setMarkdownText] = useState(\"\");\n useEffect(() => {\n fetch(path)\n .then(res => res.text())\n .then(text => {\n setMarkdownText(text)\n })\n }, []);\n\n return (\n <div className='markdown-body'>\n <Markdown\n source={markdownText}\n escapeHtml={false}\n // transformImageUri={transformImageUri}\n // renderers={{\n // heading: Heading,\n // link: RouterHashLink,\n // }}\n />\n </div>\n );\n\n};\n\nMarkdownView.propTypes = {\n path: PropTypes.string.isRequired,\n};\n\nexport default MarkdownView;","import React from 'react';\nimport { setCookie } from '../../utils';\nimport { PACKAGE_VERSION, PACKAGE_VERSION_COOKIE } from '../../appsettings';\n\n\nconst Changelog = ({children, ...props}) => {\n const version = PACKAGE_VERSION\n setCookie(PACKAGE_VERSION_COOKIE, version);\n \n return (<>{children}</>);\n}\n\nexport default Changelog;","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { getCookie } from '../../utils';\nimport { PACKAGE_VERSION, PACKAGE_VERSION_COOKIE } from '../../appsettings';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root:{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: 24,\n height: 24,\n marginRight: 8,\n } \n}));\n\nconst ChangelogIcon = ({children, ...props}) => {\n const classes = useStyles();\n const version = getCookie(PACKAGE_VERSION_COOKIE);\n \nreturn version !== PACKAGE_VERSION ? (<span className={classes.root}>🔥</span>) : null;\n}\n\nexport default ChangelogIcon;","export default __webpack_public_path__ + \"static/media/Ведение.82f15da7.md\";","export default __webpack_public_path__ + \"static/media/Вход в систему.08ecdde4.md\";","export default __webpack_public_path__ + \"static/media/Описание интерфейса.d59cec74.md\";","import React, { useMemo } from 'react';\nimport gql from 'graphql-tag';\nimport Typography from '@material-ui/core/Typography';\nimport useInfo from './useInfo';\nimport { useVersion } from 'react-admin';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\n\n\n\n\n\nimport { PACKAGE_NAME, PACKAGE_VERSION } from '../../appsettings';\n\nconst Version = (props) => {\n\n const version = useVersion();\n const appQueries = useMemo(() => [\n {\n name: \"Core\",\n query: apolloCoreClient.query({ query: gql`query { Info { name, version } }`, fetchPolicy: 'network-only'}),\n }\n ], [version])\n const {data, loading, error} = useInfo(appQueries)\n\n const portal = { name: PACKAGE_NAME, version: PACKAGE_VERSION }\n const core = data && data[0] && data[0].data.Info && data[0].data.Info && {name: data[0].data.Info.name, version: data[0].data.Info.version}\n\n const infoApps = [portal, core]\n \n return (\n <div>\n {infoApps.map((info, index) => (\n info ?\n (<div key={index} >\n <Typography variant=\"h5\">{info.name}</Typography>\n <Typography variant=\"subtitle1\" color=\"textSecondary\" gutterBottom>{info.version}</Typography>\n </div>) : null\n ))}\n </div> \n );\n};\n\nexport default Version;","import { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux';\nimport { fetchStart, fetchEnd } from 'react-admin';\n\n\nexport default function (args) {\n const dispatch = useDispatch();\n const [state, setState] = useState({\n data: undefined,\n error: undefined,\n loading: true,\n })\n\n useEffect(() => {\n dispatch(fetchStart());\n Promise.all(args.map(app => app.query))\n .then( data => { \n const result = args.map((app, index) => ({\n name: app.name,\n data: data[index].data\n })) \n setState({\n data: result,\n loading: false,\n loaded: true,\n });\n })\n .catch(error => {\n setState({\n error,\n loading: false,\n loaded: false,\n });\n }).finally(() => {\n dispatch(fetchEnd()); // stop the global loading indicator\n });\n }, [dispatch, args])\n\n return state;\n}","export default __webpack_public_path__ + \"static/media/CHANGELOG.3f121664.md\";","import React from 'react';\nimport MarkdownView from './lib/MarkdownView';\nimport Changelog from './Changelog';\nimport ChangelogIcon from './ChangelogIcon';\n\nimport Introduction from './docs/Ведение.md';\nimport Login from './docs/Вход в систему.md';\nimport Uidescription from './docs/Описание интерфейса.md';\nimport VERSION from '../AboutApp/Version';\nimport CHANGELOG from './docs/CHANGELOG.md';\n\n\nconst routes = [\n // {\n // id: 'introduction',\n // path: '/Introduction',\n // component: <MarkdownView path={Introduction} />,\n // },\n // {\n // id: 'login',\n // path: '/Login',\n // component: <MarkdownView path={Login} />,\n // },\n // {\n // id: 'uidescription',\n // path: '/Uidescription',\n // component: <MarkdownView path={Uidescription} />,\n // },\n {\n id: 'changelog',\n path: '/Сhangelog',\n component: <Changelog><MarkdownView path={CHANGELOG} /></Changelog>,\n },\n {\n id: 'version',\n path: '/Version',\n component: <VERSION />,\n },\n]\n\n\nconst sidebar = [\n // {\n // id: 'documentation',\n // name: 'Документация',\n // open: true,\n // children: [\n // {\n // id: 'introduction',\n // name: 'Введение',\n // route: routes.find(route => route.id === 'introduction'),\n // },\n // {\n // id: 'login',\n // name: 'Вход в систему',\n // route: routes.find(route => route.id === 'login'),\n // },\n // {\n // id: 'uidescription',\n // name: 'Описание интерфейса',\n // route: routes.find(route => route.id === 'uidescription'),\n // },\n // ],\n // },\n {\n id: 'changelog',\n name: 'Журнал изменений',\n icon: <ChangelogIcon menuItemIconProps={{ style: { color: \"inherit\", marginRight: 0 } }} />,\n route: routes.find(route => route.id === 'changelog'),\n },\n {\n id: 'version',\n name: 'Версия',\n route: routes.find(route => route.id === 'version'),\n },\n];\n\n\n\nexport {\n routes,\n sidebar,\n};\n\n\n\n","import React from 'react';\nimport Show from './Show';\nimport Documentation from '../Documentation';\nimport { routes, sidebar } from '../Documentation/config';\n\n\n\n\n\nconst AboutAppShow = (props) => {\n \n return (\n <Show /*aside={<Versions />}*/ title=\"resources.About.name\" {...props}>\n <Documentation configuration={{ routes, sidebar }} />\n </Show>\n );\n};\n\nexport default AboutAppShow;","import Icon from '@material-ui/icons/Info';\nimport AboutAppShow from './AboutAppShow';\n\nconst AboutAppIcon = Icon;\n\n\nexport {\n AboutAppIcon,\n AboutAppShow,\n};\n","import React from 'react';\nimport lodashGet from 'lodash/get';\nimport PropTypes from 'prop-types';\nimport { groupBy } from 'lodash';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { makeStyles } from '@material-ui/core';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport DefaultIcon from '@material-ui/icons/ViewList';\nimport { MenuItemLink, getResources, useTranslate, DashboardMenuItem } from 'react-admin';\nimport classnames from 'classnames';\nimport MenuGroup from './MenuGroup';\nimport { AboutAppIcon } from '../AboutApp';\n\n\nexport const MENU_WIDTH = 240;\nexport const CLOSED_MENU_WIDTH = 55;\n\nconst useStyles = makeStyles(theme => ({\n root: {\n borderRadius: theme.shape.borderRadius,\n marginLeft: theme.spacing(),\n marginRight: theme.spacing(),\n marginBottom: 4,\n '&:last-child': {\n marginBottom: 0,\n },\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n },\n },\n active: {\n color: theme.palette.primary.main,\n backgroundColor: fade(theme.palette.primary.main, 0.12),\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, 0.20),\n },\n },\n icon: { color: \"inherit\" },\n main: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n marginTop: '1.5em',\n marginBottom: '1em',\n [theme.breakpoints.only('xs')]: {\n marginTop: 0,\n },\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n open: {\n width: lodashGet(theme, 'menu.width', MENU_WIDTH),\n },\n closed: {\n width: lodashGet(theme, 'menu.closedWidth', CLOSED_MENU_WIDTH),\n },\n}), { name: 'RaMenu' });\n\n// const useStyles = makeStyles(theme => ({\n// root: {\n// borderRadius: theme.shape.borderRadius,\n// marginLeft: theme.spacing(),\n// marginRight: theme.spacing(),\n// marginBottom: 4,\n// '&:last-child': {\n// marginBottom: 0,\n// },\n// '&:hover': {\n// backgroundColor: fade(theme.palette.primary.main, 0.12),\n// },\n// },\n// active: {\n// color: theme.palette.primary.main,\n// backgroundColor: fade(theme.palette.primary.main, 0.12),\n// '&:hover': {\n// backgroundColor: fade(theme.palette.primary.main, 0.20),\n// },\n// },\n// icon: { color: \"inherit\" },\n// main: {\n// display: 'flex',\n// flexDirection: 'column',\n// justifyContent: 'flex-start',\n// marginTop: '1.5em',\n\n// },\n// stickyContainer: {\n// height: \"100%\",\n// },\n// sticky: {\n// position: \"sticky\",\n// top: '1.5em',\n// }\n// }));\n\n\nconst Menu = ({\n classes: classesOverride,\n className,\n dense,\n hasDashboard,\n onMenuClick,\n logout,\n ...props\n}) => {\n const translate = useTranslate();\n const classes = useStyles({ classes: classesOverride });\n const open = useSelector(state => state.admin.ui.sidebarOpen);\n const resourcesReactAdmin = useSelector(getResources, shallowEqual);\n const accessResourses = useSelector(state => state.access && state.access.accessResources, shallowEqual);\n\n useSelector(state => state.router.location.pathname); // used to force redraw on navigation\n\n if (!accessResourses) return null;\n\n const menuAboutApp = {\n hasList: true,\n icon: AboutAppIcon,\n name: \"About\",\n options: { menuGroup: \"utils\" },\n }\n\n const resources = [...resourcesReactAdmin, menuAboutApp]\n\n const filteredResources = resources.filter(resource => !(accessResourses[resource.name] === false))\n const groupedResources = groupBy(filteredResources, resource => resource.options.menuGroup || 'default');\n\n return (\n <div\n className={classnames(\n classes.main,\n {\n [classes.open]: open,\n [classes.closed]: !open,\n },\n className\n )}\n // {...rest}\n >\n {hasDashboard && <DashboardMenuItem onClick={onMenuClick} sidebarIsOpen={open} classes={{ root: classes.root, active: classes.active, icon: classes.icon }} dense={false} />}\n {Object.keys(groupedResources).map(group => (\n <MenuGroup\n key={group}\n title={translate(`menu.groups.${group}`)}\n >\n {groupedResources[group].filter(r => r.hasList).map(resource => (\n <MenuItemLink\n key={resource.name}\n to={`/${resource.name}`}\n classes={{ root: classes.root, active: classes.active, icon: classes.icon }}\n primaryText={translate(`resources.${resource.name}.menu`, { _: resource.name, smart_count: 2 })}\n leftIcon={resource.icon ? <resource.icon /> : <DefaultIcon />}\n onClick={onMenuClick}\n sidebarIsOpen={open}\n />\n ))}\n </MenuGroup>\n ))\n }\n </div>\n // <div className={classes.stickyContainer}>\n // <div />\n // <div className={classNames(classes.main, classes.sticky, className)} {...props}>\n // {hasDashboard && <DashboardMenuItem onClick={onMenuClick} sidebarIsOpen={open} classes={{ root: classes.root, active: classes.active, icon: classes.icon }} dense={false} />}\n // {Object.keys(groupedResources).map(group => (\n // <MenuGroup\n // key={group}\n // title={translate(`menu.groups.${group}`)}\n // >\n // {groupedResources[group].filter(r => r.hasList).map(resource => (\n // <MenuItemLink\n // key={resource.name}\n // to={`/${resource.name}`}\n // classes={{ root: classes.root, active: classes.active, icon: classes.icon }}\n // primaryText={translate(`resources.${resource.name}.menu`, { _: resource.name, smart_count: 2 })}\n // leftIcon={resource.icon ? <resource.icon /> : <DefaultIcon />}\n // onClick={onMenuClick}\n // sidebarIsOpen={open}\n // />\n // ))}\n // </MenuGroup>\n // ))\n // }\n // </div>\n // </div>\n\n );\n};\n\nMenu.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n dense: PropTypes.bool,\n hasDashboard: PropTypes.bool,\n logout: PropTypes.element,\n onMenuClick: PropTypes.func,\n};\n\nMenu.defaultProps = {\n onMenuClick: () => null,\n};\n\nexport default Menu;\n","import React, { useState, useEffect, useCallback, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Snackbar, { SnackbarProps } from '@material-ui/core/Snackbar';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport {\n hideNotification,\n getNotification,\n undo,\n complete,\n undoableEventEmitter,\n useTranslate,\n} from 'ra-core';\n\n\n\nconst useStyles = makeStyles(\n (theme) => ({\n error: {\n backgroundColor: theme.palette.error.dark,\n color: theme.palette.error.contrastText,\n },\n warning: {\n backgroundColor: theme.palette.error.light,\n color: theme.palette.error.contrastText,\n },\n undo: {\n color: theme.palette.primary.light,\n },\n }),\n { name: 'RaNotification' }\n);\n\nconst Notification = props => {\n const {\n classes: classesOverride,\n type,\n className,\n autoHideDuration,\n ...rest\n } = props;\n const [open, setOpen] = useState(false);\n const notification = useSelector(getNotification);\n const dispatch = useDispatch();\n const translate = useTranslate();\n const styles = useStyles(props);\n\n useEffect(() => {\n setOpen(!!notification);\n }, [notification]);\n\n const handleRequestClose = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n const handleExited = useCallback(() => {\n if (notification && notification.undoable) {\n dispatch(complete());\n undoableEventEmitter.emit('end', { isUndo: false });\n }\n dispatch(hideNotification());\n }, [dispatch, notification]);\n\n const handleUndo = useCallback(() => {\n dispatch(undo());\n undoableEventEmitter.emit('end', { isUndo: true });\n }, [dispatch]);\n\n return (\n <Snackbar\n open={open}\n message={\n notification &&\n notification.message &&\n translate(notification.message, notification.messageArgs)\n }\n autoHideDuration={\n (notification && notification.autoHideDuration) ||\n autoHideDuration\n }\n disableWindowBlurListener={notification && notification.undoable}\n onExited={handleExited}\n onClose={handleRequestClose}\n ContentProps={{\n className: classnames(\n styles[(notification && notification.type) || type],\n className\n ),\n }}\n action={\n <>\n { notification && notification.undoable ? (\n <Button\n color=\"primary\"\n className={styles.undo}\n size=\"small\"\n onClick={handleUndo}\n >\n {translate('ra.action.undo')}\n </Button>\n ) : null}\n { notification && notification.messageArgs && notification.messageArgs.action ? (\n cloneElement(notification.messageArgs.action)\n ) : null}\n </>\n }\n {...rest}\n />\n );\n};\n\nNotification.propTypes = {\n type: PropTypes.string,\n};\n\nNotification.defaultProps = {\n type: 'info',\n autoHideDuration: 4000,\n};\n\nexport default Notification;\n","import { useState, useCallback } from 'react';\nimport { useDataProvider } from 'react-admin';\nimport set from 'lodash/set';\nimport get from 'lodash/get';\n\n\n\nconst usePreferenceController = (params) => {\n\n const dataProvider = useDataProvider();\n const [data, setData] = useState({});\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n\n const readStorage = useCallback(async (path) => {\n if (!path) return;\n setLoading(true)\n\n const [key, ...subkeys] = path.split('.');\n const response = await dataProvider.getPreferences('Preference', { key });\n const preferences = response.data?.preferences?.value\n setData(prev => {\n const newPreferences = set({ ...prev }, [key, ...subkeys], get(preferences, subkeys))\n return newPreferences\n });\n setLoading(false)\n setLoaded(true)\n\n }, [setData]);\n\n const writeStorage = useCallback((path, value) => {\n if (!path) return;\n\n const [key, ...subkeys] = path.split('.');\n\n setData(prev => {\n const newPreferences = set({ ...prev }, [key, ...subkeys], value)\n dataProvider.setPreferences('Preference', { key, value: get(newPreferences, [key]) });\n return newPreferences\n });\n\n }, [setData]);\n\n return {\n data,\n loading,\n loaded,\n readStorage,\n writeStorage\n };\n}\n\nexport default usePreferenceController","import React from \"react\";\nimport PreferenceContext from \"./PreferenceContext\";\nimport usePreferenceController from \"./usePreferenceController\";\n\nconst PreferenceContextProvider = ({ children }) => {\n\n const сonntrollerProps = usePreferenceController()\n\n return (\n <PreferenceContext.Provider value={сonntrollerProps}>\n {children}\n </PreferenceContext.Provider>\n );\n};\n\nexport default PreferenceContextProvider","import React from 'react';\nimport { Layout } from 'react-admin';\nimport AppBar from './AppBar';\nimport Sidebar from './Sidebar';\nimport Menu from './Menu';\nimport Notification from './Notification';\nimport PreferenceContextProvider from '../../controller/preferences/PreferenceContextProvider';\n\nexport const MyLayout = props => {\n return (\n <PreferenceContextProvider>\n <Layout\n {...props}\n appBar={AppBar}\n menu={Menu}\n notification={Notification}\n sidebar={Sidebar}\n />\n </PreferenceContextProvider>\n\n );\n};\n\n","import { SET_ACCESS } from './actions';\n\n\n\nexport default (previousState=null, { type, payload }) => {\n if (type === SET_ACCESS) {\n\n if (!payload) return false;\n const { accessResource, counterparty } = payload;\n\n const accessByUser = accessResource || (counterparty && counterparty.accessResource);\n const accessByResource = {\n GasRegion: {\n GasRegion: true,\n GasDistrict: true,\n GasMeterPad: true,\n GasMeterUnit: true,\n GasConsumer: true,\n GasDistributorOrganization: true,\n GasDistributorStation: true,\n GasDistributorStationOutput: true,\n },\n GasDistrict: {\n GasRegion: false,\n GasDistrict: true,\n GasMeterPad: true,\n GasMeterUnit: true,\n GasConsumer: true,\n GasDistributorOrganization: true,\n GasDistributorStation: true,\n GasDistributorStationOutput: true,\n },\n GasMeterPad: {\n GasRegion: false,\n GasDistrict: false,\n GasMeterPad: true,\n GasMeterUnit: true,\n GasConsumer: false,\n GasDistributorOrganization: false,\n GasDistributorStation: false,\n GasDistributorStationOutput: false,\n },\n GasMeterUnit: {\n GasRegion: false,\n GasDistrict: false,\n GasMeterPad: false,\n GasMeterUnit: true,\n GasConsumer: false,\n GasDistributorOrganization: false,\n GasDistributorStation: false,\n GasDistributorStationOutput: false,\n },\n GasConsumer: {\n GasRegion: false,\n GasDistrict: false,\n GasMeterPad: true,\n GasMeterUnit: true,\n GasConsumer: true,\n GasDistributorOrganization: false,\n GasDistributorStation: false,\n GasDistributorStationOutput: false,\n },\n };\n\n const accessResources = accessByResource[accessByUser];\n\n return accessResources ? {\n accessResource,\n accessResources,\n } : false;\n }\n return previousState;\n}","import gql from 'graphql-tag'\nimport { apolloAuthClient } from './apolloAuthClient';\n\n\n\nconst LOGIN_MUTATION = gql`\n mutation login($login: String!, $password: String!) {\n login(login: $login, password: $password) {\n token,\n refreshToken,\n user {\n id,\n email,\n phone,\n name,\n role\n }\n }\n }\n`;\n\nexport default (args) => {\n return apolloAuthClient.mutate({\n mutation: LOGIN_MUTATION,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\nconst LOGIN_USER_MUTATION = gql`\n mutation loginUser($id: ID!, $name: String!, $description: String, $login: String, $email: String, $phone: String, $role: UserRole!, $banned: Boolean) {\n loginUser(authId: $id, name: $name, description: $description, login: $login, email: $email, phone: $phone, role: $role, banned: $banned) {\n id\n authId\n name\n login\n email\n phone\n role\n banned\n }\n }\n`;\n\nexport default (args) => {\n return apolloCoreClient.mutate({\n mutation: LOGIN_USER_MUTATION,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import gql from 'graphql-tag'\nimport { apolloAuthClient } from '../../authPrivider/apolloAuthClient';\nimport { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { URI_CORE } from '../../appsettings';\n\n\nconst GUEST = gql`\n mutation guest {\n data: guest { token refreshToken }\n }\n`\n\nasync function getGuestToken() {\n\n const guest = await apolloAuthClient.mutate({\n mutation: GUEST,\n onError: (error) => {\n alert(error)\n },\n });\n\n return guest.data.data.token\n}\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_CORE\n})\n\nconst authLink = setContext(async (_, { headers }) => { \n \n const token = await getGuestToken(); \n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst apolloCoreClient = new ApolloClient({\n link: authLink.concat(httpLink),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n },\n});\n\nconst BAN_USER = gql`\n mutation banUser( $where: UserWhereUniqueInput!, $banned: Boolean ) {\n data: banUser( where: $where, banned: $banned) {id authId banned}\n }\n`\nexport default (args) => {\n return apolloCoreClient.mutate({\n mutation: BAN_USER,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};","import { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { getAccessToken } from '../authPrivider/getAccessToken';\nimport { PERMISSIONS_NAMESPACE, URI_CASL } from '../appsettings';\n\nconst httpLink = createHttpLink({\n uri: URI_CASL\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n\n const token = await getAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n appName: PERMISSIONS_NAMESPACE,\n }\n }\n});\n\nexport default new ApolloClient({\n link: authLink.concat(httpLink),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n },\n});\n","import gql from 'graphql-tag'\nimport apolloCaslClient from './apolloCaslClient';\n\nconst GET_ABILITY_RULES = gql`\n query getAbility {\n rules: getAbility {\n actions\n subject\n conditions\n fields\n inverted\n reason\n }\n }\n`\n\nexport default () => {\n return apolloCaslClient.query({\n query: GET_ABILITY_RULES,\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n });\n};","import decodeJwt from 'jwt-decode'\nimport { getCookie, setCookie, deleteCookie } from '../utils';\nimport { AUTH_TOKEN_COOKIE, REFRESH_TOKEN_COOKIE, DOMAIN_COOKIE } from '../appsettings';\nimport { tokenExpired } from './getAccessToken';\nimport login from './login';\nimport loginCoreUser from '../dataProvider/Core/loginCoreUser';\nimport banCoreUser from '../dataProvider/Core/banCoreUser';\nimport { ability, defineAbilityFor } from '../abilityProvider'\nimport getAbilityRules from '../abilityProvider/getAbilityRules';\n\n\n\nexport const authProvider = {\n login: async ({ username, password }) => {\n try {\n const { data: { login: { token, refreshToken, user } } } = await login({ login: username, password: password });\n\n setCookie(AUTH_TOKEN_COOKIE, token, { domain: DOMAIN_COOKIE });\n setCookie(REFRESH_TOKEN_COOKIE, refreshToken, { domain: DOMAIN_COOKIE });\n\n if (user && user.role === 'SERVICE') {\n throw new Error('role_SERVICE_not_allowed')\n }\n\n await loginCoreUser(user);\n\n const { data: { rules } } = await getAbilityRules();\n if (!rules || !rules.length) { return Promise.reject({ message: 'ra.auth.permissions_error' }) };\n ability.update([]);\n ability.update(defineAbilityFor(rules));\n\n return Promise.resolve();\n } catch (error) {\n deleteCookie(AUTH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n deleteCookie(REFRESH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n\n const extensions = error && error.graphQLErrors && error.graphQLErrors[0] && error.graphQLErrors[0].extensions\n const code = extensions && extensions.code\n const authId = extensions && extensions.id\n\n if (authId && code === \"BANNED_USER\") await banCoreUser({ where: { authId }, banned: true });\n\n throw error\n }\n },\n logout: (params) => {\n deleteCookie(AUTH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n deleteCookie(REFRESH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n return Promise.resolve();\n },\n checkError: (params) => {\n const status = params.status;\n if (status === 401 || status === 403) {\n deleteCookie(AUTH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n deleteCookie(REFRESH_TOKEN_COOKIE, { domain: DOMAIN_COOKIE });\n return Promise.reject()\n }\n return Promise.resolve();\n },\n checkAuth: (params) => {\n return ((getCookie(AUTH_TOKEN_COOKIE) && !tokenExpired(getCookie(REFRESH_TOKEN_COOKIE))))\n ? Promise.resolve()\n : Promise.reject();\n },\n getPermissions: async (params) => {\n\n const token = getCookie(AUTH_TOKEN_COOKIE);\n const decodedToken = decodeJwt(token);\n const role = decodedToken.role;\n\n try {\n const { data: { rules } } = await getAbilityRules();\n\n if (!rules || !rules.length) { return Promise.reject({ message: 'ra.auth.permissions_error' }) };\n\n ability.update([]);\n ability.update(defineAbilityFor(rules));\n\n return Promise.resolve({ ability, role });\n\n } catch (error) {\n\n return Promise.reject(error);\n }\n }\n};","import React from 'react';\nimport { useFormState } from 'react-final-form';\nimport { SaveButton } from 'react-admin';\nimport { useUpdate, useNotify } from 'react-admin';\nimport { useSelector, useDispatch, shallowEqual } from 'react-redux';\nimport { setUser } from '../../redux/user/actions';\n\n\nexport const sanitizeRestProps = ({\n basePath,\n classes,\n filterValues,\n handleSubmit,\n handleSubmitWithRedirect,\n invalid,\n label,\n pristine,\n resource,\n saving,\n selectedIds,\n undoable,\n redirect,\n submitOnEnter,\n ...rest\n}) => rest;\n\nconst SaveProfileButton = ({saving, record, className, ...props}) => {\n const user = useSelector(state => state.user, shallowEqual);\n const [update, { loading }] = useUpdate('Profile');\n const notify = useNotify();\n const formState = useFormState();\n const dispatch = useDispatch();\n\n\n const handleClick = () => update({\n type: 'update',\n resource: 'Profile',\n payload: {\n id: record.id,\n data: {...formState.values},\n previousData: {...record},\n },\n },\n {\n onSuccess: ({ data }) => {\n \n const editFields = {\n name: data.name, \n description: data.description, \n authId: data.authId,\n email: data.email,\n phone: data.phone, \n role: data.role, \n login: data.login\n }\n\n notify('ra.notification.profile_saved');\n dispatch(setUser({\n ...user,\n ...editFields,\n }));\n\n },\n \n });\n\n return <SaveButton\n onMouseDown={handleClick}\n disabled={loading}\n />;\n}\n\nexport default SaveProfileButton;\n\n","import React from 'react';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { can } from '../../abilityProvider';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { SimpleForm, TextInput, Toolbar, required, minLength } from 'react-admin';\nimport { Edit } from '../Layout/Edit';\nimport CardBlankLayout from '../Layout/CardBlankLayout';\nimport UserBanner from '../User/UserBanner';\nimport SaveProfileButton from '../Buttons/SaveProfileButton';\nimport PhoneInput from '../Inputs/PhoneInput';\nimport PasswordInput from '../Inputs/PasswordInput';\n\n\n\nconst validateName = [required(), minLength(2)];\nconst multiValidate = (value, values) => {\n if (!values.email && !values.phone && !values.login) {\n return 'ra.action.one_of_fields_is_required';\n }\n};\n\n// const useStyles = makeStyles(theme => ({\n// referenceArrayInput: {\n// marginTop: 8,\n// marginBottom: 4,\n// },\n// }));\n\nconst ProfileToolbar = props => {\n return (\n <Toolbar {...props} >\n {can(\"update\", \"Profile\") && <SaveProfileButton />}\n </Toolbar>\n );\n}\n\nconst ProfileEdit = ({ staticContext, ...props }) => {\n // const classes = useStyles();\n\n return (\n <Edit {...props} title=\"Профиль\" resource=\"User\" >\n <UserBanner />\n <CardBlankLayout >\n <SimpleForm toolbar={<ProfileToolbar />}>\n {can('update', 'Profile', 'name') && <TextInput source=\"name\" validate={validateName} fullWidth />}\n {can('update', 'Profile', 'description') && <TextInput source=\"description\" fullWidth />}\n {can(\"update\", \"Profile\", \"position\") && <TextInput source=\"position\" fullWidth />}\n {can('update', 'Profile', 'login') && <TextInput source=\"login\" validate={[multiValidate]} />}\n {can('update', 'Profile', 'email') && <TextInput source=\"email\" type=\"email\" validate={[multiValidate]} inputProps={{ autoComplete: \"new-password\" }} />}\n {can('update', 'Profile', 'phone') && <PhoneInput source=\"phone\" validate={[multiValidate]} inputProps={{ autoComplete: \"new-password\" }} />}\n {can(\"update\", \"Profile\", \"phoneContact\") && <PhoneInput source=\"phoneContact\" />}\n {can('update', 'Profile', 'password') && <PasswordInput source=\"password\" />}\n </SimpleForm>\n </CardBlankLayout>\n </Edit>\n );\n};\n\nProfileEdit.defaultProps = {\n resource: \"Profile\",\n basePath: \"/Profile\",\n redirect: false,\n\n};\n\n\nconst ProfileHOC = (props) => {\n const user = useSelector(state => state.user, shallowEqual);\n if (!user) return null;\n\n return <ProfileEdit id={user.id} {...props} />\n}\n\n\nexport default ProfileHOC;","import React from 'react';\nimport { Route } from 'react-router-dom';\nimport ProfileEdit from \"./components/Profile/ProfileEdit\";\nimport { AboutAppShow } from \"./components/AboutApp\";\n\nexport default [\n <Route key=\"Profile\" path=\"/Profile\" component={props => <ProfileEdit {...props} />} />,\n <Route key=\"AboutApp\" path=\"/About\" component={props => <AboutAppShow {...props} />} />,\n];","import gql from 'graphql-tag'\nimport { apolloAuthClientWithAuth } from './apolloAuthClient';\n\n\n\nconst CREATE_CLIENT = gql`\n mutation createUser($login: String, $email: String, $phone: String, $name: String!, $password: String!, $role: String) {\n createClient: createUser(login: $login, email: $email, phone: $phone, name: $name, password: $password, role: $role) { \n id\n login\n email\n phone\n name\n role\n banned\n }\n }\n`;\n\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default (args) => {\n return apolloAuthClientWithAuth.mutate({\n mutation: CREATE_CLIENT,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import gql from 'graphql-tag'\nimport { apolloAuthClientWithAuth } from './apolloAuthClient';\n\n\n\nconst UPDATE_CLIENT = gql`\n mutation updateUser($id: ID!, $login: String, $email: String, $phone: String, $password: String, $name: String, $banned: Boolean, $role: String) {\n updateClient: updateUser(id: $id, login: $login, email: $email, phone: $phone, password: $password, name:$name, banned: $banned, role: $role) { \n id\n login\n email\n phone\n name\n role\n banned\n }\n }\n`;\n\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default (args) => {\n return apolloAuthClientWithAuth.mutate({\n mutation: UPDATE_CLIENT,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import gql from 'graphql-tag';\nimport { CREATE, GET_ONE, GET_LIST, GET_MANY, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\nimport { NAME_APP } from '../../appsettings';\nimport createClient from '../../authPrivider/createClient';\nimport updateClient from '../../authPrivider/updateClient';\n\n\n\n// eslint-disable-next-line import/no-anonymous-default-export\nexport default async (type, resource, params) => {\n\n const { data, previousData } = params;\n\n if (resource === 'GasRegion') {\n switch (type) {\n case CREATE: {\n if (data.gasDistrictsIds) { data.gasDistricts = data.gasDistrictsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasDistrictsIds) { data.gasDistricts = data.gasDistrictsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasDistrict') {\n switch (type) {\n case CREATE: {\n if (data.gasRegion) { data.gasRegion = (data.gasRegion.id) ? { id: data.gasRegion.id } : null }\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasRegion) { data.gasRegion = (data.gasRegion.id || previousData.gasRegion) ? { id: data.gasRegion.id } : null }\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasConsumer') {\n switch (type) {\n case CREATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasMeterPad') {\n switch (type) {\n case CREATE: {\n if (data.gasConsumer) { data.gasConsumer = (data.gasConsumer.id) ? { id: data.gasConsumer.id } : null }\n if (data.gasDistrict) { data.gasDistrict = (data.gasDistrict.id) ? { id: data.gasDistrict.id } : null }\n if (data.gasDistributorOrganization) { data.gasDistributorOrganization = (data.gasDistributorOrganization.id) ? { id: data.gasDistributorOrganization.id } : null }\n if (data.gasDistributorStationOutput) { data.gasDistributorStationOutput = (data.gasDistributorStationOutput.id) ? { id: data.gasDistributorStationOutput.id } : null }\n if (data.gasMeterUnitsIds) { data.gasMeterUnits = data.gasMeterUnitsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasConsumer) { data.gasConsumer = (data.gasConsumer.id || previousData.gasConsumer) ? { id: data.gasConsumer.id } : null }\n if (data.gasDistrict) { data.gasDistrict = (data.gasDistrict.id || previousData.gasDistrict) ? { id: data.gasDistrict.id } : null }\n if (data.gasDistributorOrganization) { data.gasDistributorOrganization = (data.gasDistributorOrganization.id || previousData.gasDistributorOrganization) ? { id: data.gasDistributorOrganization.id } : null }\n if (data.gasDistributorStationOutput) { data.gasDistributorStationOutput = (data.gasDistributorStationOutput.id || previousData.gasDistributorStationOutput) ? { id: data.gasDistributorStationOutput.id } : null }\n if (data.gasMeterUnitsIds) { data.gasMeterUnits = data.gasMeterUnitsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'BalanceRegion') {\n switch (type) {\n case CREATE: {\n if (data.gasDistributorStationsIds) { data.gasDistributorStations = data.gasDistributorStationsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasDistributorStationsIds) { data.gasDistributorStations = data.gasDistributorStationsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasDistributorOrganization') {\n switch (type) {\n case CREATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasDistributorStation') {\n switch (type) {\n case CREATE: {\n if (data.balanceRegion) { data.balanceRegion = (data.balanceRegion.id) ? { id: data.balanceRegion.id } : null }\n if (data.gasDistributorStationOutputsIds) { data.gasDistributorStationOutputs = data.gasDistributorStationOutputsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.balanceRegion) { data.balanceRegion = (data.balanceRegion.id || previousData.balanceRegion) ? { id: data.balanceRegion.id } : null }\n if (data.gasDistributorStationOutputsIds) { data.gasDistributorStationOutputs = data.gasDistributorStationOutputsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasDistributorStationOutput') {\n switch (type) {\n case CREATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.gasDistributorStation) { data.gasDistributorStation = (data.gasDistributorStation.id) ? { id: data.gasDistributorStation.id } : null }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasMeterPadsIds) { data.gasMeterPads = data.gasMeterPadsIds.map(id => ({ id })) }\n if (data.gasDistributorStation) { data.gasDistributorStation = (data.gasDistributorStation.id || previousData.gasDistributorStation) ? { id: data.gasDistributorStation.id } : null }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasMeterUnit') {\n switch (type) {\n case CREATE: {\n if (data.gasMeterPad) { data.gasMeterPad = (data.gasMeterPad.id) ? { id: data.gasMeterPad.id } : null }\n if (data.gasMeterPointsIds) { data.gasMeterPoints = data.gasMeterPointsIds.map(id => ({ id })) }\n if (data.dashboardsIds) { data.dashboards = data.dashboardsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasMeterPad) { data.gasMeterPad = (data.gasMeterPad.id || previousData.gasMeterPad) ? { id: data.gasMeterPad.id } : null }\n if (data.gasMeterPointsIds) { data.gasMeterPoints = data.gasMeterPointsIds.map(id => ({ id })) }\n if (data.dashboardsIds) { data.dashboards = data.dashboardsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasMeterPoint') {\n switch (type) {\n case CREATE: {\n if (data.gasMeterUnit) { data.gasMeterUnit = (data.gasMeterUnit.id) ? { id: data.gasMeterUnit.id } : null }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasMeterUnit) { data.gasMeterUnit = (data.gasMeterUnit.id || previousData.gasMeterUnit) ? { id: data.gasMeterUnit.id } : null }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasQualityCertificate') {\n switch (type) {\n case CREATE: {\n if (data.gasDistributorStationsIds) { data.gasDistributorStations = data.gasDistributorStationsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n case UPDATE: {\n if (data.gasDistributorStationsIds) { data.gasDistributorStations = data.gasDistributorStationsIds.map(id => ({ id })) }\n if (data.reportsIds) { data.reports = data.reportsIds.map(id => ({ id })) }\n if (data.tagsIds) { data.tags = data.tagsIds.map(id => ({ id })) }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'Counterparty') {\n switch (type) {\n case CREATE: {\n if (data.usersIds) { data.users = data.usersIds.map(id => ({ id })) }\n if (data.accessIds) { data.access = data.accessResource ? data.accessIds.map(id => ({ id, resource: data.accessResource })) : [] }\n break;\n }\n case UPDATE: {\n if (data.usersIds) { data.users = data.usersIds.map(id => ({ id })) }\n if (data.accessIds) { data.access = data.accessResource ? data.accessIds.map(id => ({ id, resource: data.accessResource })) : [] }\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'User') {\n switch (type) {\n case CREATE: {\n\n if (data.counterparty) { data.counterparty = (data.counterparty.id) ? { id: data.counterparty.id } : null }\n if (data.accessIds) { data.access = data.accessResource ? data.accessIds.map(id => ({ id, resource: data.accessResource })) : [] }\n if (!data.password) { break }; //если нет password, то создаем пользователя только в core\n\n const { data: { createClient: auth } } = await createClient({\n login: data.login ? data.login : null,\n email: data.email ? data.email : null,\n phone: data.phone ? data.phone : null,\n name: data.name,\n password: data.password,\n role: data.role,\n });\n\n params.data = {\n ...data,\n authId: auth.id,\n login: auth.login ? auth.login : null,\n email: auth.email ? auth.email : null,\n phone: auth.phone ? auth.phone : null,\n name: auth.name,\n role: auth.role,\n }\n\n break;\n }\n case UPDATE: {\n\n if (data.counterparty) { data.counterparty = (data.counterparty.id || previousData.counterparty) ? { id: data.counterparty.id } : null }\n if (data.accessIds) { data.access = data.accessResource ? data.accessIds.map(id => ({ id, resource: data.accessResource })) : [] }\n const authId = data.authId;\n const password = data.password;\n\n //если нет authId и пароля, то обновляем пользователя только в core\n if (!authId && !password) { break };\n\n if (!authId && password) {\n const { data: { createClient: auth } } = await createClient({\n login: data.login ? data.login : null,\n email: data.email ? data.email : null,\n phone: data.phone ? data.phone : null,\n name: data.name,\n password: data.password,\n role: data.role,\n })\n\n params.data = {\n ...data,\n authId: auth.id,\n login: auth.login ? auth.login : null,\n email: auth.email ? auth.email : null,\n phone: auth.phone ? auth.phone : null,\n name: auth.name,\n role: auth.role,\n }\n };\n\n if (authId) {\n const { data: { updateClient: auth } } = await updateClient({\n id: data.authId,\n login: data.login ? data.login : null,\n email: data.email ? data.email : null,\n phone: data.phone ? data.phone : null,\n name: data.name,\n password: data.password,\n role: data.role,\n banned: data.banned,\n })\n\n params.data = {\n ...data,\n authId: auth.id,\n login: auth.login ? auth.login : null,\n email: auth.email ? auth.email : null,\n phone: auth.phone ? auth.phone : null,\n name: auth.name,\n role: auth.role,\n }\n };\n\n\n\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'Profile') {\n switch (type) {\n case UPDATE: {\n const authId = data.authId;\n const password = data.password;\n let authUser = {};\n\n //если нет authId и пароля, то обновляем пользователя только в core\n if (!authId && !password) { break };\n\n if (!authId && password) {\n const { data: { createClient: auth } } = await createClient({\n login: data.login ? data.login : null,\n email: data.email ? data.email : null,\n phone: data.phone ? data.phone : null,\n name: data.name,\n password: data.password,\n role: data.role,\n })\n\n authUser = auth;\n };\n\n if (authId) {\n const { data: { updateClient: auth } } = await updateClient({\n id: data.authId,\n login: data.login ? data.login : null,\n email: data.email ? data.email : null,\n phone: data.phone ? data.phone : null,\n name: data.name,\n password: data.password,\n role: data.role,\n })\n\n authUser = auth;\n };\n\n params.data = {\n ...data,\n authId: authUser.id,\n login: authUser.login ? authUser.login : null,\n email: authUser.email ? authUser.email : null,\n phone: authUser.phone ? authUser.phone : null,\n name: authUser.name,\n role: authUser.role,\n }\n\n break;\n }\n default: break;\n }\n }\n\n return { type, resource, params };\n};","import { buildQuery } from 'ra-data-graphql-simple';\nimport { GET_ONE, GET_LIST, GET_MANY, GET_MANY_REFERENCE, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\nimport apolloCoreClient from './apolloCoreClient';\nimport { GET_LIST_GAS_REGION, GET_MANY_GAS_REGIONS, GET_ONE_GAS_REGION, UPDATE_GAS_REGION, DELETE_GAS_REGION } from './typeDefs';\nimport { GET_LIST_GAS_DISTRICT, GET_MANY_GAS_DISTRICTS, GET_ONE_GAS_DISTRICT, UPDATE_GAS_DISTRICT, DELETE_GAS_DISTRICT } from './typeDefs';\nimport { GET_LIST_BALANCE_REGION, GET_MANY_BALANCE_REGIONS, GET_ONE_BALANCE_REGION, UPDATE_BALANCE_REGION, DELETE_BALANCE_REGION } from './typeDefs';\nimport { GET_LIST_GAS_DISTRIBUTOR_ORGANIZATION, GET_MANY_GAS_DISTRIBUTOR_ORGANIZATIONS, GET_ONE_GAS_DISTRIBUTOR_ORGANIZATION, UPDATE_GAS_DISTRIBUTOR_ORGANIZATION, DELETE_GAS_DISTRIBUTOR_ORGANIZATION } from './typeDefs';\nimport { GET_LIST_GAS_DISTRIBUTOR_STATION, GET_MANY_GAS_DISTRIBUTOR_STATIONS, GET_ONE_GAS_DISTRIBUTOR_STATION, UPDATE_GAS_DISTRIBUTOR_STATION, DELETE_GAS_DISTRIBUTOR_STATION } from './typeDefs';\nimport { GET_LIST_GAS_DISTRIBUTOR_STATION_OUTPUT, GET_MANY_GAS_DISTRIBUTOR_STATION_OUTPUTS, GET_ONE_GAS_DISTRIBUTOR_STATION_OUTPUT, UPDATE_GAS_DISTRIBUTOR_STATION_OUTPUT, DELETE_GAS_DISTRIBUTOR_STATION_OUTPUT } from './typeDefs';\nimport { GET_LIST_GAS_CONSUMER, GET_MANY_GAS_CONSUMERS, GET_ONE_GAS_CONSUMER, UPDATE_GAS_CONSUMER, DELETE_GAS_CONSUMER } from './typeDefs';\nimport { GET_LIST_GAS_METER_PAD, GET_MANY_GAS_METER_PADS, GET_ONE_GAS_METER_PAD, UPDATE_GAS_METER_PAD, DELETE_GAS_METER_PAD } from './typeDefs';\nimport { GET_LIST_GAS_METER_UNIT, GET_MANY_GAS_METER_UNITS, GET_ONE_GAS_METER_UNIT, UPDATE_GAS_METER_UNIT, DELETE_GAS_METER_UNIT } from './typeDefs';\nimport { GET_ONE_GAS_METER_POINT, UPDATE_GAS_METER_POINT, DELETE_GAS_METER_POINT } from './typeDefs';\nimport { GET_LIST_GAS_QUALITY_SERTIFICATE, GET_MANY_GAS_QUALITY_SERTIFICATES, GET_ONE_GAS_QUALITY_SERTIFICATE, UPDATE_GAS_QUALITY_SERTIFICATE, DELETE_GAS_QUALITY_SERTIFICATE } from './typeDefs';\nimport { GET_LIST_GAS_METER_CONFIGURATION, GET_MANY_GAS_METER_CONFIGURATIONS } from './typeDefs';\nimport { GET_LIST_CONTROLLER_CONFIGURATION, GET_MANY_CONTROLLER_CONFIGURATIONS } from './typeDefs';\nimport { GET_LIST_COUNTERPARTY, GET_MANY_COUNTERPARTIES, GET_ONE_COUNTERPARTY, UPDATE_COUNTERPARTY, DELETE_COUNTERPARTY } from './typeDefs';\nimport { GET_LIST_USER, GET_MANY_USERS, GET_ONE_USER, UPDATE_USER, DELETE_USER } from './typeDefs';\nimport { UPDATE_PROFILE } from './typeDefs';\nimport { GET_LIST_HISTORY, GET_MANY_HISTORIES, GET_ONE_HISTORY } from './typeDefs';\nimport { GET_LIST_TRASHITEM, GET_MANY_TRASHITEMS, GET_ONE_TRASHITEM } from './typeDefs';\nimport { GET_PREFERENCES, SET_PREFERENCES } from './typeDefs';\nimport { GET_ENUMS } from './typeDefs';\n\n\n\n\n\nconst customBuildQuery = introspection => (fetchType, resource, params) => {\n\n\n\n\n const { id, data, previousData } = params;\n\n if (resource === 'GasRegion') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_REGION,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_REGION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_REGIONS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_REGION,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_REGION,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasDistrict') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_DISTRICT,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_DISTRICT,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_DISTRICTS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_DISTRICT,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_DISTRICT,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'BalanceRegion') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_BALANCE_REGION,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_BALANCE_REGION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_BALANCE_REGIONS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_BALANCE_REGION,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_BALANCE_REGION,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasDistributorOrganization') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_DISTRIBUTOR_ORGANIZATION,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_DISTRIBUTOR_ORGANIZATION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_DISTRIBUTOR_ORGANIZATIONS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_DISTRIBUTOR_ORGANIZATION,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_DISTRIBUTOR_ORGANIZATION,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasDistributorStation') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_DISTRIBUTOR_STATION,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_DISTRIBUTOR_STATION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_DISTRIBUTOR_STATIONS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_DISTRIBUTOR_STATION,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_DISTRIBUTOR_STATION,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasQualityCertificateGasDistributorStation') {\n switch (fetchType) {\n case GET_MANY: {\n return {\n query: GET_MANY_GAS_DISTRIBUTOR_STATIONS,\n variables: {\n filter: {\n aisId_in: params.ids\n },\n },\n parseResponse: (response) => {\n\n const data = response.data.items.map(item => ({ ...item, id: item.aisId }))\n\n return {\n data,\n total: response.data.total.count,\n };\n },\n };\n break;\n }\n default: break;\n }\n }\n\n if (resource === 'GasDistributorStationOutput') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_DISTRIBUTOR_STATION_OUTPUT,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_DISTRIBUTOR_STATION_OUTPUT,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_DISTRIBUTOR_STATION_OUTPUTS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_DISTRIBUTOR_STATION_OUTPUT,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_DISTRIBUTOR_STATION_OUTPUT,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasConsumer') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_CONSUMER,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_CONSUMER,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_CONSUMERS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_CONSUMER,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_CONSUMER,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasMeterPad') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_METER_PAD,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_METER_PAD,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_METER_PADS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_METER_PAD,\n variables: { where: { id: id || data.id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_METER_PAD,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasMeterUnit') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_METER_UNIT,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_METER_UNIT,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_METER_UNITS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_METER_UNIT,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_METER_UNIT,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasMeterPoint') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_METER_POINT,\n variables: { where: { id } },\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_METER_POINT,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_METER_POINT,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasQualityCertificate') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_GAS_QUALITY_SERTIFICATE,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_QUALITY_SERTIFICATE,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_QUALITY_SERTIFICATES,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_GAS_QUALITY_SERTIFICATE,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_GAS_QUALITY_SERTIFICATE,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'Counterparty') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_COUNTERPARTY,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_COUNTERPARTY,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_COUNTERPARTIES,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_COUNTERPARTY,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_COUNTERPARTY,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'Preference') {\n switch (fetchType) {\n case \"getPreferences\": {\n\n return {\n query: GET_PREFERENCES,\n variables: { ...params },\n parseResponse: (({ data }) => {\n\n return { data }\n }),\n };\n break;\n }\n case \"setPreferences\": {\n return {\n query: SET_PREFERENCES,\n variables: { ...params },\n parseResponse: (({ data }) => {\n return { data }\n }),\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'User') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_USER,\n variables: { where: { id } },\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_USER,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_USERS,\n };\n break;\n }\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_USER,\n variables: { where: { id }, ...data },\n };\n break;\n }\n case DELETE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: DELETE_USER,\n variables: { where: { id } },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'Profile') {\n switch (fetchType) {\n case UPDATE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: UPDATE_PROFILE,\n variables: { where: { id }, ...data },\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'History') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_HISTORY,\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_HISTORY,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_HISTORIES,\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'TrashItem') {\n switch (fetchType) {\n case GET_ONE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_ONE_TRASHITEM,\n };\n break;\n }\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_TRASHITEM,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_TRASHITEMS,\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'ControllerConfiguration') {\n switch (fetchType) {\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_CONTROLLER_CONFIGURATION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_CONTROLLER_CONFIGURATIONS,\n };\n break;\n }\n default: break;\n }\n };\n\n if (resource === 'GasMeterConfiguration') {\n switch (fetchType) {\n case GET_LIST:\n case GET_MANY_REFERENCE: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_LIST_GAS_METER_CONFIGURATION,\n };\n break;\n }\n case GET_MANY: {\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return {\n ...builtQuery,\n query: GET_MANY_GAS_METER_CONFIGURATIONS,\n };\n break;\n }\n default: break;\n }\n };\n\n if (fetchType === \"getEnum\") {\n return {\n query: GET_ENUMS,\n variables: { ...params },\n parseResponse: (({ data: { data } }) => {\n const { enumValues } = data;\n return {\n data: enumValues,\n }\n })\n };\n }\n\n\n\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return builtQuery;\n};\n\nexport default customBuildQuery;\n","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport apolloCoreClient from './apolloCoreClient';\nimport decorate from './decorate';\nimport buildQuery from './builtQuery';\nimport { __schema as schema } from './schema';\n\nconst buildCoreProvider = () => buildGraphQLProvider({\n client: apolloCoreClient,\n buildQuery: buildQuery,\n introspection: { schema },\n});\n\n\nexport const knownResources = ['GasRegion', 'GasDistrict', 'BalanceRegion', 'GasDistributorOrganization', 'GasDistributorStation', 'GasDistributorStationOutput', 'GasConsumer', 'GasMeterPad', 'GasMeterUnit', 'GasMeterPoint', 'GasQualityCertificate', 'Dashboard', 'Report', 'Tag', 'Counterparty', 'Access', 'User', 'Profile', 'History', 'TrashItem', 'GasQualityCertificateGasDistributorStation', 'GasMeterConfiguration', \"ControllerConfiguration\", \"Preference\"];\n\nexport const dataProvider = (type, resource, params) => {\n return buildCoreProvider().then(async (provider) => {\n\n const { params: paramsD } = await decorate(type, resource, params);\n\n return provider(type, resource, paramsD)\n }\n )\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","import differenceBy from 'lodash/differenceBy';\nimport difference from 'lodash/difference';\n\n\nexport const buildNestedArrayInput = (current = [], previous = []) => {\n\n const connect = current.filter(item => item.id).map(({ id }) => ({ id }))\n const create = current.filter(item => !item.id).map(({ id, ...input }) => ({ ...input }))\n const disconnect = differenceBy(previous, current, 'id').map(({ id }) => ({ id }))\n\n return {\n connect: connect.length > 0 ? connect : undefined,\n create: create.length > 0 ? create : undefined,\n disconnect: disconnect.length > 0 ? disconnect : undefined,\n }\n\n}\n\nexport const buildArrayInput = (current = [], previous = []) => {\n\n const connect = difference(current, previous).map(id => ({ id }))\n const disconnect = difference(previous, current).map(id => ({ id }))\n\n return {\n connect: connect.length > 0 ? connect : undefined,\n disconnect: disconnect.length > 0 ? disconnect : undefined,\n }\n\n}\n\nexport const sanitizeResource = data => {\n const result = Object.keys(data).reduce((acc, key) => {\n if (key.startsWith('_')) {\n return acc;\n }\n\n const dataKey = data[key];\n\n if (dataKey === null || dataKey === undefined) {\n return acc;\n }\n\n if (Array.isArray(dataKey)) {\n if (typeof dataKey[0] === 'object' && dataKey[0] !== null) {\n return {\n ...acc,\n [key]: dataKey.map(sanitizeResource),\n [`${key}Ids`]: dataKey.map(d => d.id),\n };\n } else {\n return { ...acc, [key]: dataKey };\n }\n }\n\n if (typeof dataKey === 'object' && dataKey !== null) {\n return {\n ...acc,\n ...(dataKey &&\n dataKey.id && {\n [`${key}.id`]: dataKey.id,\n }),\n [key]: sanitizeResource(dataKey),\n };\n }\n\n return { ...acc, [key]: dataKey };\n }, {});\n\n return result;\n};\n\nexport const omitDeepArrayWalk = (arr, key) => {\n return arr.map(val => {\n if (Array.isArray(val)) return omitDeepArrayWalk(val, key);\n else if (typeof val === \"object\") return omitDeep(val, key);\n return val;\n });\n};\n\nexport const omitDeep = (obj, key) => {\n const keys = Object.keys(obj);\n const newObj = {};\n keys.forEach(i => {\n if (i !== key) {\n const val = obj[i];\n if (val instanceof Date) newObj[i] = val;\n else if (Array.isArray(val)) newObj[i] = omitDeepArrayWalk(val, key);\n else if (typeof val === \"object\" && val !== null)\n newObj[i] = omitDeep(val, key);\n else newObj[i] = val;\n }\n });\n return newObj;\n};","import { ApolloClient, ApolloLink, InMemoryCache, createHttpLink, from } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { getAccessToken } from '../../authPrivider/getAccessToken';\nimport { URI_AUTH } from '../../appsettings';\nimport { omitDeep } from './utils';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_AUTH\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n\n const token = await getAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst cleanTypenameLink = new ApolloLink((operation, forward) => {\n if (operation.variables && !operation.variables.file) {\n // eslint-disable-next-line\n operation.variables = omitDeep(operation.variables, \"__typename\");\n }\n\n return forward(operation);\n});\n\nexport default new ApolloClient({\n link: from([\n authLink,\n cleanTypenameLink,\n httpLink\n ]),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n },\n query: {\n fetchPolicy: 'network-only',\n },\n },\n});\n","import { gql } from '@apollo/client';\n\nexport const USER_FRAGMENT = gql`\n fragment UserFragment on User {\n id\n name\n email\n phone\n }\n`\n\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { USER_FRAGMENT } from '../typeDefs';\n\nexport const GET_LIST_USERS = gql`\n query getListUsers($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: UserFilter) {\n items: allUsers(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {...UserFragment}\n total: _allUsersMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n ${USER_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_LIST_USERS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { USER_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_USERS = gql`\n query getManyUsers($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: UserFilter) {\n items: allUsers(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {...UserFragment}\n }\n ${USER_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_USERS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { USER_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_REFERENCE_CONTACTS = gql`\n query getManyReferenceUsers($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: UserFilter) {\n items: allUsers(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {...UserFragment}\n total: _allUsersMeta(page: $page, perPage: $perPage, filter: $filter) { count }\n }\n ${USER_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_REFERENCE_CONTACTS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { USER_FRAGMENT } from '../typeDefs';\n\n\nexport const GET_ONE_USER = gql`\n query getOneUser( $where: UserWhereUniqueInput! ) {\n item: User( where: $where ) {...UserFragment}\n }\n ${USER_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_ONE_USER,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import getList from './getList';\nimport getMany from './getMany';\nimport getManyReference from './getManyReference';\nimport getOne from './getOne';\nimport { sanitizeResource } from '../utils';\n\n\n\nconst AuthUser = {\n getList: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getList({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { items, pageInfo } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getMany: (params) => {\n const { ids } = params;\n\n return getMany({\n filter: {\n ids\n },\n perPage: ids.length\n }).then(({ data: { items } }) => {\n return {\n data: items.map(sanitizeResource),\n }\n });\n },\n getManyReference: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getManyReference({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { items, pageInfo } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getOne: (params) => {\n const { id } = params\n\n return getOne({\n where: params,\n }).then(({ data: { item } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n};\n\nexport default AuthUser","import { GET_LIST, GET_ONE, CREATE, UPDATE, UPDATE_MANY, DELETE, DELETE_MANY, GET_MANY, GET_MANY_REFERENCE } from 'react-admin';\nimport AuthUser from './AuthUser';\n\n\nconst mappingType = {\n [GET_LIST]: 'getList',\n [GET_ONE]: 'getOne',\n [GET_MANY]: 'getMany',\n [GET_MANY_REFERENCE]: 'getManyReference',\n [CREATE]: 'create',\n [UPDATE]: 'update',\n [UPDATE_MANY]: 'updateMany',\n [DELETE]: 'delete',\n [DELETE_MANY]: 'deleteMany',\n};\n\nconst getMethod = (fetchType) => {\n const method = mappingType[fetchType] || fetchType\n return method\n}\n\nconst buildQuery = {\n AuthUser\n}\n\nexport const knownResources = Object.keys(buildQuery);\n\nexport const dataProvider = (fetchType, resource, params) => {\n\n return buildQuery[resource][getMethod(fetchType)](params)\n};\n\nexport default {\n dataProvider,\n knownResources,\n};\n","import { URI_PROMETHEUS } from '../../appsettings';\n\n\nconst fetchRequest = (query, variables, uri) => {\n const url = `${uri}/api/v1/${query}${variables ? `{${variables}}`: \"\"}`;\n return fetch(\n url,\n {\n method: \"GET\",\n credentials: \"omit\",\n headers: {\n 'Content-Type': 'application/json',\n },\n referrerPolicy: \"no-referrer-when-downgrade\",\n mode: \"cors\"\n }\n )\n .then(response => {\n if (!response.ok) {\n throw response\n };\n return response.json();\n })\n .then( ({data}) => {\n return data;\n })\n .catch(error => {\n throw Error(error)\n })\n}\n\n\n\nconst prometheusFetchClient = (query, variables, parseResponse, uri = URI_PROMETHEUS) => {\n if (Array.isArray(query)) {\n return Promise.all(query.map(q => fetchRequest(q, variables, uri)))\n .then( result => {\n return parseResponse(result)\n })\n } else {\n return fetchRequest(query, variables, uri).then( result => {\n return parseResponse(result)\n })\n }\n}\n\nexport default prometheusFetchClient;","import { CREATE, GET_ONE, GET_LIST, GET_MANY, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\n\n\n\nexport default async (type, resource, params) => { \n \n return {type, resource, params};\n};","import { orderBy } from 'lodash';\nimport moment from 'moment'\nimport { GET_ONE, GET_LIST, GET_MANY, GET_MANY_REFERENCE, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\n\n\n\nconst customBuildQuery = (fetchType, resource, params) => {\n\n const { id, data, previousData } = params;\n\n const start = moment().subtract(30, \"days\").unix();\n const end = moment().unix();\n\n if (resource === 'MetricGasMeter') {\n switch (fetchType) {\n case GET_MANY: {\n return {\n query: `query_range?query=askug_convertItem_convert_lastupdate{dbid=~\"${params.ids.join('|')}\"}&start=${start}&end=${end}&step=4838`,\n //query: 'query?query=askug_convertItem_convert_lastupdate',\n //variables: `dbid=~\"${params.ids.join('|')}\"`,\n parseResponse: response => {\n const { result } = response;\n \n const items = result.map(item => ({\n id: item.metric.dbid,\n dbid: item.metric.dbid,\n updatedAt: moment.unix((orderBy(item.values, [0], \"desc\")[0] || [])[1]).format()\n }));\n \n /*const items = result.map(item => ({\n id: item.metric.dbid,\n dbid: item.metric.dbid,\n updatedAt: moment.unix(Number(item.value[1])).format()\n }));*/\n\n return {\n data: items\n };\n },\n };\n break;\n }\n default: break;\n }\n };\n\n};\n\nexport default customBuildQuery;\n","import client from './prometheusFetchClient';\nimport decorate from './decorate';\nimport builtQuery from './builtQuery';\n\n\n\nexport const knownResources = ['MetricGasMeter'];\nconst dataProvider = async (_type, _resource, _params) => {\n const {type, resource, params} = await decorate(_type, _resource, _params); \n const {query, variables, parseResponse} = builtQuery(type, resource, params);\n\n return client(query, variables, parseResponse);\n};\n\n\n\nexport default {\n dataProvider,\n knownResources,\n};","import { CREATE, GET_ONE, GET_LIST, GET_MANY, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\n\n\n\nexport default async (type, resource, params) => { \n \n return {type, resource, params};\n};","import { buildQuery } from 'ra-data-graphql-simple';\nimport { GET_ONE, GET_LIST, GET_MANY, GET_MANY_REFERENCE, DELETE, DELETE_MANY, UPDATE, UPDATE_MANY } from 'ra-core';\nimport { GET_MANY_DEVICESTATUSES, GET_ONE_DEVICESTATUS, REFRESH_DEVICESTATUS } from './typeDefs';\nimport { GET_ENUMS } from './typeDefs';\n\n\nconst customBuildQuery = introspection => (fetchType, resource, params) => {\n\n const { id, data, previousData } = params;\n\n if (resource === 'DeviceStatus') {\n switch (fetchType) {\n case GET_ONE: {\n\n return {\n query: GET_ONE_DEVICESTATUS,\n variables: { where: { dbId: params.id } },\n parseResponse: ({ data: { data, loading, networkStatus } }) => {\n const { item } = data\n return {\n data: item\n };\n },\n };\n break;\n }\n case GET_MANY: {\n return {\n query: GET_MANY_DEVICESTATUSES,\n variables: {\n filter: {\n dbIds: params.ids\n },\n },\n parseResponse: ({ data: { data, loading, networkStatus } }) => {\n const { items, pageInfo } = data\n return {\n data: items,\n total: pageInfo.totalItems,\n };\n },\n };\n }\n case GET_MANY_REFERENCE: {\n return {\n query: GET_MANY_DEVICESTATUSES,\n variables: {\n ...params\n },\n parseResponse: ({ data: { data, loading, networkStatus } }) => {\n const { items, pageInfo } = data\n return {\n data: items,\n total: pageInfo.totalItems,\n };\n },\n };\n }\n\n default: break;\n }\n };\n\n if (fetchType === \"getEnum\") {\n return {\n query: GET_ENUMS,\n variables: { ...params },\n parseResponse: (({ data: { data } }) => {\n const { enumValues } = data;\n return {\n data: enumValues,\n }\n })\n };\n }\n\n\n const builtQuery = buildQuery(introspection)(fetchType, resource, params);\n return builtQuery;\n};\n\nexport default customBuildQuery;\n\n","import buildGraphQLProvider from 'ra-data-graphql-simple';\nimport apolloCoreClient from './apolloClient';\nimport decorate from './decorate';\nimport buildQuery from './builtQuery';\n\nconst buildCoreProvider = () => buildGraphQLProvider({\n client: apolloCoreClient,\n buildQuery: buildQuery,\n introspection: false\n});\n\n\nexport const knownResources = ['DeviceStatus'];\n\nexport const dataProvider = (type, resource, params) => {\n return buildCoreProvider().then(async (provider) => {\n\n const { params: paramsD } = await decorate(type, resource, params);\n\n return provider(type, resource, paramsD)\n }\n )\n};\n\nexport default {\n dataProvider,\n knownResources,\n};","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { CONTACT_FRAGMENT } from '../typeDefs';\n\nexport const CREATE_CONTACT = gql`\n mutation createContact($input: ContactCreateInput!) {\n data: createContact(input: $input) {\n item {...ContactFragment}\n }\n }\n ${CONTACT_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.mutate({\n mutation: CREATE_CONTACT,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { CONTACT_FRAGMENT } from '../typeDefs';\n\nexport const GET_LIST_CONTACTS = gql`\n query getListContacts($filter: ContactFilter, $sort: [ContactSort!] $page: Int, $perPage: Int) {\n data: listContacts(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ContactFragment}\n pageInfo { totalItems }\n }\n }\n ${CONTACT_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_LIST_CONTACTS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { CONTACT_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_CONTACTS = gql`\n query getManyContacts($filter: ContactFilter, $sort: [ContactSort!] $page: Int, $perPage: Int) {\n data: listContacts(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ContactFragment}\n }\n }\n ${CONTACT_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_CONTACTS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { CONTACT_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_REFERENCE_CONTACTS = gql`\n query getManyReferenceContacts($filter: ContactFilter, $sort: [ContactSort!] $page: Int, $perPage: Int) {\n data: listContacts(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ContactFragment}\n pageInfo { totalItems }\n }\n }\n ${CONTACT_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_REFERENCE_CONTACTS,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { CONTACT_FRAGMENT } from '../typeDefs';\n\n\nexport const GET_ONE_CONTACT = gql`\n query getOneContact( $where: ContactWhereUniqueInput! ) {\n data: getOneContact(where: $where) {\n item {...ContactFragment}\n }\n }\n ${CONTACT_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_ONE_CONTACT,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import omit from 'lodash/omit';\nimport create from './create';\nimport getList from './getList';\nimport getMany from './getMany';\nimport getManyReference from './getManyReference';\nimport getOne from './getOne';\nimport { sanitizeResource } from '../utils';\n\n\n\nconst Contact = {\n create: (params) => {\n\n const { data } = params\n\n return create({\n input: {\n ...data,\n }\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n getList: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getList({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { data: { items, pageInfo } } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getMany: (params, context) => {\n const { ids } = params;\n\n return getMany({\n filter: {\n ids\n },\n perPage: ids.length\n }).then(({ data: { data: { items } } }) => {\n return {\n data: items.map(sanitizeResource),\n }\n });\n },\n getManyReference: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getManyReference({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { data: { items, pageInfo } } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getOne: (params) => {\n const { id } = params\n\n return getOne({\n where: params,\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n};\n\nexport default Contact","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const CREATE_REPORT_DESPATCH = gql`\n mutation createReportDespatch($input: ReportDespatchCreateInput!) {\n data: createReportDespatch(input: $input) {\n item {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.mutate({\n mutation: CREATE_REPORT_DESPATCH,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const GET_LIST_REPORT_DESPATCHES = gql`\n query getListReportDespatches($filter: ReportDespatchFilter, $sort: [ReportDespatchSort!] $page: Int, $perPage: Int) {\n data: listReportDespatches(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ReportDespatchFragment}\n pageInfo { totalItems }\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_LIST_REPORT_DESPATCHES,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_REPORT_DESPATCHES = gql`\n query getManyReportDespatches($filter: ReportDespatchFilter, $sort: [ReportDespatchSort!] $page: Int, $perPage: Int) {\n data: listReportDespatches(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_REPORT_DESPATCHES,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const GET_MANY_REFERENCE_REPORT_DESPATCHES = gql`\n query getManyReferenceReportDespatches($filter: ReportDespatchFilter, $sort: [ReportDespatchSort!] $page: Int, $perPage: Int) {\n data: listReportDespatches(filter: $filter, sort: $sort, page: $page, perPage: $perPage) {\n items {...ReportDespatchFragment}\n pageInfo { totalItems }\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_MANY_REFERENCE_REPORT_DESPATCHES,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\n\nexport const GET_ONE_REPORT_DESPATCH = gql`\n query getOneReportDespatch( $where: ReportDespatchWhereUniqueInput! ) {\n data: getOneReportDespatch(where: $where) {\n item {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_ONE_REPORT_DESPATCH,\n variables: { ...args },\n fetchPolicy: 'network-only',\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const UPDATE_REPORT_DESPATCH = gql`\n mutation updateReportDespatch($where: ReportDespatchWhereUniqueInput!, $input: ReportDespatchUpdateInput!) {\n data: updateReportDespatch(where: $where, input: $input) {\n item {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.mutate({\n mutation: UPDATE_REPORT_DESPATCH,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\nimport { REPORT_DESPATCH_FRAGMENT } from '../typeDefs';\n\nexport const DELETE_REPORT_DESPATCH = gql`\n mutation deleteReportDespatch($where: ReportDespatchWhereUniqueInput!) {\n data: deleteReportDespatch(where: $where) {\n item {...ReportDespatchFragment}\n }\n }\n ${REPORT_DESPATCH_FRAGMENT}\n`\n\nexport default (args) => {\n return apolloClient.mutate({\n mutation: DELETE_REPORT_DESPATCH,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import gql from 'graphql-tag'\nimport apolloClient from '../apolloClient';\n\n\n\nexport const GET_ENUMS = gql`\n query getEnums($name: String!) {\n data: __type(name: $name) {\n name\n enumValues{\n name\n description\n } \n }\n }\n`\n\nexport default (args) => {\n return apolloClient.query({\n query: GET_ENUMS,\n variables: { ...args },\n onError: (error) => {\n alert(error)\n }\n })\n};\n","import omit from 'lodash/omit';\nimport create from './create';\nimport getList from './getList';\nimport getMany from './getMany';\nimport getManyReference from './getManyReference';\nimport getOne from './getOne';\nimport update from './update';\nimport deleteMutation from './delete';\nimport getEnum from './getEnum';\nimport { buildArrayInput, sanitizeResource } from '../utils';\n\n\n\nconst ReportDespatch = {\n create: (params) => {\n\n const { data } = params\n\n const to = data.toIds ? buildArrayInput(data.toIds) : undefined\n const cc = data.ccIds ? buildArrayInput(data.ccIds) : undefined\n const bcc = data.bccIds ? buildArrayInput(data.bccIds) : undefined\n\n const input = omit(data, ['toIds', 'ccIds', 'bccIds', 'lastExecutionAt', 'nextExecutionAt'])\n\n return create({\n input: {\n ...input,\n to,\n cc,\n bcc,\n }\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n getList: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getList({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { data: { items, pageInfo } } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getMany: (params) => {\n const { ids } = params;\n\n return getMany({\n filter: {\n ids\n },\n perPage: ids.length\n }).then(({ data: { data: { items } } }) => {\n return {\n data: items.map(sanitizeResource),\n }\n });\n },\n getManyReference: (params) => {\n const { filter, pagination: { page, perPage }, sort: { field, order } } = params;\n\n return getManyReference({\n filter,\n sort: [{ [field]: order.toLowerCase() }],\n page,\n perPage,\n }).then(({ data: { data: { items, pageInfo } } }) => {\n return {\n data: items.map(sanitizeResource),\n total: pageInfo.totalItems,\n }\n });\n },\n getOne: (params) => {\n const { id } = params\n\n return getOne({\n where: { id },\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n update: (params) => {\n\n const { id, data, previousData } = params\n const input = omit(data, ['id', 'createdAt', 'updatedAt', 'createdById', 'toIds', 'ccIds', 'bccIds', 'lastExecutionAt', 'nextExecutionAt'])\n\n const to = data.toIds ? buildArrayInput(data.toIds, previousData.toIds) : undefined\n const cc = data.ccIds ? buildArrayInput(data.ccIds, previousData.ccIds) : undefined\n const bcc = data.bccIds ? buildArrayInput(data.bccIds, previousData.bccIds) : undefined\n\n return update({\n where: { id },\n input: {\n ...input,\n to,\n cc,\n bcc,\n }\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n delete: (params) => {\n const { id } = params\n\n return deleteMutation({\n where: { id },\n }).then(({ data: { data: { item } } }) => {\n return {\n data: sanitizeResource(item),\n }\n });\n },\n deleteMany: (params) => {\n const { ids } = params\n\n return Promise.all(\n ids.map(id =>\n deleteMutation({ where: { id } })\n )\n ).then(results => {\n const data = results.reduce((acc, { data: { data: { item } } }) => [...acc, item.id], []);\n return { data };\n });\n },\n getEnum: (params) => {\n const { name } = params\n\n return getEnum({ name }).then(({ data: { data } }) => {\n const { enumValues } = data;\n return {\n data: enumValues,\n }\n });\n },\n};\n\nexport default ReportDespatch","import { GET_LIST, GET_ONE, CREATE, UPDATE, UPDATE_MANY, DELETE, DELETE_MANY, GET_MANY, GET_MANY_REFERENCE } from 'react-admin';\nimport Contact from './Contact';\nimport ReportDespatch from './ReportDespatch';\n\nconst mappingType = {\n [GET_LIST]: 'getList',\n [GET_ONE]: 'getOne',\n [GET_MANY]: 'getMany',\n [GET_MANY_REFERENCE]: 'getManyReference',\n [CREATE]: 'create',\n [UPDATE]: 'update',\n [UPDATE_MANY]: 'updateMany',\n [DELETE]: 'delete',\n [DELETE_MANY]: 'deleteMany',\n};\n\nconst getMethod = (fetchType) => {\n const method = mappingType[fetchType] || fetchType\n return method\n}\n\nconst buildQuery = {\n Contact,\n ReportDespatch\n}\n\nexport const knownResources = Object.keys(buildQuery);\n\nexport const dataProvider = (fetchType, resource, params) => {\n\n return buildQuery[resource][getMethod(fetchType)](params)\n};\n\nexport default {\n dataProvider,\n knownResources,\n};\n","import dataProviderCore from './Core/graphqlProvider'\nimport dataProviderAuth from './Auth/dataProvider'\nimport dataProviderPrometheus from './Prometheus/prometheusProvider'\nimport dataProviderAnalitics from './Analitics/graphqlProvider'\nimport dataProviderReportDespatch from './ReportDespatch/dataProvider'\n\nconst dataProviders = [dataProviderCore, dataProviderAuth, dataProviderPrometheus, dataProviderAnalitics, dataProviderReportDespatch];\n\nexport const dataProviderFactory = () => {\n return Promise.resolve((type, resource, params) => {\n\n const findDataProvider = dataProviders.find(dp => dp.knownResources.includes(resource));\n\n if (!findDataProvider) throw new Error('Provider is not loaded')\n return findDataProvider.dataProvider(type, resource, params);\n });\n};","import englishMessages from 'ra-language-english';\nimport { raFormLayoutLanguageEnglish } from '@react-admin/ra-form-layout';\n\n\n\nconst en = {\n ...englishMessages,\n ...raFormLayoutLanguageEnglish\n}\n\nexport default en;","const raFormLayoutLanguageRussian = {\n 'ra-form-layout': {\n action: {\n next: 'Далее',\n previous: 'Назад',\n },\n },\n};\n\nexport default raFormLayoutLanguageRussian;","const raPreferencesLanguageRussian = {\n 'ra-preferences': {\n action: {\n choose_columns: 'Выбрать столбцы',\n toggle_theme: 'Переключить тему',\n },\n saved_queries: {\n label: \"Сохраненные запросы\",\n query_name: 'Имя запроса',\n new_label: 'Сохранить текущий запрос ...',\n new_dialog_title: 'Сохранить текущий запрос как',\n remove_label: 'Удалить сохраненный запрос',\n remove_label_with_name: 'Удалить запрос \"%{name}\"',\n remove_dialog_title: 'Удалить сохраненный запрос?',\n remove_message: 'Вы действительно хотите удалить этот элемент из списка сохраненных запросов?',\n help: 'Отфильтровать список и сохранить этот запрос для дальнейшего использования',\n },\n },\n};\n\nexport default raPreferencesLanguageRussian;","import russianMessages from 'ra-language-russian'\nimport raFormLayoutLanguageRussian from './raFormLayoutLanguageRussian'\nimport raPreferencesLanguageRussian from './raPreferencesLanguageRussian'\n\nconst resourcesLanguageRussian = {\n resources: {\n GasRegion: {\n name: 'Регион |||| Регионы',\n menu: 'Регион |||| Регионы',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasDistricts: 'Участки',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n },\n empty: 'Регионы отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasDistrict: {\n name: 'Абонентский участок |||| Абонентские участки',\n menu: 'Участок |||| Участки',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasRegion: 'Регион',\n gasConsumer: 'Потребитель',\n gasMeterPads: 'Площадки',\n gasConsumers: 'Потребители',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n },\n empty: 'Абонентские участки отсутствуют',\n invite: 'Вы хотите создать?',\n },\n BalanceRegion: {\n name: 'Балансовая зона |||| Балансовые зоны',\n menu: 'Балансовая зона |||| Балансовые зоны',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n aisId: 'ID АИС',\n gasDistributorStations: 'ГРС',\n reports: 'Отчеты',\n tags: 'Метки',\n },\n empty: ' Балансовые зоны отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasDistributorOrganization: {\n name: 'Газораспределительная организация |||| Газораспределительные организации',\n menu: 'ГРО |||| ГРО',\n fields: {\n id: 'ID',\n name: 'Название',\n addrManual: 'Адрес',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasConsumers: 'Потребители',\n gasMeterPads: 'Площадки',\n reports: 'Отчеты',\n tags: 'Метки',\n gasDistrict: 'Участки',\n },\n empty: 'Газораспределительные организации отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasDistributorStation: {\n name: 'Газораспределительная станция |||| Газораспределительные станции',\n menu: 'ГРС |||| ГРС',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n addrManual: 'Адрес',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n balanceRegion: 'Балансовая зона',\n gasConsumers: 'Потребители',\n gasMeterPads: 'Площадки',\n gasDistributorStationOutputs: 'Выходы ГРС',\n gasQualityCertificate: 'Паспорт качества газа',\n gasQualityCertificates: 'Паспорта качества газа',\n reports: 'Отчеты',\n tags: 'Метки',\n },\n empty: 'Газораспределительные станции отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasDistributorStationOutput: {\n name: 'Выход газораспределительной станции |||| Выходы газораспределительных станций',\n menu: 'Выход ГРС |||| Выходы ГРС',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n gasDistributorStation: 'ГРС',\n gasMeterPads: 'Площадки',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n reports: 'Отчеты',\n tags: 'Метки',\n },\n empty: 'Выходы газораспределительных станций отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasConsumer: {\n name: 'Потребитель |||| Потребители',\n menu: 'Потребитель |||| Потребители',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasMeterPads: 'Площадки',\n gasDistrict: 'Участок',\n gasDistricts: 'Участки',\n gasDistributorOrganization: 'ГРО',\n gasDistributorStation: 'ГРС',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n addrManual: 'Адрес',\n gasMeterPad: 'Площадка',\n gasMeterPadAisId: 'ID АИС Площадки',\n },\n empty: 'Потребители отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasMeterPad: {\n name: 'Площадка газопотребления |||| Площадки газопотребления',\n menu: 'Площадка |||| Площадки',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasConsumer: 'Потребитель',\n gasDistrict: 'Участок',\n gasDistributorOrganization: 'ГРО',\n gasDistributorStation: 'ГРС',\n gasDistributorStationOutput: 'Выход ГРС',\n gasMeterUnits: 'УУГ',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n addrManual: 'Адрес',\n dateFrom: 'Дата с',\n dateTo: 'Дата по',\n disabled: 'Отключена',\n disabledPeriods: 'Периоды отключения площадки',\n isProvider: \"Является поставщиком\"\n },\n empty: 'Площадки газопотребления отсутствуют',\n invite: 'Вы хотите создать?',\n },\n DisabledPeriod: {\n fields: {\n id: 'ID',\n dateFrom: 'Дата с',\n dateTo: 'Дата по',\n description: 'Описание',\n },\n },\n GasMeterUnit: {\n name: 'Узел учета газа |||| Узлы учета газа',\n menu: 'УУГ |||| УУГ',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n dashboards: 'Информационные панели',\n reports: 'Отчеты',\n tags: 'Метки',\n gasMeterPad: 'Площадка',\n gasMeterPoints: 'Линии',\n aisId: 'ID АИС',\n id_ais_regiongaz: 'ID АИС Регионгаз',\n lastTimeUpdatedAt: 'Данные',\n current_variable: 'Текущие значения',\n gas_quality_certificate: 'Паспорт газа',\n number: 'Номер линии',\n disabled: 'Отключена',\n inventoryNumber: 'Инвентарный номер',\n enableWriteGasQualityCertificate: 'Запись паспорта газа',\n gasQualityCertificates: 'Паспорта качества газа',\n dasMeterPadAisId: 'ID АИС Площадки',\n fixedAsset: 'Основное средство',\n linkToir: 'Ссылка на объект ТОИР',\n controller: 'Контроллер',\n \"controller.type\": 'Тип контроллера',\n gasMeter: 'Корректор',\n \"gasMeter.type\": 'Тип корректора',\n fixedAssetShort: 'Основное средство',\n linkToDevice: 'Ссылка на Устройство',\n deviceStatus: 'Статус',\n metrics: \"Метрики\"\n },\n empty: 'Узлы учета газа отсутствуют',\n invite: 'Вы хотите создать?',\n },\n Controller: {\n fields: {\n id: 'ID',\n alias_contains: 'Псевдоним',\n name: 'Название',\n description: 'Описание',\n serialNumber: 'S/N, Серийный номер',\n sn: 'S/N',\n phoneNumber: 'Номер телефона',\n phoneNumber_is_null: 'Номер телефона отсутствует',\n ip: 'IP адрес',\n ip_is_null: 'IP адрес отсутствует',\n url: 'URL адрес',\n type: 'Тип',\n configuration: 'Конфигурация',\n status: 'Статус'\n },\n enums: {\n type: {\n TELEOFIS: 'ТЕЛЕОФИС',\n AXI1: 'АКСИ-1',\n AXI2: 'АКСИ-2',\n AXITEL: 'КАМ25А',\n AXI1MR: 'АКСИ-1МР',\n AXIS: 'АКСИС',\n KAM200: 'КАМ-200',\n KAM25: 'КАМ25',\n KAM214: 'КАМ214',\n FX: 'FX',\n WS: 'WS',\n BECKHOFF: 'Beckhoff',\n AXITELJSONRPC: 'АКСИТЕЛ JSON-RPC',\n },\n status: {\n DRAFT: 'Черновик',\n TEST: 'Тест',\n ACTIVE: 'Активен',\n SWAP: 'Заменен',\n },\n },\n },\n ControllerConfiguration: {\n enums: {\n status: {\n DRAFT: 'Черновик',\n TEST: 'Тест',\n RELEASE: 'Релиз',\n },\n },\n },\n GasMeter: {\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n serialNumber: 'S/N, Серийный номер',\n dbId: 'ID Шины',\n ip: 'IP адрес',\n port: 'Порт',\n commercialHour: 'Коммерческий час',\n dst: 'Переход на летнее время',\n meta: 'meta',\n timeZone: 'Часовой пояс',\n type: 'Тип',\n configuration: 'Конфигурация',\n status: 'Статус',\n },\n enums: {\n status: {\n DRAFT: 'Черновик',\n TEST: 'Тест',\n ACTIVE: 'Активен',\n SWAP: 'Заменен',\n },\n type: {\n BK: 'БК',\n EK260: 'EK-260',\n EK270: 'EK-270',\n EK280: 'EK-280',\n EK290: 'EK-290',\n ELSTERSERVICE: 'Сервис Elster',\n IRVISRS4ULTRA: 'ИРВИС-РС4-УЛЬТРА',\n IRVISRSK300: 'ИРВИС-K-300',\n VKG2: 'ВКГ-2',\n VKG3T: 'ВКГ-3Т',\n VKG3D: 'ВКГ-3Д',\n SPG741: 'СПГ-741',\n SPG742: 'СПГ-742',\n SPG761: 'СПГ-761',\n GASDEVICESERVICE: 'Сервис Газдевайс',\n GASDEVICEOMEGAEK: 'Газдевайс ОМЕГА ЭК',\n GIPERFLOW3PM: 'ГиперФлоу-ЗПм',\n GIPERFLOWUS: 'ГиперФлоу-УС',\n GRANDSPI: 'Гранд SPI',\n TECHNOMER: 'Техномер',\n TECHNOMERSERVICE: 'Сервис Техномер',\n TURBODONSERVICE: 'Сервис Турбулентность-ДОН',\n SUPERFLOW21V: 'СуперФлоу-21В',\n SUPERFLOW2E: 'СуперФлоу-2Е',\n SUPERFLOW2ET: 'СуперФлоу-2ЕТ',\n FLOBOSS: 'FloBoss',\n FLOWGAS: 'ФЛОУГАЗ',\n TC220: 'ТС220',\n TURBOFLOWUFG: 'Turbo Flow UFG',\n TURBOFLOWGFG: 'Turbo Flow GFG',\n TURBOFLOWTFG: 'Turbo Flow TFG',\n TELEFLOWEGM3530: 'TeleFlow EGM 3530',\n FLOWSIC600: 'FLOWSIC600',\n ROSTELECOM: 'Ростелеком',\n SGT16E: 'СГТ16Э',\n VYMPEL500: 'Вымпел-500',\n JSONRPC: 'JSON-RPC',\n ERZ2000DI: 'ERZ 2000-DI',\n },\n },\n },\n GasMeterConfiguration: {\n enums: {\n status: {\n DRAFT: 'Черновик',\n TEST: 'Тест',\n RELEASE: 'Релиз',\n },\n },\n },\n GasMeterPoint: {\n name: 'Линия |||| Линии',\n menu: 'Линия |||| Линии',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'ID АИС',\n number: 'Номер линии',\n season: 'Сезон',\n disabled: 'Отключена',\n state: 'Состояние',\n gasMeterUnit: 'УУГ',\n\n },\n enums: {\n disabled: {\n true: 'Отключена',\n false: 'Включена',\n },\n },\n empty: 'Линии отсутствуют',\n invite: 'Вы хотите создать?',\n },\n GasQualityCertificate: {\n name: 'Паспорт качества газа |||| Паспорта качества газа',\n menu: 'Паспорт газа |||| Паспорта газа',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n index: '#',\n number: '№',\n gqsId: 'ID Паспорта газа',\n n2: 'Объемная доля N2',\n n2_short: 'N2',\n co2: 'Объемная доля CO2',\n co2_short: 'CO2',\n density: 'Плотность газа P',\n density_short: 'P',\n validFrom: 'Действует с',\n validTo: 'Действует по',\n gasExtractionPoint: 'Точка отбора проб',\n gasDistributorStations: 'ГРС',\n gasDistributorStation_some: 'ГРС',\n gasMeterUnit_some: 'УУГ',\n reports: 'Отчеты',\n tags: 'Метки',\n writtenAt: 'Отправлен на запись',\n },\n validation: {\n out_of_range: \"Значение параметра %{parameter} (%{value}) выходит за пределы допустимого диапазона (%{range}). Паспорт газа %{name}\",\n },\n import: {\n title: 'Импорт паспортов качества газа',\n content: 'Утилита создаст Паспорта качества газа из Excel файла. Повторный импорт одного и того же файла приведет к обновлению Паспортов.',\n errors: 'Ошибки',\n warnings: 'Предупреждения',\n },\n empty: 'Паспорта качества газа отсутствуют',\n invite: 'Вы хотите создать или импортировать?',\n writeDialogTitle: 'Запись паспорта качества газа |||| Запись паспортов качества газа |||| Запись паспортов качества газа',\n writeDialogContent: 'Отправить Паспорт качества газа на запись? |||| Отправить %{smart_count} паспорта качества газа на запись? |||| Отправить %{smart_count} паспортов качества газа на запись?',\n },\n Dashboard: {\n name: 'Информационня панель |||| Информационные панели',\n menu: 'Инфопанель |||| Инфопанели',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasDistricts: 'Участки',\n reports: 'Отчеты',\n tags: 'Метки',\n aisId: 'АИС ID',\n dashboards_and: 'Инф. панели',\n dashboards_not_and: 'Инф. панели (НЕ)',\n },\n enums: {\n type: {\n Hourly: 'Часовой',\n Daily: 'Суточный',\n Event: 'События',\n Summary: 'Сводный',\n GasQualityCertificate: 'Паспорт качества газа',\n Other: 'Специальный',\n },\n },\n empty: 'Отчеты отсутствуют',\n invite: 'Вы хотите создать?',\n },\n Report: {\n name: 'Отчет |||| Отчеты',\n menu: 'Отчет |||| Отчеты',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n gasDistricts: 'Участки',\n reports: 'Отчеты',\n reports_and: 'Отчеты',\n reports_not_and: 'Отчеты (НЕ)',\n tags: 'Метки',\n aisId: 'АИС ID',\n },\n enums: {\n type: {\n Hourly: 'Часовой',\n Daily: 'Суточный',\n Event: 'События',\n Summary: 'Сводный',\n GasQualityCertificate: 'Паспорт качества газа',\n Other: 'Специальный',\n },\n },\n empty: 'Отчеты отсутствуют',\n invite: 'Вы хотите создать?',\n },\n ReportDespatch: {\n name: 'Рассылка отчетов |||| Рассылки отчетов',\n menu: 'Рассылка |||| Рассылки',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n from: 'От кого',\n to: 'Кому',\n cc: 'Копия',\n bcc: 'Скрытая копия',\n reports: 'Отчеты',\n scheduler: 'Расписание',\n cron: 'Cron',\n rangeOption: 'Глубина',\n enabled: 'Включена',\n state: 'Состояние',\n lastExecutionAt: 'Последняя отправка',\n nextExecutionAt: 'Следующая отправка',\n reports_not_and: 'Отчеты (НЕ)',\n tags: 'Метки',\n aisId: 'АИС ID',\n },\n enums: {\n type: {\n Hourly: 'Часовой',\n Daily: 'Суточный',\n Event: 'События',\n Summary: 'Сводный',\n GasQualityCertificate: 'Паспорт качества газа',\n Other: 'Специальный',\n },\n enabled: {\n true: 'Включена',\n false: 'Отключена',\n },\n rangeOption: {\n TODAY: 'Сегодня',\n TODAYSOFAR: 'Сегодня (по текущее время)',\n THISWEEK: 'Эта неделя',\n THISWEEKSOFAR: 'Эта неделя (по текущее время)',\n THISMONTH: 'Этот месяц',\n THISMONTHSOFAR: 'Этот месяц (по текущее время)',\n THISYEAR: 'Этот год',\n THISYEARSOFAR: 'Этот год (по текущее время)',\n YESTERDAY: 'Вчера',\n DAYBEFOREYESTERDAY: 'Позавчера',\n THISDAYLASTWEEK: 'Этот день на прошлой неделе',\n PREVIOUSWEEK: 'Предыдущая неделя',\n PREVIOUSMONTH: 'Предыдущий месяц',\n PREVIOUSQUARTER: 'Предыдущий квартал',\n PREVIOUSYEAR: 'Предыдущий год',\n LASTDAY: 'Последний день',\n LAST2DAYS: 'Последние 2 дня',\n LAST7DAYS: 'Последние 7 дней',\n LASTWEEK: 'Последняя неделя',\n LASTMONTH: 'Последний месяц',\n LASTQUARTER: 'Последний квартал',\n LASTYEAR: 'Последний год',\n LASTCOMMERCIALDAY: 'Последний коммерческий день',\n LASTCOMMERCIALDAYSOFAR: 'Последний коммерческий день (по текущее время)',\n }\n },\n empty: 'Рассылки отчетов отсутствуют',\n invite: 'Вы хотите создать?',\n },\n Contact: {\n name: 'Контакт |||| Контакты',\n fields: {\n id: 'ID',\n name: 'Наименование',\n email: 'Email',\n user: 'Пользователь',\n userId: 'ID Пользователя',\n },\n },\n Tag: {\n name: 'Метка |||| Метки',\n menu: 'Метка |||| Метки',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n type: 'Тип',\n resource: 'Ресурс',\n color: 'Цвет',\n createdAt: 'Создана',\n createdBy: 'Создал',\n updatedAt: 'Обновлена',\n tag_some: 'Метка',\n tag_none: 'Метка (НЕ)',\n tags_and: 'Метки',\n tags_not_and: 'Метки (НЕ)',\n },\n enums: {\n type: {\n USER: 'Пользовательская',\n SYSTEM: 'Системная',\n },\n resource: {\n GasRegion: 'Регион',\n GasDistrict: 'Участок',\n GasDistributorOrganization: 'ГРО',\n GasDistributorStation: 'ГРС',\n GasDistributorStationOutput: 'Выход ГРС',\n GasConsumer: 'Потребитель',\n GasMeterPad: 'Площадка',\n GasMeterUnit: 'УУГ',\n GasQualityCertificate: 'Паспорт газа',\n User: 'Пользователь',\n },\n },\n empty: 'Метки отсутствуют',\n invite: 'Вы хотите создать?',\n },\n TrashItem: {\n name: 'Корзина',\n menu: 'Корзина',\n fields: {\n id: 'ID',\n resource: 'Ресурс',\n name: 'Название',\n description: 'Описание',\n deletedBy: 'Удалил',\n deletedAt: 'Удален',\n deletedAt_gte: 'C даты',\n deletedAt_lte: 'По дату',\n },\n enums: {\n resource: {\n GasRegion: 'Регион',\n GasDistrict: 'Участок',\n BalanceRegion: 'Балансовая зона',\n GasDistributorOrganization: 'ГРО',\n GasDistributorStation: 'ГРС',\n GasDistributorStationOutput: 'Выход ГРС',\n GasConsumer: 'Потребитель',\n GasMeterPad: 'Площадка',\n GasMeterUnit: 'УУГ',\n GasMeterPoint: 'Линия',\n GasQualityCertificate: 'Паспорт газа',\n Counterparty: 'Контрагент',\n User: 'Пользователь',\n },\n }\n },\n History: {\n name: 'История',\n menu: 'История',\n fields: {\n id: 'ID',\n resource: 'Ресурс',\n name: 'Название',\n action: 'Действие',\n description: 'Описание',\n 'data.data': 'Текущее состояние',\n 'data.previous': 'Предыдущее состояние',\n createdAt: 'Дата',\n createdAt_gte: 'C даты',\n createdAt_lte: 'По дату',\n createdBy: 'Пользователь',\n },\n enums: {\n action: {\n CREATED: 'Создана',\n UPDATED: 'Обновлена',\n DELETED: 'Удалена навсегда',\n REMOVED: 'Удалена',\n RESTORED: 'Восстановлена',\n IMPORTED: 'Импортирован',\n SWAPPED: 'Заменен',\n WRITTEN: 'Значение записано',\n LOGIN: 'Вход пользователя',\n LOGOUT: 'Выход пользователя',\n INSTALLED: 'Смонтирован',\n UNINSTALLED: 'Демонтирован',\n },\n resource: {\n GasRegion: 'Регион',\n GasDistrict: 'Участок',\n BalanceRegion: 'Балансовая зона',\n GasDistributorOrganization: 'ГРО',\n GasDistributorStation: 'ГРС',\n GasDistributorStationOutput: 'Выход ГРС',\n GasConsumer: 'Потребитель',\n GasMeterPad: 'Площадка',\n GasMeterUnit: 'УУГ',\n GasMeterPoint: 'Линия',\n GasQualityCertificate: 'Паспорт газа',\n Counterparty: 'Контрагент',\n User: 'Пользователь',\n },\n },\n },\n Counterparty: {\n name: 'Контрагент |||| Контрагенты',\n menu: 'Контрагент |||| Контрагенты',\n fields: {\n id: 'ID',\n name: 'Название',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n type: 'Тип',\n inn: 'ИНН',\n kpp: 'КПП',\n okpo: 'ОКПО',\n ogrn: 'ОГРН',\n fio: 'Наименование',\n passport: 'Паспорт',\n passdateissue: 'Дата выдачи',\n parentId: 'Родитель',\n addressLegal: 'Юридический адрес',\n addressActual: 'Фактический адрес',\n addressPostal: 'Почтовый адрес',\n phone: 'Телефон',\n phoneMobile: 'Мобильный',\n email: 'Email',\n users: 'Пользователи',\n accessResource: 'Ресурс',\n access: 'Доступ',\n access_is_null: 'Нет доступа',\n filterGasRegion: 'Фильтр по Регионам',\n filterGasDistrict: 'Фильтр по Участкам',\n filterGasConsumer: 'Фильтр по Потребителям',\n filterGasMeterPad: 'Фильтр по Площадкам',\n accessGasRegion: 'Доступ по Регионам',\n accessGasDistrict: 'Доступ по Участкам',\n accessGasConsumer: 'Доступ по Потребителям',\n accessGasMeterPad: 'Доступ по Площадкам',\n accessGasMeterUnit: 'Доступ по УУГ',\n q: 'Поиск',\n },\n enums: {\n type: {\n LEGALENTITY: 'Юридическое лицо',\n INDIVIDUAL: 'Физическое лицо',\n SEPARATEDIVISION: 'Обособленное подразделение',\n GOVERNMENTAGENCY: 'Гос.орган',\n },\n },\n tabs: {\n general: 'Основное',\n access: 'Доступ',\n },\n empty: 'Контрагенты отсутствуют',\n invite: 'Вы хотите создать?',\n },\n User: {\n name: 'Пользователь |||| Пользователи',\n menu: 'Пользователь |||| Пользователи',\n fields: {\n id: 'ID',\n name: 'Наименование',\n description: 'Описание',\n createdAt: 'Создан',\n createdBy: 'Создал',\n updatedAt: 'Обновлен',\n email: 'Email',\n phone: 'Телефон',\n banned: 'Заблокирован',\n phoneContact: 'Телефон для связи',\n role: 'Роль',\n login: 'Логин',\n lastLogin: 'Был в сети',\n regions: 'Регионы',\n password: 'Пароль',\n counterparty: \"Контрагент\",\n position: \"Должность\",\n accessResource: 'Ресурс',\n access: 'Доступ',\n access_is_null: 'Нет доступа',\n filterGasRegion: 'Фильтр по Регионам',\n filterGasDistrict: 'Фильтр по Участкам',\n filterGasConsumer: 'Фильтр по Потребителям',\n filterGasMeterPad: 'Фильтр по Площадкам',\n accessCounterparty: 'Доступ по Контрагенту',\n accessGasRegion: 'Доступ по Регионам',\n accessGasDistrict: 'Доступ по Участкам',\n accessGasConsumer: 'Доступ по Потребителям',\n accessGasMeterPad: 'Доступ по Площадкам',\n accessGasMeterUnit: 'Доступ по УУГ',\n q: 'Поиск',\n users_and: 'Пользователи',\n users_not_and: 'Пользователи (НЕ)',\n },\n enums: {\n role: {\n GUEST: 'Гость',\n SERVICE: 'Сервис',\n SUPERADMIN: 'Суперадмин',\n ADMIN: 'Администратор',\n ENGINEER: 'Инженер',\n CONSUMER: 'Потребитель',\n DISPATCHER: 'Диспетчер'\n },\n },\n tabs: {\n general: 'Основное',\n access: 'Доступ',\n },\n empty: 'Пользователи отсутствуют',\n invite: 'Вы хотите создать?',\n },\n Access: {\n fields: {\n id: 'ID',\n resource: 'Ресурс',\n },\n enums: {\n resource: {\n GasRegion: 'Регион',\n GasDistrict: 'Участок',\n GasConsumer: 'Потребитель',\n GasMeterPad: 'Площадка',\n GasMeterUnit: 'УУГ',\n },\n },\n },\n About: {\n name: 'О приложении',\n menu: 'О приложении',\n },\n Main: {\n fields: {\n scope: \"Возможности\"\n }\n },\n DeviceStatus: {\n fields: {\n id: 'ID',\n dbId: 'ID Шины',\n status: 'Статус',\n date: 'Дата',\n details: 'Детали'\n },\n enums: {\n status: {\n CRITICAL: 'Критический',\n ERROR: 'Ошибка',\n WARNING: 'Внимание',\n OK: 'ОК',\n NOTCHECKED: 'Не проверено',\n },\n },\n },\n MetricGasMeter: {\n fields: {\n updatedAt: 'Время последнего приема данных',\n },\n },\n },\n}\n\nconst menuLanguageRussian = {\n menu: {\n groups: {\n default: \"\",\n resources: \"Ресурсы\",\n more: \"Дополнительно\",\n access: \"Доступ\",\n directories: \"Справочники\",\n utils: \"Утилиты\",\n }\n },\n}\n\nconst raLanguageRussian = {\n ra: {\n action: {\n ...russianMessages.ra.action,\n show_blank: \"Просмотр в новом окне\",\n bulk_actions: \"%{smart_count} выбрано |||| %{smart_count} выбрано |||| %{smart_count} выбрано\",\n create_and_continue: \"Coздать и продолжить\",\n save_and_continue: \"Сохранить и продолжить\",\n show_ownership: \"Показать владение\",\n show_history: \"Показать историю\",\n show_analitics: \"Аналитика\",\n delete: \"Удалить навсегда\",\n restore: \"Восстановить\",\n check_all: \"Выбрать все\",\n trash_open: \"Корзина\",\n more: \"Дополнительно\",\n import: \"Импорт\",\n print: \"Печать\",\n upload: \"Загрузка\",\n exportexcel: \"Excel\",\n exportpdf: \"PDF\",\n exportexcelnovokubansk: \"Выгрузка в новокубанскую программу\",\n one_of_fields_is_required: \"Требуется хотя бы одно из полей: Логин, Телефон или Email\",\n exportword: \"Word\",\n ban: \"Заблокировать\",\n unban: \"Разблокировать\",\n disable: \"Периоды отключения\",\n write_GasQualityCertificate: \"Отправить на запись\",\n tags_update: \"метки\",\n write: \"Отправить\",\n apply_filter: \"Применить фильтр\",\n despatch_run: \"Запустить рассылку\",\n },\n boolean: {\n ...russianMessages.ra.boolean,\n null: ' ',\n },\n page: {\n ...russianMessages.ra.page,\n no_data: 'Н\\\\Д',\n empty: 'Здесь ничего нет',\n invite: 'Вы хотите создать?',\n removed: \"Удалено\",\n },\n input: {\n ...russianMessages.ra.input,\n confirm: {\n label: \"Я подтверждаю правильность импортируемых данных\"\n }\n },\n message: {\n ...russianMessages.ra.message,\n no_data: 'Обновите страницу позднее',\n copy: \"Копия от %{from}\",\n removed: \"Ресурс перемещен в Корзину\",\n analitics_not_found: \"Данных аналитики для этого ресурса не найдено\",\n },\n navigation: {\n ...russianMessages.ra.navigation,\n user_apps: \"Приложения\",\n skip_nav: 'Перейти к содержимому',\n open_documentation: 'Открыть документацию',\n },\n auth: {\n ...russianMessages.ra.auth,\n permissions_error: 'Нет доступа',\n access_error: 'Нет доступа',\n User_is_not_access: 'Пользователь не имеет прав доступа. Обратитесь к администратору',\n\n role_SERVICE_not_allowed: 'Роль пользователя \"Сервис\" не подходит',\n ['User with such login does not exist.']: 'Пользователь с таким логином не существует',\n ['User with such login and password does not exist.']: 'Пользователь с таким логином и паролем не существует',\n ['User with such login banned.']: 'Пользователь с таким логином заблокирован. Обратитесь к администратору',\n ['Аuthorization error!']: 'Ошибка авторизации!',\n ['Not authenticated']: 'Ошибка аутентификации!',\n not_authorized_user: 'Пользователь с таким логином и паролем не существует. Осталась последняя попытка |||| Пользователь с таким логином и паролем не существует. Осталось %{smart_count} попытки |||| Пользователь с таким логином и паролем не существует. Осталось %{smart_count} попыток',\n banned_user: 'Пользователь с таким логином заблокирован. Обратитесь к администратору',\n },\n notification: {\n ...russianMessages.ra.notification,\n profile_saved: 'Профиль сохранен',\n selected_disabled_periods_updated: 'Периоды отключения площадки обновленны |||| Периоды отключения успешно обновлены у %{smart_count} площадок |||| Периоды отключения успешно обновлены у %{smart_count} площадок',\n moved_to_trash: '1 элемент перемещен в корзину |||| %{smart_count} элемента перемещено в корзину |||| %{smart_count} элементов перемещено в корзину',\n restored_from_trash: '1 элемент восстановлен из корзины |||| %{smart_count} элемента восстановлено из корзины |||| %{smart_count} элементов восстановлено из корзины',\n deleted_from_trash: '1 элемент удален из корзины |||| %{smart_count} элементов(а) удалено из корзины |||| %{smart_count} элементов(а) удалено из корзины',\n gas_quality_certificate_imported: 'Паспорт газа импортирован |||| %{smart_count} паспорта газа импортировано |||| %{smart_count} паспортов газа импортировано',\n gas_quality_certificate_written: 'Паспорт газа отправлен на запись |||| %{smart_count} паспорта газа отправлено на запись |||| %{smart_count} паспортов газа отправлено на запись',\n gas_quality_certificate_write_error: 'Паспорт газа не отправлен на запись. Нет УУГ, на которые может быть записан Паспорт газа, или запись Паспорта газа отключена. |||| Паспорта газа не отправлены на запись. Нет УУГ, на которые могут быть записаны Паспорта газа, или запись Паспорта газа отключена. |||| Паспорта газа не отправлены на запись. Нет УУГ, на которые могут быть записаны Паспорта газа, или запись Паспорта газа отключена.',\n user_banned: 'Пользователь заблокирован',\n user_unbanned: 'Пользователь разблокирован',\n device_wizard_created: 'Устройство создано',\n status_refreshed: 'Статус устройства обновлен',\n despatch_runned: 'Рассылка отчетов запущена |||| %{smart_count} рассылки отчетов запущено |||| %{smart_count} рассылок отчетов запущено',\n },\n validation: {\n ...russianMessages.ra.validation,\n unique: \"Значение %{value} уже используется\",\n ip_invalid: 'Должен быть в формате 255.255.255.255',\n phone_invalid: 'Должен быть в формате +7 (999) 999-9999',\n password_invalid: 'Пароль должен содержать: \\n - минимум 8 латинских символов \\n - минимум одну заглавную букву \\n - минимум одну строчную букву \\n - минимум одну цифру \\n - минимум один спецсимвол \\n',\n },\n },\n}\n\nconst reporttemplatesLanguageRussian = {\n reporttemplates: {\n button: {\n close: \"Закрыть\",\n runExport: \"Выгрузить\"\n },\n fields: {\n from: \"C\",\n to: \"по\",\n districts: 'Участки',\n modeline: 'Построчный',\n modecolumns: 'C датами в столбцах'\n },\n messages: {\n maxintervalall: 'Задан большой интервал времени. При выборе \"Все участки\" максивальный интервал 3 месяца',\n maxinterval: 'Задан большой интервал времени. Максивальный интервал 1 год',\n query: 'Запрос на выгрузку...',\n filesuccess: 'Файл выгружен'\n },\n helpertext: {\n districts_error: 'Не задан участок'\n }\n }\n}\n\nconst ru = {\n ...resourcesLanguageRussian,\n ...menuLanguageRussian,\n ...raLanguageRussian,\n ...reporttemplatesLanguageRussian,\n ...raFormLayoutLanguageRussian,\n ...raPreferencesLanguageRussian,\n}\n\nexport default ru","import polyglotI18nProvider from 'ra-i18n-polyglot';\nimport englishMessages from './en';\nimport russianMessages from './ru'\n\n\n\nconst messages = {\n en: englishMessages,\n ru: russianMessages,\n};\n\nexport const i18nProvider = polyglotI18nProvider(locale => messages[locale], 'ru');","import { ONLINE_USERS } from './actions';\n\nexport default (previousState=[], { type, payload }) => {\n if (type === ONLINE_USERS) {\n return payload.onlineUsers;\n }\n return previousState;\n}","import { SET_USER } from './actions';\n\nexport default (previousState=null, { type, payload }) => {\n if (type === SET_USER) {\n return payload.user;\n }\n return previousState;\n}","import { Admin, ExportButton, Pagination, Resource } from 'react-admin';\nimport { BalanceRegionCreate, BalanceRegionEdit, BalanceRegionIcon, BalanceRegionList, BalanceRegionShow } from './components/BalanceRegion';\nimport { CounterpartyCreate, CounterpartyEdit, CounterpartyIcon, CounterpartyList, CounterpartyShow } from './components/Counterparty';\nimport { DashboardIcon, DashboardShow } from './components/Dashboard';\nimport { GasConsumerCreate, GasConsumerEdit, GasConsumerIcon, GasConsumerList, GasConsumerShow } from './components/GasConsumer';\nimport { GasDistributorOrganizationCreate, GasDistributorOrganizationEdit, GasDistributorOrganizationIcon, GasDistributorOrganizationList, GasDistributorOrganizationShow } from './components/GasDistributorOrganization';\nimport { GasDistributorStationCreate, GasDistributorStationEdit, GasDistributorStationIcon, GasDistributorStationList, GasDistributorStationShow } from './components/GasDistributorStation';\nimport { GasDistributorStationOutputCreate, GasDistributorStationOutputEdit, GasDistributorStationOutputIcon, GasDistributorStationOutputShow } from './components/GasDistributorStationOutput';\nimport { GasDistrictCreate, GasDistrictEdit, GasDistrictIcon, GasDistrictList, GasDistrictShow } from './components/GasDistrict';\nimport { GasMeterPadCreate, GasMeterPadEdit, GasMeterPadIcon, GasMeterPadList, GasMeterPadShow } from './components/GasMeterPad';\nimport { GasMeterPointEdit, GasMeterPointIcon, GasMeterPointShow } from './components/GasMeterPoint';\nimport { GasMeterUnitCreate, GasMeterUnitEdit, GasMeterUnitIcon, GasMeterUnitList, GasMeterUnitShow } from './components/GasMeterUnit';\nimport { GasQualityCertificateCreate, GasQualityCertificateEdit, GasQualityCertificateIcon, GasQualityCertificateList, GasQualityCertificateShow } from './components/GasQualityCertificate';\nimport { GasRegionCreate, GasRegionEdit, GasRegionIcon, GasRegionList, GasRegionShow } from './components/GasRegion';\nimport { HistoryIcon, HistoryList, HistoryShow } from './components/History';\nimport React, { useEffect, useState } from 'react';\nimport { ReportIcon, ReportShow } from './components/Report';\nimport { ReportDespatchIcon, ReportDespatchCreate, ReportDespatchList, ReportDespatchShow, ReportDespatchEdit } from './components/ReportDespatch';\nimport { TagCreate, TagEdit, TagIcon, TagList, TagShow } from './components/Tag';\nimport { TrashItemIcon, TrashItemList } from './components/TrashItem';\nimport { UserCreate, UserEdit, UserIcon, UserList, UserShow } from './components/User';\n\nimport LoginPage from './components/Auth/Login';\nimport Main from './components/Main';\nimport { MyLayout } from './components/Layout';\nimport { can } from \"./abilityProvider\";\nimport access from './redux/access/reducer';\nimport { authProvider } from './authPrivider';\nimport customRoutes from './customRoutes';\nimport { dataProviderFactory } from './dataProvider/dataProviderFactory';\nimport { i18nProvider } from './i18n/i18nProvider';\nimport onlineUsers from './redux/onlineUsers/reducer';\nimport { theme } from './defaultTheme';\nimport user from './redux/user/reducer';\n\nExportButton.defaultProps = {\n maxResults: 5000\n}\n\nPagination.defaultProps = {\n rowsPerPageOptions: [10, 25, 50, 100]\n}\n\nconst App = () => {\n const [dataProvider, setDataProvider] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n\n const onMount = () => {\n dataProviderFactory().then(dataProvider => {\n setDataProvider(() => dataProvider);\n setLoading(false);\n });\n }\n\n onMount();\n\n return () => {\n setDataProvider(null);\n };\n\n }, []);\n\n if (loading) {\n return (\n <div>Loading...</div>\n );\n }\n\n return (\n <Admin\n disableTelemetry\n theme={theme}\n layout={MyLayout}\n loginPage={LoginPage}\n authProvider={authProvider}\n dataProvider={dataProvider}\n i18nProvider={i18nProvider}\n dashboard={Main}\n customReducers={{ user, onlineUsers, access }}\n customRoutes={customRoutes}\n >\n {permissions => [\n <Resource name=\"GasRegion\"\n list={can('getList', 'GasRegion') && GasRegionList}\n create={can('create', 'GasRegion') && GasRegionCreate}\n edit={can('update', 'GasRegion') && GasRegionEdit}\n show={can('getOne', 'GasRegion') && GasRegionShow}\n icon={GasRegionIcon}\n options={{ menuGroup: \"resources\" }}\n />,\n <Resource name=\"GasDistrict\"\n list={can('getList', 'GasDistrict') && GasDistrictList}\n create={can('create', 'GasDistrict') && GasDistrictCreate}\n edit={can('update', 'GasDistrict') && GasDistrictEdit}\n show={can('getOne', 'GasDistrict') && GasDistrictShow}\n icon={GasDistrictIcon}\n options={{ menuGroup: \"resources\" }}\n />,\n <Resource name=\"GasConsumer\"\n list={can('getList', 'GasConsumer') && GasConsumerList}\n create={can('create', 'GasConsumer') && GasConsumerCreate}\n edit={can('update', 'GasRegion') && GasConsumerEdit}\n show={can('getOne', 'GasConsumer') && GasConsumerShow}\n icon={GasConsumerIcon}\n options={{ menuGroup: \"resources\" }}\n />,\n <Resource name=\"GasMeterPad\"\n list={can('getList', 'GasMeterPad') && GasMeterPadList}\n create={can('create', 'GasMeterPad') && GasMeterPadCreate}\n edit={can('update', 'GasMeterPad') && GasMeterPadEdit}\n show={can('getOne', 'GasMeterPad') && GasMeterPadShow}\n icon={GasMeterPadIcon}\n options={{ menuGroup: \"resources\" }}\n />,\n <Resource name=\"GasMeterUnit\"\n list={can('getList', 'GasMeterUnit') && GasMeterUnitList}\n create={can('create', 'GasMeterUnit') && GasMeterUnitCreate}\n edit={can('update', 'GasMeterUnit') && GasMeterUnitEdit}\n show={can('getOne', 'GasMeterUnit') && GasMeterUnitShow\n } icon={GasMeterUnitIcon}\n options={{ menuGroup: \"resources\" }}\n />,\n <Resource name=\"GasMeterPoint\"\n edit={can('update', 'GasMeterPoint') && GasMeterPointEdit}\n show={can('getOne', 'GasMeterPoint') && GasMeterPointShow}\n icon={GasMeterPointIcon} />,\n\n <Resource name=\"GasDistributorOrganization\"\n list={can('getList', 'GasDistributorOrganization') && GasDistributorOrganizationList}\n create={can('create', 'GasDistributorOrganization') && GasDistributorOrganizationCreate}\n edit={can('update', 'GasDistributorOrganization') && GasDistributorOrganizationEdit}\n show={can('getOne', 'GasDistributorOrganization') && GasDistributorOrganizationShow}\n icon={GasDistributorOrganizationIcon}\n options={{ menuGroup: \"more\" }}\n />,\n <Resource name=\"GasDistributorStation\"\n list={can('getList', 'GasDistributorStation') && GasDistributorStationList}\n create={can('create', 'GasDistributorStation') && GasDistributorStationCreate}\n edit={can('update', 'GasDistributorStation') && GasDistributorStationEdit}\n show={can('getOne', 'GasDistributorStation') && GasDistributorStationShow}\n icon={GasDistributorStationIcon}\n options={{ menuGroup: \"more\" }}\n />,\n <Resource name=\"BalanceRegion\"\n list={can('getList', 'BalanceRegion') && BalanceRegionList}\n create={can('create', 'BalanceRegion') && BalanceRegionCreate}\n edit={can('update', 'BalanceRegion') && BalanceRegionEdit}\n show={can('getOne', 'BalanceRegion') && BalanceRegionShow}\n icon={BalanceRegionIcon}\n options={{ menuGroup: \"more\" }}\n />,\n <Resource name=\"GasDistributorStationOutput\"\n create={can('create', 'GasDistributorStationOutput') && GasDistributorStationOutputCreate}\n edit={can('update', 'GasDistributorStationOutput') && GasDistributorStationOutputEdit}\n show={can('getOne', 'GasDistributorStationOutput') && GasDistributorStationOutputShow}\n icon={GasDistributorStationOutputIcon}\n options={{ menuGroup: \"more\" }}\n />,\n <Resource name=\"GasQualityCertificate\"\n list={can('getList', 'GasQualityCertificate') && GasQualityCertificateList}\n create={can('create', 'GasQualityCertificate') && GasQualityCertificateCreate}\n edit={can('update', 'GasQualityCertificate') && GasQualityCertificateEdit}\n show={can('getOne', 'GasQualityCertificate') && GasQualityCertificateShow}\n icon={GasQualityCertificateIcon}\n options={{ menuGroup: \"more\" }}\n />,\n <Resource name=\"Counterparty\"\n icon={CounterpartyIcon}\n list={can('getList', 'Counterparty') && CounterpartyList}\n show={can('getOne', 'Counterparty') && CounterpartyShow}\n create={can('create', 'Counterparty') && CounterpartyCreate}\n edit={can('update', 'Counterparty') && CounterpartyEdit}\n options={{ menuGroup: \"access\" }}\n />,\n <Resource name=\"User\"\n icon={UserIcon}\n list={can('getList', 'User') && UserList}\n show={can('getOne', 'User') && UserShow}\n create={can('create', 'User') && UserCreate}\n edit={can('update', 'User') && UserEdit}\n options={{ menuGroup: \"access\" }}\n />,\n <Resource name=\"AuthUser\" />,\n <Resource name=\"Tag\"\n icon={TagIcon}\n list={can('getList', 'Tag') && TagList}\n show={can('getOne', 'Tag') && TagShow}\n create={can('create', 'Tag') && TagCreate}\n edit={can('update', 'Tag') && TagEdit}\n options={{ menuGroup: \"utils\" }} />,\n <Resource name=\"ReportDespatch\"\n icon={ReportDespatchIcon}\n list={can('getList', 'ReportDespatch') && ReportDespatchList}\n show={can('getOne', 'ReportDespatch') && ReportDespatchShow}\n create={can('create', 'ReportDespatch') && ReportDespatchCreate}\n edit={can('update', 'ReportDespatch') && ReportDespatchEdit}\n options={{ menuGroup: \"utils\" }} />,\n <Resource name=\"Contact\" />,\n <Resource name=\"History\"\n list={can('getList', 'History') && HistoryList}\n show={can('getOne', 'History') && HistoryShow}\n icon={HistoryIcon}\n options={{ menuGroup: \"utils\" }} />,\n <Resource name=\"TrashItem\"\n list={can('getList', 'TrashItem') && TrashItemList}\n icon={TrashItemIcon}\n options={{ menuGroup: \"utils\" }} />,\n\n <Resource name=\"Profile\" />,\n <Resource name=\"MetricGasMeter\" />,\n <Resource name=\"DeviceStatus\" />,\n <Resource name=\"ControllerConfiguration\" />,\n <Resource name=\"GasMeterConfiguration\" />,\n <Resource name=\"Report\"\n show={can('getOne', 'Report') && ReportShow}\n icon={ReportIcon}\n options={{ menuGroup: \"utils\" }}\n />,\n <Resource name=\"Dashboard\"\n show={can('getOne', 'Dashboard') && DashboardShow}\n icon={DashboardIcon}\n options={{ menuGroup: \"utils\" }}\n />,\n\n ]}\n </Admin>\n );\n};\n\nexport default App;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n// import * as serviceWorker from './serviceWorker';\nimport { register } from './serviceWorker';\n\nReactDOM.render(<App />, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n// serviceWorker.unregister();\nregister()\n","export const register = () => {\n if ('serviceWorker' in navigator) {\n\n window.addEventListener('load', () => {\n const swUrl = `/sw.js`;\n\n navigator.serviceWorker.register(swUrl)\n .then((sw) => {\n console.log('Service Worker registration successful')\n })\n .catch(function (error) {\n console.error('Service Worker Error', error);\n });\n });\n }\n};\n","import { useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux';\nimport gql from 'graphql-tag'\nimport apolloCoreClient from './apolloCoreClient';\n\n\nconst GASREGION = `{ id name }`;\nconst GASDISTRICT = `{ id name gasRegion ${GASREGION}}`;\nconst GASCONSUMER = `{ id name }`;\nconst GASMETERPAD = `{ id name gasConsumer ${GASCONSUMER} gasDistrict ${GASDISTRICT}}`;\nconst GASMETERUNIT = `{ id name gasMeterPad ${GASMETERPAD}}`;\nconst GASMETERPOINT = `{ id name gasMeterUnit ${GASMETERUNIT}}`;\nconst GASDISTRIBUTORSORGANIZATION = `{ id name }`;\nconst GASDISTRIBUTORSTATION = `{ id name }`;\nconst GASDISTRIBUTORSTATIONOUTPUT = `{ id name gasDistributorStation ${GASDISTRIBUTORSTATION}}`;\n\n\nconst getInfo = (resource) => {\n switch (resource) {\n case \"GasRegion\": {\n return GASREGION\n }\n case \"GasDistrict\": {\n return GASDISTRICT\n }\n case \"GasConsumer\": {\n return GASCONSUMER\n }\n case \"GasMeterPad\": {\n return GASMETERPAD\n }\n case \"GasMeterUnit\": {\n return GASMETERUNIT\n }\n case \"GasMeterPoint\": {\n return GASMETERPOINT\n }\n case \"GasDistributorOrganization\": {\n return GASDISTRIBUTORSORGANIZATION\n }\n case \"GasDistributorStation\": {\n return GASDISTRIBUTORSTATION\n }\n case \"GasDistributorStationOutput\": {\n return GASDISTRIBUTORSTATIONOUTPUT\n }\n \n } \n};\n\nconst setData = (resource, data, state) => {\n\n const {id, name, ...nested} = data.data;\n\n const responce = {};\n\n switch (resource) {\n case \"GasRegion\": {\n responce.GasRegion = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasDistrict\": {\n const gasRegion = nested.gasRegion\n responce.GasRegion = gasRegion ? { id: gasRegion.id, name: gasRegion.name, icon: state[\"GasRegion\"].props.icon } : null\n responce.GasDistrict = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasConsumer\": {\n const gasDistrict = nested.gasDistrict\n const gasRegion = gasDistrict && gasDistrict.gasRegion\n responce.GasRegion = gasRegion ? { id: gasRegion.id, name: gasRegion.name, icon: state[\"GasRegion\"].props.icon } : null\n responce.GasDistrict = gasDistrict ? { id: gasDistrict.id, name: gasDistrict.name, icon: state[\"GasDistrict\"].props.icon } : null\n responce.GasConsumer = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasMeterPad\": {\n const gasDistrict = nested.gasDistrict\n const gasConsumer = nested.gasConsumer\n const gasRegion = gasDistrict && gasDistrict.gasRegion\n responce.GasRegion = gasRegion ? { id: gasRegion.id, name: gasRegion.name, icon: state[\"GasRegion\"].props.icon } : null\n responce.GasDistrict = gasDistrict ? { id: gasDistrict.id, name: gasDistrict.name, icon: state[\"GasDistrict\"].props.icon } : null\n responce.GasConsumer = gasConsumer ? { id: gasConsumer.id, name: gasConsumer.name, icon: state[\"GasConsumer\"].props.icon } : null\n responce.GasMeterPad = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasMeterUnit\": {\n const gasMeterPad = nested.gasMeterPad\n const gasConsumer = gasMeterPad && gasMeterPad.gasConsumer\n const gasDistrict = gasMeterPad && gasMeterPad.gasDistrict\n const gasRegion = gasDistrict && gasDistrict.gasRegion\n responce.GasRegion = gasRegion ? { id: gasRegion.id, name: gasRegion.name, icon: state[\"GasRegion\"].props.icon } : null\n responce.GasDistrict = gasDistrict ? { id: gasDistrict.id, name: gasDistrict.name, icon: state[\"GasDistrict\"].props.icon } : null\n responce.GasConsumer = gasConsumer ? { id: gasConsumer.id, name: gasConsumer.name, icon: state[\"GasConsumer\"].props.icon } : null\n responce.GasMeterPad = gasMeterPad ? { id: gasMeterPad.id, name: gasMeterPad.name, icon: state[\"GasMeterPad\"].props.icon } : null\n responce.GasMeterUnit = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasMeterPoint\": {\n const gasMeterUnit = nested.gasMeterUnit\n const gasMeterPad = gasMeterUnit && gasMeterUnit.gasMeterPad\n const gasConsumer = gasMeterPad && gasMeterPad.gasConsumer\n const gasDistrict = gasMeterPad && gasMeterPad.gasDistrict\n const gasRegion = gasDistrict && gasDistrict.gasRegion\n responce.GasRegion = gasRegion ? { id: gasRegion.id, name: gasRegion.name, icon: state[\"GasRegion\"].props.icon } : null\n responce.GasDistrict = gasDistrict ? { id: gasDistrict.id, name: gasDistrict.name, icon: state[\"GasDistrict\"].props.icon } : null\n responce.GasConsumer = gasConsumer ? { id: gasConsumer.id, name: gasConsumer.name, icon: state[\"GasConsumer\"].props.icon } : null\n responce.GasMeterPad = gasMeterPad ? { id: gasMeterPad.id, name: gasMeterPad.name, icon: state[\"GasMeterPad\"].props.icon } : null\n responce.GasMeterUnit = gasMeterUnit ? { id: gasMeterUnit.id, name: gasMeterUnit.name, icon: state[\"GasMeterUnit\"].props.icon } : null\n responce.GasMeterPoint = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasDistributorOrganization\": {\n responce.GasDistributorOrganization = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasDistributorStation\": {\n responce.GasDistributorStation = { id, name, icon: state[resource].props.icon }\n break;\n }\n case \"GasDistributorStationOutput\": {\n const gasDistributorStation = nested.gasDistributorStation\n responce.GasDistributorStation = gasDistributorStation ? { id: gasDistributorStation.id, name: gasDistributorStation.name, icon: state[\"GasDistributorStation\"].props.icon } : null\n responce.GasDistributorStationOutput = { id, name, icon: state[resource].props.icon }\n break;\n }\n }\n \n return responce;\n};\n\nexport default function(resource, id) {\n\n const resourcesState = useSelector((state) => state.admin.resources);\n\n const [state, setState] = useState({\n data: undefined,\n error: null,\n loading: true,\n loaded: false,\n })\n\n useEffect(() => {\n\n async function fetchData() {\n \n apolloCoreClient.query({\n query: gql`query ${resource}Hierarchy($where: ${resource}WhereUniqueInput!){\n data: ${resource}(where: $where) ${getInfo(resource)}\n }`,\n variables: { where: {id} },\n fetchPolicy: 'network-only',\n })\n .then(({ data }) => {\n setState({\n data: setData(resource, data, resourcesState) ,\n loading: false,\n loaded: true,\n });\n })\n .catch(error => {\n setState({\n error,\n loading: false,\n loaded: false,\n });\n });\n }\n\n if (id) fetchData();\n\n \n }, [resource, id])\n\n return state;\n}\n","import React, { Children, isValidElement, cloneElement } from 'react';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\nimport { Skeleton } from '@material-ui/lab';\nimport useResourceHierarchy from '../../dataProvider/Core/useResourceHierarchy';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n minHeight: 40,\n alignItems: \"flex-start\",\n paddingTop: 24,\n paddingBottom: 8,\n justifyContent: \"flex-end\",\n [theme.breakpoints.up('xs')]: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n [theme.breakpoints.down('sm')]: {\n paddingRight: theme.spacing(2),\n },\n [theme.breakpoints.down('xs')]: {\n padding: theme.spacing(1),\n backgroundColor: theme.palette.background.paper,\n },\n },\n skeleton: {\n margin: 2,\n borderRadius: 4\n },\n separator: {\n margin: 2,\n },\n}));\n\nconst ResourceBreadcrumbs = ({ children, resource, ...props }) => {\n\n const classes = useStyles();\n const accessResourses = useSelector(state => state.access && state.access.accessResources, shallowEqual);\n\n\n const { data, loading, error } = useResourceHierarchy(resource, props.data && props.data.id)\n\n if (error) return null\n\n if (loading) {\n return (\n <Breadcrumbs aria-label=\"breadcrumb\" className={classes.root}>\n {Children.map(children, (_, index) => (<Skeleton variant=\"rect\" width={128} height={32} key={index} classes={{ root: classes.skeleton }} />))}\n </Breadcrumbs>\n );\n }\n\n return (\n <Breadcrumbs aria-label=\"breadcrumb\" className={classes.root} classes={{ separator: classes.separator }}>\n {Children.map(children, breadcrumb => {\n const resource = breadcrumb.props.resource\n const record = data[resource]\n\n return record && accessResourses && isValidElement(breadcrumb)\n ? cloneElement(breadcrumb, {\n record,\n disabled: accessResourses[resource] === false\n })\n : null;\n })}\n </Breadcrumbs>\n );\n}\n\n\nexport default ResourceBreadcrumbs;","export const dateTimeOptions = {\n year: 'numeric', month: 'numeric', day: 'numeric',\n hour: 'numeric', minute: 'numeric'\n};\n\nexport const getCookie = (name) => {\n let matches = document.cookie.match(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n return matches ? decodeURIComponent(matches[1]) : undefined;\n};\n\nexport const setCookie = (name, value, options = {}) => {\n\n options = {\n path: '/',\n // при необходимости добавьте другие значения по умолчанию\n ...options\n };\n\n if (options.expires && options.expires.toUTCString) {\n options.expires = options.expires.toUTCString();\n }\n\n let updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\n\n for (let optionKey in options) {\n updatedCookie += \"; \" + optionKey;\n let optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += \"=\" + optionValue;\n }\n }\n\n document.cookie = updatedCookie;\n};\n\nexport const deleteCookie = (name, options = {}) => {\n setCookie(name, \"\", {\n ...options,\n 'max-age': -1\n })\n};\n\nexport const matchTrue = () => true;\n","import { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { getAccessToken } from './getAccessToken';\nimport { URI_AUTH } from '../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_AUTH\n});\n\nconst authLink = setContext(async (_, { headers }) => { \n \n const token = await getAccessToken(); \n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\n\nexport const apolloAuthClient = new ApolloClient({\n link: httpLink,\n cache: new InMemoryCache(),\n});\n\nexport const apolloAuthClientWithAuth = new ApolloClient({\n link: authLink.concat(httpLink),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n },\n});","require('dotenv').config();\n\nconst global_env = (process.env.NODE_ENV === 'development') ? process.env : window.ENV;\n\nexport const TITLE_APP = global_env.REACT_APP_TITLE_APP || 'АСКУГ Показатели'\nexport const PERMISSIONS_NAMESPACE = 'ASKUG'\nexport const GROUP_NAME_APP = 'ASKUG'\nexport const AUTH_TOKEN_COOKIE = `${GROUP_NAME_APP}-AUTH-TOKEN`\nexport const REFRESH_TOKEN_COOKIE = `${GROUP_NAME_APP}-REFRESH-TOKEN`\nexport const DOMAIN_COOKIE = global_env.REACT_APP_DOMAIN_COOKIE || \"localhost\"\nexport const LOCAL_STORAGE = `${GROUP_NAME_APP}-STORAGE`\nexport const PACKAGE_NAME = global_env.REACT_APP_NAME || \"web-askug-main-portal\"\nexport const PACKAGE_VERSION = global_env.REACT_APP_VERSION || \"0.0.1\"\nexport const PACKAGE_VERSION_COOKIE = `${GROUP_NAME_APP}-PACKAGE-VERSION`\nexport const CURRENT_DATERANGE = `${GROUP_NAME_APP}-CURRENT-DATERANGE`\nexport const REPORT_DATE_MIN_YEAR = global_env.REACT_APP_REPORT_DATE_MIN_YEAR && parseInt(global_env.REACT_APP_REPORT_DATE_MIN_YEAR) || 2008\nexport const REPORT_HOURS_MAX_DATERANGE_YEARS = global_env.REACT_APP_REPORT_HOURS_MAX_DATERANGE_YEARS && parseInt(global_env.REACT_APP_REPORT_HOURS_MAX_DATERANGE_YEARS) || 5\n\n// SERVICE URI's\nexport const URI_CORE = global_env.REACT_APP_URI_CORE || 'http://localhost:5550'\nexport const WS_CORE = global_env.REACT_APP_WS_CORE || 'ws://localhost:5550'\nexport const URI_CASL = global_env.REACT_APP_URI_CASL || 'http://localhost:4555'\nexport const URI_AUTH = global_env.REACT_APP_URI_AUTH || 'http://localhost:5000'\nexport const URI_DATA = global_env.REACT_APP_URI_DATA || 'http://localhost:5560'\nexport const URI_DATA_ANALYTICS = global_env.REACT_APP_URI_DATA_ANALYTICS || 'http://localhost:5561'\nexport const URI_DATABUS = global_env.REACT_APP_URI_DATABUS || 'http://localhost:50052/graphql'\nexport const WS_DATABUS = global_env.REACT_APP_WS_DATABUS || 'ws://localhost:50052/graphql'\nexport const URI_PROMETHEUS = global_env.REACT_APP_URI_PROMETHEUS || 'http://localhost:9090'\nexport const URI_IMPORTEXPORT = global_env.REACT_APP_URI_IMPORTEXPORT || 'http://localhost:5570'\nexport const URI_SCADAJS = global_env.REACT_APP_URI_SCADAJS || 'http://localhost:5580'\nexport const URI_ANALITICS = global_env.REACT_APP_URI_ANALITICS || 'http://localhost:2380/graphql'\nexport const WS_ANALITICS = global_env.REACT_APP_WS_ANALITICS || 'ws://localhost:2380/graphql'\nexport const URI_REPORT_DESPATCH = global_env.REACT_APP_URI_REPORT_DESPATCH || 'http://localhost:8333'\nexport const URI_DEVICEGAPS = global_env.REACT_APP_URI_DEVICEGAPS || 'http://10.174.18.254:7778/graphql'","import Icon from '@material-ui/icons/History';\n// import DashboardList from './DashboardList';\nimport DashboardShow from './DashboardShow';\n\nconst DashboardIcon = Icon;\n\n\nexport {\n DashboardIcon,\n // DashboardList,\n DashboardShow,\n};\n","import React, {\n useCallback,\n useEffect,\n useRef,\n FunctionComponent,\n useMemo,\n isValidElement,\n} from 'react';\nimport Downshift, { DownshiftProps } from 'downshift';\nimport classNames from 'classnames';\nimport get from 'lodash/get';\nimport { makeStyles, TextField, Chip } from '@material-ui/core';\nimport { TextFieldProps } from '@material-ui/core/TextField';\nimport {\n useInput,\n FieldTitle,\n InputProps,\n useSuggestions,\n warning,\n} from 'ra-core';\n\nimport { InputHelperText } from 'react-admin';\nimport AutocompleteSuggestionList from './AutocompleteSuggestionList';\nimport AutocompleteSuggestionItem from './AutocompleteSuggestionItem';\n\n\n\nconst SelectedItem = ({className, label, record, onDelete, ...props}) => {\n return (<Chip label={label} className={className} onDelete={onDelete} />);\n};\n\nconst AutocompleteArrayInput = props => {\n const {\n allowDuplicates,\n allowEmpty,\n classes: classesOverride,\n choices = [],\n emptyText,\n emptyValue,\n format,\n fullWidth,\n helperText,\n id: idOverride,\n input: inputOverride,\n isRequired: isRequiredOverride,\n label,\n limitChoicesToValue,\n margin = 'dense',\n matchSuggestion,\n meta: metaOverride,\n onBlur,\n onChange,\n onFocus,\n options: {\n suggestionsContainerProps,\n labelProps,\n InputProps,\n ...options\n } = {},\n optionText = 'name',\n optionValue = 'id',\n parse,\n resource,\n setFilter,\n shouldRenderSuggestions: shouldRenderSuggestionsOverride,\n source,\n suggestionLimit,\n translateChoice = true,\n validate,\n variant = 'filled',\n selectedItem = <SelectedItem />,\n suggestionItem = <AutocompleteSuggestionItem />,\n ...rest\n } = props;\n warning(\n isValidElement(optionText) && !matchSuggestion,\n `If the optionText prop is a React element, you must also specify the matchSuggestion prop:\n<AutocompleteInput\n matchSuggestion={(filterValue, suggestion) => true}\n/>\n `\n );\n\n const classes = useStyles(props);\n\n let inputEl = useRef();\n let anchorEl = useRef();\n\n const {\n id,\n input,\n isRequired,\n meta: { touched, error },\n } = useInput({\n format,\n id: idOverride,\n input: inputOverride,\n meta: metaOverride,\n onBlur,\n onChange,\n onFocus,\n parse,\n resource,\n source,\n validate,\n ...rest,\n });\n\n const values = input.value || [];\n\n const [filterValue, setFilterValue] = React.useState('');\n\n const getSuggestionFromValue = useCallback(\n value => choices.find(choice => get(choice, optionValue) === value),\n [choices, optionValue]\n );\n\n const selectedItems = useMemo(() => values.map(getSuggestionFromValue), [\n getSuggestionFromValue,\n values,\n ]);\n\n const { getChoiceText, getChoiceValue, getSuggestions } = useSuggestions({\n allowDuplicates,\n allowEmpty,\n choices,\n emptyText,\n emptyValue,\n limitChoicesToValue,\n matchSuggestion,\n optionText,\n optionValue,\n selectedItem: selectedItems,\n suggestionLimit,\n translateChoice,\n });\n\n const handleFilterChange = useCallback(\n (eventOrValue) => {\n const event = eventOrValue;\n const value = event.target\n ? event.target.value\n : (eventOrValue);\n\n setFilterValue(value);\n if (setFilter) {\n setFilter(value);\n }\n },\n [setFilter, setFilterValue]\n );\n\n // We must reset the filter every time the value changes to ensure we\n // display at least some choices even if the input has a value.\n // Otherwise, it would only display the currently selected one and the user\n // would have to first clear the input before seeing any other choices\n useEffect(() => {\n handleFilterChange('');\n }, [values.join(','), handleFilterChange]);\n\n const handleKeyDown = useCallback(\n (event) => {\n // Remove latest item from array when user hits backspace with no text\n if (\n selectedItems.length &&\n !filterValue.length &&\n event.key === 'Backspace'\n ) {\n const newSelectedItems = selectedItems.slice(\n 0,\n selectedItems.length - 1\n );\n input.onChange(newSelectedItems.map(getChoiceValue));\n }\n },\n [filterValue.length, getChoiceValue, input, selectedItems]\n );\n\n const handleChange = useCallback(\n (item) => {\n let newSelectedItems =\n !allowDuplicates && selectedItems.includes(item)\n ? [...selectedItems]\n : [...selectedItems, item];\n setFilterValue('');\n input.onChange(newSelectedItems.map(getChoiceValue));\n },\n [allowDuplicates, getChoiceValue, input, selectedItems, setFilterValue]\n );\n\n const handleDelete = useCallback(\n item => () => {\n const newSelectedItems = [...selectedItems];\n newSelectedItems.splice(newSelectedItems.indexOf(item), 1);\n input.onChange(newSelectedItems.map(getChoiceValue));\n },\n [input, selectedItems, getChoiceValue]\n );\n\n // This function ensures that the suggestion list stay aligned to the\n // input element even if it moves (because user scrolled for example)\n const updateAnchorEl = () => {\n if (!inputEl.current) {\n return;\n }\n\n const inputPosition = inputEl.current.getBoundingClientRect();\n\n // It works by implementing a mock element providing the only method used\n // by the PopOver component, getBoundingClientRect, which will return a\n // position based on the input position\n if (!anchorEl.current) {\n anchorEl.current = { getBoundingClientRect: () => inputPosition };\n } else {\n const anchorPosition = anchorEl.current.getBoundingClientRect();\n\n if (\n anchorPosition.x !== inputPosition.x ||\n anchorPosition.y !== inputPosition.y\n ) {\n anchorEl.current = {\n getBoundingClientRect: () => inputPosition,\n };\n }\n }\n };\n\n const storeInputRef = input => {\n inputEl.current = input;\n updateAnchorEl();\n };\n\n const handleBlur = useCallback(\n event => {\n setFilterValue('');\n handleFilterChange('');\n input.onBlur(event);\n },\n [handleFilterChange, input, setFilterValue]\n );\n\n const handleFocus = useCallback(\n openMenu => event => {\n openMenu(event);\n input.onFocus(event);\n },\n [input]\n );\n\n const handleClick = useCallback(\n openMenu => event => {\n if (event.target === inputEl.current) {\n openMenu(event);\n }\n },\n []\n );\n\n const shouldRenderSuggestions = val => {\n if (\n shouldRenderSuggestionsOverride !== undefined &&\n typeof shouldRenderSuggestionsOverride === 'function'\n ) {\n return shouldRenderSuggestionsOverride(val);\n }\n\n return true;\n };\n\n return (\n <Downshift\n inputValue={filterValue}\n onChange={handleChange}\n selectedItem={selectedItems}\n itemToString={item => getChoiceValue(item)}\n {...rest}\n >\n {({\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n isOpen,\n inputValue: suggestionFilter,\n highlightedIndex,\n openMenu,\n }) => {\n const isMenuOpen =\n isOpen && shouldRenderSuggestions(suggestionFilter);\n const {\n id: idFromDownshift,\n onBlur,\n onChange,\n onFocus,\n ref,\n color,\n size,\n ...inputProps\n } = getInputProps({\n onBlur: handleBlur,\n onFocus: handleFocus(openMenu),\n onClick: handleClick(openMenu),\n onKeyDown: handleKeyDown,\n });\n return (\n <div className={classes.container}>\n <TextField\n id={id}\n fullWidth={fullWidth}\n InputProps={{\n inputRef: storeInputRef,\n classes: {\n root: classNames(classes.inputRoot, {\n [classes.inputRootFilled]:\n variant === 'filled',\n }),\n input: classes.inputInput,\n },\n startAdornment: (\n <div\n className={classNames({\n [classes.chipContainerFilled]:\n variant === 'filled',\n })}\n >\n {selectedItems.map((item, index) => (\n React.cloneElement(selectedItem, {\n key: index,\n tabIndex: -1,\n label: getChoiceText(item),\n record: item,\n className: classes.chip,\n onDelete: handleDelete(item),\n })\n ))}\n </div>\n ),\n onBlur,\n onChange: event => {\n handleFilterChange(event);\n },\n onFocus,\n }}\n error={!!(touched && error)}\n label={\n <FieldTitle\n label={label}\n {...labelProps}\n source={source}\n resource={resource}\n isRequired={\n typeof isRequiredOverride !==\n 'undefined'\n ? isRequiredOverride\n : isRequired\n }\n />\n }\n InputLabelProps={getLabelProps({\n htmlFor: id,\n })}\n helperText={\n <InputHelperText\n touched={touched}\n error={error}\n helperText={helperText}\n />\n }\n variant={variant}\n margin={margin}\n color={color}\n size={size}\n {...inputProps}\n {...options}\n />\n <AutocompleteSuggestionList\n isOpen={isMenuOpen}\n menuProps={getMenuProps(\n {},\n // https://github.com/downshift-js/downshift/issues/235\n { suppressRefError: true }\n )}\n inputEl={inputEl.current}\n suggestionsContainerProps={\n suggestionsContainerProps\n }\n >\n {getSuggestions(suggestionFilter).map(\n (suggestion, index) => (\n React.cloneElement(suggestionItem, {\n key: getChoiceValue(suggestion),\n suggestion,\n index,\n highlightedIndex,\n isSelected: selectedItems.map(getChoiceValue).includes(getChoiceValue(suggestion)),\n filterValue,\n getSuggestionText: getChoiceText,\n ...getItemProps({item: suggestion}),\n })\n )\n )}\n </AutocompleteSuggestionList>\n </div>\n );\n }}\n </Downshift>\n );\n};\n\nconst useStyles = makeStyles(\n theme => {\n const chipBackgroundColor =\n theme.palette.type === 'light'\n ? 'rgba(0, 0, 0, 0.09)'\n : 'rgba(255, 255, 255, 0.09)';\n\n return {\n container: {\n flexGrow: 1,\n position: 'relative',\n },\n chip: {\n margin: theme.spacing(0.5, 0.5, 0.5, 0),\n },\n chipContainerFilled: {\n margin: '27px 12px 10px 0',\n },\n inputRoot: {\n flexWrap: 'wrap',\n },\n inputRootFilled: {\n flexWrap: 'wrap',\n '& $chip': {\n backgroundColor: chipBackgroundColor,\n },\n },\n inputInput: {\n width: 'auto',\n flexGrow: 1,\n },\n };\n },\n { name: 'RaAutocompleteArrayInput' }\n);\n\nexport default AutocompleteArrayInput;\n","import React from 'react';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nfunction Icon(props) {\n return (\n <SvgIcon {...props}>\n <path d=\"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h8v5l3-3 3 3v-5h2a2 2 0 002-2V5a2 2 0 00-2-2H4m8 2l3 2 3-2v3.5l3 1.5-3 1.5V15l-3-2-3 2v-3.5L9 10l3-1.5V5M4 5h5v2H4V5m0 4h3v2H4V9m0 4h5v2H4v-2z\" />\n </SvgIcon>\n );\n}\n\nexport default Icon;","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { makeStyles } from '@material-ui/core/styles';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport classnames from 'classnames';\n\nimport { useAuthenticated, useTranslate, Title } from 'react-admin';\n\n\nconst useStyles = makeStyles(theme => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n [theme.breakpoints.up('md')]: {\n height: '100%',\n },\n [theme.breakpoints.down('sm')]: {\n height: '100vh',\n marginTop: '-3em',\n },\n },\n icon: {\n width: '9em',\n height: '9em',\n },\n message: {\n textAlign: 'center',\n fontFamily: 'Roboto, sans-serif',\n opacity: 0.5,\n margin: '0 1em',\n },\n toolbar: {\n textAlign: 'center',\n marginTop: '2em',\n },\n ml3: {\n marginLeft: 16\n }\n }),\n { name: 'RemoveLayout' }\n);\n\nconst goBack = () => {\n window.history.go(-1);\n}\n\nconst stopPropagation = e => {\n e.stopPropagation()\n};\n\nconst Remove = props => {\n const { className, classes: classesOverride, resource, basePath, record, title, defaultTitle, ...rest } = props;\n const classes = useStyles(props);\n const translate = useTranslate();\n useAuthenticated();\n return (\n <div\n className={classnames(classes.container, className)}\n {...sanitizeRestProps(rest)}\n >\n <Title title={title} defaultTitle={defaultTitle} record={record}/>\n <div className={classes.message}>\n <DeleteIcon className={classes.icon} />\n <h1>{translate('ra.page.removed')}</h1>\n <div>{translate('ra.message.removed')}.</div>\n </div>\n <div className={classes.toolbar}>\n <Button \n variant=\"contained\" \n component={Link}\n to={basePath}\n className={classes.ml3}\n >\n {translate('ra.action.back')}\n </Button>\n <Button \n variant=\"contained\" \n component={Link}\n to={`/TrashItem`}\n className={classes.ml3}\n >\n {translate('ra.action.trash_open')}\n </Button>\n </div>\n </div>\n );\n};\n\nconst sanitizeRestProps = ({\n staticContext,\n history,\n location,\n match,\n ...rest\n}) => rest;\n\nRemove.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n\n location: PropTypes.object,\n};\n\nexport default Remove;\n","import React from 'react';\nimport { useTranslate } from 'react-admin';\nimport { get } from 'lodash';\n\n\n\nconst TitleForRecord = ({ resource, source, record, ...props }) => {\n const translate = useTranslate();\n \n if (!record) return null;\n const resourceText = translate(`resources.${resource}.name`, { smart_count: 1 });\n const sourceText = get(record, source);\n\n return `${resourceText}${(sourceText) ? ` ${sourceText}` : ` #${record.id}`}`;\n};\n\n\n\nexport default TitleForRecord;","import React from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ReportIcon from '@material-ui/icons/Report';\nimport { useTranslate } from 'ra-core';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexDirection: 'column',\n alignItems: \"center\",\n justifyContent: \"center\",\n flexGrow: 1,\n width: \"100%\",\n height: \"100%\",\n paddingTop: theme.spacing(),\n paddingBottom: theme.spacing(2),\n opacity: 0.5,\n },\n icon: {\n marginBottom: 4,\n },\n}));\n\nconst Error = ({className, title, caption, ...props}) => {\n const classes = useStyles(props);\n const translate = useTranslate();\n return (\n <div className={classnames(classes.root, className)}>\n <ReportIcon className={classes.icon} fontSize=\"large\" />\n {title && <Typography variant=\"body1\" >{translate(title, {_: title})}</Typography>}\n {caption && <Typography variant=\"caption\" >{translate(caption, {_: caption})}</Typography>}\n </div>\n );\n};\n\nError.defaultProps = {\n title: 'ra.page.error',\n caption: 'ra.message.error',\n};\n\n\nexport default Error;","import React from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useTranslate } from 'ra-core';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: \"flex\",\n flexDirection: 'column',\n alignItems: \"center\",\n justifyContent: \"center\",\n flexGrow: 1,\n width: \"100%\",\n height: \"100%\",\n paddingTop: theme.spacing(),\n paddingBottom: theme.spacing(2),\n opacity: 0.5,\n },\n icon: {\n marginBottom: 4,\n },\n}));\n\nconst Loading = ({className, title, caption, ...props}) => {\n const classes = useStyles(props);\n const translate = useTranslate();\n return (\n <div className={classnames(classes.root, className)}>\n <CircularProgress className={classes.icon} size={35} color=\"primary\" />\n {title && <Typography variant=\"body1\" >{translate(title, {_: title})}</Typography>}\n {caption && <Typography variant=\"caption\" >{translate(caption, {_: caption})}</Typography>}\n </div>\n );\n};\n\nLoading.defaultProps = {\n title: 'ra.page.loading',\n caption: 'ra.message.loading',\n};\n\nexport default Loading;","import { useEffect, useState } from 'react';\nimport gql from 'graphql-tag';\nimport apolloCoreClient from './apolloCoreClient';\n\n\n\nconst GET_ONE_DASHBOARD = gql`\n query Dashboard( $id: ID! ) {\n data: Dashboard( id: $id ) {\n id\n name\n description\n createdAt\n createdBy {\n id\n name\n }\n updatedAt\n deleted\n resource\n gasMeterType\n executeApp\n uri\n }\n }\n`;\n\nexport default function(resource, id, version) {\n\n const [state, setState] = useState({\n data: undefined,\n error: null,\n loading: true,\n loaded: false,\n })\n\n useEffect(() => {\n\n if (!id) return;\n\n setState(prevState => ({ ...prevState, loading: true }));\n\n apolloCoreClient.query({\n query: GET_ONE_DASHBOARD,\n variables: { id },\n fetchPolicy: 'network-only',\n })\n .then(({ data: {data} }) => {\n setState({\n data,\n loading: false,\n loaded: true,\n });\n })\n .catch(error => {\n setState({\n error,\n loading: false,\n loaded: false,\n });\n });\n }, [resource, id, version]);\n\n return state;\n}\n","import { useVersion, useTranslate, useNotify } from 'react-admin';\nimport useDashboard from '../../dataProvider/Core/useDashboard';\n\n\n\nconst useDashboardController = (props) => {\n\n const { basePath, id, resource } = props;\n const translate = useTranslate();\n const notify = useNotify();\n const version = useVersion();\n const { data: record, loading, loaded, error } = useDashboard(resource, id, version);\n\n if (error) notify('ra.notification.item_doesnt_exist', 'warning');\n\n const defaultTitle = translate('resources.Dashboard.name', { smart_count: 1 });\n\n return {\n loading,\n loaded,\n defaultTitle,\n resource,\n basePath,\n record,\n version,\n };\n};\n\nexport default useDashboardController;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport { TitleForRecord } from 'react-admin';\nimport useDashboardModule from '../../controller/dashboard/useDashboardModule';\nimport dashboardScadaModule from './DashboardScadaModule';\nimport Remove from './Remove';\n\n\nconst useStyles = makeStyles({\n root: {},\n main: {\n display: 'flex',\n },\n noActions: {\n marginTop: '1em',\n },\n content: {\n flex: '1 1 auto',\n },\n toolbar: {\n display: 'flex',\n justifyContent: \"space-between\",\n },\n});\n\nconst sanitizeRestProps = ({\n actions,\n aside,\n title,\n children,\n className,\n id,\n data,\n loading,\n loaded,\n resource,\n hasCreate,\n hasEdit,\n hasList,\n hasShow,\n hasDashboard,\n version,\n match,\n location,\n history,\n options,\n locale,\n permissions,\n ...rest\n}) => rest;\n\nexport const DashboardView = ({\n breadcrumbs,\n actions,\n aside,\n basePath,\n children,\n classes: classesOverride,\n className,\n defaultTitle,\n hasEdit,\n hasList,\n record,\n resource,\n title,\n version,\n ...rest\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const path = record && record.uri;\n const executeApp = record && record.executeApp;\n const dashboardModuleProps = useDashboardModule(path);\n\n if (record && record.deleted) {\n return (\n <Remove\n resource={resource}\n basePath={basePath}\n record={record}\n title={title}\n defaultTitle={defaultTitle}\n hasList={hasList}\n hasEdit={hasEdit}\n />\n );\n }\n\n const { Dashboard, error, loading, loaded } = executeApp == 'SCADAJS' ? dashboardScadaModule : dashboardModuleProps;\n\n return (\n <div\n className={classnames('show-page', classes.root, className)}\n {...sanitizeRestProps(rest)}\n >\n <TitleForRecord\n title={title}\n record={record}\n defaultTitle={defaultTitle}\n />\n <div className={classes.toolbar}>\n {breadcrumbs && React.cloneElement(breadcrumbs, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n })}\n {actions && React.cloneElement(actions, {\n basePath,\n data: record,\n hasList,\n hasEdit,\n resource,\n style: { marginLeft: \"auto\" },\n ...actions.props,\n })}\n </div>\n\n <div\n className={classnames(classes.main, {\n [classes.noActions]: !actions,\n })}\n >\n <div className={`${classes.content}`} >\n {loading && \"Загрузка...\"}\n {Dashboard && React.isValidElement(<Dashboard />) && (executeApp == 'SCADAJS' ? <Dashboard record={record} {...rest} /> : <Dashboard />)}\n </div>\n </div>\n </div>\n );\n};\n\nDashboardView.propTypes = {\n actions: PropTypes.element,\n basePath: PropTypes.string,\n classes: PropTypes.object,\n className: PropTypes.string,\n defaultTitle: PropTypes.any,\n hasEdit: PropTypes.bool,\n hasList: PropTypes.bool,\n loading: PropTypes.bool,\n loaded: PropTypes.bool,\n record: PropTypes.object,\n resource: PropTypes.string,\n title: PropTypes.any,\n version: PropTypes.node,\n};\n\nDashboardView.defaultProps = {\n classes: {},\n};","import React from 'react';\nimport url from 'url';\nimport useDashboardController from '../../controller/dashboard/useDashboardController';\nimport { DashboardView } from '../Layout/Dashboard';\nimport TitleForRecord from '../Layout/TitleForRecord';\nimport Breadcrumbs from '../Layout/Breadcrumbs';\nimport Breadcrumb from '../Layout/Breadcrumb';\n\n\n\n\nconst DashboardBreadcrumbs = ({ target, ...props }) => {\n return (\n <Breadcrumbs resource={target.resource} data={{ id: target.id }}>\n <Breadcrumb resource={\"GasRegion\"} />\n <Breadcrumb resource={\"GasDistrict\"} />\n <Breadcrumb resource={\"GasConsumer\"} />\n <Breadcrumb resource={\"GasMeterPad\"} />\n <Breadcrumb resource={\"GasMeterUnit\"} />\n </Breadcrumbs>\n );\n}\n\nconst DashboardShow = props => {\n\n const controllerProps = useDashboardController(props);\n const target = url.parse(props.location.search, true).query;\n\n return (\n <DashboardView\n breadcrumbs={<DashboardBreadcrumbs target={target} />}\n title={<TitleForRecord source=\"name\" {...props} />}\n {...props}\n {...controllerProps}\n />\n );\n};\n\nexport default DashboardShow;","import React from 'react';\nimport { ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\n\n\n\nconst matchTrue = () => true;\n\nconst DashboardReferenceArrayInput = props => {\n\n return (\n <ReferenceArrayInput {...props}>\n <AutocompleteArrayInput matchSuggestion={matchTrue} />\n </ReferenceArrayInput>\n );\n};\n\nexport default DashboardReferenceArrayInput;","import React, { Children, cloneElement } from 'react';\nimport get from 'lodash/get';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport { useTranslate } from 'ra-core';\nimport useDashboardModule from '../../controller/dashboard/useDashboardModule';\nimport dashboardScadaProps from '../Layout/DashboardScadaModule';\n\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(),\n '&:first-child': {\n marginTop: 0,\n },\n },\n\n}));\n\nconst DashboardNestedGridField = ({ children, classes: classesOverride, record, source, resource, basePath, version, className, label, ...props }) => {\n const classes = useStyles({ classes: classesOverride });\n const translate = useTranslate();\n const choices = get(record, source);\n const referenceRecord = record\n if (!record || !choices.length) return null;\n\n return (\n <div className={`${classes.root} ${className}`}>\n {label && <Typography variant=\"subtitle2\" color=\"textSecondary\" gutterBottom noWrap>{translate(label)}</Typography>}\n <Grid container spacing={2} >\n {choices.map(choice => (\n <DashboardNestedGridItem record={choice} key={choice.id}>\n {cloneElement(Children.only(children), {\n record: choice,\n resource,\n basePath,\n version,\n referenceRecord,\n })}\n </DashboardNestedGridItem>\n ))}\n </Grid>\n </div>\n );\n};\n\nconst DashboardNestedGridItem = ({ children, record, ...props }) => {\n const path = record && record.uri;\n\n const useDashboardModuleProps = useDashboardModule(path);\n const dashboardModuleProps = record && record.executeApp && record.executeApp == 'SCADAJS' ? dashboardScadaProps : useDashboardModuleProps;\n\n const { DashboardPreview } = dashboardModuleProps;\n const gridItemProps = DashboardPreview && DashboardPreview.defaultProps && DashboardPreview.defaultProps.gridItemProps;\n\n const resultGridItemProps = gridItemProps || {\n xs: 12,\n sm: 6,\n md: 4,\n lg: 3,\n xl: 2,\n };\n\n return (\n <Grid item {...resultGridItemProps}>\n {cloneElement(Children.only(children), {\n dashboardModuleProps,\n })}\n </Grid>\n );\n};\n\nexport default DashboardNestedGridField;","import React, { Fragment, forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport CardContent from '@material-ui/core/CardContent';\nimport Avatar from '@material-ui/core/Avatar';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport Error from '../Layout/Error';\nimport Loading from '../Layout/Loading';\n\n\n\nconst useStyles = makeStyles(theme => ({\n card: {},\n cardContent: {\n paddingTop: 0,\n },\n cardActionArea: {},\n header: {},\n title: {\n fontWeight: 500,\n lineHeight: 1.33,\n },\n avatar: {\n color: \"#1565c0\",\n backgroundColor: \"#bbdefb\",\n },\n}));\n\nconst LinkRef = React.forwardRef((props, ref) => <Link innerRef={ref} {...props} />);\n\nconst DashboardCard = forwardRef(({ className, classes: classesOverride, record, basePath, resource, source, referenceRecord, version, dashboardModuleProps, ...props}, ref) => {\n const classes = useStyles({ classes: classesOverride });\n\n if (!record) return null;\n const { DashboardPreview, iconPreview, hasDashboard, error, loading } = dashboardModuleProps;\n const resultIcon = (typeof iconPreview == 'function' ? iconPreview(props) : iconPreview) || <DashboardIcon />;\n const linkprops = hasDashboard ? { component: LinkRef, ref, to: { pathname: `/Dashboard/${record.id}/show`, search: `?resource=${resource}&id=${referenceRecord.id}`}} : {};\n const context = {\n basePath,\n resource,\n record,\n referenceRecord,\n version,\n }\n \n const CardInner = (\n <Fragment>\n <CardHeader\n avatar={<Avatar aria-label=\"dashboard\" variant=\"rounded\" classes={{colorDefault: classes.avatar}}>\n {React.cloneElement(resultIcon)}\n </Avatar>}\n title={record.name}\n titleTypographyProps={{variant:\"subtitle1\"}}\n classes={{root: classes.header, title: classes.title}}\n />\n <CardContent classes={{root: classes.cardContent}}>\n { error && <Error />}\n { loading && <Loading />}\n { DashboardPreview && React.isValidElement(<DashboardPreview />) && <DashboardPreview context={context}/>}\n </CardContent>\n </Fragment>\n );\n\n if (hasDashboard) {\n return (\n <Card className={classes.card} >\n <CardActionArea {...linkprops} classes={{root: classes.cardActionArea}} >\n {React.cloneElement(CardInner)}\n </CardActionArea>\n </Card>\n );\n }\n \n return (\n <Card className={classes.card} >\n {React.cloneElement(CardInner)}\n </Card>\n );\n \n});\n\n\n\n\n\nexport default DashboardCard;","import React, { useEffect } from 'react';\nimport get from 'lodash/get'\nimport { useForm, useFormState } from 'react-final-form';\nimport { useGetList, ReferenceArrayInput } from 'react-admin';\nimport AutocompleteArrayInput from '../Inputs/AutocompleteArrayInput';\n\n\n\nconst matchTrue = () => true;\n\nconst DashboardReferenceArrayInput = props => {\n const { source, reference, filter } = props\n const form = useForm();\n const { values } = useFormState({ subscription: { values: true } });\n const value = get(values, source)\n const { ids } = useGetList(\n reference,\n { page: 1, perPage: 100 },\n { field: 'name', order: 'DESC' },\n { ...filter, useDefault: true },\n { enabled: !value }\n );\n\n useEffect(() => {\n if (!value && ids.length > 0) {\n form.change(source, ids)\n }\n }, [ids])\n\n return (\n <ReferenceArrayInput {...props}>\n <AutocompleteArrayInput matchSuggestion={matchTrue} />\n </ReferenceArrayInput>\n );\n};\n\nexport default DashboardReferenceArrayInput;","import React from 'react';\nimport { makeStyles, Paper, Popper } from '@material-ui/core';\n\nconst useStyles = makeStyles(\n {\n suggestionsContainer: {\n zIndex: 1500,\n },\n suggestionsPaper: {\n maxHeight: '50vh',\n overflowY: 'auto',\n },\n },\n { name: 'RaAutocompleteSuggestionList' }\n);\n\nconst AutocompleteSuggestionList = ({\n children,\n isOpen,\n menuProps,\n inputEl,\n classes: classesOverride = undefined,\n suggestionsContainerProps,\n}) => {\n const classes = useStyles({ classes: classesOverride });\n\n return (\n <Popper\n open={isOpen}\n anchorEl={inputEl}\n className={classes.suggestionsContainer}\n modifiers={{}}\n {...suggestionsContainerProps}\n >\n <div {...(isOpen ? menuProps : {})}>\n <Paper\n style={{\n marginTop: 8,\n minWidth: inputEl ? inputEl.clientWidth : null,\n }}\n className={classes.suggestionsPaper}\n >\n {children}\n </Paper>\n </div>\n </Popper>\n );\n};\n\nexport default AutocompleteSuggestionList;\n","import React, { isValidElement, cloneElement } from 'react';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport { makeStyles, MenuItem } from '@material-ui/core';\nimport classnames from 'classnames';\n\nconst useStyles = makeStyles(\n theme => ({\n root: {\n fontWeight: 400,\n },\n selected: {\n fontWeight: 500,\n },\n suggestion: {\n display: 'block',\n fontFamily: theme.typography.fontFamily,\n },\n suggestionText: { fontWeight: 300 },\n highlightedSuggestionText: { fontWeight: 500 },\n }),\n { name: 'RaAutocompleteSuggestionItem' }\n);\n\nconst AutocompleteSuggestionItem = ({\n suggestion,\n index,\n highlightedIndex,\n isSelected,\n filterValue,\n classes: classesOverride,\n getSuggestionText,\n ...rest\n}) => {\n const classes = useStyles({ classes: classesOverride });\n const isHighlighted = highlightedIndex === index;\n const suggestionText = getSuggestionText(suggestion);\n let matches;\n let parts;\n\n if (!isValidElement(suggestionText)) {\n matches = match(suggestionText, filterValue);\n parts = parse(suggestionText, matches);\n }\n\n return (\n <MenuItem\n key={suggestionText}\n selected={isHighlighted}\n className={classnames(classes.root, {\n [classes.selected]: isSelected,\n })}\n {...rest}\n >\n {isValidElement(suggestionText) ? (\n cloneElement(suggestionText, { filterValue })\n ) : (\n <div className={classes.suggestion}>\n {parts.map((part, index) => {\n return part.highlight ? (\n <span\n key={index}\n className={classes.highlightedSuggestionText}\n >\n {part.text}\n </span>\n ) : (\n <strong\n key={index}\n className={classes.suggestionText}\n >\n {part.text}\n </strong>\n );\n })}\n </div>\n )}\n </MenuItem>\n );\n};\n\nexport default AutocompleteSuggestionItem;\n","import { useEffect, useState } from 'react';\n\n\nexport default function (path) {\n\n const [module, setModule] = useState({\n Dashboard: undefined,\n DashboardPreview: undefined,\n iconPreview: undefined,\n hasDashboard: false,\n hasDashboardPreview: false,\n error: undefined,\n loading: true,\n loaded: false,\n })\n\n useEffect(() => {\n\n const onModuleLoad = (path) => {\n\n setModule(prevState => ({ ...prevState, loading: true }));\n import(`../../components/Dashboard${path.replace('/Dashboard', '')}`) //прикол вебпак https://stackoverflow.com/questions/54254553/dynamic-import-in-react-not-working-when-trying-to-import-a-component-in-another\n .then(module => {\n setModule({\n Dashboard: module.default,\n DashboardPreview: module.DashboardPreview,\n iconPreview: module.DashboardPreview.defaultProps.icon,\n hasDashboard: Boolean(module.default),\n hasDashboardPreview: Boolean(module.DashboardPreview),\n loading: false,\n loaded: true,\n });\n })\n .catch(error => {\n setModule({\n error,\n loading: false,\n loaded: false,\n });\n });\n }\n\n if (path) {\n onModuleLoad(path)\n };\n\n return () => {\n setModule({\n Dashboard: undefined,\n DashboardPreview: undefined,\n iconPreview: undefined,\n hasDashboard: false,\n hasDashboardPreview: false,\n error: undefined,\n loading: true,\n loaded: false,\n });\n }\n\n }, [path]);\n\n return module;\n}\n","import { useEffect, useState } from 'react';\nimport React from 'react';\nimport locationurl from 'url';\nimport gql from 'graphql-tag';\nimport PropTypes from 'prop-types';\nimport DeveloperBoardIcon from '@material-ui/icons/DeveloperBoard';\nimport { URI_SCADAJS } from '../../appsettings';\nimport Iframe from 'react-iframe'\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Switch from '@material-ui/core/Switch';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport apolloCoreClient from '../../dataProvider/Core/apolloCoreClient';\n\nconst useStyles = makeStyles(theme => ({\n card: {},\n scadaheader: {\n display: \"flex\",\n marginBottom: theme.spacing.unit,\n justifyContent: \"space-between\"\n },\n switchedit: {\n marginLeft: \"auto\"\n },\n cardContent: {\n padding: 0\n }\n}));\n\nconst DashboardPreview = (props) => {\n return (<div></div>);\n}\n\nDashboardPreview.propTypes = {\n icon: PropTypes.element,\n gridItemProps: PropTypes.shape({\n xs: PropTypes.number,\n sm: PropTypes.number,\n md: PropTypes.number,\n lg: PropTypes.number,\n xl: PropTypes.number,\n }),\n}\n\n\nconst Dashboard = ({ record, ...props }) => {\n\n const target = locationurl.parse(props.location.search, true).query;\n\n // id:'ckaxom5wd01a96wt0259u24q8'\n // resource:'GasMeterUnit'\n\n const classes = useStyles();\n const [url, setUrl] = useState(null);\n\n const createUrl = (isEdit, dbid) => {\n if (record) {\n if (!dbid && url !== null) {\n const pu = locationurl.parse(url, true).query;\n dbid = pu.dbid;\n }\n\n const fix_url_scadajs = URI_SCADAJS[URI_SCADAJS.length - 1] == '/' ? URI_SCADAJS.substring(0, URI_SCADAJS.length - 1) : URI_SCADAJS;\n\n setUrl(`${fix_url_scadajs}/${isEdit ? 'editor' : 'player'}?saveas=false&uri=${encodeURIComponent(record.uri)}${dbid ? '&dbid=' + dbid : ''}`);\n\n }\n }\n\n useEffect(() => {\n\n if (target.resource === 'GasMeterUnit') {\n const query = gql`query GasMeterUnit($where: GasMeterUnitWhereUniqueInput!) { data: GasMeterUnit( where: $where ) { id, aisId, gasMeter { id, dbId } }}`;\n apolloCoreClient.query({\n query,\n variables: { where: { id: target.id } },\n fetchPolicy: 'network-only',\n }).then(({ data: { data } }) => {\n createUrl(false, (data.gasMeter && data.gasMeter.dbId) || data.aisId);\n })\n }\n\n return () => {\n setUrl(null);\n }\n }, [record]);\n\n const handleChange = (event) => {\n createUrl(event.target.checked);\n };\n\n if (url) {\n return <>\n <div className={classes.scadaheader}>\n <div>{record.name}</div>\n <FormControlLabel\n className={classes.switchedit}\n control={<Switch\n onChange={handleChange}\n name=\"EditView\"\n size=\"small\"\n />}\n labelPlacement=\"start\"\n />\n\n </div>\n <Card className={classes.card} >\n <CardContent className={classes.cardContent} style={{ paddingBottom: 0 }}>\n <Iframe url={url} display=\"initial\" overflow=\"auto\" width=\"100%\" height=\"750px\" frameBorder=\"0\" />\n </CardContent>\n </Card>\n\n </>\n } else {\n return <div>Loading...</div>\n }\n\n /* \n createdAt:'2020-07-20T07:56:17.718Z'\n createdBy:null\n deleted:false\n description:null\n executeApp:'SCADAJS'\n gasMeterType:null\n id:'ckcu7t9dj001t0792ohz95rxn'\n name:'test1'\n resource:'GasMeterUnit'\n updatedAt:'2020-07-20T07:56:17.718Z'\n uri:'/ScadaJS/ckcu7t7j10000u8gvbkwlb\n */\n}\n\nconst iconPreview = (prop) => {\n return (<DeveloperBoardIcon></DeveloperBoardIcon>);\n}\n\nexport default {\n Dashboard,\n DashboardPreview,\n iconPreview,\n hasDashboard: true,\n hasDashboardPreview: false,\n error: undefined,\n loading: false,\n loaded: true\n};","import { ApolloClient, InMemoryCache, createHttpLink, split } from '@apollo/client';\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { setContext } from '@apollo/client/link/context';\nimport { getMainDefinition } from '@apollo/client/utilities'\nimport { getAccessToken } from '../../authPrivider/getAccessToken';\nimport { URI_CORE, WS_CORE, PERMISSIONS_NAMESPACE } from '../../appsettings';\n\n\n\nconst httpLink = createHttpLink({\n uri: URI_CORE\n})\n\nconst authLink = setContext(async (_, { headers }) => {\n\n const token = await getAccessToken();\n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n permissions: PERMISSIONS_NAMESPACE,\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_CORE,\n options: {\n lazy: true,\n reconnect: true,\n reconnectionAttempts: 3,\n connectionParams: async () => {\n const token = await getAccessToken();\n\n return {\n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nexport default new ApolloClient({\n link,\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n },\n query: {\n fetchPolicy: 'network-only',\n },\n },\n});\n","import { ApolloClient, InMemoryCache, createHttpLink, split } from '@apollo/client';\nimport { WebSocketLink } from '@apollo/client/link/ws';\nimport { setContext } from '@apollo/client/link/context';\nimport { getMainDefinition } from '@apollo/client/utilities'\nimport { getAccessToken } from '../../authPrivider/getAccessToken';\nimport { URI_DATABUS, WS_DATABUS } from '../../appsettings';\n\n\nconst httpLink = createHttpLink({\n uri: URI_DATABUS\n})\n\nconst authLink = setContext(async (_, { headers }) => { \n \n const token = await getAccessToken(); \n\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : \"\",\n }\n }\n});\n\nconst wsLink = new WebSocketLink({\n uri: WS_DATABUS,\n options: {\n lazy: true,\n reconnect: true,\n reconnectionAttempts: 3,\n connectionParams: async () => {\n const token = await getAccessToken(); \n \n return { \n authorization: token ? `Bearer ${token}` : \"\",\n }\n },\n }\n})\n\nconst link = split(\n ({ query }) => {\n const { kind, operation } = getMainDefinition(query)\n return kind === 'OperationDefinition' && operation === 'subscription'\n },\n wsLink,\n authLink.concat(httpLink),\n)\n\nexport default new ApolloClient({\n link, \n cache: new InMemoryCache({ dataIdFromObject: () => null }),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n errorPolicy: 'ignore',\n },\n query: {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n },\n },\n});\n","import React, { forwardRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport Chip from '@material-ui/core/Chip';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslate } from 'react-admin';\n\n\nconst useStyles = makeStyles(theme => ({\n chip: {\n margin: 2, \n maxWidth: 256,\n position: \"relative\",\n backgroundColor: \"transparent\",\n borderRadius: 4,\n '&:hover, &:focus': {\n backgroundColor: theme.palette.action.hover,\n },\n } \n}));\n\nconst LinkRef = React.forwardRef((props, ref) => <Link innerRef={ref} {...props} />);\n\nconst TagChip = forwardRef(({classes: classesOverride, className, resource, record, disabled, ...props}, ref) => {\n const classes = useStyles({classes: classesOverride });\n const translate = useTranslate();\n const title = `${translate(`resources.${resource}.menu`, { _: resource, smart_count: 1 })} ${record.name}`;\n\n return (\n <Tooltip title={title} placement=\"top\" enterDelay={700}>\n <div>\n <Chip\n className={classes.chip}\n label={record.name}\n // size=\"small\"\n icon={<record.icon />}\n component={LinkRef}\n ref={ref}\n to={`/${resource}/${record.id}/show`}\n clickable\n disabled={disabled}\n />\n </div>\n </Tooltip>\n \n );\n});\n\nexport default TagChip;","import gql from 'graphql-tag'\nimport { apolloAuthClient } from './apolloAuthClient';\n\n\n\nconst REFRESH_TOKEN_MUTATION = gql`\n mutation refresh($refreshToken: String!) {\n refresh(refreshToken: $refreshToken) { \n token,\n refreshToken, \n }\n }\n`;\n\nexport default (refreshToken) => {\n return apolloAuthClient.mutate({\n mutation: REFRESH_TOKEN_MUTATION,\n variables: { refreshToken },\n onError: (error) => {\n alert(error)\n },\n });\n};\n","import decodeJwt from 'jwt-decode';\nimport { AUTH_TOKEN_COOKIE, REFRESH_TOKEN_COOKIE, DOMAIN_COOKIE } from '../appsettings';\nimport { getCookie, setCookie, deleteCookie } from '../utils';\nimport tokenRefresh from './tokenRefresh';\n\n\n\nexport const getAccessToken = async () => {\n let authTokenCookie = getCookie(AUTH_TOKEN_COOKIE);\n let refreshTokenCookie = getCookie(REFRESH_TOKEN_COOKIE);\n \n if(tokenExpired(authTokenCookie) && !tokenExpired(refreshTokenCookie, 'refresh')) {\n\n try {\n const { data: {refresh: {token, refreshToken}}} = await tokenRefresh(refreshTokenCookie);\n \n setCookie(AUTH_TOKEN_COOKIE, token, {domain: DOMAIN_COOKIE});\n setCookie(REFRESH_TOKEN_COOKIE, refreshToken, {domain: DOMAIN_COOKIE});\n \n authTokenCookie = token;\n\n } catch (error) { \n deleteCookie(AUTH_TOKEN_COOKIE, {domain: DOMAIN_COOKIE});\n deleteCookie(REFRESH_TOKEN_COOKIE, {domain: DOMAIN_COOKIE}); \n throw new Error(`${error.message.replace('Error: ', '').replace('GraphQL error: ', '')}`) \n }\n }\n \n return authTokenCookie;\n};\n\nexport const tokenExpired = (token, arg) => {\n if(token) {\n const decodedToken = decodeJwt(token);\n const current_time = Date.now() / 1000; \n const result = (decodedToken.exp - 20) < current_time; \n return result;\n } else { \n return true;\n }\n};\n\n"],"sourceRoot":""}